𝗪𝗵𝘆 𝗠𝘆 𝗥𝗔𝗚 𝗔𝗽𝗽 𝗞𝗲𝗽𝘁 𝗛𝗮𝗹𝗹𝘂𝗰𝗶𝗻𝗮𝘁𝗶𝗻𝗴 𝗔𝗻𝗱 𝗛𝗼𝘄 𝗜 𝗙𝗶𝘅𝗲𝗱 𝗜𝘁
काही महिन्यांपूर्वी, मी माझ्या RAG सपोर्ट बॉटचे प्रात्यक्षिक (demo) दिले. त्याने एका सहकाऱ्याला सांगितले की आमची रिफंड पॉलिसी ३० दिवसांची आहे. आमची वास्तविक पॉलिसी १४ दिवसांची आहे. बॉटने अजिबात संकोच केला नाही. त्याला खात्री नाही असे त्याने सांगितले नाही. त्याने पूर्ण आत्मविश्वासाने एक उत्तर तयार केले.
RAG मुळे hallucinations कमी व्हायला हवेत. माझ्या सेटअपमुळे ते फक्त एका ठिकाणाहून दुसऱ्या ठिकाणी सरकले. ही सिस्टीम डीबग करताना मी पाच धडे शिकलो.
१. चंक्ससाठी (chunks) निश्चित कॅरेक्टर काउंट वापरणे थांबवा मी थोड्या ओव्हरलॅपसह १००० कॅरेक्टरचे चंक्स वापरले होते. यामुळे समस्या निर्माण झाल्या. एक चंक अनेकदा शिपिंगचे नियम आणि रिटर्नचे नियम एकत्र करत असे. मॉडेलने या वेगवेगळ्या विभागांचे मिश्रण करून एक चुकीचे उत्तर दिले. उपाय: मी semantic chunking कडे वळलो. मी डेटा हेडिंग्स आणि पॅराग्राफ्सनुसार विभागला. यामुळे संबंधित माहिती एकत्र राहते.
२. साम्य (Similarity) म्हणजे सुसंगतता (relevance) नव्हे माझ्या retriever ने cosine similarity च्या आधारावर टॉप ३ चंक्स काढले. एखादा चंक प्रश्नासारखा वाटू शकतो, पण त्यात उत्तर नसू शकते. मॉडेल असे गृहीत धरते की कॉन्टेक्स्टमधील सर्व काही सत्य आहे. उपाय: मी cross-encoder वापरून एक reranking स्टेप जोडली. मी retrieval scores लॉग करण्यासही सुरुवात केली. यामुळे सिस्टीमकडे जेव्हा खरे उत्तर नसते, तेव्हा ते समजते.
३. मॉडेलला सांगा की अपयशी होणे ठीक आहे माझा मूळ prompt साधा होता: प्रश्नाचे उत्तर देण्यासाठी context चा वापर करा. context उपलब्ध नसल्यास काय करावे, याबद्दल मॉडेलला कोणतेही निर्देश दिले नव्हते. मॉडेलने रिकाम्या जागा अंदाजाने भरल्या. उपाय: मी एक विशिष्ट सूचना जोडली. जर उत्तर context मध्ये नसेल, तर "मला माहित नाही" असे सांगा. यामुळे hallucinations लगेच कमी झाले.
४. Retrieval threshold लागू करा retrieval अयशस्वी झाल्यावरही मॉडेल सामान्य ज्ञानाचा वापर करत होते. मला वाटले होते की prompt काम करेल, पण केवळ आशेवर रणनीती अवलंबून राहता येत नाही. उपाय: मी एक कडक score threshold सेट केला. जर टॉप retrieval score खूप कमी असेल, तर सिस्टीम थांबते. मॉडेलला अंदाज लावू देण्याऐवजी ती एक fallback message देते.
५. केवळ यशासाठी नाही, तर अपयशासाठीही चाचणी घ्या मी फक्त सोपे प्रश्न तपासले ज्यांची उत्तरे दस्तऐवजात आहेत हे मला माहित होते. मी संदिग्ध प्रश्न आणि अपूर्ण माहितीकडे दुर्लक्ष केले. hallucinations अशाच त्रुटींमध्ये लपलेले असतात. उपाय: मी 'trap questions' चा एक evaluation सेट तयार केला. हे असे प्रसंग आहेत जिथे योग्य उत्तर सिस्टीममध्ये नसते. मी प्रत्येक वेळी बदल करताना या चाचण्या घेतो.
RAG मुळे hallucinations पूर्णपणे थांबत नाहीत. ते नियंत्रणात आणता येतात. माझ्या बॉटला अजूनही सर्व काही माहित नाही. पण आता, जेव्हा त्याला खात्री नसते, तेव्हा तो तसे स्पष्टपणे सांगतो. यामुळे हे साधन वापरण्यायोग्य बनते.
Source: https://dev.to/pallavi_sharma_10c1a6f1da/why-my-rag-app-kept-hallucinating-and-how-i-fixed-it-3i10