എന്നെത്തന്നെ വഞ്ചിക്കാതെ എങ്ങനെ എനിക്ക് LLM പ്രോംപ്റ്റുകൾ A/B ടെസ്റ്റ് ചെയ്യാം

ഒരിക്കൽ ഞാൻ ഒരു സപ്പോർട്ട് അസിസ്റ്റന്റ് നിർമ്മിച്ചു, അത് മികച്ചതാണെന്ന് ഞാൻ കരുതി. ഞാൻ മുപ്പത് ടെസ്റ്റ് കേസുകൾ നടത്തി, പുതിയ പ്രോംപ്റ്റിന് ഉയർന്ന സ്കോർ ലഭിച്ചു, അങ്ങനെ ഞാൻ അത് പുറത്തിറക്കി.

ആറ് മണിക്കൂർ കഴിഞ്ഞപ്പോൾ, സപ്പോർട്ട് ക്യൂ പരാതികൾ കൊണ്ട് നിറഞ്ഞു. അന്ന് രാത്രി തന്നെ എനിക്ക് ആ മാറ്റം പിൻവലിക്കേണ്ടി വന്നു.

ആ ഉയർന്ന സ്കോർ വ്യാജമായിരുന്നു. യഥാർത്ഥ പുരോഗതിയെയും ഭാഗ്യത്തെയും വേർതിരിച്ചറിയാൻ മുപ്പത് ഉദാഹരണങ്ങൾ മതിയാവില്ല. ആ സംഖ്യ വെറും ഒരു ശബ്ദം (noise) മാത്രമായിരുന്നു.

ആ തെറ്റ് ആവർത്തിക്കാതെ പ്രോംപ്റ്റുകൾ എങ്ങനെ ടെസ്റ്റ് ചെയ്യാം എന്ന് ഇതാ:

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

  • രണ്ട് വേർഷനുകൾക്കും ഒരേ ചോദ്യങ്ങൾ തന്നെ ഉപയോഗിക്കുക. വേർഷൻ A-യ്ക്ക് ഒരു കൂട്ടം ചോദ്യങ്ങളും വേർഷൻ B-യ്ക്ക് മറ്റൊരു കൂട്ടം ചോദ്യങ്ങളും നൽകരുത്. ചില ചോദ്യങ്ങൾ മറ്റുള്ളവയേക്കാൾ കഠിനമായിരിക്കും. വേർഷൻ B-ക്ക് എളുപ്പമുള്ള ചോദ്യങ്ങളാണ് ലഭിക്കുന്നതെങ്കിൽ, അത് മോശമാണെങ്കിൽ പോലും മികച്ചതായി തോന്നും. രണ്ട് വേർഷനുകളിലൂടെയും ഒരേ ചോദ്യങ്ങൾ തന്നെ കടത്തിവിടുക.

  • ശരാശരി (average) മാത്രം നോക്കാതെ പരിധി (range) ശ്രദ്ധിക്കുക. ഒരു വിജയം എത്രത്തോളം വലുതാണെന്ന് ശരാശരിയിൽ നിന്ന് മനസ്സിലാക്കാൻ കഴിയില്ല. ഏറ്റവും കുറഞ്ഞതും ഏറ്റവും കൂടിയതുമായ സാധ്യതയുള്ള പുരോഗതിയുടെ പരിധി റിപ്പോർട്ട് ചെയ്യുക. ആ പരിധിയിൽ പൂജ്യം (zero) ഉൾപ്പെടുന്നുണ്ടെങ്കിൽ, അത് പുറത്തിറക്കരുത്.

  • ശരിയായ സ്കോറിംഗ് രീതി തിരഞ്ഞെടുക്കുക. • ഗുണനിലവാരം അളക്കാൻ ഒരു ചെക്ക്‌ലിസ്റ്റ് ഉപയോഗിക്കുക. • ടോൺ (tone) അല്ലെങ്കിൽ സഹായക്ഷമത (helpfulness) പോലുള്ള കാര്യങ്ങൾക്കായി സൈഡ്-ബൈ-സൈഡ് (side-by-side) താരതമ്യം ഉപയോഗിക്കുക.

  • ഒന്നിലധികം വേർഷനുകൾ ഉണ്ടെങ്കിൽ ഒരു bandit ഉപയോഗിക്കുക. നിങ്ങൾക്ക് മൂന്നോ അതിലധികമോ വേർഷനുകൾ ഉണ്ടാവുകയും ഉപയോക്താക്കളുടെ ബുദ്ധിമുട്ട് കുറയ്ക്കണമെന്നുണ്ടാവുകയും ചെയ്താൽ ഒരു bandit ഉപയോഗിക്കുക. ഇത് പഠിച്ചുകൊണ്ടിരിക്കെ തന്നെ വിജയിക്കുന്ന വേർഷനിലേക്ക് കൂടുതൽ ട്രാഫിക് അയക്കുന്നു. ഇത് ഉപയോക്താക്കൾക്ക് ആഴ്ചകളോളം മോശം ഉത്തരങ്ങൾ ലഭിക്കുന്നത് തടയുന്നു.

ഈ കെണികൾ ഒഴിവാക്കുക:

  • പരിധി (range) ഇല്ലാതെ ശരാശരികൾ താരതമ്യം ചെയ്യുന്നത്.
  • വ്യത്യസ്ത വേർഷനുകൾക്കായി വ്യത്യസ്ത ചോദ്യങ്ങൾ ഉപയോഗിക്കുന്നത്.
  • ഒരു ടെസ്റ്റിനിടെ സ്കോറർ മാറ്റുന്നത്.
  • സംഖ്യകൾ അനുകൂലമായി കാണുന്ന നിമിഷം തന്നെ ടെസ്റ്റ് നിർത്തുന്നത്.
  • ഒരേസമയം ഒരുപാട് മെട്രിക്സുകൾ ശ്രദ്ധിക്കുന്നത്. ഇത് വ്യാജമായ ഒരു വിജയം കാണാനുള്ള സാധ്യത വർദ്ധിപ്പിക്കുന്നു.
  • മനുഷ്യന്റെ വിധിതീർപ്പുമായി (human judgment) ഒത്തുനോക്കാതെ ഒരു സ്കോററെ വിശ്വസിക്കുന്നത്.

ടെസ്റ്റ് നടത്തുക എന്നതല്ല പ്രയാസകരമായ കാര്യം. ഫലം യഥാർത്ഥമാണോ എന്ന് തിരിച്ചറിയുന്നതാണ് പ്രയാസകരമായ കാര്യം.

Source: https://dev.to/kartik-nvjk/how-i-ab-test-llm-prompts-without-fooling-myself-528f

Optional learning community: https://t.me/GyaanSetuAi