ഓരോ ഉത്തരവും ഒരു JSON-encoded citation ഉപയോഗിച്ച് തെളിയിക്കണമെന്ന് നിർബന്ധിച്ചതിലൂടെ, ഒരു പുതിയ WhatsApp അധിഷ്ഠിത RAG (retrieval-augmented generation) അസിസ്റ്റന്റ് തെറ്റായ വിവരങ്ങൾ നൽകുന്നത് (hallucinating) ഒഴിവാക്കി. മോഡലിന് ഒരു പ്രത്യേക ചങ്ക് (chunk) ചൂണ്ടിക്കാണിക്കാൻ കഴിയാതിരിക്കുമ്പോൾ, അത് “എനിക്ക് ഇതിന് മറുപടി നൽകാൻ ആവശ്യമായ വിവരങ്ങൾ ലഭ്യമല്ല” (“I don’t have enough information to answer that”) എന്ന് മറുപടി നൽകുന്നു. ഇത് ആത്മവിശ്വാസത്തോടെ കള്ളം പറയുന്ന ഒരു സംവിധാനത്തെ, വിശ്വസനീയമായ ഒരു “എനിക്കറിയില്ല” (“I don’t know”) സിസ്റ്റമാക്കി മാറ്റി.

RAG-ൽ വിശ്വാസ്യത പ്രധാനമാകുന്നത് എന്തുകൊണ്ട്

RAG-നെ കുറിച്ചുള്ള മിക്ക ട്യൂട്ടോറിയലുകളും റിട്രീവലിന് (retrieval) ആണ് കൂടുതൽ പ്രാധാന്യം നൽകുന്നത്—embeddings തിരഞ്ഞെടുക്കുന്നത്, ഡോക്യുമെന്റുകളെ chunks ആയി മുറിക്കുന്നത്, റിസൾട്ടുകൾ re-rank ചെയ്യുന്നത് എന്നിവ ഇതിൽ ഉൾപ്പെടുന്നു. എന്നാൽ പ്രസക്തമായ ടെക്സ്റ്റ് കണ്ടെത്തിക്കഴിഞ്ഞാൽ എന്ത് സംഭവിക്കുന്നു എന്നതിനെ അവ അവഗണിക്കുന്നു. റിട്രീവ് ചെയ്ത കോൺടെക്സ്റ്റ് (context) പിന്തുണയ്ക്കാത്ത ഒരു ഉറപ്പായ ഉത്തരം അസിസ്റ്റന്റ് നൽകുന്നതോടെ ഉപയോക്താക്കൾക്ക് വിശ്വാസം നഷ്ടപ്പെടുന്നു.

കോൺഫിഡൻസ് ഗ്യാപ്പ് (The confidence gap)

PostgreSQL-ഉം pgvector extension-ഉം ഉപയോഗിച്ച് നിർമ്മിച്ച ഒരു പ്രോട്ടോടൈപ്പിൽ, റിട്രീവൽ പൈപ്പ്‌ലൈൻ ലളിതമായിരുന്നു. എന്നാൽ യഥാർത്ഥ ഉപയോഗത്തിൽ (production) വെല്ലുവിളി നേരിട്ടത് മറ്റൊരു രീതിയിലാണ്: റിട്രീവ് ചെയ്ത സ്നിപ്പറ്റിൽ (snippet) ആവശ്യമായ വിവരങ്ങൾ ഇല്ലാതിരുന്നിട്ടും ലാംഗ്വേജ് മോഡൽ വളരെ ഉറപ്പോടെ സംസാരിച്ചു. ഒരു ഡെമോയിൽ ഈ പ്രശ്നം മറച്ചുവെക്കാൻ കഴിഞ്ഞേക്കാം, എന്നാൽ യഥാർത്ഥ ഉപയോക്താക്കൾ ആത്മവിശ്വാസത്തോടെ സംസാരിക്കുന്നതും ശരിയായ വിവരങ്ങൾ നൽകുന്നതും തമ്മിലുള്ള വ്യത്യാസം തുറന്നുകാട്ടി.

JSON ഉപയോഗിച്ച് സൈറ്റേഷനുകൾ നിർബന്ധമാക്കുന്നു

“കോൺടെക്സ്റ്റ് ഉണ്ടെങ്കിൽ മാത്രം ഉത്തരം നൽകുക” എന്നതുപോലെയുള്ള പ്രോംപ്റ്റുകൾ ഉപയോഗിച്ച് മോഡലിനെ പ്രേരിപ്പിക്കുന്നതിന് പകരം, രചയിതാവ് ഔട്ട്‌പുട്ട് ഫോർമാറ്റ് മാറ്റി. ഓരോ അവകാശവാദവും (claim) അതിനെ പിന്തുണയ്ക്കുന്ന കൃത്യമായ ചങ്ക് (chunk) സൂചിപ്പിക്കുന്ന ഒരു JSON ഒബ്‌ജക്റ്റ് ഇപ്പോൾ സിസ്റ്റത്തിന് ആവശ്യമാണ്. മോഡലിന് ഒരു സൈറ്റേഷൻ ചേർക്കാൻ കഴിയുന്നില്ലെങ്കിൽ, മറുപടി നിരസിക്കപ്പെടുകയും ഉപയോക്താവിന് വ്യക്തമായ “എനിക്കറിയില്ല” (“I don’t know”) എന്ന സന്ദേശം ലഭിക്കുകയും ചെയ്യുന്നു.

നിർദ്ദേശങ്ങൾ നൽകുന്ന രീതി നാച്ചുറൽ ലാംഗ്വേജ് ഇൻസ്ട്രക്ഷൻസിൽ നിന്ന് ഷീമ വാലിഡേഷനിലേക്ക് (schema validation) മാറി. മോഡൽ ഇപ്പോഴും ടെക്സ്റ്റ് ജനറേറ്റ് ചെയ്യുന്നുണ്ടെങ്കിലും, JSON ആവശ്യമായ ഘടനയുമായി പൊരുത്തപ്പെടുന്നുണ്ടോ എന്ന് ചുറ്റുമുള്ള കോഡ് പരിശോധിക്കുന്നു, അതിനുശേഷം മാത്രമേ അത് ഉപയോക്താവിലേക്ക് എത്തുന്നുള്ളൂ.

എന്താണ് മാറിയത്

  • ചങ്കിംഗ് കൂടുതൽ നിയന്ത്രിതമായി (Chunking became conservative). അവ്യക്തമോ അമിതമായി വിപുലമോ ആയ ചങ്കുകൾ ഇപ്പോൾ സൈറ്റേഷനുകൾ ഇല്ലാതെ അവകാശവാദങ്ങൾ ഉന്നയിക്കുന്നു, ഇത് “എനിക്കറിയില്ല” എന്ന ഫാള்பാക്ക് (fallback) പ്രവർത്തനത്തിന് കാരണമാകുന്നു.
  • സിസ്റ്റം പ്രോംപ്റ്റ് ചുരുങ്ങി (System prompt shrank). മോഡലിന്റെ പെരുമാറ്റം നിയന്ത്രിക്കാൻ ശ്രമിച്ചിരുന്ന വലിയ പ്രോംപ്റ്റുകൾക്ക് പകരം ചെറിയ നിർദ്ദേശങ്ങൾ ഉപയോഗിച്ചു, ഇത് ഷീമയെ (schema) പ്രധാന ജോലി ചെയ്യാൻ അനുവദിക്കുന്നു.
  • പരാജയങ്ങൾ വ്യക്തമാണ് (Failures are visible). റിട്രീവൽ പ്രസക്തമല്ലാത്ത വിവരങ്ങൾ നൽകുന്നအခിൽ, അസിസ്റ്റന്റ് തെറ്റായ ഉത്തരങ്ങൾ നൽകി ആ പിശക് മറച്ചുവെക്കുന്നില്ല; പകരം തനിക്ക് ഉറപ്പില്ലെന്ന് അത് തുറന്നുപറയുന്നു.

പ്രധാന പാഠം (Takeaway): RAG അസിസ്റ്റന്റുകളെ സംബന്ധിച്ചിടത്തോളം, റിട്രീവൽ ഘട്ടം മാത്രം മെച്ചപ്പെടുത്തുന്നതിനേക്കാൾ, ഓരോ അവകാശവാദവും റിട്രീവ് ചെയ്ത സ്രോതസ്സുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു എന്ന് ഉറപ്പാക്കുന്നത് ഉപയോക്താക്കളുടെ വിശ്വാസം കൂടുതൽ വിശ്വസനീയമായി നേടിയെടുക്കാൻ സഹായിക്കുന്നു. സൈറ്റേഷനുകളുടെ അഭാവം ഒരു വ്യക്തമായ “എനിക്കറിയില്ല” എന്ന സന്ദേശമാക്കി മാറ്റുന്നതിലൂടെ, ഉത്തരങ്ങൾ കെട്ടിച്ചമയ്ക്കുന്നതിന് പകരം സിസ്റ്റത്തിന്റെ പരിമിതികൾ സമ്മതിക്കാൻ ഡെവലപ്പർമാർക്ക് സാധിക്കുന്നു.