Fine-tuning വേഴ്സസ് RAG എന്നതിനെക്കുറിച്ച് എല്ലാവർക്കും ഓരോ അഭിപ്രായമുണ്ട്. ഏതൊരു AI ഫോറത്തിലൂടെയും സ്ക്രോൾ ചെയ്താൽ ആർക്കിടെക്ചർ ഡയഗ്രാമുകളും ബെഞ്ച്മാർക്ക് അവകാശവാദങ്ങളും നിറഞ്ഞ തർക്കങ്ങൾ നിങ്ങൾക്ക് കാണാം. ആ കമന്റുകൾ എഴുതുന്നവരിൽ ഭൂരിഭാഗം പേരും സ്വന്തം ഡാറ്റ ഉപയോഗിച്ച് ഒരു മോഡൽ പരിശീലിപ്പിക്കുകയോ അല്ലെങ്കിൽ പ്രൊഡക്ഷനിൽ ഒരു RAG പൈപ്പ്‌ലൈൻ നിശബ്ദമായി പരാജയപ്പെടുന്നത് കാണുകയോ ചെയ്തിട്ടുണ്ടാകില്ല.

ഞാൻ മാസങ്ങളോളം പരീക്ഷണങ്ങൾ നടത്തിക്കൊണ്ടിരുന്നു. കൃത്യമായി പറഞ്ഞാൽ പന്ത്രണ്ട് പരീക്ഷണങ്ങൾ. ഞാൻ LLM-കൾ ഫൈൻ ട്യൂൺ ചെയ്തു. എംബെഡറുകൾ (embedders) ഫൈൻ ട്യൂൺ ചെയ്തു. ഞാൻ ആറ് വ്യത്യസ്ത RAG കോൺഫിഗറേഷനുകൾ നിർമ്മിച്ചു. സാമ്പത്തിക പ്രവചനമായിരുന്നു (financial prediction) ഇതിന്റെ വിഷയം, പ്രത്യേകിച്ച് കുഴഞ്ഞുമറിഞ്ഞ ചരിത്രപരമായ ഡാറ്റയിൽ നിന്ന് വിപണിയിലെ അനിശ്ചിതത്വങ്ങൾ പ്രവചിക്കാൻ ശ്രമിക്കുകയായിരുന്നു. ബ്ലോഗ് പോസ്റ്റുകളിലെ അവകാശവാദങ്ങളല്ല, മറിച്ച് യഥാർത്ഥ ഉത്തരങ്ങളാണ് എനിക്ക് വേണ്ടതെന്നതിനാൽ ഞാൻ കർശനമായ സ്റ്റാറ്റിസ്റ്റിക്കൽ മാനദണ്ഡങ്ങൾ പാലിച്ചു.

ഭൂരിഭാഗം പരീക്ഷണങ്ങളും പരാജയപ്പെട്ടു. ആ പരാജയങ്ങൾ ഏതൊരു ഭാഗ്യപൂർവ്വമായ വിജയത്തേക്കാളും കൂടുതൽ ഉപകാരപ്രദമാണെന്ന് പിന്നീട് മനസ്സിലായി.

സിഗ്നലിനെക്കുറിച്ചുള്ള കഠിനമായ സത്യം

വിശദാംശങ്ങളിലേക്ക് കടക്കുന്നതിന് മുമ്പ്, എല്ലാറ്റിനെയും കോർത്തിണക്കുന്ന ഒരു പാഠം ഇതാ. ഒരു മോഡൽ എന്തറിയണം അല്ലെങ്കിൽ അത് എന്താണ് കാണുന്നത് എന്ന് മാറ്റുന്നതിനുള്ള ഉപകരണങ്ങളാണ് Fine-tuning-ഉം RAG-ഉം. അവ ശൂന്യതയിൽ നിന്ന് സിഗ്നലുകൾ (signal) നിർമ്മിക്കുന്ന മാന്ത്രിക വടികളല്ല. നിങ്ങളുടെ അടിസ്ഥാന ഡാറ്റയിൽ ഉപയോഗപ്രദമായ ഒരു യഥാർത്ഥ പാറ്റേൺ ഇല്ലെങ്കിൽ, ഈ സാങ്കേതിക വിദ്യകൾ അത് സൃഷ്ടിക്കില്ല. അവ വെറും ക്രമരഹിതമായ ശബ്ദത്തിന് (random noise) ചുറ്റും കൂടുതൽ വിശ്വസനീയമായ ഒരു കഥ കെട്ടിച്ചമയ്ക്കാൻ നിങ്ങളെ സഹായിക്കുകയേയുള്ളൂ.

സാമ്പത്തിക പ്രവചനത്തിൽ ഈ കെണി വളരെ അപകടകരമാണ്. വിപണികൾ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത് തന്നെ അനിശ്ചിതത്വങ്ങൾ നിറഞ്ഞതായാണ്. നിങ്ങൾ ഒരു ശക്തമായ LLM-നെ ചരിത്രപരമായ വിലവിവരങ്ങളുമായി ബന്ധിപ്പിക്കുകയും അതിനോടൊപ്പം റിട്രീവലും (retrieval) ഫൈൻ ട്യൂണിംഗും ചേർക്കുകയും ചെയ്യുമ്പോൾ, നിങ്ങൾക്ക് തനിയെ ഒരു മുൻതൂക്കം (edge) ലഭിക്കണമെന്നില്ല. പകരം, കോയിൻ ടോസ് (coin flip) പോലുള്ള ഭാഗ്യപരീക്ഷണങ്ങളെ യുക്തിസഹമായി വിശദീകരിക്കാനുള്ള കൂടുതൽ വ്യക്തമായ ഒരു മാർഗ്ഗം നിങ്ങൾക്ക് ലഭിക്കുന്നു എന്ന് മാത്രം. സിഗ്നൽ ഇല്ലെങ്കിൽ, മോഡൽ നിങ്ങളോട് കള്ളം പറയാൻ വളരെ മിടുക്കനായി മാറും. നിങ്ങൾ ആദ്യം അത് പരിശോധിക്കേണ്ടതുണ്ട്.

വലുപ്പമുള്ള മോഡലുകൾ പഠിക്കുന്നതിന് പകരം മനഃപാഠമാക്കുമ്പോൾ

എല്ലാം വലുപ്പമുണ്ടാക്കിയാൽ ശരിയാകുമെന്ന് കരുതിയതായിരുന്നു എന്റെ ആദ്യത്തെ വലിയ തെറ്റ്. കൃത്യം 777 ട്രെയിനിംഗ് ഉദാഹരണങ്ങൾ ഉപയോഗിച്ച് ഞാൻ ഒരു 14 ബില്യൺ പാരാമീറ്റർ മോഡലിനെ ഒരു 7 ബില്യൺ പാരാമീറ്റർ മോഡലുമായി താരതമ്യം ചെയ്തു. വലിയ മോഡൽ ശ്രദ്ധേയമായ രീതിയിൽ മികച്ച eval_loss കൈവരിച്ചു. അതിന്റെ പെർപ്ലെക്സിറ്റി (perplexity) കുറഞ്ഞു. പേപ്പറിൽ നോക്കിയാൽ അത് പഠിച്ചുകൊണ്ടിരിക്കുകയായിരുന്നു.

പിന്നീട് ഞാൻ വിൻ റേറ്റ് (win rate) പരിശോധിച്ചു, അതായത് മോഡൽ ശരിയായ പ്രവചനങ്ങൾ നടത്തുന്ന യഥാർത്ഥ നിരക്ക്. 14B മോഡൽ 7B മോഡലിനേക്കാൾ വളരെ മോശമായി പ്രവർത്തിച്ചു. അത് ട്രെയിനിംഗ് ഡാറ്റയിലെ നോയിസ് (noise) മനഃപാഠമാക്കിയിരുന്നു. 3,000-ൽ താഴെ ഉദാഹരണങ്ങൾ മാത്രം ഉള്ളപ്പോൾ, ഡാറ്റയിലെ അപ്രസക്തമായ ബന്ധങ്ങളും (spurious correlations) ക്രമരഹിതമായ മാറ്റങ്ങളും ഓവർഫിറ്റ് (overfit) ചെയ്യാൻ വലിയ മോഡലിന് ആവശ്യമായ ശേഷിയുണ്ടായിരുന്നു. അത് അടിസ്ഥാനപരമായി നോയിസിന്റെ ഒരു ലുക്കപ്പ് ടേബിൾ (lookup table) നിർമ്മിക്കുകയായിരുന്നു.

ചെറിയ ശേഷിയുള്ള 7B മോഡൽ, വിശാലമായ പാറ്റേണുകൾ പഠിക്കാൻ നിർബന്ധിതമായി. ഓരോ ചെറിയ വ്യത്യാസവും മനഃപാഠമാക്കാൻ അതിന് കഴിയില്ലായിരുന്നു. നിങ്ങൾ ചെറിയ ഡാറ്റാസെറ്റുകളുമായാണ് പ്രവർത്തിക്കുന്നതെങ്കിൽ, ചെറിയ മോഡലുകളിൽ നിന്ന് തുടങ്ങുക. സ്കെയിലിംഗ് (Scale) സൗജന്യമല്ല. ഡാറ്റ കുറവാണെങ്കിൽ അത് നിങ്ങളെ സജീവമായി ദോഷകരമായി ബാധിച്ചേക്കാം.

ലോസ് കർവ് വിശ്വസിക്കരുത്

ലോസ് കർവുകൾ (loss curves) നോക്കി ഇരിക്കുന്നത് നിർത്താൻ ഞാൻ പഠിച്ചു. നിങ്ങൾ ശ്രദ്ധിക്കുന്ന യഥാർത്ഥ ബിസിനസ്സ് തീരുമാനങ്ങളിൽ മോശം പ്രകടനം കാഴ്ചവെക്കുമ്പോഴും ഒരു മോഡലിന് അതിന്റെ ടോക്കൺ-ലെവൽ ക്രോസ്-എൻട്രോപ്പി (token-level cross-entropy) മെച്ചപ്പെടുത്താൻ കഴിയും. ഭാഷാ മോഡലിംഗ് ലോസ് (language modeling loss) അടുത്ത ടോക്കൺ കൃത്യമായി പ്രവചിക്കുന്നതിനാണ് പ്രതിഫലം നൽകുന്നത് എന്നതുകൊണ്ടാണ് ഇത് സംഭവിക്കുന്നത്. പല മേഖലകളിലും, പ്രത്യേകിച്ച് ഫിനാൻസിൽ, ശരിയായ തീരുമാനവും ഏറ്റവും സാധ്യതയുള്ള അടുത്ത ടോക്കണും ഒന്നല്ല.

ട്രെയിനിംഗ് പ്രോസ് (prose) മനോഹരമായി പുനരാവിഷ്കരിക്കുന്നവരും എന്നാൽ ഓരോ തവണയും തെറ്റായ ദിശയിലുള്ള പ്രവചനങ്ങൾ നടത്തുന്നവരുമായ മോഡലുകളെ ഞാൻ കണ്ടു. ലോസ് കുറഞ്ഞു, അതോടൊപ്പം തന്നെ ബാങ്ക് ബാലൻസും കുറഞ്ഞു. നിങ്ങളുടെ യഥാർത്ഥ ലോകത്തെ ജോലിയെ അടിസ്ഥാനമാക്കി മൂല്യനിർണ്ണയ മാനദണ്ഡം (evaluation metric) തിരഞ്ഞെടുക്കുക. നിങ്ങൾ ഡോക്യുമെന്റുകൾ റാങ്ക് ചെയ്യുകയാണെങ്കിൽ, റാങ്കിംഗ് ഗുണനിലവാരം അളക്കുക. നിങ്ങൾ ഫലങ്ങൾ പ്രവചിക്കുകയാണെങ്കിൽ, തീരുമാനത്തിന്റെ കൃത്യത അളക്കുക. eval_loss നിങ്ങളുടെ മോഡലിനെ തിരഞ്ഞെടുക്കാൻ ഒരിക്കലും അനുവദിക്കരുത്.

അപരിചിതമായ പദാവലികളിൽ മാത്രം ഫലപ്രദമാകുന്നു Fine-Tuning

രണ്ട് വ്യത്യസ്ത തരം ടെക്സ്റ്റുകളിൽ ഞാൻ എംബെഡർ ഫൈൻ ട്യൂണിംഗ് പരീക്ഷണങ്ങൾ നടത്തി. ആദ്യത്തേതിൽ സാധാരണ സാമ്പത്തിക വാർത്തകളും പബ്ലിക് ഫയലിംഗുകളും ഉപയോഗിച്ചു. ഫൈൻ ട്യൂൺ ചെയ്ത എംബെഡറും നിലവിലുള്ള വേർഷനും ഒരേപോലെയാണ് പ്രവർത്തിച്ചത്. അടിസ്ഥാന മോഡലിന് ഈ ഭാഷ നേരത്തെ തന്നെ അറിയാമായിരുന്നു. ഞാൻ പരിചിതമായ മേഖലയിലാണ് ട്യൂണിംഗ് നടത്തിയിരുന്നത്.

രണ്ടാമത്തെ ഡാറ്റാസെറ്റ് സ്വകാര്യമായ സാങ്കേതിക പദങ്ങൾ (jargon), ആഭ്യന്തര കോഡ് നാമങ്ങൾ, ഇന്റർനെറ്റിൽ ഒരിടത്തും കാണാത്ത ഡൊമെയ്ൻ-സ്പെസിഫിക് ഷോർട്ട്ഹാൻഡ് എന്നിവയാൽ നിറഞ്ഞതായിരുന്നു. ഇവിടെ, ഫൈൻ ട്യൂണിംഗ് റിട്രീവൽ കൃത്യത 79 ശതമാനം വർദ്ധിപ്പിച്ചു. ഈ പദങ്ങളുടെ അർത്ഥം എന്താണെന്ന് അടിസ്ഥാന മോഡലിന് അറിയില്ലായിരുന്നു. ഫൈൻ ട്യൂണിംഗ് അതിനെ പ്രാദേശിക പദാവലി പഠിപ്പിച്ചു.

ഇത് എന്റെ കാഴ്ചപ്പാട് തന്നെ മാറ്റിമറിച്ചു. ഫൈൻ ട്യൂണിംഗ് എന്നത് ഒരു മോഡലിനെ പൊതുവായ അർത്ഥത്തിൽ കൂടുതൽ ബുദ്ധിയുള്ളതാക്കാനല്ല. മറിച്ച് അതിനെ ഒരു പുതിയ പദാവലി, ഒരു പുതിയ ഫോർമാറ്റ് അല്ലെങ്കിൽ ഒരു പ്രത്യേക ശൈലി പഠിപ്പിക്കാനാണ്. നിങ്ങളുടെ ഡാറ്റ ഇന്റർനെറ്റിലെ പോലെയാണെങ്കിൽ, ഫൈൻ ട്യൂണിംഗ് ഒഴിവാക്കുക. നിങ്ങളുടെ ഡാറ്റ അടിസ്ഥാന മോഡൽ ഇതുവരെ കാണാത്ത ഒരു ഭാഷ സംസാരിക്കുന്നതാണെങ്കിൽ, ഫൈൻ ട്യൂണിംഗ് അത്യാവശ്യമാണ്.

RAG നിങ്ങൾക്ക് നൽകുന്നത് നിശ്ചിതതയാണ്, സത്യമല്ല

പ്രവചന ജോലികൾക്കായി (prediction tasks) ഞാൻ എട്ട് വ്യത്യസ്ത RAG കോൺഫിഗറേഷനുകൾ പരീക്ഷിച്ചു. മൊത്തത്തിൽ നോക്കിയാൽ, റിട്രീവൽ (retrieval) ചേർക്കുന്നത് മോഡലിന്റെ തീരുമാനങ്ങളിൽ ഏകദേശം 30 ശതമാനം മാറ്റം വരുത്തി. അത് വലിയ സ്വാധീനം ചെലുത്തുന്നതായി തോന്നാം. എന്നാൽ അങ്ങനെയല്ല. ആ മാറ്റങ്ങൾ വെറും ബഹളങ്ങൾ (noise) മാത്രമായിരുന്നു. മൊത്തത്തിലുള്ള കൃത്യതയിൽ (accuracy) യാതൊരു പുരോഗതിയും ഉണ്ടായില്ല. എന്നാൽ മോഡലിന്റെ ആത്മവിശ്വാസത്തിൽ മാറ്റം വന്നു. RAG സിസ്റ്റത്തെ കൂടുതൽ ഉറപ്പോടെ സംസാരിക്കുന്നതായും, കൂടുതൽ സ്രോതസ്സുകൾ (sources) ഉദ്ധരിക്കുന്നതായും, ദൈർഘ്യമേറിയ ന്യായീകരണങ്ങൾ നൽകുന്നതായും മാറ്റി. എന്നാൽ അത് തെറ്റായ കാര്യങ്ങൾ തന്നെയായിരുന്നു.

ഈ അമിത ആത്മവിശ്വാസം ഒരു ഉൽപ്പന്ന റിസ്ക് (product risk) ആണ്. ഒരു ഉപയോക്താവ് ഉദ്ധരണികൾ (citations) കാണുമ്പോൾ മോഡൽ കൃത്യമായി പഠിച്ചുവെന്ന് കരുതിപ്പോകും. എന്നാൽ യഥാർത്ഥത്തിൽ, അത് കാണാൻ ഗൗരവമുള്ളതും എന്നാൽ വെറും ഊഹങ്ങൾ മാത്രമായതുമായ കാര്യങ്ങൾ ചെയ്യുകയായിരുന്നു.

ഒരു RAG വേരിയന്റ് ബാക്ക്ടെസ്റ്റ് ചെയ്തപ്പോൾ ഉണ്ടായ പാഠമാണ് ഏറ്റവും വേദനാജനകമായത്. അത് 11 ശതമാനം വാർഷിക ലാഭം കാണിച്ചു. പുറമെ നോക്കുമ്പോൾ ഇതൊരു വിജയകരമായ തന്ത്രമായി തോന്നാം. എന്നാൽ അതിന്റെ AUC (ROC കർവിന് താഴെയുള്ള പ്രദേശം, ക്ലാസിഫിക്കേഷൻ നൈപുണ്യത്തിന്റെ അളവ്) 0.486 ആയിരുന്നു. ഇത് ഒരു നാണയം എറിയുന്നതിനേക്കാൾ (0.500) മോശമാണ്. ആ ലാഭം ആ പ്രത്യേക വിപണി കാലഘട്ടത്തിന്റെ ഭാഗ്യം മാത്രമായിരുന്നു, ആവർത്തിക്കാൻ കഴിയുന്ന ഒരു നേട്ടമല്ല. ലാഭനഷ്ടം (P&L) മാത്രം ഒരു മാനദണ്ഡമായി ഉപയോഗിക്കുന്നത് അപകടകരമാണ്. വിപണികൾ എപ്പോഴും ഭാഗ്യവശാൽ ലഭിക്കുന്ന നേട്ടങ്ങൾ നൽകിക്കൊണ്ടിരിക്കും. ഭാഗ്യം കൊണ്ട് ലഭിച്ചതാണോ അതോ യഥാർത്ഥ കഴിവാണോ എന്ന് തിരിച്ചറിയാൻ നിങ്ങൾക്ക് സ്റ്റാറ്റിസ്റ്റിക്കൽ സ്കിൽ മെട്രിക്സ് (statistical skill metrics) ആവശ്യമാണ്.

ഓരോ ടൂളും യഥാർത്ഥത്തിൽ എന്താണ് ചെയ്യുന്നത് എന്ന് മനസ്സിലാക്കുക

അപ്പോൾ നമ്മൾ എവിടെ എത്തിനിൽക്കുന്നു? മോഡൽ പുതിയ വാക്കുകൾ, പ്രത്യേക ഫോർമാറ്റുകൾ അല്ലെങ്കിൽ ഒരു പ്രത്യേക ശൈലി പഠിക്കേണ്ടതുണ്ടെങ്കിൽ ഫൈൻ-ട്യൂണിംഗ് (fine-tuning) ഉപയോഗിക്കുക. മോഡലിന് അതിന്റെ വെയിറ്റുകൾക്ക് (weights) പുറത്തുള്ള വസ്തുതകൾ, കോഡ് റിപ്പോസിറ്ററികൾ അല്ലെങ്കിൽ ഇൻസ്റ്റിറ്റ്യൂഷണൽ മെമ്മറി എന്നിവയിലേക്ക് പ്രവേശനം ആവശ്യമാണെങ്കിൽ RAG ഉപയോഗിക്കുക. വിവരങ്ങൾ ഇല്ലാത്ത ഡാറ്റയിൽ നിന്ന് എന്തെങ്കിലും കണ്ടെത്താൻ ഈ ടൂളുകൾ ഉപയോഗിക്കരുത്. അടിസ്ഥാനപരമായ പാറ്റേൺ ഇല്ലെങ്കിൽ, റിട്രീവലും ഫൈൻ-ട്യൂണിംഗും വെറും ബഹളങ്ങളെ (noise) കൂടുതൽ ആകർഷകമായി അവതരിപ്പിക്കാൻ മാത്രമേ സഹായിക്കൂ.

യഥാർത്ഥ തടസ്സം

ഫൈൻ-ട്യൂണിംഗിനും RAG-നും വേണ്ട ഇൻഫ്രാസ്ട്രക്ചർ സജ്ജീകരിക്കുക എന്നത് മുമ്പത്തേക്കാളും എളുപ്പമായിരിക്കുന്നു. ഒരു ഉച്ചനേരത്തിനുള്ളിൽ നിങ്ങൾക്ക് ഒരു പൈപ്പ്‌ലൈൻ (pipeline) തയ്യാറാക്കാം. സാങ്കേതികവിദ്യയല്ല ഇനി തടസ്സം. മൂല്യനിർണ്ണയമാണ് (Evaluation). മിക്ക ടീമുകളും കഠിനമായ സ്റ്റാറ്റിസ്റ്റിക്കൽ ജോലികൾ ഒഴിവാക്കി പകരം വെറും കാഴ്ചയ്ക്ക് മാത്രം ഉപയോഗപ്രദമായ മെട്രിക്സുകൾ (vanity metrics) ആഘോഷിക്കുന്നു. അവർ ബുദ്ധിപരമായി തോന്നിക്കുന്നതും എന്നാൽ നിശബ്ദമായി പരാജയപ്പെടുന്നതുമായ സിസ്റ്റങ്ങൾ പുറത്തിറക്കുന്നു.

പണം ചിലവാക്കുന്നതിന് മുമ്പ് സത്യസന്ധമായ പരിശോധനകൾ നടത്തുക. നിങ്ങളുടെ മെട്രിക്സുകളെ ചോദ്യം ചെയ്യുക. ഓവർഫിറ്റിംഗ് (overfitting) ഉണ്ടോ എന്ന് പരിശോധിക്കുക. മോഡൽ യഥാർത്ഥത്തിൽ മെച്ചപ്പെട്ടതാണെന്ന് ഉറപ്പുവരുത്തുക,