എന്റെ ലോക്കൽ RAG-ൽ ഹാലൂസിനേഷനുകൾ കണ്ടെത്താനായി ഞാൻ ഒരു വെരിഫിക്കേഷൻ ലെയർ ചേർത്തു

ഞാൻ Ollama ഉപയോഗിച്ച് ഒരു ലോക്കൽ റിസർച്ച് അസിസ്റ്റന്റ് നിർമ്മിച്ചു. ഇത് എന്റെ സ്വന്തം പേപ്പറുകളിൽ പ്രവർത്തിക്കുന്നു. എന്റെ മെഷീനിൽ നിന്ന് ഒന്നും പുറത്തേക്ക് പോകുന്നില്ല.

എനിക്ക് ഹാലൂസിനേഷനുകൾ തടയണമെന്നുണ്ടായിരുന്നു. ഉറപ്പോടെ തെറ്റായ ഒരു സംഖ്യ ഉദ്ധരിക്കുന്ന ഒരു ടൂൾ അപകടകാരിയാണ്.

ഞാൻ ഒരു വെരിഫിക്കേഷൻ ലെയർ ചേർത്തു. ഇത് മൂന്ന് ഘട്ടങ്ങളിലായാണ് പ്രവർത്തിക്കുന്നത്:

  • ഉത്തരത്തെ ചെറിയ ക്ലെയിമുകളായി (claims) തിരിക്കുന്നു.
  • ഓരോ ക്ലെയിമും സ്രോതസ്സുമായി (source) ഒത്തുനോക്കാൻ ഒരു LLM ഉപയോഗിക്കുന്നു.
  • സ്രോതസ്സ് പിന്തുണയ്ക്കാത്ത ക്ലെയിമുകളെ ഫ്ലാഗ് (flag) ചെയ്യുന്നു.

ഇതിന്റെ ഫലങ്ങൾ എനിക്ക് കഠിനമായ ഒരു പാഠം പഠിപ്പിച്ചു തന്നു. എന്റെ സ്വന്തം ഡാറ്റയെക്കുറിച്ച് രണ്ട് തവണ ഞാൻ തെറ്റുപറ്റി.

ഒന്നാമതായി, മോഡൽ ഒരു യഥാർത്ഥ സംഖ്യ നൽകിയെങ്കിലും തെറ്റായ സന്ദർഭത്തിലാണ് (context) അത് ഉപയോഗിച്ചത്. നിലവിലില്ലാത്ത ഒരു ടെസ്റ്റ് സെറ്റിനായി (test set) അത് 0.804 എന്ന AUROC ഉദ്ധരിച്ചു. സംഖ്യ ശരിയായിരുന്നു, എന്നാൽ സന്ദർഭം തെറ്റായിരുന്നു. അക്കങ്ങൾ ഒത്തുപോയതുകൊണ്ട് എന്റെ വെരിഫയർ അത് ശരിയാണെന്ന് കരുതി.

രണ്ടാമതായി, മോഡൽ പേപ്പറിന്റെ മറ്റൊരു ഭാഗത്തുനിന്നുള്ള ഒരു സംഖ്യ എടുത്തു. അത് തെറ്റായ പരീക്ഷണത്തിന് ഒരു മൂല്യം നൽകി.

ഇത് പരീക്ഷിച്ചതിൽ നിന്ന് ഞാൻ പഠിച്ച കാര്യങ്ങൾ ഇവയാണ്:

  1. വെരിഫിക്കേഷൻ ഇല്ലാത്ത മൂല്യങ്ങളെ (absent values) മാത്രമേ കണ്ടെത്തുന്നുള്ളൂ. ഒരു സംഖ്യ ടെക്സ്റ്റിൽ ഒട്ടും ഇല്ലെങ്കിൽ വെരിഫയർ അത് കണ്ടെത്തും. എന്നാൽ സംഖ്യ ശരിയാണെങ്കിലും അത് തെറ്റായ വസ്തുതയുമായി ബന്ധപ്പെട്ടതാണെങ്കിൽ വെരിഫിക്കേഷൻ പലപ്പോഴും പരാജയപ്പെടും.

  2. ഒരേ മോഡൽ തന്നെ ജഡ്ജിയാകുമ്പോൾ ചില പോരായ്മകൾ ഉണ്ടാകാം. ഉത്തരം എഴുതുന്നതും അത് വിലയിരുത്തുന്നതും ഒരേ മോഡൽ ആണെങ്കിൽ, അത് സ്വന്തം തെറ്റുകളെ ശരിവെക്കാൻ സാധ്യതയുണ്ട്. തെറ്റായി നൽകപ്പെട്ട സംഖ്യകൾ കണ്ടെത്താൻ വിലയിരുത്തുന്നതിനായി മറ്റൊരു മോഡൽ ഉപയോഗിക്കുന്നത് സഹായിക്കും.

  3. ഒരു ഫ്ലാഗ് എന്നാൽ എപ്പോഴും കള്ളം എന്നല്ല അർത്ഥം. ഒരു ഫ്ലാഗ് മൂന്ന് കാര്യങ്ങൾ സൂചിപ്പിക്കാം:

  • യഥാർത്ഥമായ ഒരു ഹാലൂസിനേഷൻ.
  • സ്രോതസ്സ് കണ്ടെത്താൻ കഴിയാത്ത ഒരു റിട്രീവൽ എറർ (retrieval error).
  • റിട്രീവ് ചെയ്ത ടെക്സ്റ്റിൽ ഇല്ലാത്ത ഒരു യഥാർത്ഥ വസ്തുത. ഒരു ഫ്ലാഗ് കാണുമ്പോൾ, ആ ക്ലെയിം വെറുതെ ഒഴിവാക്കുന്നതിന് പകരം ഡാറ്റ വീണ്ടും റിട്രീവ് ചെയ്യാൻ ശ്രമിക്കുക.
  1. നിങ്ങൾക്ക് ഗ്രൗണ്ട് ട്രൂത്ത് (ground truth) ആവശ്യമാണ്. യഥാർത്ഥ ഉത്തരങ്ങൾ അറിയാതെ ഹാലൂസിനേഷനുകൾ അളക്കാൻ കഴിയില്ല. എന്റെ സ്വന്തം ജോലിയെക്കുറിച്ച് രണ്ട് തെറ്റായ കണ്ടെത്തലുകൾ പ്രസിദ്ധീകരിക്കാൻ ഞാൻ ഏതാണ്ട് തയ്യാറായിപ്പോയി. എന്റെ ഫയലുകളിലൂടെയുള്ള ഒരു ലളിതമായ തിരച്ചിൽ രണ്ട് തെറ്റുകളും തിരുത്തി.

നിങ്ങളുടെ RAG-ന് വേണ്ടിയുള്ള പ്രായോഗിക നിർദ്ദേശങ്ങൾ:

  • ഉത്തരം നൽകുന്ന മോഡലിൽ നിന്ന് വ്യത്യസ്തമായ മറ്റൊരു മോഡൽ വിലയിരുത്തലിനായി ഉപയോഗിക്കുക.
  • മികച്ച റിട്രീവലിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുക. മിക്ക "ഹാലൂസിനേഷനുകളും" വെറും റിട്രീവൽ പരാജയങ്ങൾ മാത്രമാണ്.
  • ഫ്ലാഗുകളെ വെറുമൊരു പിശക് എന്നതിലുപരി, കൂടുതൽ ആഴത്തിൽ പരിശോധിക്കാനുള്ള ഒരു സൂചനയായി കാണുക.

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

ഓപ്ഷണൽ ലേണിംഗ് കമ്മ്യൂണിറ്റി: https://t.me/GyaanSetuAi