विषय-सूची
AI एजेंट बनाने के बाद, आप हमेशा उसी दीवार से टकराते हैं: "ठीक है, पर क्या यह सचमुच काम कर रहा है?" आपने प्रॉम्प्ट बदला, मॉडल बदला, कोई टूल जोड़ा — और यह तय करने का तंत्र कि इससे चीज़ें अंदाज़े के बजाय डेटा के आधार पर बेहतर हुईं या बदतर, ही है evals (मूल्यांकन)।
एक LLM एक ही इनपुट पर हर बार अलग आउटपुट दे सकता है (यह प्रोबेबिलिस्टिक है)। इसलिए "लगता है काम कर रहा है" के भरोसे रिलीज़ करने से प्रोडक्शन में चुपचाप रिग्रेशन और एज-केस विफलताएँ आती हैं। यह लेख बताता है कि evals क्या हैं, गुणवत्ता मापने के पाँच तरीके, एजेंट-विशिष्ट मूल्यांकन, और छोटे से शुरुआत कैसे करें — प्रैक्टिशनर्स के लिए लिखा गया।
30 सेकंड में मुख्य बात
अगर आप सिर्फ़ एक चीज़ पढ़ें
1. आपको Evals की ज़रूरत क्यों है
सामान्य सॉफ़्टवेयर डिटरमिनिस्टिक होता है: वही इनपुट, वही आउटपुट। इसीलिए "क्या आउटपुट अपेक्षित मान से मेल खाता है" जाँचने वाला यूनिट टेस्ट काम करता है। लेकिन एक LLM प्रोबेबिलिस्टिक होता है — वही सवाल भी हर बार थोड़े अलग शब्दों या ढंग में लौटता है। AI एजेंट बनाम RPA की भाषा में कहें तो यह एक डिटरमिनिस्टिक "हाथ" नहीं बल्कि एक प्रोबेबिलिस्टिक "दिमाग़" है, इसलिए एग्ज़ैक्ट-मैच टेस्ट ज्यों के त्यों काम नहीं करते।
यहाँ तीन तरह की विफलताएँ अक्सर सामने आती हैं।
आप हाथ से एक-दो उदाहरण आज़माकर तय कर लेते हैं कि "अब बेहतर लगता है।" आपको कभी पता ही नहीं चलता कि कोई दूसरा केस टूट गया।
आप प्रॉम्प्ट या मॉडल बदलते हैं और सिर्फ़ एक तरह का इनपुट बदतर हो जाता है। यह प्रोडक्शन की शिकायत से पता चलता है।
"कभी-कभी यह कुछ अजीब लौटा देता है।" प्रोबेबिलिस्टिक होने की वजह से एक बार आज़माने पर यह दोबारा नहीं होता, इसलिए आप कारण नहीं खोज पाते।
Evals तीनों को एक साथ रोकते हैं। एक मूल्यांकन डेटासेट तैयार करें, हर बदलाव पर पूरे सेट को स्कोर करें, और स्कोरों की तुलना करें — बस इतने से "अंदाज़ा" "डेटा" बन जाता है और रिग्रेशन दिखने लगते हैं। जितना ज़्यादा निर्णय आप एजेंट को सौंपेंगे, उतना ही evals गार्डरेल्स के साथ-साथ गुणवत्ता की बुनियाद बन जाते हैं।
2. Evals क्या हैं
Evals (मूल्यांकन) = यह मापना कि किसी AI का आउटपुट या एजेंट का व्यवहार सही और स्थिर रूप से, अपेक्षा के अनुसार काम करता है या नहीं। इंसानी भाषा में कहें तो यह ग्रेडिंग है। इसके बुनियादी हिस्से सरल हैं और तीन भागों में बँटते हैं।
वह इनपुट का सेट जिस पर आप मूल्यांकन करते हैं। असली इस्तेमाल के उदाहरण, पुराने लॉग, और अपेक्षित एज-केस इकट्ठा करें।
आप आउटपुट को स्कोर में कैसे बदलते हैं: एग्ज़ैक्ट मैच, नियम-जाँच, या किसी दूसरे AI से ग्रेडिंग।
पूरे सेट को स्कोर करें और बदलाव से पहले बनाम बाद की तुलना करके तय करें कि बेहतर हुआ या बदतर।
Evals "एक बार बनाओ और छोड़ दो" वाली चीज़ नहीं हैं — असली बात इन्हें हर बार जब आप प्रॉम्प्ट, मॉडल या टूल बदलें, एक रिग्रेशन टेस्ट के रूप में चलाना है। टेस्ट कोड की तरह, यह एक संपत्ति है जिसे आप बढ़ाते जाते हैं।
3. गुणवत्ता मापने के पाँच तरीके
पाँच प्रतिनिधि स्कोरिंग तरीके हैं। मूल सिद्धांत यह है कि टास्क की प्रकृति के अनुसार चुनें और कई को मिलाकर इस्तेमाल करें।
हर इनपुट के लिए अपेक्षित आउटपुट (गोल्ड लेबल) तैयार करें और मैच-रेट से स्कोर करें। तय जवाब वाले टास्क के लिए सबसे अच्छा: वर्गीकरण, एक्सट्रैक्शन, हाँ/नहीं।
रेगेक्स, एग्ज़ैक्ट मैच, JSON की वैधता, ज़रूरी कीज़ की मौजूदगी को यांत्रिक रूप से जाँचें। "हमेशा यही फ़ॉर्मैट लौटना चाहिए" को सत्यापित करने में मज़बूत — तेज़ और सस्ता।
किसी दूसरे LLM से एक रूब्रिक के आधार पर ग्रेड करवाएँ। उन टास्क के लिए जहाँ जवाब अद्वितीय नहीं होता: सारांश की गुणवत्ता, टोन, प्रासंगिकता।
प्रॉम्प्ट/मॉडल बदलाव से पहले और बाद उसी डेटासेट पर स्कोरों की तुलना करें। ऐसे "छिपे रिग्रेशन" को पकड़ता है जहाँ कुल मिलाकर स्कोर बढ़े पर कोई हिस्सा गिर जाए।
लाइव लॉग को लगातार स्कोर और अवलोकन करें। गिरावट को जल्दी पकड़ने के लिए विफलता-दर, लागत, लेटेंसी, और इनपुट ड्रिफ़्ट पर नज़र रखें।
| तरीका | किसके लिए उपयुक्त | लागत | वस्तुनिष्ठता |
|---|---|---|---|
| ① ग्राउंड-ट्रुथ | वर्गीकरण, एक्सट्रैक्शन, निर्णय | कम | ◎ उच्च |
| ② नियम-आधारित | फ़ॉर्मैट / संरचना जाँच | कम | ◎ उच्च |
| ③ LLM-as-judge | सारांश, जनरेशन, संवाद की गुणवत्ता | मध्यम | ○ रूब्रिक पर निर्भर |
| ④ रिग्रेशन | बदलावों से आए रिग्रेशन का पता लगाना | मध्यम | ◎ सापेक्ष |
| ⑤ प्रोडक्शन मॉनिटरिंग | लाइव गिरावट का पता लगाना | मध्यम–उच्च | ○ सतत |
असली बात इस परतबंदी में है: "जो यांत्रिक रूप से माप सकते हैं उसे मापें (① ②), जिस गुणवत्ता को नहीं माप सकते उसके लिए LLM-as-judge का उपयोग करें (③), और रिग्रेशन तथा प्रोडक्शन के ज़रिए इसे चलाते रहें (④ ⑤)।" LLM-as-judge (③) सुविधाजनक है, पर ग्रेड करने वाला LLM ख़ुद बदलता रहता है, इसलिए रूब्रिक को साफ़-साफ़ लिखें और जहाँ संभव हो, इंसानी ग्रेडों के मुक़ाबले कैलिब्रेट करें।
4. एजेंट-विशिष्ट मूल्यांकन
एकल प्रतिक्रिया (एक इनपुट → एक आउटपुट) के लिए ऊपर के पाँच काफ़ी हैं। लेकिन एक AI एजेंट कई चरण उठाता है, ख़ुद टूल कॉल करता है, और रास्ते में निर्णय लेता है। इसलिए आपको सिर्फ़ अंतिम आउटपुट ही नहीं, बल्कि प्रक्रिया का भी मूल्यांकन करना होगा।
क्या इसने अंततः लक्ष्य हासिल किया (जैसे, सही आरक्षण बुक किया)? यह एजेंट का प्रमुख मीट्रिक है।
क्या इसने सही टूल को, सही आर्ग्युमेंट्स के साथ, सही क्रम में कॉल किया? ग़लत या अनावश्यक कॉल पकड़ें।
क्या चरणों और निर्णयों का रास्ता तर्कसंगत है? चक्कर, अनंत लूप, और बेवजह के रीट्राई का मूल्यांकन करें।
समान सफलता के लिए, कम टोकन, कम चरण, और कम लेटेंसी बेहतर है। प्रोडक्शन में यह मायने रखता है।
इन्हें देखने के लिए ऐसी ट्रेसिंग चाहिए जो हर चरण (इनपुट, सोच, टूल कॉल, परिणाम) को रिकॉर्ड करे। कई फ़्रेमवर्क और नीचे दिए टूल ट्रेसिंग और मूल्यांकन को साथ में देते हैं। किसी मल्टी-एजेंट सेटअप के लिए, पदानुक्रमिक ट्रेस रखें ताकि आप ठीक-ठीक पहचान सकें कि कौन-सा एजेंट विफल हुआ।
5. शुरुआत कैसे करें — छोटे से बनाएँ
आपको पहले ही दिन से एक परफ़ेक्ट eval प्लेटफ़ॉर्म की ज़रूरत नहीं। एक 20-आइटम डेटासेट से शुरुआत करना यथार्थवादी है।
- विफलता के उदाहरण इकट्ठा करें: सबसे पहले, 10–20 "ऐसे इनपुट जो ग़लत निकले।" असली लॉग और शिकायतें सोने की खान हैं — यही eval सेट का मूल है।
- अपेक्षित व्यवहार लिखें: हर इनपुट के साथ एक "सही जवाब" या "पूरी होने वाली शर्तें" जोड़ें। हर चीज़ के लिए सख़्त जवाब ज़रूरी नहीं (गुणवत्ता को ③ से मापें)।
- एक स्कोरर चुनें: फ़ॉर्मैट जाँच → ② नियम-आधारित; तय जवाब → ① ग्राउंड-ट्रुथ; गुणवत्ता → ③ LLM-as-judge। शुरुआत में एक या दो काफ़ी हैं।
- एक बार चलाकर बेसलाइन बनाएँ: मौजूदा स्कोर रिकॉर्ड करें। यही आपका संदर्भ-बिंदु है।
- हर बदलाव पर इसे चलाएँ: प्रॉम्प्ट/मॉडल बदलाव के बाद, फिर से चलाकर ④ रिग्रेशन से तुलना करें। अगर स्कोर गिरे, तो रिलीज़ न करें।
- प्रोडक्शन में अवलोकन जोड़ें: लाइव होने के बाद, ⑤ मॉनिटरिंग से विफलता-दर और लागत पर नज़र रखते रहें, और असली ख़राब उदाहरणों को वापस eval सेट में डालें।
💡 टिप: अपने eval सेट का झुकाव "आम सफलताओं" के बजाय "जो विफलताएँ आप नहीं चाहते" की ओर रखें। एज-केस, प्रतिकूल इनपुट, और अस्पष्ट अनुरोधों को शामिल करने से आप उस चीज़ के ख़िलाफ़ पहले से सुरक्षा कर पाते हैं जो बदलाव पर टूटती है। एक अच्छा रूब्रिक, अच्छे प्रॉम्प्ट डिज़ाइन की तरह, जितना ठोस होगा उतना ही ज़्यादा दोहराने योग्य बनेगा।
6. आम गलतियाँ
- डेटासेट बहुत छोटा / बहुत झुका हुआ: सिर्फ़ सफलताएँ इकट्ठा करने से असली दुनिया की विफलताएँ छूट जाती हैं। जान-बूझकर विफलताएँ और एज-केस मिलाएँ।
- LLM-as-judge पर आँख मूँदकर भरोसा: ग्रेड करने वाला LLM भी बदलता है और उसमें पूर्वाग्रह होते हैं। रूब्रिक को साफ़-साफ़ लिखें और समय-समय पर इंसानी ग्रेडों के मुक़ाबले कैलिब्रेट करें। सेल्फ़-डीलिंग से सावधान रहें (वही मॉडल अपना आउटपुट लिखे और ख़ुद ही उसकी तारीफ़ करे)।
- सिर्फ़ अंतिम आउटपुट देखना: एजेंटों के लिए प्रक्रिया ही सब कुछ है। टूल कॉल, ट्रैजेक्टरी, और लागत के बिना, आप "किस्मत से सही निकले" परिणाम को हरी झंडी दे देंगे।
- एक ही रन पर फ़ैसला करना: चूँकि यह प्रोबेबिलिस्टिक है, ज़रूरी evals के लिए कई बार चलाएँ और विचरण (variance) देखें।
- Evals को अपडेट न करना: स्पेक और इस्तेमाल बदलते रहते हैं। प्रोडक्शन की नई विफलताओं को eval सेट में जोड़ते रहें।
7. प्रमुख टूल
आप अपनी ख़ुद की स्क्रिप्ट्स से शुरुआत कर सकते हैं, पर समर्पित टूलों का एक बढ़ता हुआ समूह है जो ट्रेसिंग और मूल्यांकन को साथ में संभालता है। प्रतिनिधि उदाहरण (सभी आधिकारिक साइटें)।
| टूल | यह क्या करता है |
|---|---|
| Anthropic Console / Evals | Claude के लिए प्रॉम्प्ट को एक UI में टेस्ट और मूल्यांकन करें। मॉडल विकल्पों की तुलना के लिए भी। |
| OpenAI Evals | Evals को परिभाषित और चलाने का एक OSS फ़्रेमवर्क। बुनियादी डेटासेट + स्कोरर का ढाँचा। |
| LangSmith | ट्रेसिंग + मूल्यांकन। हर एजेंट चरण को रिकॉर्ड करता है, रिग्रेशन और प्रोडक्शन मॉनिटरिंग तक। |
| Langfuse | OSS LLM ऑब्ज़र्वेबिलिटी। ट्रेसिंग, मूल्यांकन, और लागत मॉनिटरिंग एक साथ। |
| Ragas | RAG (रिट्रीवल-ऑगमेंटेड जनरेशन) के लिए विशेष मूल्यांकन: प्रासंगिकता, फ़ेथफ़ुलनेस, और बहुत कुछ। |
आप जो भी इस्तेमाल करें, सार एक ही है: एक डेटासेट + एक स्कोरर + तुलना करने का अनुशासन। टूल बस इसे आसान बनाते हैं। सबसे अच्छी शुरुआत है एक छोटा eval सेट, भले ही वह आपकी मशीन पर एक स्क्रिप्ट में हो।
सारांश
- Evals क्या हैं: एक "ग्रेडिंग" जो AI आउटपुट और व्यवहार को संख्याओं में मापती है — अंदाज़े से नहीं, डेटा से बेहतर/बदतर तय करती है।
- इनकी ज़रूरत क्यों: LLM प्रोबेबिलिस्टिक होते हैं और बदलते हैं, इसलिए यूनिट टेस्ट फ़िट नहीं होते और रिग्रेशन तथा एज-केस छूट जाते हैं।
- पाँच तरीके: ① ग्राउंड-ट्रुथ ② नियम-आधारित ③ LLM-as-judge ④ रिग्रेशन ⑤ प्रोडक्शन मॉनिटरिंग। जो यांत्रिक रूप से माप सकते हैं उसे मापें, गुणवत्ता को LLM से आँकें, और इसे चलाते रहें।
- एजेंटों को प्रक्रिया-मूल्यांकन भी चाहिए: टास्क सफलता-दर, टूल कॉल, ट्रैजेक्टरी, लागत। ट्रेसिंग इसकी पूर्व-शर्त है।
- शुरुआत कैसे करें: 20 विफलता उदाहरण। इन्हें बेसलाइन करें, फिर हर बदलाव पर चलाएँ।
"मैंने इसे बना लिया" और "यह इस्तेमाल के लायक है" के बीच evals नाम का एक पुल है। अगर गार्डरेल्स वह बचाव है जो बेकाबू व्यवहार को रोकता है, तो evals वह आक्रमण है जो गुणवत्ता को मापता है और उसे लगातार ऊपर उठाता रहता है। एक छोटा-सा eval सेट एजेंट विकास को "अंदाज़े" से इंजीनियरिंग में बदल देता है।
FAQ
Q. Evals सामान्य यूनिट टेस्ट से कैसे अलग हैं?
यूनिट टेस्ट जाँचते हैं कि "क्या आउटपुट अपेक्षित मान से बिल्कुल मेल खाता है।" लेकिन एक LLM प्रोबेबिलिस्टिक है और हर बार अलग आउटपुट देता है, इसलिए एग्ज़ैक्ट मैच ज्यों का त्यों काम नहीं करता। Evals अलग हैं क्योंकि ये ग्राउंड-ट्रुथ मैचिंग के ऊपर प्रोबेबिलिस्टिक आउटपुट के लिए उपयुक्त मापन — नियम-आधारित जाँच, किसी LLM से ग्रेडिंग, और कई रन में विचरण का अवलोकन — को मिलाते हैं।
Q. क्या मैं LLM-as-judge (AI से ग्रेड करवाना) पर भरोसा कर सकता हूँ?
यह सुविधाजनक है पर रामबाण नहीं। ग्रेड करने वाला LLM बदल सकता है और पूर्वाग्रही हो सकता है। जो मायने रखता है वह है एक ठोस रूब्रिक लिखना, समय-समय पर इंसानी ग्रेडों के मुक़ाबले कैलिब्रेट करना, और सेल्फ़-डीलिंग से बचने के लिए जनरेशन और ग्रेडिंग की भूमिकाओं/मॉडलों को अलग करना। सापेक्ष तुलना (A और B में से कौन बेहतर है) पूर्ण स्कोरों की तुलना में अधिक स्थिर रहती है।
Q. मुझे कितने eval आइटम चाहिए?
आप 10–20 से अच्छी शुरुआत कर सकते हैं। थोड़े से भी "बदलाव के बाद स्कोर बढ़ा या घटा" की सापेक्ष तुलना में मदद करते हैं। यथार्थ में, इसे प्रोडक्शन में मिली विफलताओं को जोड़कर बढ़ाएँ। संख्या से ज़्यादा ज़रूरी है विफलताओं, अपवादों, और एज-केस को ठीक से शामिल करना।
Q. क्या मुझे सचमुच किसी एजेंट की "ट्रैजेक्टरी" का मूल्यांकन करना ज़रूरी है?
अगर आप इसे प्रोडक्शन में चलाते हैं, तो हाँ। भले ही अंतिम आउटपुट सही हो, चक्कर, अनावश्यक टूल कॉल, और अनंत लूप लागत और विश्वसनीयता को नुक़सान पहुँचाते हैं। ऐसी ट्रेसिंग जोड़ें जो हर चरण को रिकॉर्ड करे और टास्क सफलता-दर के साथ-साथ प्रक्रिया को भी देखें। यूज़-केस जितना ज़्यादा अनुमतियों और साइड-इफ़ेक्ट से जुड़ा हो — जैसे बिज़नेस ऑटोमेशन यूज़-केस या क्लाउड ऑपरेशन को स्वचालित करना — प्रक्रिया-मूल्यांकन उतना ही फ़ायदेमंद होता है।