𝗪𝗵𝘆 𝗠𝘆 𝗥𝗔𝗚 𝗔𝗽𝗽 𝗛𝗮𝗹𝗹𝘂𝗰𝗶𝗻𝗮𝘁𝗲𝗱 𝗔𝗻𝗱 𝗛𝗼𝘄 𝗜 𝗙𝗶𝘅𝗲𝗱 𝗜𝘁
میں نے ایک بار اپنے ایک ساتھی کو اپنا RAG سپورٹ بوٹ دکھایا۔
بوٹ نے اسے بتایا کہ ہماری ریفنڈ پالیسی 30 دن کی ہے۔
ہماری اصل پالیسی 14 دن کی ہے۔
بوٹ نے یہ نہیں کہا کہ وہ غیر یقینی ہے۔ اس نے مکمل اعتماد کے ساتھ ایک غلط جواب خود سے بنا لیا۔
RAG کو ہالوسینیشنز (hallucinations) کو روکنا چاہیے، لیکن میرا سیٹ اپ صرف انہیں ایک جگہ سے دوسری جگہ منتقل کر رہا تھا۔
میں نے پانچ اقدامات پر عمل کرتے ہوئے اسے ٹھیک کیا۔
- اپنی چنکنگ (chunking) کی حکمت عملی درست کریں
میں پہلے دستاویزات کو حروف کی تعداد (character counts) کے حساب سے تقسیم کرتا تھا۔ یہ ایک غلطی تھی۔
ایک ہی چنک میں اکثر مختلف موضوعات جیسے شپنگ اور واپسی (returns) مکس ہو جاتے تھے۔ ماڈل نے ان کو ملا کر غلط جوابات دے دیے۔
حل: میں نے سیمنٹک چنکنگ (semantic chunking) کا طریقہ اپنایا۔ اب میں ٹیکسٹ کو ہیڈنگز اور پیراگراف کے ذریعے تقسیم کرتا ہوں۔
- صرف سیمیلرٹی اسکورز (similarity scores) پر بھروسہ کرنا چھوڑ دیں
میرا ریٹریور (retriever) کوسائن سیمیلرٹی (cosine similarity) کی بنیاد پر ٹاپ تین چنکس نکالتا تھا۔
"ملتا جلتا" ہونا "متعلقہ" ہونے کے برابر نہیں ہے۔ ایک چنک سوال سے ملتا جلتا تو ہو سکتا ہے لیکن اس میں جواب موجود نہیں ہو سکتا۔
حل: میں نے کراس انکوڈر (cross-encoder) کے ساتھ ری رینکنگ (reranking) کا مرحلہ شامل کیا۔ اس سے مجھے یہ دیکھنے میں مدد ملی کہ کب سسٹم کے پاس کوئی حقیقی ڈیٹا موجود نہیں ہے۔
- ماڈل کو غلطی کرنے کی اجازت دیں
میرے پرانے پرامپٹ (prompt) میں صرف یہ لکھا تھا: سوال کا جواب دینے کے لیے سیاق و سباق (context) کا استعمال کریں۔
اگر سیاق و سباق میں جواب نہیں ہوتا تھا، تو ماڈل اندازوں سے اس کمی کو پورا کرنے کی کوشش کرتا تھا۔
حل: میں نے ایک براہ راست ہدایت شامل کی۔ اگر جواب سیاق و سباق میں موجود نہیں ہے، تو کہہ دیں کہ آپ نہیں جانتے۔ صرف اس ایک چیز نے زیادہ تر ہالوسینیشنز کو روک دیا۔
- ریٹریول تھریش ہولڈ (retrieval threshold) مقرر کریں
کبھی کبھی جب ریٹریول ناکام ہو جاتا تھا تو ماڈل عمومی معلومات (general knowledge) استعمال کرنے لگتا تھا۔ میں امید کر رہا تھا کہ پرامپٹ کام کر جائے گا، لیکن صرف امید رکھنا کوئی حکمت عملی نہیں ہے۔
حل: میں نے ایک اسکور کٹ آف (score cutoff) شامل کیا۔ اگر ریٹریول اسکور بہت کم ہو، تو سسٹم ایک متبادل جواب (fallback response) فراہم کرتا ہے۔ اگر سیاق و سباق نہیں ہے، تو اس کا مطلب ہے کہ کوئی جواب نہیں ہے۔
- کامیابی کے بجائے ناکامی کے لیے ٹیسٹ کریں
میں پہلے صرف آسان سوالات کا ٹیسٹ کرتا تھا۔ میں مبہم سوالات اور معلومات کی کمی کو نظر انداز کر دیتا تھا۔
حل: میں نے "ٹریپ سوالات" (trap questions) کا ایک ایویلیوایشن سیٹ بنایا۔ یہ وہ کیسز ہیں جہاں جواب موجود نہیں ہوتا۔ ان ٹیسٹوں کو باقاعدگی سے چلانے سے آپ کو بالکل پتہ چل جاتا ہے کہ آپ کا سسٹم کہاں ناکام ہو رہا ہے۔
RAG ہالوسینیشنز کو ختم نہیں کرتا، بلکہ یہ انہیں قابلِ کنٹرول بنا دیتا ہے۔
میرا بوٹ اب بھی ہر تفصیل نہیں جانتا، لیکن اب وہ یہ تسلیم کر لیتا ہے کہ وہ غیر یقینی ہے۔ یہی چیز اسے قابلِ استعمال بناتی ہے۔
Source: https://dev.to/pallavi_sharma_10c1a6f1da/why-my-rag-app-kept-hallucinating-and-how-i-fixed-it-3i10
Optional learning community: https://t.me/GyaanSetuAi