RAG जो वास्तव में grounded है
पुनर्प्राप्ति, reranking, उद्धरण, अस्वीकार। वह pattern जो hallucination रोकता है।
अधिकांश RAG डेमो वास्तविक उपयोग के 10 मिनट के भीतर hallucinate करने लगते हैं। Production RAG नहीं करता। अंतर प्रक्रिया में है: hybrid search, reranking, citation-required prompts, और refusal patterns। हम हर chatbot engagement में यह deliver करते हैं।
1. हाइब्रिड सर्च वेक्टर-ओनली से बेहतर है
वेक्टर सर्च exact-match queries को मिस कर देती है — नाम, error codes, SKU नंबर। Keyword search semantic intent को मिस करती है। Hybrid (BM25 + vector) जीतता है।
हम दोनों को स्कोर करते हैं, normalize करते हैं, weight देते हैं, और merge करते हैं। Weight को प्रति domain के अनुसार tuned किया जाता है। अधिकतर projects में 70/30 vector/BM25 का अनुपात होता है।
2. रीरैंकिंग सबसे सस्ता प्रिसिजन लिफ्ट है
शीर्ष 50 उम्मीदवार प्राप्त करें। Cohere Rerank या cross-encoder से शीर्ष 5 में rerank करें। मॉडल केवल शीर्ष 5 को देखता है।
लगभग 150ms लेटेंसी जोड़ता है। अधिकांश retrieval misses हटा देता है। हमने कभी भी reranking के बिना production RAG ship नहीं किया है और ऐसा करने की योजना भी नहीं है।
3. चंकिंग समझदारी से करें, एक समान नहीं
फिक्स्ड-साइज़ chunking v1 के लिए ठीक है लेकिन आप दीवारों से टकराएँगे। डॉक्यूमेंट्स के लिए, heading के अनुसार chunk करें। codebases के लिए, function के अनुसार chunk करें। conversations के लिए, turn के अनुसार chunk करें।
हमेशा एम्बेडेड टेक्स्ट में चंक का पैरेंट हेडिंग या संदर्भ शामिल करें। अन्यथा मॉडल संदर्भ से बाहर टेक्स्ट रिट्रीव करता है।
4. उद्धरण-आवश्यक prompting
सिस्टम प्रॉम्प्ट निर्देश देता है: हर तथ्य के लिए स्रोत का हवाला दें। यदि आप हवाला नहीं दे सकते तो जवाब देने से मना करें। उपयोगकर्ता inline footnote links के रूप में citations देखते हैं।
citation-required prompting से hallucination 80%+ कम हो जाती है। बाकी eval suite long tail को पकड़ लेता है।
5. अस्वीकरण पैटर्न
अगर retrieval confidence कम है, तो मना करें और route करें। कुछ बना कर न बताएं। जो agent कहता है 'मुझे नहीं पता — मैं किसी को लाता हूं' वह उस agent से बेहतर है जो आत्मविश्वास से गलत जानकारी देता है।
हम इसे रिट्रीवल पर confidence score + generated answer पर LLM-as-judge confidence के साथ ट्यून करते हैं। Threshold-based refusal एस्केलेशन पाथ को ट्रिगर करता है।
सामान्य विफलता मोड
रीरैंकिंग को 'सरल रखने के लिए' छोड़ देना। मॉडल गलत chunks निकालता है, hallucinate करता है, और आप RAG को दोष देते हैं।
सामान्य छोड़ें
आपके अस्वीकृति पैटर्न का दस्तावेज़ीकरण। यदि आपकी QA टीम उन्हें सूचीबद्ध नहीं कर सकती, तो आपके उपयोगकर्ता उन्हें ढूंढ लेंगे।