ai-agents-for-beginners

उत्पादन में एआई एजेंट्स: अवलोकन और मूल्यांकन

उत्पादन में एआई एजेंट्स

जैसे-जैसे एआई एजेंट्स प्रायोगिक प्रोटोटाइप से वास्तविक दुनिया के अनुप्रयोगों में परिवर्तित होते हैं, उनके व्यवहार को समझने, उनके प्रदर्शन की निगरानी करने और उनके आउटपुट का व्यवस्थित रूप से मूल्यांकन करने की क्षमता महत्वपूर्ण हो जाती है।

सीखने के लक्ष्य

इस पाठ को पूरा करने के बाद, आप निम्नलिखित को जानेंगे/समझेंगे:

इस पाठ का उद्देश्य आपको “ब्लैक बॉक्स” एजेंट्स को पारदर्शी, प्रबंधनीय और भरोसेमंद सिस्टम में बदलने के लिए आवश्यक ज्ञान प्रदान करना है।

नोट: यह महत्वपूर्ण है कि आप सुरक्षित और भरोसेमंद एआई एजेंट्स को तैनात करें। भरोसेमंद एआई एजेंट्स बनाना पाठ को भी देखें।

ट्रेसेस और स्पैन्स

अवलोकन उपकरण जैसे Langfuse या Azure AI Foundry आमतौर पर एजेंट रन को ट्रेसेस और स्पैन्स के रूप में प्रस्तुत करते हैं।

Langfuse में ट्रेस ट्री

अवलोकन के बिना, एक एआई एजेंट “ब्लैक बॉक्स” जैसा महसूस हो सकता है - इसकी आंतरिक स्थिति और तर्क अस्पष्ट होते हैं, जिससे समस्याओं का निदान करना या प्रदर्शन को अनुकूलित करना कठिन हो जाता है। अवलोकन के साथ, एजेंट “ग्लास बॉक्स” बन जाते हैं, जो पारदर्शिता प्रदान करते हैं, जो विश्वास बनाने और यह सुनिश्चित करने के लिए महत्वपूर्ण है कि वे इच्छित रूप से कार्य कर रहे हैं।

उत्पादन वातावरण में अवलोकन क्यों महत्वपूर्ण है

एआई एजेंट्स को उत्पादन वातावरण में स्थानांतरित करना नई चुनौतियों और आवश्यकताओं को पेश करता है। अवलोकन अब “अच्छा-से-होने वाला” नहीं है, बल्कि एक महत्वपूर्ण क्षमता है:

ट्रैक करने के लिए प्रमुख मेट्रिक्स

एजेंट व्यवहार की निगरानी और समझ के लिए, विभिन्न मेट्रिक्स और संकेतों को ट्रैक किया जाना चाहिए। जबकि विशिष्ट मेट्रिक्स एजेंट के उद्देश्य के आधार पर भिन्न हो सकते हैं, कुछ सार्वभौमिक रूप से महत्वपूर्ण हैं।

यहां कुछ सबसे सामान्य मेट्रिक्स दिए गए हैं जिन्हें अवलोकन उपकरण मॉनिटर करते हैं:

लेटेंसी: एजेंट कितनी जल्दी प्रतिक्रिया देता है? लंबे प्रतीक्षा समय उपयोगकर्ता अनुभव को नकारात्मक रूप से प्रभावित करते हैं। आपको कार्यों और व्यक्तिगत चरणों के लिए लेटेंसी को मापना चाहिए, एजेंट रन को ट्रेस करके। उदाहरण के लिए, यदि कोई एजेंट सभी मॉडल कॉल्स के लिए 20 सेकंड लेता है, तो इसे तेज़ मॉडल का उपयोग करके या मॉडल कॉल्स को समानांतर में चलाकर तेज़ किया जा सकता है।

लागत: प्रति एजेंट रन खर्च कितना है? एआई एजेंट्स LLM कॉल्स पर निर्भर करते हैं, जो प्रति टोकन या बाहरी APIs पर बिल किए जाते हैं। बार-बार टूल का उपयोग या कई प्रॉम्प्ट्स लागत को तेजी से बढ़ा सकते हैं। उदाहरण के लिए, यदि कोई एजेंट मामूली गुणवत्ता सुधार के लिए LLM को पांच बार कॉल करता है, तो आपको यह आकलन करना चाहिए कि लागत उचित है या नहीं, या आप कॉल की संख्या को कम कर सकते हैं या सस्ते मॉडल का उपयोग कर सकते हैं। रीयल-टाइम मॉनिटरिंग अप्रत्याशित स्पाइक्स (जैसे, अत्यधिक API लूप्स के कारण बग्स) की पहचान करने में भी मदद कर सकता है।

रिक्वेस्ट एरर्स: एजेंट ने कितने अनुरोधों को विफल किया? इसमें API एरर्स या असफल टूल कॉल्स शामिल हो सकते हैं। उत्पादन में इनसे एजेंट को अधिक मजबूत बनाने के लिए, आप फॉलबैक या रिट्राई सेट कर सकते हैं। उदाहरण के लिए, यदि LLM प्रदाता A डाउन है, तो आप बैकअप के रूप में LLM प्रदाता B पर स्विच कर सकते हैं।

उपयोगकर्ता फीडबैक: प्रत्यक्ष उपयोगकर्ता मूल्यांकन मूल्यवान अंतर्दृष्टि प्रदान करते हैं। इसमें स्पष्ट रेटिंग्स (👍थंब्स-अप/👎डाउन, ⭐1-5 स्टार्स) या टेक्स्ट टिप्पणियां शामिल हो सकती हैं। लगातार नकारात्मक फीडबैक आपको सतर्क करना चाहिए क्योंकि यह संकेत है कि एजेंट अपेक्षा के अनुसार काम नहीं कर रहा है।

अप्रत्यक्ष उपयोगकर्ता फीडबैक: उपयोगकर्ता व्यवहार अप्रत्यक्ष फीडबैक प्रदान करते हैं, भले ही स्पष्ट रेटिंग्स न हों। इसमें तत्काल प्रश्न पुनःप्रस्तुति, बार-बार क्वेरी करना, या रिट्राई बटन पर क्लिक करना शामिल हो सकता है। उदाहरण के लिए, यदि आप देखते हैं कि उपयोगकर्ता बार-बार एक ही प्रश्न पूछते हैं, तो यह संकेत है कि एजेंट अपेक्षा के अनुसार काम नहीं कर रहा है।

सटीकता: एजेंट कितनी बार सही या वांछनीय आउटपुट उत्पन्न करता है? सटीकता की परिभाषाएं भिन्न हो सकती हैं (जैसे, समस्या-समाधान की सटीकता, जानकारी पुनःप्राप्ति की सटीकता, उपयोगकर्ता संतोष)। पहला कदम यह परिभाषित करना है कि आपके एजेंट के लिए सफलता कैसी दिखती है। आप स्वचालित जांच, मूल्यांकन स्कोर, या कार्य पूर्णता लेबल के माध्यम से सटीकता को ट्रैक कर सकते हैं। उदाहरण के लिए, ट्रेसेस को “सफल” या “विफल” के रूप में चिह्नित करना।

स्वचालित मूल्यांकन मेट्रिक्स: आप स्वचालित मूल्यांकन भी सेट कर सकते हैं। उदाहरण के लिए, आप एजेंट के आउटपुट को स्कोर करने के लिए LLM का उपयोग कर सकते हैं, जैसे कि यह सहायक, सटीक है या नहीं। कई ओपन सोर्स लाइब्रेरीज़ भी हैं जो एजेंट के विभिन्न पहलुओं को स्कोर करने में मदद करती हैं। उदाहरण के लिए, RAGAS RAG एजेंट्स के लिए या LLM Guard हानिकारक भाषा या प्रॉम्प्ट इंजेक्शन का पता लगाने के लिए।

व्यवहार में, इन मेट्रिक्स के संयोजन से एआई एजेंट के स्वास्थ्य का सबसे अच्छा कवरेज मिलता है। इस अध्याय के उदाहरण नोटबुक में, हम दिखाएंगे कि ये मेट्रिक्स वास्तविक उदाहरणों में कैसे दिखते हैं, लेकिन पहले, हम सीखेंगे कि एक सामान्य मूल्यांकन वर्कफ़्लो कैसा दिखता है।

अपने एजेंट को इंस्ट्रूमेंट करें

ट्रेसिंग डेटा एकत्र करने के लिए, आपको अपने कोड को इंस्ट्रूमेंट करना होगा। उद्देश्य एजेंट कोड को इंस्ट्रूमेंट करना है ताकि ट्रेसेस और मेट्रिक्स उत्पन्न हो सकें, जिन्हें अवलोकन प्लेटफ़ॉर्म द्वारा कैप्चर, प्रोसेस और विज़ुअलाइज़ किया जा सके।

ओपनटेलीमेट्री (OTel): ओपनटेलीमेट्री LLM अवलोकन के लिए एक उद्योग मानक के रूप में उभरा है। यह टेलीमेट्री डेटा उत्पन्न करने, एकत्र करने, और निर्यात करने के लिए API, SDK, और टूल का एक सेट प्रदान करता है।

कई इंस्ट्रूमेंटेशन लाइब्रेरीज़ हैं जो मौजूदा एजेंट फ्रेमवर्क को रैप करती हैं और OpenTelemetry स्पैन्स को एक अवलोकन टूल में निर्यात करना आसान बनाती हैं। नीचे AutoGen एजेंट को OpenLit इंस्ट्रूमेंटेशन लाइब्रेरी के साथ इंस्ट्रूमेंट करने का एक उदाहरण दिया गया है:

import openlit

openlit.init(tracer = langfuse._otel_tracer, disable_batch = True)

इस अध्याय के उदाहरण नोटबुक में, हम दिखाएंगे कि अपने AutoGen एजेंट को कैसे इंस्ट्रूमेंट करें।

मैनुअल स्पैन निर्माण: जबकि इंस्ट्रूमेंटेशन लाइब्रेरीज़ एक अच्छा आधार प्रदान करती हैं, अक्सर ऐसे मामले होते हैं जहां अधिक विस्तृत या कस्टम जानकारी की आवश्यकता होती है। आप कस्टम एप्लिकेशन लॉजिक जोड़ने के लिए मैनुअल रूप से स्पैन्स बना सकते हैं। अधिक महत्वपूर्ण बात, आप स्वचालित या मैनुअल रूप से बनाए गए स्पैन्स को कस्टम एट्रिब्यूट्स (जिन्हें टैग या मेटाडेटा भी कहा जाता है) के साथ समृद्ध कर सकते हैं। इन एट्रिब्यूट्स में व्यवसाय-विशिष्ट डेटा, मध्यवर्ती गणनाएं, या कोई भी संदर्भ शामिल हो सकता है जो डिबगिंग या विश्लेषण के लिए उपयोगी हो, जैसे user_id, session_id, या model_version

Langfuse Python SDK के साथ मैनुअल रूप से ट्रेसेस और स्पैन्स बनाने का उदाहरण:

from langfuse import get_client
 
langfuse = get_client()
 
span = langfuse.start_span(name="my-span")
 
span.end()

एजेंट मूल्यांकन

अवलोकन हमें मेट्रिक्स देता है, लेकिन मूल्यांकन वह प्रक्रिया है जिसमें उस डेटा का विश्लेषण किया जाता है (और परीक्षण किए जाते हैं) यह निर्धारित करने के लिए कि एआई एजेंट कितना अच्छा प्रदर्शन कर रहा है और इसे कैसे सुधारा जा सकता है। दूसरे शब्दों में, एक बार जब आपके पास वे ट्रेसेस और मेट्रिक्स होते हैं, तो आप एजेंट का न्याय करने और निर्णय लेने के लिए उनका उपयोग कैसे करते हैं?

नियमित मूल्यांकन महत्वपूर्ण है क्योंकि एआई एजेंट अक्सर गैर-नियतात्मक होते हैं और विकसित हो सकते हैं (अपडेट्स या मॉडल व्यवहार में बदलाव के माध्यम से) – बिना मूल्यांकन के, आप यह नहीं जान पाएंगे कि आपका “स्मार्ट एजेंट” वास्तव में अपना काम अच्छी तरह कर रहा है या नहीं, या यह पीछे हट गया है।

एआई एजेंट्स के लिए मूल्यांकन के दो प्रकार हैं: ऑफ़लाइन मूल्यांकन और ऑनलाइन मूल्यांकन। दोनों मूल्यवान हैं, और वे एक-दूसरे के पूरक हैं। हम आमतौर पर ऑफ़लाइन मूल्यांकन से शुरू करते हैं, क्योंकि यह किसी भी एजेंट को तैनात करने से पहले न्यूनतम आवश्यक कदम है।

ऑफ़लाइन मूल्यांकन

Langfuse में डेटासेट आइटम्स

यह नियंत्रित सेटिंग में एजेंट का मूल्यांकन करने को संदर्भित करता है, आमतौर पर परीक्षण डेटासेट का उपयोग करके, न कि लाइव उपयोगकर्ता क्वेरीज़ का। आप क्यूरेटेड डेटासेट्स का उपयोग करते हैं जहां आपको पता होता है कि अपेक्षित आउटपुट या सही व्यवहार क्या है, और फिर अपने एजेंट को उन पर चलाते हैं।

उदाहरण के लिए, यदि आपने एक गणितीय शब्द-समस्या एजेंट बनाया है, तो आपके पास 100 समस्याओं के परीक्षण डेटासेट हो सकते हैं जिनके उत्तर ज्ञात हैं। ऑफ़लाइन मूल्यांकन अक्सर विकास के दौरान किया जाता है (और इसे CI/CD पाइपलाइनों का हिस्सा बनाया जा सकता है) सुधारों की जांच करने या रिग्रेशन से बचने के लिए। इसका लाभ यह है कि यह दोहराने योग्य है और आप स्पष्ट सटीकता मेट्रिक्स प्राप्त कर सकते हैं क्योंकि आपके पास ग्राउंड ट्रुथ है। आप उपयोगकर्ता क्वेरीज़ का अनुकरण कर सकते हैं और एजेंट की प्रतिक्रियाओं को आदर्श उत्तरों के खिलाफ माप सकते हैं या ऊपर वर्णित स्वचालित मेट्रिक्स का उपयोग कर सकते हैं।

ऑफ़लाइन मूल्यांकन के साथ मुख्य चुनौती यह सुनिश्चित करना है कि आपका परीक्षण डेटासेट व्यापक और प्रासंगिक बना रहे – एजेंट एक निश्चित परीक्षण सेट पर अच्छा प्रदर्शन कर सकता है लेकिन उत्पादन में बहुत अलग क्वेरीज़ का सामना कर सकता है। इसलिए, आपको परीक्षण सेट्स को नए किनारे के मामलों और वास्तविक दुनिया के परिदृश्यों को प्रतिबिंबित करने वाले उदाहरणों के साथ अद्यतन रखना चाहिए। छोटे “स्मोक टेस्ट” मामलों और बड़े मूल्यांकन सेट्स का मिश्रण उपयोगी है: त्वरित जांच के लिए छोटे सेट और व्यापक प्रदर्शन मेट्रिक्स के लिए बड़े सेट।

ऑनलाइन मूल्यांकन

अवलोकन मेट्रिक्स का अवलोकन

यह लाइव, वास्तविक दुनिया के वातावरण में एजेंट का मूल्यांकन करने को संदर्भित करता है, यानी उत्पादन में वास्तविक उपयोग के दौरान। ऑनलाइन मूल्यांकन में वास्तविक उपयोगकर्ता इंटरैक्शन पर एजेंट के प्रदर्शन की निगरानी करना और परिणामों का लगातार विश्लेषण करना शामिल है।

उदाहरण के लिए, आप लाइव ट्रैफ़िक पर सफलता दर, उपयोगकर्ता संतोष स्कोर, या अन्य मेट्रिक्स को ट्रैक कर सकते हैं। ऑनलाइन मूल्यांकन का लाभ यह है कि यह उन चीजों को कैप्चर करता है जिन्हें आप लैब सेटिंग में अनुमान नहीं लगा सकते हैं – आप समय के साथ मॉडल ड्रिफ्ट का अवलोकन कर सकते हैं (यदि एजेंट की प्रभावशीलता इनपुट पैटर्न के बदलाव के साथ घटती है) और अप्रत्याशित क्वेरीज़ या स्थितियों को पकड़ सकते हैं जो आपके परीक्षण डेटा में नहीं थीं। यह दिखाता है कि एजेंट वास्तविक दुनिया में कैसा व्यवहार करता है।

ऑनलाइन मूल्यांकन में उपयोगकर्ता फीडबैक (स्पष्ट और अप्रत्यक्ष) एकत्र करना शामिल हो सकता है, जैसा कि पहले चर्चा की गई थी, और संभवतः शैडो टेस्ट या A/B टेस्ट चलाना (जहां एजेंट का एक नया संस्करण पुराने के साथ तुलना करने के लिए समानांतर में चलता है)। चुनौती यह है कि लाइव इंटरैक्शन के लिए विश्वसनीय लेबल या स्कोर प्राप्त करना मुश्किल हो सकता है – आप उपयोगकर्ता फीडबैक या डाउनस्ट्रीम मेट्रिक्स (जैसे, क्या उपयोगकर्ता ने परिणाम पर क्लिक किया) पर निर्भर हो सकते हैं।

दोनों का संयोजन

ऑनलाइन और ऑफ़लाइन मूल्यांकन परस्पर अनन्य नहीं हैं; वे अत्यधिक पूरक हैं। ऑनलाइन मॉनिटरिंग से प्राप्त अंतर्दृष्टि (जैसे, नए प्रकार की उपयोगकर्ता क्वेरीज़ जहां एजेंट खराब प्रदर्शन करता है) का उपयोग ऑफ़लाइन परीक्षण डेटासेट्स को बढ़ाने और सुधारने के लिए किया जा सकता है। इसके विपरीत, जो एजेंट ऑफ़लाइन परीक्षणों में अच्छा प्रदर्शन करते हैं, उन्हें अधिक आत्मविश्वास के साथ तैनात किया जा सकता है और ऑनलाइन मॉनिटर किया जा सकता है।

वास्तव में, कई टीमें एक लूप अपनाती हैं:

_ऑफ़लाइन मूल्यांकन करें -> तैनात करें -> ऑनलाइन मॉनिटर करें -> नई विफलता के मामलों को एकत्र करें ->

एआई एजेंट्स को प्रोडक्शन में तैनात करना

एआई एजेंट्स के लिए चुनौतियाँ

एआई एजेंट्स को प्रोडक्शन में तैनात करते समय कुछ सामान्य चुनौतियाँ सामने आती हैं। यहाँ कुछ प्रमुख समस्याएँ और उनके समाधान दिए गए हैं:

समस्या संभावित समाधान
एजेंट का प्रदर्शन उम्मीद के मुताबिक नहीं है - एजेंट के प्रदर्शन को बेहतर बनाने के लिए डेटा की गुणवत्ता और विविधता में सुधार करें।
- अधिक जटिल कार्यों के लिए विशेष रूप से डिज़ाइन किए गए बड़े मॉडल का उपयोग करें।
एआई एजेंट टूल कॉल सही तरीके से काम नहीं कर रहे हैं - एजेंट सिस्टम के बाहर टूल के आउटपुट का परीक्षण और सत्यापन करें।
- टूल्स के लिए परिभाषित पैरामीटर, प्रॉम्प्ट्स और नामों को परिष्कृत करें।
मल्टी-एजेंट सिस्टम स्थिरता से काम नहीं कर रहा है - प्रत्येक एजेंट को दिए गए प्रॉम्प्ट्स को परिष्कृत करें ताकि वे एक-दूसरे से स्पष्ट और विशिष्ट हों।
- “रूटिंग” या कंट्रोलर एजेंट का उपयोग करके एक पदानुक्रमित प्रणाली बनाएं, जो यह तय करे कि कौन सा एजेंट सही है।

इनमें से कई समस्याओं की पहचान ऑब्ज़र्वेबिलिटी (observability) के माध्यम से अधिक प्रभावी ढंग से की जा सकती है। पहले चर्चा किए गए ट्रेसेस और मेट्रिक्स यह पता लगाने में मदद करते हैं कि एजेंट वर्कफ़्लो में समस्या कहाँ हो रही है, जिससे डिबगिंग और ऑप्टिमाइज़ेशन अधिक कुशल हो जाता है।

लागत प्रबंधन

प्रोडक्शन में एआई एजेंट्स की तैनाती की लागत को प्रबंधित करने के लिए यहाँ कुछ रणनीतियाँ दी गई हैं:

छोटे मॉडल का उपयोग करना: छोटे भाषा मॉडल (Small Language Models - SLMs) कुछ एजेंटिक उपयोग मामलों में अच्छा प्रदर्शन कर सकते हैं और लागत को काफी हद तक कम कर सकते हैं। जैसा कि पहले उल्लेख किया गया है, प्रदर्शन और बड़े मॉडलों की तुलना करने के लिए एक मूल्यांकन प्रणाली बनाना यह समझने का सबसे अच्छा तरीका है कि आपका उपयोग मामला SLM के साथ कितना अच्छा काम करेगा। सरल कार्यों जैसे इरादे की पहचान (intent classification) या पैरामीटर निकालने के लिए SLM का उपयोग करें, जबकि जटिल तर्क के लिए बड़े मॉडलों को आरक्षित रखें।

राउटर मॉडल का उपयोग करना: एक समान रणनीति विभिन्न आकारों और प्रकारों के मॉडल का उपयोग करना है। आप LLM/SLM या सर्वरलेस फ़ंक्शन का उपयोग करके अनुरोधों को उनकी जटिलता के आधार पर उपयुक्त मॉडल तक रूट कर सकते हैं। यह लागत को कम करने में मदद करेगा और यह सुनिश्चित करेगा कि सही कार्यों पर सही प्रदर्शन हो। उदाहरण के लिए, सरल प्रश्नों को छोटे, तेज़ मॉडलों तक रूट करें और केवल जटिल तर्क कार्यों के लिए महंगे बड़े मॉडलों का उपयोग करें।

प्रतिक्रिया कैश करना: सामान्य अनुरोधों और कार्यों की पहचान करना और उनके उत्तर पहले से तैयार रखना, ताकि वे आपके एजेंटिक सिस्टम से न गुजरें, एक अच्छा तरीका है समान अनुरोधों की मात्रा को कम करने का। आप यह पहचानने के लिए एक प्रक्रिया भी लागू कर सकते हैं कि कोई अनुरोध आपके कैश किए गए अनुरोधों से कितना मेल खाता है, इसके लिए अधिक बुनियादी एआई मॉडल का उपयोग करें। यह रणनीति अक्सर पूछे जाने वाले प्रश्नों या सामान्य वर्कफ़्लो के लिए लागत को काफी हद तक कम कर सकती है।

आइए देखें कि यह व्यावहारिक रूप से कैसे काम करता है

इस खंड के उदाहरण नोटबुक में, हम देखेंगे कि कैसे हम ऑब्ज़र्वेबिलिटी टूल्स का उपयोग करके अपने एजेंट की निगरानी और मूल्यांकन कर सकते हैं।

एआई एजेंट्स के बारे में और सवाल हैं?

Azure AI Foundry Discord से जुड़ें, जहाँ आप अन्य शिक्षार्थियों से मिल सकते हैं, ऑफिस आवर्स में भाग ले सकते हैं और अपने एआई एजेंट्स से संबंधित सवालों के जवाब पा सकते हैं।

पिछला पाठ

मेटाकॉग्निशन डिज़ाइन पैटर्न

अगला पाठ

एजेंटिक प्रोटोकॉल्स


अस्वीकरण:
यह दस्तावेज़ AI अनुवाद सेवा Co-op Translator का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को आधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।