അഡ്വാൻസ്ഡ് RAG സാങ്കേതികവിദ്യകൾ എപ്പോഴും മികച്ചതാകണമെന്നില്ല. ചില സാഹചര്യങ്ങളിൽ മാത്രമേ അവ മികച്ചതാകൂ.

അഡ്വാൻസ്ഡ് RAG സാങ്കേതികവിദ്യകൾ സൗജന്യമായി ലഭിക്കുന്ന അപ്‌ഗ്രേഡുകളല്ല. അവ ഗുണദോഷങ്ങളുള്ള (trade-offs) ഉപകരണങ്ങളാണ്.

അവ പരീക്ഷിക്കുന്നതിനായി ഞാൻ ഒരു RAG പൈപ്പ്‌ലൈനിൽ അഞ്ച് റിട്രീവൽ സാങ്കേതികവിദ്യകൾ ചേർത്തു. പരാജയപ്പെട്ട സാങ്കേതികവിദ്യയായിരുന്നു ഏറ്റവും പ്രധാനപ്പെട്ട ഫലം.

HyDE റിട്രീവൽ മെച്ചപ്പെടുത്തുമെന്ന് ഞാൻ പ്രതീക്ഷിച്ചു. എന്നാൽ ചില ക്വറികളിൽ അത് തിരിച്ചടിയായി. Recall 0.80-ൽ നിന്ന് 0.17 ആയി കുറഞ്ഞു. ആ സാങ്കേതികവിദ്യ സഹായിക്കാൻ പരാജയപ്പെടുക മാത്രമല്ല ചെയ്തത്, മറിച്ച് തെറ്റായ ഡാറ്റ റിസൾട്ടുകളിലേക്ക് വരാൻ കാരണമായിത്തീർന്നു.

ഞാൻ പരീക്ഷിച്ച ഓരോ അഡ്വാൻസ്ഡ് സാങ്കേതികവിദ്യയും ഇപ്രകാരമാണ് പ്രവർത്തിക്കുന്നത്:

  • Hybrid search (BM25 + dense): കൃത്യമായ പദങ്ങൾക്കായി (exact terms) ഇത് മികച്ചതാണ്. നിങ്ങളുടെ ക്വറി പ്രത്യേക പാരാമീറ്ററുകളെ ആശ്രയിച്ചാണെങ്കിൽ ഇത് ഉപയോഗിക്കുക.
  • HyDE: ഡോക്യുമെന്റിലെ പദാവലിയുമായി (vocabulary) നേരിട്ട് ബന്ധമില്ലാത്ത സാധാരണ ചോദ്യങ്ങൾക്ക് ഇത് മികച്ചതാണ്. എന്നാൽ ക്വറി കോർപ്പസുമായി (corpus) നന്നായി പൊരുത്തപ്പെടുന്നുണ്ടെങ്കിൽ ഇത് പരാജയപ്പെടും.
  • Reranking: ശരിയായ ചങ്ക് (chunk) റിസൾട്ടുകളിൽ ഉണ്ടെങ്കിലും ലിസ്റ്റിൽ താഴെയാണെങ്കിൽ ഇത് മികച്ചതാണ്.
  • Contextual retrieval: കോൺടെക്സ്റ്റ് ഇല്ലാത്ത ചെറിയ ചങ്കുകൾക്കായി ഇത് മികച്ചതാണ്. ഓരോ ചങ്കിനും ഒരു LLM ഉപയോഗിക്കേണ്ടി വരുന്നതിനാൽ ഇത് ചിലവ് വർദ്ധിപ്പിക്കുന്നു.

Anthropic ഡോക്യുമെന്റേഷൻ ഉപയോഗിച്ചാണ് ഞാൻ ഈ പൈപ്പ്‌ലൈൻ നിർമ്മിച്ചത്. ഞാൻ Postgres, pgvector, HNSW ഇൻഡക്സ് എന്നിവ ഉപയോഗിച്ചു. ഒരു ബാക്കെൻഡ് എഞ്ചിനീയറെപ്പോലെയാണ് ഞാൻ ഇതിനെ സമീപിച്ചത്. ഒരു സാങ്കേതികവിദ്യ 'state of the art' ആണോ എന്നല്ല ഞാൻ നോക്കിയത്, മറിച്ച് അതിന്റെ സങ്കീർണ്ണതയ്ക്ക് (complexity) അർഹമായ ഫലം നൽകുന്നുണ്ടോ എന്നാണ്.

നിങ്ങൾ ചേർക്കുന്ന ഓരോ ഘടകവും പ്രവർത്തിപ്പിക്കാനും, ഡിബഗ് (debug) ചെയ്യാനും, അതിനായി പണം നൽകാനും നിങ്ങൾ തയ്യാറാകണം.

സങ്കീർണ്ണമായ ടൂളുകൾ ചേർക്കുന്നതിന് മുമ്പ്, സാധാരണ ഡെൻസ് റിട്രീവൽ (plain dense retrieval) ഉപയോഗിച്ച് ഞാൻ ഒരു ബേസ്‌ലൈൻ (baseline) അളന്നു.

ഫലങ്ങൾ രണ്ട് വ്യത്യസ്ത മെട്രിക്സുകൾ കാണിച്ചു:

  • Faithfulness: 0.96
  • Context precision: 0.60

ഈ ഡാറ്റ എന്റെ സമീപനത്തെ പൂർണ്ണമായും മാറ്റിമറിച്ചു. മിക്ക സാങ്കേതികവിദ്യകളും റിട്രീവലിനെ ലക്ഷ്യം വെച്ചുള്ളതാണ്. എന്റെ റിട്രീവൽ ആയിരുന്നു പരാജയപ്പെട്ട ഭാഗം. Faithfulness കുറവായിരുന്നെങ്കിൽ ഞാൻ പ്രോംപ്റ്റുകൾ (prompts) ട്യൂൺ ചെയ്യുമായിരുന്നു. എന്നാൽ റിട്രീവൽ കുറവായതുകൊണ്ട് എനിക്ക് സെർച്ച് (search) ട്യൂൺ ചെയ്യേണ്ടി വന്നു.

ഇവാലുവേഷൻ ടൂളുകളെ (evaluation tools) കുറിച്ച് ഞാൻ ഒരു പാഠം കൂടി പഠിച്ചു. ഞാൻ Ragas ഉപയോഗിക്കാൻ ശ്രമിച്ചു, പക്ഷേ അത് വളരെ സാവധാനത്തിലായിരുന്നു. പരാജയപ്പെട്ട കോളുകൾ അത് വീണ്ടും വീണ്ടും ശ്രമിച്ചുകൊണ്ടിരിക്കുകയും മണിക്കൂറുകൾ എടുക്കുകയും ചെയ്യുമായിരുന്നു. പകരം ഞാൻ സ്വന്തമായി ഒരു async harness നിർമ്മിച്ചു. 11 മണിക്കൂറുകൾ എടുക്കുന്നതിന് പകരം 221 സെക്കൻഡുകൾ കൊണ്ട് എനിക്ക് അതേ മെട്രിക്സുകൾ പ്രവർത്തിപ്പിക്കാൻ കഴിഞ്ഞു.

ഇതിൽ നിന്നുള്ള പാഠം ലളിതമാണ്:

സാങ്കേതികവിദ്യകൾ അന്ധമായി പ്രയോഗിക്കരുത്. ശരിയായ ചോദ്യത്തിന് ശരിയായ മോഡ് തിരഞ്ഞെടുക്കാൻ ഒരു ക്വറി റൂട്ടർ (query router) ഉപയോഗിക്കുക. ആദ്യം നിങ്ങളുടെ ഡാറ്റ അളക്കുക. അതിനുശേഷം നിങ്ങളുടെ പ്രത്യേക പരാജയ രീതി പരിഹരിക്കുന്ന ടൂൾ തിരഞ്ഞെടുക്കുക.

മോഡൽ പുതിയതാകാം, എന്നാൽ എഞ്ചിനീയറിംഗ് അച്ചടക്കം (engineering discipline) പുതിയതല്ല.

Source: https://dev.to/yogesh23012001/advanced-rag-techniques-arent-better-theyre-better-sometimes-4m2o