எனது உள்ளூர் RAG-இல் மாயத்தோற்றங்களைக் (Hallucinations) கண்டறிய ஒரு சரிபார்ப்பு அடுக்கைச் (Verify Layer) சேர்த்துள்ளேன்

நான் Ollama பயன்படுத்தி ஒரு உள்ளூர் ஆராய்ச்சி உதவியாளரை (local research assistant) உருவாக்கியுள்ளேன். இது எனது சொந்த ஆய்வுக் கட்டுரைகளின் அடிப்படையில் இயங்குகிறது. எனது கணினியை விட்டு எந்தத் தரவும் வெளியேறாது.

நான் மாயத்தோற்றங்களைத் (hallucinations) தடுக்க விரும்பினேன். ஒரு கருவி உறுதியாகத் தோன்றும் அதே வேளையில் தவறான எண்ணைக் குறிப்பிடுவது ஆபத்தானது.

நான் ஒரு சரிபார்ப்பு அடுக்கைச் (verification layer) சேர்த்துள்ளேன். இது மூன்று நிலைகளில் செயல்படுகிறது:

  • பதிலைப் சிறிய கூற்றுகளாகப் பிரிக்கவும்.
  • ஒவ்வொரு கூற்றையும் மூலத் தரவோடு (source) ஒப்பிட்டுப் பார்க்க ஒரு LLM-ஐப் பயன்படுத்தவும்.
  • மூலத் தரவு ஆதரிக்காத கூற்றுகளைக் கண்டறியவும் (flag).

இதன் முடிவுகள் எனக்கு ஒரு கடினமான பாடத்தைக் கற்றுக்கொடுத்தன. எனது சொந்தத் தரவைப் பற்றியே நான் இரண்டு முறை தவறு செய்துவிட்டேன்.

முதலாவதாக, மாடல் ஒரு சரியான எண்ணைக் கொடுத்தது, ஆனால் தவறான சூழலைப் (context) பயன்படுத்தியது. இல்லாத ஒரு சோதனைத் தொகுப்பிற்கு (test set) 0.804 என்ற AUROC மதிப்பை அது குறிப்பிட்டது. அந்த எண் உண்மையானது. ஆனால் சூழல் பொய்யானது. எண்கள் சரியாகப் பொருந்தியதால் எனது சரிபார்ப்பி (verifier) அதைத் தடையின்றி அனுமதித்துவிட்டது.

இரண்டாவதாக, மாடல் ஆய்வுக் கட்டுரையின் வேறொரு பகுதியிலிருந்து ஒரு எண்ணை எடுத்தது. அது ஒரு மதிப்பினைத் தவறான பரிசோதனைக்குச் சொந்தமானது எனக் குறிப்பிட்டது.

இதைச் சோதித்ததன் மூலம் நான் கற்றுக்கொண்டவை இதோ:

  1. சரிபார்ப்பு விடுபட்ட மதிப்புகளை மட்டுமே கண்டறியும். ஒரு எண் உரையில் இல்லையென்றால், சரிபார்ப்பி அதைத் தடுத்துவிடும். ஆனால், அந்த எண் உண்மையாக இருந்து, தவறான தகவலுடன் இணைக்கப்பட்டிருந்தால், அது பெரும்பாலும் தோல்வியடையும்.

  2. ஒரே மாதிரியான மாடல்களைக் கொண்டு தீர்ப்பளிப்பவர்களுக்குக் குறைகள் (blind spots) உண்டு. பதிலைத் தரும் அதே மாடலே அதைத் தீர்ப்பளிக்கும்போது, அது தனது சொந்தத் தவறுகளை அப்படியே அங்கீகரித்துவிடும். வேறு ஒரு மாடலைப் பயன்படுத்தித் தீர்ப்பளிப்பது, தவறாகக் குறிப்பிடப்பட்ட எண்களைக் கண்டறிய உதவும்.

  3. ஒரு எச்சரிக்கை (flag) எப்போதும் பொய்யைக் குறிப்பதல்ல. ஒரு எச்சரிக்கை மூன்று விஷயங்களைக் குறிக்கலாம்:

  • உண்மையான மாயத்தோற்றம் (hallucination).
  • மூலத் தரவு கண்டறியப்படாத தரவு மீட்டெடுப்புத் தவறு (retrieval error).
  • மீட்டெடுக்கப்பட்ட உரையில் இல்லாத ஒரு உண்மையான தகவல். ஒரு எச்சரிக்கை வரும்போது, அந்த கூற்றை அப்படியே நீக்கிவிடாமல், தரவை மீண்டும் மீட்டெடுக்க (re-retrieving) முயற்சி செய்யுங்கள்.
  1. உங்களுக்குத் துல்லியமான உண்மைத் தரவு (ground truth) தேவை. உண்மையான பதில்களைத் தெரியாமல் மாயத்தோற்றங்களை அளவிட முடியாது. எனது சொந்தப் பணியைப் பற்றியே இரண்டு தவறான முடிவுகளை நான் வெளியிடப் பார்த்தேன். எனது கோப்புகளைத் தேடிய ஒரு எளிய செயல்முறை இரண்டு பிழைகளையும் சரிசெய்தது.

உங்கள் RAG-க்கான நடைமுறை ஆலோசனைகள்:

  • பதிலளிக்கும் மாடலை விட வேறு ஒரு மாடலைப் பயன்படுத்தித் தீர்ப்பளிக்கவும்.
  • சிறந்த தரவு மீட்டெடுப்பில் (retrieval) கவனம் செலுத்துங்கள். பெரும்பாலான "மாயத்தோற்றங்கள்" வெறும் தரவு மீட்டெடுப்புத் தோல்விகளே ஆகும்.
  • எச்சரிக்கைகளை வெறும் பிழைக்கான அறிகுறியாக மட்டும் பார்க்காமல், ஆழமாகத் தேடுவதற்கான ஒரு தூண்டுதலாகக் கருதுங்கள்.

Source: https://dev.to/sysoft/i-added-a-verify-layer-to-my-local-rag-to-catch-hallucinations-it-caught-me-being-wrong-twice-1jm

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