അഡ്വാൻസ്ഡ് RAG സാങ്കേതികവിദ്യകൾ എപ്പോഴും മികച്ചതല്ല. ചില സാഹചര്യങ്ങളിൽ മാത്രമാണ് അവ മികച്ചതാകുന്നത്.
അഡ്വാൻസ്ഡ് RAG സാങ്കേതികവിദ്യകൾ സൗജന്യമായി ലഭിക്കുന്ന അപ്ഗ്രേഡുകളല്ല. അവ ഓരോന്നിനും അതിന്റേതായ ഗുണദോഷങ്ങളുള്ള (tradeoffs) ഉപകരണങ്ങളാണ്.
Anthropic ഡോക്യുമെന്റേഷൻ ഉപയോഗിച്ച് ഒരു RAG പൈപ്പ്ലൈനിൽ അഞ്ച് റിട്രീവൽ രീതികൾ ഞാൻ പരീക്ഷിച്ചു. അവയിൽ ഏതാണ് അതിന്റെ സങ്കീർണ്ണതയ്ക്ക് അർഹമായ ഫലം നൽകുന്നത് എന്ന് അറിയാനാണ് ഞാൻ ശ്രമിച്ചത്.
ഞാൻ കണ്ടെത്തിയ കാര്യങ്ങൾ ഇതാ:
• Dense Retrieval: അടിസ്ഥാന രീതി. ഇത് നന്നായി പ്രവർത്തിക്കുന്നുണ്ടെങ്കിലും കൃത്യമായ പദങ്ങൾ (exact terms) കണ്ടെത്താൻ കഴിയാതെ വരാം. • Hybrid Search: Dense റിട്രീവലും കീവേഡ് സെർച്ചും സംയോജിപ്പിക്കുന്നു. Dense രീതിക്ക് നഷ്ടമാകുന്ന കൃത്യമായ പദങ്ങൾ ഇത് കണ്ടെത്തുന്നു. എന്നാൽ ഫലങ്ങളുടെ വെയ്റ്റേജ് (weight) കൃത്യമായി ക്രമീകരിച്ചില്ലെങ്കിൽ വിവരങ്ങൾ കൃത്യമായി ലഭിക്കില്ല. • Reranking: ഉദ്യോഗാർത്ഥികളെ (candidates) സ്കോർ ചെയ്യാൻ ഒരു cross-encoder ഉപയോഗിക്കുന്നു. ശരിയായ വിവരങ്ങൾ (chunks) റിസൾട്ടുകളിൽ വളരെ താഴെയാണെങ്കിൽ ഇത് സഹായിക്കും. • HyDE: വിവരങ്ങൾ കണ്ടെത്താൻ ഒരു സാങ്കൽപ്പിക ഉത്തരം (hypothetical answer) ഉപയോഗിക്കുന്നു. ഇത് അപകടകരമാണ്. സാധാരണ രീതിയിലുള്ള ചോദ്യങ്ങൾക്ക് (casual queries) ഇത് സഹായിക്കുമെങ്കിലും, നേരിട്ടുള്ള ചോദ്യങ്ങളിൽ (direct queries) ഇത് എല്ലാം തകിടം മറിക്കും. ഒരു പരീക്ഷണത്തിൽ Recall 0.80-ൽ നിന്ന് 0.17 ആയി കുറഞ്ഞു. • Contextual Retrieval: വിവരങ്ങളോടൊപ്പം (chunks) സംഗ്രഹങ്ങൾ (summaries) കൂടി ചേർക്കുന്നു. ഇത് ചെറിയ വിവരങ്ങൾക്ക് ഗുണകരമാണ്, എന്നാൽ LLM ഫീസുകൾ വർദ്ധിപ്പിക്കും.
HyDE-നെ കുറിച്ചുള്ള പാഠമാണ് ഏറ്റവും വലുത്. ഇത് "set and forget" രീതിയിൽ ഉപയോഗിക്കാവുന്ന ഒന്നല്ല. ഉപയോക്താവിന്റെ ചോദ്യവും നിങ്ങളുടെ ഡോക്യുമെന്റുകളും വ്യത്യസ്ത ഭാഷകളിൽ സംസാരിക്കുമ്പോൾ മാത്രം ഇത് ഉപയോഗിക്കുക. ഇത് എപ്പോൾ ഉപയോഗിക്കണമെന്ന് തീരുമാനിക്കാൻ ഒരു router ആവശ്യമാണ്.
അളവുകളെ (measurement) കുറിച്ചും ഞാൻ ഒരു പാഠം പഠിച്ചു.
മൂല്യനിർണ്ണയത്തിനായി (evaluation) ഞാൻ Ragas ഉപയോഗിക്കാൻ ശ്രമിച്ചു. എന്നാൽ അത് വളരെ സാവധാനത്തിലായിരുന്നു. പരാജയപ്പെട്ട കോളുകൾ വീണ്ടും ശ്രമിക്കാനായി അത് മണിക്കൂറുകൾ ചിലവഴിച്ചു. അതിനാൽ ഞാൻ സ്വന്തമായി ഒരു async harness നിർമ്മിക്കാൻ തീരുമാനിച്ചു. 11 മണിക്കൂറിന് പകരം, എന്റെ മൂല്യനിർണ്ണയം 221 സെക്കൻഡുകൾ കൊണ്ട് പൂർത്തിയായി.
AI ടൂളുകളെ ഒരു 'ബ്ലാക്ക് ബോക്സ്' ആയി കാണരുത്. ഒരു ടൂൾ സാവധാനത്തിലാണെങ്കിലോ പരാജയപ്പെടുന്നുണ്ടെങ്കിലോ, അതിന് പിന്നിലെ ഗണിതശാസ്ത്രം (math) പരിശോധിക്കുക. ആവശ്യമെങ്കിൽ സ്വന്തമായി ഒരു പരിഹാരം നിർമ്മിക്കുക.
പുതിയ ഫീച്ചറുകൾ ചേർക്കുക എന്നത് മാത്രമല്ല ജോലി. നിങ്ങളുടെ സിസ്റ്റത്തിൽ ഏത് ഫീച്ചറിനാണ് സ്ഥാനം നൽകേണ്ടതെന്ന് അളക്കുക എന്നതാണ് യഥാർത്ഥ ജോലി.
ഓരോന്നും എപ്പോൾ ഉപയോഗിക്കണം എന്നതിന്റെ സംഗ്രഹം:
- Hybrid: ചോദ്യങ്ങൾ കൃത്യമായ പാരാമീറ്ററുകളെ (exact parameters) ആശ്രയിച്ചിരിക്കുമ്പോൾ ഉപയോഗിക്കുക.
- HyDE: ചോദ്യങ്ങൾ വ്യക്തമല്ലാത്ത രീതിയിൽ ചോദിക്കുമ്പോൾ ഉപയോഗിക്കുക.
- Reranking: റിട്രീവൽ വിപുലമാണെങ്കിലും കൃത്യത കുറവാണെങ്കിൽ ഉപയോഗിക്കുക.
- Contextual: വിവരങ്ങളിൽ (chunks) ആവശ്യമായ പശ്ചാത്തലം (context) കുറവാണെങ്കിൽ ഉപയോഗിക്കുക.
"state of the art" എന്നതിനു പിന്നാലെ ഓടുന്നത് നിർത്തുക. നിങ്ങളുടെ ഫലങ്ങൾ അളക്കാൻ തുടങ്ങുക.
Source: https://dev.to/yogesh23012001/advanced-rag-techniques-arent-better-theyre-better-sometimes-4m2o
Optional learning community: https://t.me/GyaanSetuAi
