ट्यूटोरियल

retrieval-augmented generation अनुप्रयोगों के लिए चपल प्रतिगमन परीक्षण का उपयोग करें

retrieval-augmented generation apps जब चंकिंग, embeddings , रिट्रीवर्स, प्रॉम्प्ट्स या मॉडल बदलते हैं तो चुपचाप विफल हो सकते हैं। यह गाइड अलग से पुनर्प्राप्ति और पीढ़ी का परीक्षण करने की सिफारिश करता हैः गोल्डन सेट मापता है कि क्या अपेक्षित टुकड़े अभी भी दिखाई देते हैं, प्रमुख तथ्य उत्तर गुणवत्ता की जांच करते हैं, LLM न्यायाधीश निष्ठा स्कोर करते हैं और केप्लोय कैप्चर प्रतिगमन को दोहराता है। एजाइल टीमें इन जाँचों का उपयोग उपयोगकर्ताओं तक पहुंचने से पहले पुनः प्राप्ति बहाव, उत्तर बहाव (response drift), प्रारूप ब्रेक, उद्धरण त्रुटियों और विलंबता रेंगने का पता लगाने के लिए कर सकती हैं।

मुख्य जानकारी

  • RAG अनुप्रयोगों में कई गतिशील भाग होते हैं, इसलिए चंकिंग में परिवर्तन, embeddings , पुनर्प्राप्ति सेटिंग्स, संकेत या मॉडल स्पष्ट त्रुटियों के बिना मूक प्रतिगमन का कारण बन सकते हैं।
  • प्रत्येक RAG परत को अलग-अलग परीक्षण करेंः पुनर्प्राप्ति के लिए गोल्डन सेट और रिकॉल मेट्रिक्स का उपयोग करें, उत्पादन के लिए प्रमुख तथ्यों और वफादारी की जांच करें, और आउटपुट प्रारूप और उद्धरणों के लिए अनुबंध परीक्षण।
  • LLM -जैसा कि एक न्यायाधीश मूल्यांकन उत्तर की गुणवत्ता का आकलन करने में मदद कर सकता है, लेकिन स्कोर को रुझानों के रूप में माना जाना चाहिए और स्थिर जज मॉडल पर पिन किया जाना चाहिए ताकि फिसलन कम हो सके।
  • वास्तविक मॉडल और पुनर्प्राप्ति कॉल को रिकॉर्ड करें और फिर से चलाएं, उदाहरण के लिए Keploy के साथ, पुल अनुरोधों पर पाइपलाइन कोड परिवर्तनों के लिए त्वरित, निर्धारात्मक परीक्षण बनाने के लिए।
  • रिग्रेशन परीक्षण को एजाइल स्प्रिंट में एकीकृत करें ताकि टीमें उपयोगकर्ताओं के सामने आने से पहले खराब या गलत RAG उत्तरों का पता लगा सकें।

मेटा विवरणः चपल टीमों में प्रतिगमन परीक्षण के लिए एक व्यावहारिक मार्गदर्शिका retrieval-augmented generation apps : गोल्डन सेट, पुनर्प्राप्ति जांच, LLM जज टेस्ट और Keploy रिप्ले।

Use Agile Regression Testing for retrieval-augmented generation Applications

टैगः retrieval-augmented generation , चुस्त प्रतिगमन परीक्षण, गोल्डन सेट, LLM मूल्यांकन, Keploy

विशेष रुप से प्रदर्शित छवि: स्तरित दस्तावेज़ के टुकड़ों, पुनर्प्राप्ति तीरों और परीक्षण चेकमार्क का अमूर्त मैत्रीपूर्ण चित्रण, कोई पाठ नहीं, कोई लोग, कोई लोगो।

चपल टीमों में retrieval-augmented generation प्रतिगमन परीक्षण तब मायने रखता है जब एक स्प्रिंट परिवर्तन दस्तावेज़ खंडित करने के लिए डेमो उत्तर बेहतर दिखता है, फिर समर्थन रिपोर्ट रिफंड प्रश्न गलत एक सप्ताह बाद। धनवापसी दस्तावेजों और धन वापसी संकेत अछूत थे, लेकिन APP s जवाब बदल गया क्योंकि retrieval-augmented generation कई चल भागों है. यह गाइड AI सहायकों की शिपिंग टीमों के लिए हैः यह दिखाता है कि वे उपयोगकर्ताओं तक पहुंचने से पहले उन मूक प्रत्यावर्तन को कैसे पकड़ें

retrieval-augmented generation में मूक प्रतिगमन क्यों दिखाई देते हैं

retrieval-augmented generation APP एक घटक नहीं है. यह छोटे फैसलों की एक श्रृंखला है. किसी ने दस्तावेजों को टुकड़ों में कैसे काटने का फैसला किया। किसी ने उन टुकड़ों को वेक्टरों में बदलने के लिए एक embedding मॉडल चुना। एक रिट्रीवर तय करता है कि कौन से टुकड़े प्रश्न के लिए प्रासंगिक दिखते हैं। इसके बाद ही LLM उत्तर लिखता है।

चपल विकास में, ये निर्णय अक्सर बदल सकते हैं. टीम खंड आकार और ओवरलैप को समायोजित कर सकती है, embedding मॉडल की अदला-बदली करती है, कितनी टुकड़ों को पुनर्प्राप्त किया जाता है, एक रीरैंकर जोड़ती है, प्रॉम्प्ट को फिर से लिख देती है, नए LLM संस्करण पर जाती है या ताजा दस्तावेजों का सेवन करती है। इनमें से कोई भी परिवर्तन उन उत्तरों को सुधार सकता है जिन्हें टीम परीक्षण कर रही थी जबकि अन्य उत्तर खराब हो गए थे।

खतरनाक हिस्सा यह है कि कुछ भी एक त्रुटि फेंक देता है. वहाँ कोई ढेर ट्रेस और 500 प्रतिक्रिया नहीं है. APP बस अलग तरह से जवाब, और कभी कभी उस अंतर गलत है.

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

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

Use Agile Regression Testing for retrieval-augmented generation Applications

परतों को अलग से परीक्षण करें

एक प्रकार के परीक्षण से पूरी श्रृंखला का परीक्षण करने की कोशिश करना आमतौर पर निराशाजनक होता है। LLM आउटपुट शून्य तापमान के साथ भी रन के बीच झूल सकता है, इसलिए एंड-टू-एंड टेस्ट फ्लेक होते हैं और टीमें यह नहीं बता सकतीं कि क्यों। प्रत्येक परत को उस परत के लिए उपयुक्त विधि के साथ जांचना बेहतर दृष्टिकोण है।

पुनर्प्राप्ति: क्या सही संदर्भ अभी भी दिखाई देता है?

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

जब तक सूचकांक और embedding मॉडल नहीं बदलते हैं, तब तक पुनर्प्राप्ति परीक्षण काफी निर्धारक होते हैं, जो उन्हें उपयोगी प्रतिगमन जांच बनाता है। जब टीम software मॉडल को स्वैप करती है या सब कुछ फिर से काटती है, तो इन स्कोरों की तुलना पहले और बाद में कर सकती है यह दिखाएं कि कौन से प्रश्न बदतर हो गए थे।

पीढ़ी: क्या उत्तर अभी भी सही है?

पीढ़ी की परत अधिक अस्पष्ट है। प्रत्येक सुनहरे प्रश्न के लिए, यह उन प्रमुख तथ्यों को लिखने में मदद करता है जो एक अच्छे उत्तर में शामिल होने चाहिए, न कि एक सटीक अपेक्षित जवाब। फिर जांचें कि क्या नए उत्तरों में अभी भी वे तथ्य शामिल हैं और पुनर्प्राप्त संदर्भ के प्रति वफादार रहते हैं।

कई टीमें एक न्यायाधीश के रूप में LLM का उपयोग करती हैं, एक रूब्रिक के खिलाफ उत्तरों को स्कोर करती हैं। यह काम कर सकता है, लेकिन न्यायाधीश भी एक LLM है, इसलिए इसके स्कोर झूल सकते हैं। जज मॉडल और इसकी सेटिंग्स को पिन करें, अपने अंकों को सुसमाचार के बजाय प्रवृत्ति के तौर पर मानें, और जब भी अंक गिरते हैं तो वास्तविक जवाबों की जांच करें। open-source मूल्यांकन पुस्तकालय जैसे राग इस स्कोरिंग के साथ बहुत मदद कर सकते हैं.

अनुबंध: क्या आउटपुट अभी भी APP के अनुरूप है?

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

कोड परिवर्तनों को प्रत्येक पुल अनुरोध पर परीक्षण योग्य बनाएँ

लाइव मूल्यांकन चलाना वास्तविक मॉडल और वास्तविक वेक्टर स्टोर को कॉल करता है. यह धीमा, महंगा हो सकता है, और हर बार थोड़ा अलग होता है। टीमें आम तौर पर प्रत्येक पुल अनुरोध के लिए ऐसा नहीं चाहती हैं।

लेकिन बहुत सारे स्प्रिंट परिवर्तन स्वयं मॉडल नहीं हैं. वे इसके आसपास के कोड हैंः ऑर्केस्ट्रेशन तर्क, कैसे पुनः प्राप्त किए गए टुकड़े प्रॉम्प्ट में सिलवाए जाते हैं, कैसे प्रतिक्रिया को पार्स किया जाता है, और उद्धरण कैसे प्रस्तुत किए जाते हैं। वह कोड किसी भी अन्य कोड की तरह तेज, निर्णायक परीक्षणों का हकदार है।

एक व्यावहारिक तरीका यह है कि मॉडल कॉल और पुनर्प्राप्ति कॉल सहित वास्तविक रन को रिकॉर्ड किया जाए, फिर परीक्षणों में उन दर्ज प्रतिक्रियाओं को पुनः चलाया जाए। Keploy, open-source टूल, ईबीपीएफ के साथ कर्नेल स्तर पर कोड परिवर्तन के बिना APP ट्रैफ़िक कैप्चर करके और आउटबाउंड कॉल को मॉक के रूप में सहेजकर ऐसा करता है। जो पोस्टग्रेस या Redis पर चलने वाले वेक्टर स्टोर्स के लिए LLM APIs प्लस क्वेरीज़ तक HTTP कॉल को कवर कर सकता है। जब पुनरावृत्ति की जाती है, तो पाइपलाइन हर बार समान मॉडल और पुनर्प्राप्ती प्रतिक्रियाएं प्राप्त करती है, इसलिए विफलता परीक्षण बिंदु उस दिन महसूस किए गए रचनात्मक मॉडल के बजाय पाइप लाइन कोड में बदल जाते हैं।

Use Agile Regression Testing for retrieval-augmented generation Applications

स्प्रिंट में फिट प्रतिगमन परीक्षण

एक उपयोगी लय अच्छी तरह से मैप करती है कि कैसे चुस्त टीमें पहले से ही काम करती हैं।

  1. प्रत्येक खींचने के अनुरोध पर, त्वरित निर्धारक जांच चलाएं: अनुबंध परीक्षण और पुनरावर्ती पाइपलाइन परीक्षण। वे सेकंड में समाप्त होते हैं और विलय से पहले कोड-स्तरीय टूटना पकड़ते हैं।
  2. रात में या मध्य-स्प्रिंट, गोल्डन सेट के खिलाफ पुनर्प्राप्ति जांच चलाएं, विशेष रूप से अगर किसी ने चंकिंग, embeddings , या सूचकांक को बदल दिया है।
  3. स्प्रिंट समीक्षा से पहले, वास्तविक पुनर्प्राप्ति, वास्तविक मॉडल कॉल और अंकित उत्तरों के साथ पूर्ण लाइव मूल्यांकन चलाएं। पिछली दौड़ की आधार रेखा के साथ सब कुछ तुलना करें। यदि किसी भी प्रश्न का स्कोर गिर गया है, तो इसे जारी करने से पहले देखें।
  4. गोल्डन सेट को फ़ीड करें. हर बार जब कोई उपयोगकर्ता गलत उत्तर की रिपोर्ट करता है, तो उस प्रश्न को एक अच्छे जवाब के साथ-साथ सेट में जोड़ें। कुछ स्प्रिंट्स पर, सेट उपयोगकर्ताओं द्वारा वास्तव में पूछे जाने वाले सवालों का अधिक ईमानदार चित्र बन जाता है।
  5. प्रत्येक चलती भाग का संस्करण: प्रॉम्प्ट टेम्प्लेट, चंकिंग सेटिंग्स, embedding मॉडल, इंडेक्स बिल्ड और LLM संस्करण। जब एक प्रतिगमन दिखाई देता है, तो एक टीम को एक अंतर देखने में सक्षम होना चाहिए और कहें, इस स्प्रिंट ने हम खंड ओवरलैप बदल दिया और अनुमान लगाने के बजाय मॉडल को टक्कर दी। यह रोलबैक भी आसान बनाता है। यदि किसी परिवर्तन से रिफंड उत्तर खराब हो गए हैं, तो टीम उस हिस्से को वापस कर सकती है।

आम गलतियाँ

पहली गलती केवल पूरी श्रृंखला का परीक्षण कर रही है। एंड-टू-एंड टेस्ट उपयोगी हो सकते हैं, लेकिन अगर वे असफल होते हैं, तो टीम को यह नहीं पता होगा कि पुनर्प्राप्ति, पीढ़ी, स्वरूपण या LLM स्वयं बदल गया था।

एक और गलती LLM जज स्कोर को सटीक सत्य के रूप में मानने की है। न्यायाधीश विचलित हो सकता है. अपने मॉडल और सेटिंग्स को स्थिर रखें, रुझानों के लिए अंकों का उपयोग करें, और गुणवत्ता गिरते समय वास्तविक उत्तर पढ़ें।

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

चौथी गलती सोने के सेट में वास्तविक उपयोगकर्ता विफलताओं को जोड़ना नहीं है. एक सवाल जो काम करता था और अब असफल होता है समर्थन टिकट में गायब नहीं होना चाहिए। यह एक परीक्षण बनना चाहिए।

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

गोल्डन सेट से शुरू करें

retrieval-augmented generation apps को सामान्य software की तुलना में चपलता में प्रतिगमन परीक्षण की आवश्यकता हो सकती है। वे हर स्प्रिंट में एक दर्जन छोटे तरीकों से बदल सकते हैं, और शायद ही इनमें से कोई भी परिवर्तन त्रुटि डाल सकता है। सुरक्षित आदत काम को स्तरित करना हैः प्रत्येक पुल अनुरोध पर त्वरित निर्धारक जांच, स्प्रिट के दौरान गोल्डन सेट के खिलाफ पुनर्प्राप्ति जाँच, और प्रत्येक समीक्षा से पहले पूर्ण लाइव मूल्यांकन।

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

Comments (0)

  1. No comments yet. Be the first to share what worked for you.

Leave a comment

Comments are reviewed before they appear. Your email address is not published.