𝗜 𝗕𝘂𝗶𝗹𝘁 𝗮 𝗖𝗼𝗱𝗲 𝗤&𝗔 𝗕𝗼𝘁 𝗪𝗶𝘁𝗵 𝗥𝗔𝗚: 𝗪𝗵𝗮𝘁 𝗪𝗼𝗿𝗸𝗲𝗱 𝗮𝗻𝗱 𝗪𝗵𝗮𝘁 𝗙𝗮𝗶𝗹𝗲𝗱

आमचे डेव्हलपर्स आमच्या microservices समजून घेण्यासाठी Slack आणि जुन्या डॉक्युमेंट्समध्ये (docs) दिवसभर शोध घेत असत. म्हणूनच, RAG वापरून या प्रश्नांची उत्तरे देण्यासाठी मी एक चॅटबॉट तयार करण्याचा निर्णय घेतला.

या प्रवासात मी अनेक चुका केल्या. त्यातून मी काय शिकलो, ते खालीलप्रमाणे आहे.

𝗧𝗵𝗲 𝗙𝗮𝗶𝗹𝘂𝗿𝗲𝘀

  • मी सर्व डॉक्युमेंट्स एकाच प्रॉम्प्टमध्ये टाकण्याचा प्रयत्न केला. यामुळे टोकन मर्यादा (token limits) ओलांडल्या गेल्या, हॅल्युसिनेशन्स (hallucinations) निर्माण झाले आणि खर्चही खूप वाढला.
  • मी एक साधा TF-IDF इंडेक्स वापरला. जेव्हा वापरकर्त्यांनी समानार्थी शब्द किंवा वेगळे शब्द वापरले, तेव्हा तो अपयशी ठरला.
  • मी ५०० कॅरेक्टर्सचे साधे चंक्स (chunks) वापरण्याचा प्रयत्न केला. पण त्याचे निकाल अनिश्चित होते, कारण चंक्स अनेकदा वाक्याच्या मध्यभागीच कापले जात होते.

𝗧𝗵𝗲 𝗦𝗼𝗹𝘂𝘁𝗶𝗼𝗻

मी LLM ला सर्च इंजिन म्हणून वापरणे थांबवले. त्याऐवजी, मी त्याला एका समर्पित सर्च इंडेक्ससाठी 'रीडिंग इंजिन' (reading engine) मध्ये रूपांतरित केले.

खालीलप्रमाणे पाइपलाइन (pipeline) यशस्वी ठरली:

  • डॉक्युमेंट्सचे ३००-टोकनचे तुकडे (chunks) करा आणि त्यात ५०-टोकनचा ओव्हरलॅप (overlap) ठेवा.
  • प्रत्येक चंकला वेक्टरमध्ये (vector) एम्बेड करा.
  • हे वेक्टर्स सिमिलॅरिटी सर्च इंडेक्समध्ये (similarity search index) साठवा.
  • क्वेरीच्या वेळी, सर्वात साम्य असलेले टॉप ५ चंक्स शोधा.
  • उत्तर तयार करण्यासाठी फक्त तेच चंक्स LLM ला द्या.

या बदलामुळे हॅल्युसिनेशन्स ८०% नी कमी झाले आणि खर्च प्रति क्वेरी $०.०१ च्या खाली आला.

𝗞𝗲𝘆 𝗧𝗮𝗸𝗲𝗮𝘄𝗮𝘆𝘀

  • चंकचा आकार (Chunk size) अत्यंत महत्त्वाचा आहे. १५० टोकन्समध्ये संदर्भ (context) खूप कमी असतो, तर १००० टोकन्समध्ये खूप जास्त गोंधळ (noise) असतो. ३०० टोकन्स हा सर्वात योग्य आकार आहे.
  • ओव्हरलॅप (Overlap) अनिवार्य आहे. यामुळे चंक्समधील संदर्भ गमावला जात नाही.
  • वेगासाठी लहान मॉडेल्स वापरा. आमच्या अंतर्गत गरजांसाठी एक लहान एम्बेडिंग मॉडेल (embedding model) उत्तम काम करत होते.
  • तुमच्या रिट्रिव्हलची (retrieval) चाचणी करा. केवळ मॅन्युअल तपासणीवर अवलंबून राहू नका. अचूकता मोजण्यासाठी एक टेस्ट सेट तयार करा.

RAG ही जादू नाही. ते एक इंजिनिअरिंग कोडे आहे. जर तुमचे चंक्स खराब असतील, तर तुमचे रिट्रिव्हल खराब असेल. जर तुमचे रिट्रिव्हल खराब असेल, तर तुमची उत्तरेही खराब असतील.

आता आम्ही ८०% ऑनबोर्डिंग प्रश्नांची अचूक उत्तरे देतो. Slack वर एखाद्या व्यक्तीच्या उत्तराची वाट पाहण्यापेक्षा हे खूप जलद आहे.

तुम्ही तुमच्या डॉक्युमेंटेशनसाठी AI असिस्टंट कसे तयार करता?

Source: https://dev.to/__c1b9e06dc90a7e0a676b/i-built-a-code-qa-bot-with-rag-what-worked-and-what-failed-2717

Optional learning community: https://t.me/GyaanSetuAi