പ്രൊഡക്ഷൻ-ഗ്രേഡ് ഇൻഫറൻസ് സർവീസ് നിർമ്മിച്ച ഒരു ടീം, DigitalOcean Inference-ൽ ആറ് ലാംഗ്വേജ് മോഡലുകൾ 48 മണിക്കൂർ നേരത്തേക്ക് പ്രവർത്തിപ്പിച്ചു. പ്രതിമാസം $0.20 മാത്രം ചിലവുള്ള "tiny" മോഡൽ, വിലകൂടിയ മറ്റ് ഓപ്ഷനുകളെക്കാൾ മികച്ച പ്രകടനം കാഴ്ചവെച്ചു. ഇത് അവരുടെ ഡ്രോപ്‌ലെറ്റുകളുടെ (droplets) 8 GB മെമ്മറി പരിധിക്കുള്ളിൽ തന്നെ നിലനിന്നു, കൂടാതെ 70 B വേരിയന്റിനെ തകർത്ത ക്രാഷുകൾ ഒഴിവാക്കി. വളരെ കുറഞ്ഞ ചിലവിൽ ഉപയോഗപ്രദമായ ലേറ്റൻസിയും (latency) കൃത്യതയും (accuracy) ഇത് നൽകി.

ഈ പരീക്ഷണം പ്രധാനമാകുന്നത് എന്തുകൊണ്ട്?

ലാർജ് ലാംഗ്വേജ് മോഡലുകളെ (LLMs) API ആയി ഉപയോഗിക്കുന്ന സ്ഥാപനങ്ങൾ പലപ്പോഴും വലിയതും വിലകൂടിയതുമായ മോഡലുകളാണ് മികച്ച അനുഭവം നൽകുക എന്ന് കരുതുന്നു. എന്നാൽ യഥാർത്ഥത്തിൽ, പ്രൊഡക്ഷൻ എൻവയോൺമെന്റുകളിൽ മെമ്മറി, കൺകറൻസി (concurrency), അപ്‌ടൈം (uptime) എന്നിവ സന്തുലിതമാക്കേണ്ടതുണ്ട്. പേപ്പറിൽ മികച്ചതായി തോന്നുന്ന ഒരു മോഡൽ, ഔട്ട്-ഓഫ്-മെമ്മറി (OOM) കില്ലുകൾക്ക് കാരണമാവുകയോ കോൾഡ് സ്റ്റാർട്ട് സമയത്ത് സർവീസിനെ തടസ്സപ്പെടുത്തുകയോ ചെയ്താൽ അത് ഒരു ബാധ്യതയായി മാറും. പരിമിതമായ ഹാർഡ്‌വെയറിൽ ഒരു വില കുറഞ്ഞ മോഡൽ മാത്രമായിരിക്കാം ഏക പ്രായോഗികമായ ഓപ്ഷൻ എന്ന് ഈ പരീക്ഷണം കാണിച്ചുതരുന്നു.

ആറ് മത്സരാർത്ഥികൾ

മോഡൽ പ്രതിമാസ ചിലവ് ശരാശരി ലേറ്റൻസി കൃത്യത* RAM ഉപയോഗം / ക്രാഷ്
mistral-tiny $0.20 120 ms 88 % 1.2 GB
mistral-small $0.80 180 ms 91 % 2.4 GB
mistral-medium $2.50 250 ms 93 % 4.1 GB
mistral-large $5.00 300 ms 94 % 6.8 GB
llama-70b $8.00 450 ms 95 % CRASH
mixtral-8x7b $10.00 500 ms 96 % CRASH

*കൃത്യത എന്നത് ടീമിന്റെ ഇന്റേണൽ ബെഞ്ച്മാർക്ക് സ്യൂട്ടിലെ മോഡലുകളുടെ പ്രകടനത്തെ സൂചിപ്പിക്കുന്നു.

"tiny" മോഡലിന്റെ പ്രതിമാസ ചിലവ് കാൽ ഡോളറിൽ താഴെയായിരുന്നു, കൂടാതെ അത് 8 GB മെമ്മറി പരിധിക്കുള്ളിൽ തന്നെ നിലനിന്നു. ഏറ്റവും വലിയ രണ്ട് മോഡലുകളായ llama-70b, mixtral-8x7b എന്നിവ ആ പരിധി മറികടക്കുകയും ഹോസ്റ്റിനെ വീണ്ടും വീണ്ടും ക്രാഷ് ചെയ്യിപ്പിക്കുകയും ചെയ്തു. ഉയർന്ന കൃത്യത സ്കോറുകൾ ഉണ്ടായിരുന്നിട്ടും അവ ഉപയോഗശൂന്യമായി മാറി.

വലിയ മോഡലുകളെ തകർത്ത പ്രധാന പ്രശ്നങ്ങൾ

  • ഹാർഡ്-കോഡഡ് എൻഡ്പോയിന്റുകൾ (Hard-coded endpoints) – യഥാർത്ഥ ആർക്കിടെക്ചർ എല്ലാ റിക്വസ്റ്റുകളും ഒരു സിംഗിൾ മോഡലിലേക്ക് അയക്കുകയായിരുന്നു. ആ മോഡൽ പരാജയപ്പെട്ടപ്പോൾ മുഴുവൻ API-യും പ്രവർത്തനരഹിതമായി.
  • മെമ്മറി പരിധിയില്ല (No memory caps) – വലിയ മോഡലുകൾ ലഭ്യമായ എല്ലാ RAM-ഉം ഉപയോഗിച്ചെടുക്കുകയും മുന്നറിയിപ്പില്ലാതെ OOM കില്ലുകൾക്ക് കാരണമാവുകയും ചെയ്തു.
  • കോൾഡ്-സ്റ്റാർട്ട് ലേറ്റൻസി (Cold-start latency) – പുതിയൊരു മോഡലിലേക്കുള്ള ആദ്യത്തെ റിക്വസ്റ്റുകൾക്ക് പല സെക്കൻഡുകൾ എടുക്കുന്നത് സർവീസിന്റെ വേഗതയെ ബാധിച്ചു.
  • പരിധിയില്ലാത്ത കൺകറൻസി (Unbounded concurrency) – ഒരേസമയം വരുന്ന റിക്വസ്റ്റുകളുടെ എണ്ണം കൂടിയപ്പോൾ മെമ്മറിയും CPU-യും നിറയുകയും സിസ്റ്റം പരാജയപ്പെടുകയും ചെയ്തു.

യഥാർത്ഥ ലോഡിന് കീഴിൽ സർവീസിന് ഓൺലൈനിൽ നിലനിൽക്കാൻ കഴിയില്ലെങ്കിൽ, വെറും പെർഫോമൻസ് നമ്പറുകൾ കൊണ്ട് പ്രയോജനമില്ല.

ഡൈനാമിക് റൂട്ടിംഗ് പരിഹാരം (The Dynamic Routing Fix)

എഞ്ചിനീയർമാർ മൂന്ന് തത്വങ്ങൾ അടിസ്ഥാനമാക്കി റിക്വസ്റ്റ് പാത്ത് പുനർനിർമ്മിച്ചു:

  1. റൺടൈം മോഡൽ സെലക്ഷൻ (Runtime model selection) – ഒരു സ്റ്റാറ്റിക് എൻഡ്പോയിന്റ് ഉപയോഗിക്കുന്നതിന് പകരം, ഓരോ റിക്വസ്റ്റിനും അനുയോജ്യമായ മോഡൽ റൂട്ടർ തിരഞ്ഞെടുക്കുന്നു.
  2. ഹാർഡ്‌വെയർ അവയർനെസ് (Hardware awareness) – ഓരോ റിക്വസ്റ്റിനും ഒരു മെമ്മറി ബജറ്റ് നൽകുന്നു; ബാക്കിയുള്ള RAM-ൽ ഉൾക്കൊള്ളാൻ കഴിയുന്ന മോഡലുകളിലേക്ക് മാത്രമേ റൂട്ടർ റിക്വസ്റ്റ് അയക്കുന്നുള്ളൂ.
  3. ഫാള்பാക്ക് ചെയിനുകൾ (Fallback chains) – തിരഞ്ഞെടുത്ത മോഡൽ പരാജയപ്പെടുകയോ ടൈമൗട്ട് ആകുകയോ ചെയ്താൽ, റൂട്ടർ സ്വയമേവ അടുത്ത മികച്ച മോഡലിൽ വീണ്ടും ശ്രമിക്കുന്നു.

പരിഷ്കരിച്ച ആർക്കിടെക്ചർ നാല് സുരക്ഷാ സംവിധാനങ്ങൾ കൂടി ചേർത്തു:

  • പരിമിതമായ കൺകറൻസി (Bounded concurrency) – ഒരു സെമാഫോ (semaphore) സമാന്തര ഇൻഫറൻസുകളെ പരിമിതപ്പെടുത്തുന്നു, ഇത് മെമ്മറി തീർന്നുപോകുന്നത് തടയുന്നു.
  • ഫെയിൽ-ഫാസ്റ്റ് ടൈമൗട്ടുകൾ (Fail-fast timeouts) – ഓരോ റിക്വസ്റ്റിനും കർശനമായ ടൈമറുകൾ നിശ്ചയിച്ചിട്ടുണ്ട്, ഇത് സാവധാനത്തിൽ പ്രവർത്തിക്കുന്ന മോഡലുകളെ പ്രക്രിയ തടസ്സപ്പെടുത്തുന്നതിന് മുമ്പ് തന്നെ നിർത്തുന്നു.
  • മെമ്മറി ബഫറുകൾ (Memory buffers) – സിസ്റ്റം ഡ്രോപ്‌ലെറ്റിന്റെ RAM-ൽ 20% ഒഴിവ് സംരക്ഷിക്കുന്നു, ഇത് OS ഓവർഹെഡിനും പെട്ടെന്നുണ്ടാകുന്ന വർദ്ധനവുകൾക്കുമായി ഉപയോഗിക്കുന്നു.
  • പ്രീ-വാമിംഗ് (Pre-warming) – സ്റ്റാർട്ടപ്പ് സമയത്ത് ഓരോ മോഡലിലേക്കും ഡമ്മി റിക്വസ്റ്റുകൾ അയക്കുന്നു, ഇത് ആദ്യത്തെ കോൾഡ്-സ്റ്റാർട്ട് കാലതാമസം ഒഴിവാക്കുന്നു.

ഈ നടപടികൾ ഒരു ദുർബലമായ പൈപ്പ്‌ലൈനിനെ, കൃത്യതയിൽ വലിയ വിട്ടുവീഴ്ച ചെയ്യാതെ തന്നെ 8 GB ഡ്രോപ്‌ലെറ്റുകളിൽ ട്രാഫിക് നിലനിർത്താൻ കഴിയുന്ന കരുത്തുറ്റ ഒരു സർവീസാക്കി മാറ്റി.

ഇനി ശ്രദ്ധിക്കേണ്ട കാര്യങ്ങൾ

  • ഹാർഡ്‌വെയർ സ്കെയിലിംഗ് (Hardware scaling) – ക്ലൗഡ് പ്രൊവൈഡർമാർ കുറഞ്ഞ വിലയിൽ വലിയ മെമ്മറി ഡ്രോപ്‌ലെറ്റുകൾ വാഗ്ദാനം ചെയ്യുമ്പോൾ, വലിയ മോഡലുകളുടെ ലാഭക്ഷമത മാറാൻ സാധ്യതയുണ്ട്.
  • മോഡൽ കംപ്രഷൻ (Model compression) – ക്വാണ്ടൈസേഷൻ (Quantization) അല്ലെങ്കിൽ നോളജ് ഡിസ്റ്റിലേഷൻ (knowledge distillation) പോലുള്ള സാങ്കേതികവിദ്യകൾ ഉയർന്ന കൃത്യതയുള്ള മോഡലുകളുടെ RAM ഉപയോഗം കുറയ്ക്കുകയും അവ ചെറിയ മെഷീനുകളിൽ പ്രവർത്തിപ്പിക്കാൻ സഹായിക്കുകയും ചെയ്തേക്കാം.
  • അഡാപ്റ്റീവ് റൂട്ടിംഗ് (Adaptive routing) – ഭാവിയിലെ റൂട്ടറുകൾക്ക് ഒരു പ്രത്യേക ക്വറിക്ക് ഏത് മോഡലാണ് ഏറ്റവും മികച്ചത് എന്ന് തത്സമയം പഠിച്ചെടുക്കാൻ സാധിക്കും, ഇത് കൃത്യതയും ചിലവും തമ്മിലുള്ള സന്തുലിതാവസ്ഥ കൂടുതൽ ഓട്ടോമേറ്റ് ചെയ്യും.

ഇതിലെ പാഠം ലളിതമാണ്: പ്രൊഡക്ഷനിൽ, സമ്മർദ്ദഘട്ടത്തിലും തകരാതെ പ്രവർത്തിക്കുന്ന മോഡലാണ് പേപ്പറിൽ മികച്ചതായി കാണപ്പെടുന്ന മോഡലിനേക്കാൾ കൂടുതൽ മൂല്യം നൽകുന്നത്. വെറും കൃത്യത മാത്രം നോക്കാതെ, നിങ്ങളുടെ വിന്യാസ പരിമിതികൾ (deployment constraints) അടിസ്ഥാനമാക്കി ഒരു മോഡൽ തിരഞ്ഞെടുക്കുക.