मैंने हैलुसिनेशन (hallucinations) को पकड़ने के लिए अपने लोकल RAG में एक वेरिफिकेशन लेयर जोड़ी
मैंने Ollama का उपयोग करके एक लोकल रिसर्च असिस्टेंट बनाया है। यह मेरे अपने पेपर्स पर चलता है। मेरी मशीन से कुछ भी बाहर नहीं जाता।
मैं हैलुसिनेशन को रोकना चाहता था। एक ऐसा टूल जो आत्मविश्वास के साथ गलत नंबर बताता है, वह खतरनाक है।
मैंने एक वेरिफिकेशन लेयर जोड़ी। यह तीन चरणों में काम करती है:
- उत्तर को छोटे-छोटे दावों (claims) में तोड़ें।
- प्रत्येक दावे की सोर्स (source) के साथ जांच करने के लिए एक LLM का उपयोग करें।
- उन दावों को फ्लैग करें जिन्हें सोर्स सपोर्ट नहीं करता है।
परिणामों ने मुझे एक कड़ा सबक सिखाया। मैं अपने ही डेटा के बारे में दो बार गलत था।
पहली बार, मॉडल ने एक वास्तविक नंबर दिया लेकिन गलत संदर्भ (context) का उपयोग किया। इसने एक ऐसे टेस्ट सेट के लिए 0.804 का AUROC बताया जो अस्तित्व में ही नहीं है। नंबर वास्तविक था। संदर्भ झूठ था। मेरे वेरिफायर ने इसे पास कर दिया क्योंकि अंक (digits) मेल खा रहे थे।
दूसरी बार, मॉडल ने पेपर के किसी दूसरे हिस्से से नंबर उठा लिया। इसने एक वैल्यू को गलत प्रयोग (experiment) के साथ जोड़ दिया।
इसे टेस्ट करने से मैंने जो सीखा, वह यहाँ है:
वेरिफिकेशन केवल अनुपस्थित वैल्यूज को ही पकड़ पाता है। अगर कोई नंबर टेक्स्ट में बिल्कुल भी नहीं है, तो वेरिफायर उसे पकड़ लेता है। अगर नंबर वास्तविक है लेकिन गलत तथ्य (fact) से जुड़ा है, तो यह अक्सर विफल हो जाता है।
एक ही मॉडल के जजों की अपनी कमियां (blind spots) होती हैं। यदि वही मॉडल उत्तर लिखता है और उसी का न्याय (judge) करता है, तो वह अपनी गलतियों पर मुहर लगा देता है। न्याय करने के लिए अलग मॉडल का उपयोग करने से गलत तरीके से बताए गए नंबरों को पकड़ने में मदद मिलती है।
फ्लैग का मतलब हमेशा झूठ नहीं होता। एक फ्लैग के तीन मतलब हो सकते हैं:
- एक वास्तविक हैलुसिनेशन।
- एक रिट्रीवल एरर (retrieval error) जहाँ सोर्स नहीं मिल पाया।
- एक सच्चा तथ्य जो रिट्रीव किए गए टेक्स्ट में नहीं था। जब आप कोई फ्लैग देखें, तो दावे को सिर्फ हटाने के बजाय डेटा को फिर से रिट्रीव (re-retrieve) करने की कोशिश करें।
- आपको ग्राउंड ट्रुथ (ground truth) की आवश्यकता है। वास्तविक उत्तरों को जाने बिना आप हैलुसिनेशन को नहीं माप सकते। मैं अपने ही काम के बारे में दो गलत निष्कर्ष लगभग प्रकाशित करने ही वाला था। मेरी फाइलों में एक साधारण खोज ने दोनों त्रुटियों को ठीक कर दिया।
आपके RAG के लिए व्यावहारिक सलाह:
- उत्तर देने वाले मॉडल से अलग मॉडल का उपयोग न्याय करने के लिए करें।
- बेहतर रिट्रीवल (retrieval) पर ध्यान दें। अधिकांश "हैलुसिनेशन" केवल रिट्रीवल की विफलताएं हैं।
- फ्लैग को केवल त्रुटि के संकेत के रूप में नहीं, बल्कि गहराई से देखने के संकेत (prompt) के रूप में लें।
Optional learning community: https://t.me/GyaanSetuAi