𝗔𝗜 𝗠𝗼𝗱𝗲𝗹 𝗙𝗮𝗶𝗹𝗼𝘃𝗲𝗿 𝗗𝗿𝗶𝗹𝗹𝘀: 𝗞𝗲𝗲𝗽 𝗔𝗴𝗲𝗻𝘁𝘀 𝗨𝘀𝗲𝗳𝘂𝗹 𝗪𝗵𝗲𝗻 𝗣𝗿𝗼𝘃𝗶𝗱𝗲𝗿𝘀 𝗕𝗿𝗲𝗮𝗸

ഒരു ഡയഗ്രാമിൽ മാത്രം പ്രവർത്തിക്കുന്ന മോഡൽ ഫെയിലോവർ എന്നത് പ്രതിരോധശേഷിയല്ല (resilience). അത് മികച്ച ബ്രാൻഡിംഗുള്ള ഒരു പ്ലാൻ മാത്രമാണ്.

നിങ്ങളുടെ ഉൽപ്പന്നം AI ഏജന്റുകൾ ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ, ഒരു പ്രൊവൈഡറുടെ വേഗത കുറയുന്നതോ അല്ലെങ്കിൽ റേറ്റ്-ലിമിറ്റ് (rate-limit) വർദ്ധിക്കുന്നതോ ഉപഭോക്താവിന്റെ അനുഭവം നശിപ്പിച്ചേക്കാം. യഥാർത്ഥ അപകടം പൂർണ്ണമായ തകരാറല്ല (outage). അപകടം പകുതി മാത്രം പ്രവർത്തിക്കുന്ന ഒരു ഫെയിലോപ്പ് ആണ്. ഒരു ബാക്കപ്പ് മോഡൽ ഉപയോക്താവിനെ അറിയിക്കാതെ ഡാറ്റാ ഫോർമാറ്റുകൾ മാറ്റുകയോ, ടൂൾ സ്റ്റേറ്റ് (tool state) നഷ്ടപ്പെടുത്തുകയോ, സൈറ്റേഷനുകൾ (citations) ഒഴിവാക്കുകയോ ചെയ്യുമ്പോഴാണ് ഇത് സംഭവിക്കുന്നത്.

പ്രൊഡക്ഷൻ ട്രാഫിക് കാരണം പ്രായോഗികമായി പാഠങ്ങൾ പഠിക്കേണ്ടി വരുന്നതിന് മുമ്പ് തന്നെ നിങ്ങൾ പ്രായോഗികമായ ഫെയിലോവർ ഡ്രില്ലുകൾ നടത്തണം.

എല്ലാ മോഡലുകളെയും പരസ്പരം മാറ്റാൻ കഴിയുന്നവയാക്കി മാറ്റുക എന്നതല്ല ലക്ഷ്യം. പ്രധാന മോഡൽ പരാജയപ്പെടുമ്പോൾ വർക്ക്ഫ്ലോ സുരക്ഷിതവും കൃത്യവുമായാണ് നിലനിർത്തുക എന്നതാണ് ലക്ഷ്യം.

മിക്ക ടീമുകളും ഒരു ലളിതമായ രീതിയാണ് ഉപയോഗിക്കുന്നത്: ആദ്യം പ്രൈമറി മോഡൽ പരീക്ഷിക്കുക, എന്നിട്ട് ഒരു ബാക്കപ്പ്, അതിനുശേഷം ഒരു എറർ കാണിക്കുക. ഇത് AI സിസ്റ്റങ്ങളിലെ യഥാർത്ഥ പ്രശ്നങ്ങളെ അവഗണിക്കുന്നു. AI വളരെ സൂക്ഷ്മമായ രീതികളിലാണ് പരാജയപ്പെടുന്നത്:

• ഒരു ബാക്കപ്പ് മോഡൽ വ്യത്യസ്ത ഫീൽഡ് അർത്ഥങ്ങളുള്ള JSON നൽകുന്നു. • കുറഞ്ഞ ചിലവുള്ള ഒരു മോഡൽ നിങ്ങളുടെ ടൂൾ പോളിസികൾ അവഗണിക്കുന്നു. • ഒരു പ്രൊവൈഡർ ടോക്കണുകൾ വളരെ സാവധാനം സ്ട്രീം ചെയ്യുന്നു. • ഒരു ഫെയിലോപ്പ് മോഡലിന് ഒരേ ഫംഗ്ഷൻ-കോളിംഗ് (function-calling) ഫോർമാറ്റ് ഇല്ല. • ഏജന്റ് വീണ്ടും ശ്രമിച്ചുകൊണ്ടിരിക്കുകയും ഉപയോക്താവിന്റെ ബജറ്റ് തീർക്കുകയും ചെയ്യുന്നു.

ഒരു AI മോഡൽ ഫെയിലോവർ ഡ്രിൽ എന്നത് ആസൂത്രിതമായ ഒരു പരീക്ഷണമാണ്. ഉൽപ്പന്നം സുരക്ഷിതമാണോ എന്ന് പരിശോധിക്കുന്നതിനായി നിങ്ങൾ മനഃപൂർവ്വം ഒരു മോഡൽ പാത്ത് തകരാറിലാക്കുന്നു.

ഒരു നല്ല ഡ്രിൽ ഇവ പരിശോധിക്കുന്നു:

  • വർക്ക്ഫ്ലോ തുടർച്ചയായി പ്രവർത്തിക്കുന്നുണ്ടോ?
  • ഇത് സ്കീമയും (schema) ടൂൾ സ്റ്റേറ്റും നിലനിർത്തുന്നുണ്ടോ?
  • ഇത് ചിലവ്, ലേറ്റൻസി (latency) ബജറ്റുകൾക്കുള്ളിൽ നിൽക്കുന്നുണ്ടോ?
  • അടുത്ത തവണയ്ക്കായി ഇത് ഒരു റിഗ്രഷൻ ടെസ്റ്റ് (regression test) തയ്യാറാക്കുന്നുണ്ടോ?

എല്ലാ പ്രോംപ്റ്റുകളും ഒന്നിലധികം പ്രൊവൈഡർമാരുമായി പ്രവർത്തിപ്പിക്കാൻ ശ്രമിച്ചുകൊണ്ട് തുടങ്ങരുത്. പരാജയം വിശ്വാസം തകർക്കുന്ന വർക്ക്ഫ്ലോകളിൽ നിന്ന് തുടങ്ങുക.

ഉയർന്ന മുൻഗണനയുള്ള വർക്ക്ഫ്ലോകൾ:

  • ഉപഭോക്താക്കളുമായി സംവദിക്കുന്ന ചാറ്റ്
  • റിപ്പോർട്ട് തയ്യാറാക്കൽ
  • ടൂളുകൾ ഉപയോഗിക്കുന്ന ഏജന്റ് വർക്ക്ഫ്ലോകൾ
  • സൈറ്റേഷനുകളോടു കൂടിയ RAG ഉത്തരങ്ങൾ
  • സ്ട്രക്ചേർഡ് ഫീൽഡുകളിലേക്കുള്ള ഡാറ്റാ എക്സ്ട്രാക്ഷൻ

മികച്ച ഡിസൈൻ തുടങ്ങുന്നത് മോഡലുകളുടെ പേരുകളുടെ പട്ടികയിൽ നിന്നല്ല, മറിച്ച് ഒരു കോൺട്രാക്റ്റിൽ (contract) നിന്നാണ്. എല്ലാ പ്രൊവൈഡർമാർക്കും ഒരേപോലെ ബാധകമായ കാര്യങ്ങളാണ് ഒരു ഫെയിലോപ്പ് കോൺട്രാക്റ്റ് നിർവചിക്കുന്നത്. ഒരു സപ്പോർട്ട് ഏജന്റിനെ സംബന്ധിച്ചിടത്തോളം ഇതിൽ താഴെ പറയുന്നവ ഉൾപ്പെട്ടേക്കാം:

  • ഇൻപുട്ട്, ഔട്ട്പുട്ട് രൂപങ്ങൾ (shapes)
  • കോൺഫിഡൻസ് ലെവലുകളും സൈറ്റേഷനുകളും
  • ടൂൾ പെർമിഷനുകളും ബാക്കിയുള്ള ബജറ്റും
  • ക്വാളിറ്റി ഗേറ്റുകളും വാലിഡേഷൻ നിയമങ്ങളും

ചിലപ്പോൾ ശരിയായ ഫെയിലോപ്പ് മറ്റൊരു മോഡൽ ആകണമെന്നില്ല. അത് താഴെ പറയുന്നവയാകാം:

  • ഉപയോക്താവിനോട് സ്ഥിരീകരണം ചോദിക്കുക
  • ഭാഗികമായ ഫലം നൽകുക
  • ജോലി പിന്നീട് ചെയ്യാൻ ക്യൂ ചെയ്യുക
  • വർക്ക്ഫ്ലോ മനുഷ്യന്റെ പരിശോധനയ്ക്കായി (human review) അയക്കുക

ഓരോ പരാജയവും മറ്റൊരു മോഡൽ പരീക്ഷിക്കാനുള്ള കാരണമായി കാണുന്നത് നിർത്തുക. പിശകുകളും ഫോർമാറ്റുകളും ക്രമപ്പെടുത്താൻ (normalize) ഒരു മോഡൽ അഡാപ്റ്റർ (model adapter) ഉപയോഗിക്കുക. ഇത് നിങ്ങളുടെ പ്രധാന ലോജിക് മാറ്റാതെ തന്നെ പരാജയങ്ങൾ സിമുലേറ്റ് ചെയ്യാൻ സഹായിക്കുന്നതിനാൽ നിങ്ങളുടെ ഡ്രില്ലുകൾ (drills) എളുപ്പമാക്കുന്നു.

തുടങ്ങാനായി ഈ മൂന്ന് ഡ്രില്ലുകൾ പരീക്ഷിക്കുക:

  1. The Timeout Drill: പ്രൈമറി മോഡലിനെ സ്ലീപ്പ് മോഡിലേക്ക് മാറ്റാൻ നിർബന്ധിക്കുക. ലേറ്റൻസി ബജറ്റിനുള്ളിൽ (latency budget) തന്നെ ഫാള்பാക്ക് (fallback) നടക്കുന്നുണ്ടെന്ന് ഉറപ്പുവരുത്തുക.
  2. The Rate Limit Drill: ഒരു 429 എറർ ഉണ്ടാക്കുക. നിങ്ങളുടെ സിസ്റ്റം ബാക്ക്ഓഫ് (backoff) ഉപയോഗിക്കുന്നുണ്ടെന്നും ടെനന്റ് ബജറ്റ് (tenant budget) സംരക്ഷിക്കുന്നുണ്ടെന്നും പരിശോധിക്കുക.
  3. The Schema Drill: ഒരു മോഡൽ ഇൻവാലിഡ് JSON നൽകാൻ നിർബന്ധിക്കുക. നിങ്ങളുടെ സിസ്റ്റം ഔട്ട്പുട്ട് പരിശോധിക്കുന്നുണ്ടെന്നോ (validate) അല്ലെങ്കിൽ വർക്ക്ഫ്ലോ സുരക്ഷിതമായി നിർത്തുന്നുണ്ടെന്നോ ഉറപ്പുവരുത്തുക.

ഉപയോക്താക്കൾക്ക് നിങ്ങളുടെ പ്രൊവൈഡർ വിവരങ്ങൾ അറിയേണ്ടതില്ല. അവർക്ക് വേണ്ടത് സത്യസന്ധമായ പെരുമാറ്റമാണ്.

മോശം സന്ദേശം: എന്തോ പിശക് സംഭവിച്ചു. നല്ല സന്ദേശം: എനിക്ക് ഇപ്പോഴും സഹായിക്കാൻ കഴിയും, എന്നാൽ തത്സമയ പ്രവർത്തനങ്ങൾ (live actions) താൽക്കാലികമായി പരിമിതമാണ്. നിങ്ങളുടെ പരിശോധനയ്ക്കായി അടുത്ത ഘട്ടം എനിക്ക് തയ്യാറാക്കാൻ കഴിയും.

എല്ലാം ശരിയാണെന്ന് നടിക്കുന്നതിലൂടെയല്ല, മറിച്ച് വ്യക്തമായ അതിർവരമ്പുകൾ നിശ്ചയിക്കുന്നതിലൂടെയാണ് വിശ്വാസം വളർത്തേണ്ടത്.

Source: https://dev.to/jackm-singularity/ai-model-failover-drills-keep-agents-useful-when-providers-break-1p5j

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