హాలూసినేషన్లను (Hallucinations) పట్టుకోవడానికి నా లోకల్ RAGకి ఒక వెరిఫికేషన్ లేయర్‌ను జోడించాను

నేను Ollama ఉపయోగించి ఒక లోకల్ రీసెర్చ్ అసిస్టెంట్‌ను రూపొందించాను. ఇది నా స్వంత పేపర్లపై పనిచేస్తుంది. నా మెషీన్ నుండి ఏదీ బయటకు వెళ్లదు.

నేను హాలూసినేషన్లను (hallucinations) ఆపాలనుకున్నాను. నమ్మకంగా చెబుతూనే తప్పుడు సంఖ్యను పేర్కొనే సాధనం ప్రమాదకరమైనది.

నేను ఒక వెరిఫికేషన్ లేయర్‌ను జోడించాను. ఇది మూడు దశల్లో పనిచేస్తుంది:

  • సమాధానాన్ని చిన్న చిన్న క్లెయిమ్‌లుగా (claims) విభజించడం.
  • ప్రతి క్లెయిమ్‌ను సోర్స్ (source) తో సరిపోల్చడానికి ఒక LLMని ఉపయోగించడం.
  • సోర్స్ మద్దతు ఇవ్వని క్లెయిమ్‌లను ఫ్లాగ్ (flag) చేయడం.

ఈ ఫలితాలు నాకు ఒక కఠినమైన పాఠాన్ని నేర్పాయి. నా స్వంత డేటా గురించి నేను రెండుసార్లు తప్పుగా నిర్ణయించుకున్నాను.

మొదటిది, మోడల్ ఒక నిజమైన సంఖ్యను ఇచ్చింది కానీ తప్పు సందర్భాన్ని (context) ఉపయోగించింది. అది లేని ఒక టెస్ట్ సెట్ కోసం 0.804 AUROCని పేర్కొంది. ఆ సంఖ్య నిజమే, కానీ సందర్భం అబద్ధం. అంకెలు సరిపోలడం వల్ల నా వెరిఫైయర్ దానిని అనుమతించింది.

రెండవది, మోడల్ పేపర్ యొక్క వేరే భాగం నుండి ఒక సంఖ్యను తీసుకుంది. అది ఒక విలువను తప్పు ప్రయోగానికి (experiment) ఆపాదించింది.

దీనిని పరీక్షించడం ద్వారా నేను నేర్చుకున్న విషయాలు ఇక్కడ ఉన్నాయి:

  1. వెరిఫికేషన్ కేవలం లేని విలువలను మాత్రమే గుర్తిస్తుంది. ఒక సంఖ్య టెక్స్ట్‌లో అసలు లేకపోతే, వెరిఫైయర్ దానిని పట్టుకుంటుంది. ఒకవేళ ఆ సంఖ్య నిజమైనదే అయినా, అది తప్పు వాస్తవంతో ముడిపడి ఉంటే, వెరిఫికేషన్ తరచుగా విఫలమవుతుంది.

  2. ఒకే మోడల్‌ను జడ్జిగా వాడితే లోపాలు దొరకవు (blind spots). సమాధానాన్ని రాసే మోడల్ మరియు దానిని సరిచూసే (judge చేసే) మోడల్ ఒకటే అయితే, అది తన సొంత తప్పులను కూడా సరిగ్గా ఉన్నట్లుగా ధృవీకరిస్తుంది. తప్పుగా ఆపాదించబడిన సంఖ్యలను గుర్తించడానికి వేరే మోడల్‌ను జడ్జిగా ఉపయోగించడం సహాయపడుతుంది.

  3. ఫ్లాగ్ (flag) అంటే ఎప్పుడూ అబద్ధం అని కాదు. ఫ్లాగ్ మూడు విషయాలను సూచించవచ్చు:

  • నిజమైన హాలూసినేషన్.
  • సోర్స్ దొరకకపోవడం వల్ల కలిగే రిట్రీవల్ ఎర్రర్ (retrieval error).
  • రిట్రీవ్ చేసిన టెక్స్ట్‌లో లేని ఒక నిజమైన వాస్తవం. మీరు ఒక ఫ్లాగ్‌ని చూసినప్పుడు, ఆ క్లెయిమ్‌ను కేవలం తొలగించేయకుండా, డేటాను మళ్ళీ రిట్రీవ్ (re-retrieve) చేయడానికి ప్రయత్నించండి.
  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