𝗪𝗵𝘆 𝗠𝘆 𝗥𝗔𝗚 𝗔𝗽𝗽 𝗛𝗮𝗹𝗹𝘂𝗰𝗶𝗻𝗮𝘁𝗲𝗱 𝗔𝗻𝗱 𝗛𝗼𝘄 𝗜 𝗙𝗶𝘅𝗲𝗱 𝗜𝘁
मैंने एक बार अपने एक सहकर्मी को अपना RAG सपोर्ट बॉट डेमो दिखाया।
बॉट ने उसे बताया कि हमारी रिफंड पॉलिसी 30 दिनों की है।
हमारी वास्तविक पॉलिसी 14 दिनों की है।
बॉट ने यह नहीं कहा कि वह अनिश्चित है। उसने पूरे आत्मविश्वास के साथ एक गलत उत्तर बना दिया।
RAG को hallucinations (गलत जानकारी देना) को रोकना चाहिए। मेरा सेटअप केवल उन्हें एक जगह से दूसरी जगह स्थानांतरित कर रहा था।
मैंने पाँच चरणों का पालन करके इसे ठीक किया।
- अपनी chunking strategy को ठीक करें
मैं पहले डॉक्यूमेंट्स को character counts के आधार पर विभाजित करता था। यह एक गलती थी।
एक ही chunk में अक्सर शिपिंग और रिटर्न जैसे अलग-अलग विषय मिल जाते थे। मॉडल ने इन्हें मिलाकर गलत उत्तर दे दिए।
समाधान: मैंने semantic chunking का उपयोग करना शुरू किया। अब मैं टेक्स्ट को headings और paragraphs के आधार पर विभाजित करता हूँ।
- केवल similarity scores पर भरोसा करना बंद करें
मेरा retriever cosine similarity के आधार पर शीर्ष तीन chunks निकालता था।
Similar होने का मतलब relevant होना नहीं है। एक chunk प्रश्न के समान लग सकता है लेकिन उसमें उत्तर नहीं हो सकता।
समाधान: मैंने cross-encoder के साथ एक reranking स्टेप जोड़ा। इससे मुझे यह समझने में मदद मिली कि कब सिस्टम के पास कोई वास्तविक डेटा नहीं है।
- मॉडल को विफल होने की अनुमति दें
मेरे पुराने prompt में केवल इतना लिखा था: प्रश्न का उत्तर देने के लिए context का उपयोग करें।
यदि context में उत्तर नहीं होता था, तो मॉडल अनुमान लगाकर खाली जगहों को भर देता था।
समाधान: मैंने एक सीधा निर्देश जोड़ा। यदि उत्तर context में नहीं है, तो कहें कि आप नहीं जानते। केवल इसी से अधिकांश hallucinations रुक गए।
- एक retrieval threshold सेट करें
कभी-कभी जब retrieval विफल हो जाता था, तो मॉडल general knowledge का उपयोग करने लगता था। मुझे उम्मीद थी कि prompt काम करेगा, लेकिन उम्मीद कोई रणनीति नहीं है।
समाधान: मैंने एक score cutoff जोड़ा। यदि retrieval score बहुत कम है, तो सिस्टम एक fallback response देता है। No context का मतलब है no answer।
- विफलता के लिए परीक्षण करें, सफलता के लिए नहीं
मैं केवल आसान प्रश्नों का परीक्षण करता था। मैंने अस्पष्ट queries और गायब जानकारी को नज़रअंदाज़ कर दिया था।
समाधान: मैंने 'trap questions' का एक evaluation set बनाया। ये ऐसे मामले हैं जहाँ उत्तर गायब है। इन परीक्षणों को नियमित रूप से चलाने से आपको पता चलता है कि आपका सिस्टम वास्तव में कहाँ विफल हो रहा है।
RAG hallucinations को पूरी तरह खत्म नहीं करता है। यह उन्हें नियंत्रित करने योग्य बनाता है।
मेरा बॉट अभी भी हर विवरण नहीं जानता। लेकिन अब, जब वह अनिश्चित होता है, तो वह इसे स्वीकार कर लेता है। यही इसे उपयोगी बनाता है।
Source: https://dev.to/pallavi_sharma_10c1a6f1da/why-my-rag-app-kept-hallucinating-and-how-i-fixed-it-3i10
वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi