मैंने RAG के साथ एक Code Q&A Bot बनाया: क्या काम आया और क्या विफल रहा

हमारे डेवलपर्स को हमारे microservices को समझने के लिए Slack और पुराने docs में घंटों तलाश करनी पड़ती थी। मैंने RAG का उपयोग करके इन सवालों के जवाब देने के लिए एक chatbot बनाने का फैसला किया।

इस प्रक्रिया में मैंने कई गलतियाँ कीं। यहाँ वह सब है जो मैंने सीखा।

विफलताएँ

  • मैंने सभी docs को एक ही prompt में डालने की कोशिश की। इससे token limits पार हो गईं, hallucinations होने लगे और लागत भी बहुत अधिक आई।
  • मैंने एक बुनियादी TF-IDF index का उपयोग किया। जब उपयोगकर्ताओं ने synonyms या अलग शब्दों का उपयोग किया, तो यह विफल रहा।
  • मैंने साधारण 500-character chunks का उपयोग करने की कोशिश की। परिणाम अनिश्चित थे क्योंकि chunks अक्सर वाक्य के बीच में ही कट जाते थे।

समाधान

मैंने LLM को एक search engine की तरह मानना बंद कर दिया। मैंने इसे एक समर्पित search index के लिए reading engine में बदल दिया।

यहाँ वह pipeline है जिसने काम किया:

  • docs को 50-token overlap के साथ 300-token के टुकड़ों (chunks) में बाँटें।
  • प्रत्येक chunk को एक vector में embed करें।
  • vectors को similarity search index में स्टोर करें।
  • query के समय, सबसे मिलते-जुलते शीर्ष 5 chunks खोजें।
  • उत्तर उत्पन्न करने के लिए केवल उन्हीं chunks को LLM में डालें।

इस बदलाव से hallucinations में 80% की कमी आई और लागत घटकर $0.01 प्रति query से भी कम हो गई।

मुख्य बातें

  • Chunk size अत्यंत महत्वपूर्ण है। 150 tokens बहुत कम context है। 1000 tokens बहुत अधिक noise है। 300 tokens सबसे सटीक (sweet spot) है।
  • Overlap अनिवार्य है। यह chunks के बीच context खोने से रोकता है।
  • गति के लिए छोटे models का उपयोग करें। हमारी आंतरिक आवश्यकताओं के लिए एक छोटा embedding model अच्छी तरह काम कर गया।
  • अपने retrieval का परीक्षण करें। मैन्युअल जांच पर भरोसा न करें। सटीकता मापने के लिए एक test set बनाएँ।

RAG कोई जादू नहीं है। यह एक इंजीनियरिंग पहेली है। यदि आपके chunks खराब हैं, तो आपका retrieval खराब होगा। यदि आपका retrieval खराब है, तो आपके उत्तर खराब होंगे।

अब हम 80% onboarding सवालों के सही जवाब देते हैं। यह Slack पर किसी इंसान के जवाब देने का इंतज़ार करने से कहीं अधिक तेज़ है।

आप अपने documentation के लिए AI assistants कैसे बनाते हैं?

स्रोत: https://dev.to/__c1b9e06dc90a7e0a676b/i-built-a-code-qa-bot-with-rag-what-worked-and-what-failed-2717

वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi