Modal-ൽ GLM-5.2 വിന്യസിക്കുന്നു

GLM-5.2 എന്നത് വളരെ വലിയൊരു ഓപ്പൺ-വെയ്റ്റ്സ് (open-weights) മോഡലാണ്. സങ്കീർണ്ണമായ റീസണിംഗിനും (reasoning) കോഡിംഗിനും വേണ്ടി ഇത് Mixture-of-Experts (MoE) ആർക്കിടെക്ചർ ഉപയോഗിക്കുന്നു. എഞ്ചിനീയറിംഗ് ജോലികളിൽ Claude 3.5 Sonnet പോലുള്ള മോഡലുകൾക്ക് ഇതിന് തുല്യമായ പ്രകടനം കാഴ്ചവെക്കാൻ സാധിക്കും.

700B പാരാമീറ്ററുകളുള്ള ഈ മോഡൽ സെൽഫ്-ഹോസ്റ്റ് ചെയ്യാൻ 8x NVIDIA H200 GPUs ആവശ്യമാണ്. Modal-ൽ ഒരു സെർവർലെസ്സ് (serverless) രീതി ഉപയോഗിച്ച് ഞാൻ ഇത് എങ്ങനെ വിന്യസിച്ചു എന്ന് താഴെ വിവരിക്കുന്നു.

ചെലവ് ലാഭിക്കുന്ന രീതി ഒരു ഡെഡിക്കേറ്റഡ് 8x H200 നോഡ് വാടകയ്‌ക്കെടുക്കുന്നത് ചെലവേറിയതാണ്.

  • RunPod-ന് മണിക്കൂറിന് $35.12 ആണ് ചെലവ്.
  • Modal-ന് മണിക്കൂറിന് $36.31 ആണ് ചെലവ്.

എന്നിരുന്നാലും, Modal സെക്കൻഡുകൾ കണക്കിലാണ് ബില്ല് ചെയ്യുന്നത്. നിങ്ങൾ ഉപയോഗിക്കാത്ത സമയത്ത് ഇത് സ്കെയിൽ ടു സീറോ (scale to zero) ആകുന്നു. 20 മിനിറ്റ് നീണ്ടുനിൽക്കുന്ന ഒരു ഡെവലപ്‌മെന്റ് സെഷന് ഏകദേശം $12.00 മാത്രമേ ചെലവ് വരുന്നുള്ളൂ. നിങ്ങൾ ഉപയോഗിക്കാത്തപ്പോൾ ചെലവ് $0.00 ആണ്.

ക്വാണ്ടൈസേഷൻ ട്രേഡ്-ഓഫുകൾ ഒരു നോഡിൽ തന്നെ മുഴുവൻ BF16 മോഡലും പ്രവർത്തിപ്പിക്കാൻ കഴിയില്ല. ഇതിന് 1.5 TB VRAM ആവശ്യമാണ്. മികച്ച ബാലൻസ് കണ്ടെത്താനായി ഞാൻ വിവിധ ഫോർമാറ്റുകൾ പരീക്ഷിച്ചു:

  • FP8: ഏകദേശം ~700 GB ആവശ്യമാണ്. ഇത് 99.2% കൃത്യത നിലനിർത്തുന്നു. ഇതാണ് ഏറ്റവും മികച്ച തിരഞ്ഞെടുപ്പ്. വേഗത വർദ്ധിപ്പിക്കുന്നതിനായി ഇത് Hopper നേറ്റീവ് Tensor Cores ഉപയോഗിക്കുന്നു.
  • INT8: ഏകദേശം ~750 GB ആവശ്യമാണ്. ഹാർഡ്‌വെയർ ഒപ്റ്റിമൈസേഷൻ ഇല്ലാത്തതിനാൽ ഇത് വേഗത കുറഞ്ഞതാണ്.
  • INT4: ഏകദേശം ~400 GB ആവശ്യമാണ്. റീസണിംഗ് ജോലികളിൽ ഇതിന്റെ കൃത്യത ഗണ്യമായി കുറയുന്നു.

എന്തുകൊണ്ട് സെൽഫ്-ഹോസ്റ്റ് ചെയ്യണം?

  1. സ്വകാര്യത: നിങ്ങളുടെ സെൻസിറ്റീവ് ആയ കോഡുകൾ സ്വന്തം സുരക്ഷിത ശൃംഖലയിൽ തന്നെ സൂക്ഷിക്കാം.
  2. പരിധികളില്ല: പബ്ലിക് API-കളിൽ കാണുന്ന റേറ്റ് ലിമിറ്റുകളും (rate limits) കോൺടെക്സ്റ്റ് തടസ്സങ്ങളും (context throttling) ഒഴിവാക്കാം.
  3. സ്റ്റേബിൾ ക്യാഷ്: GPU മെമ്മറി നിങ്ങളുടെ നിയന്ത്രണത്തിലായിരിക്കും. നിങ്ങളുടെ കോൺടെക്സ്റ്റ് ക്യാഷ് (context cache) എപ്പോഴും സജീവവും സ്ഥിരതയുള്ളതുമായിരിക്കും.

സാങ്കേതിക പാഠങ്ങൾ

  • ഇംപോർട്ട് പിശകുകൾ പരിഹരിക്കുക: ക്രാഷുകൾ ഒഴിവാക്കാൻ Dockerfile-ൽ നിന്ന് പഴയ typing_extensions മോഡ്യൂൾ എനിക്ക് നീക്കം ചെയ്യേണ്ടി വന്നു.
  • ലോഡിംഗ് വേഗത്തിലാക്കുക: പ്രീഫെച്ച് (prefetch) സ്ട്രാറ്റജി ഉപയോഗിച്ചതിലൂടെ മോഡൽ ലോഡ് ചെയ്യാനുള്ള സമയം 12 മിനിറ്റിൽ നിന്ന് 1 മിനിറ്റായി കുറയ്ക്കാൻ സാധിച്ചു.
  • Eager Mode ഉപയോഗിക്കുക: മാത്തമാറ്റിക്കൽ ഗ്രാഫുകൾ കംപൈൽ ചെയ്യാൻ 20 മിനിറ്റ് എടുത്തു. എന്നാൽ Eager mode 4.5 മിനിറ്റിനുള്ളിൽ ആരംഭിക്കുന്നു. ആദ്യത്തെ ക്വറിയിൽ ചെറിയൊരു താമസം ഉണ്ടായേക്കാം, എങ്കിലും വേഗത്തിലുള്ള സ്റ്റാർട്ടപ്പിന് ഇത് അനുയോജ്യമാണ്.

ഫലം ഈ മോഡൽ വലിയ ഫയലുകൾ എളുപ്പത്തിൽ കൈകാര്യം ചെയ്യുന്നു. 1,000-ലധികം വരികളുള്ള Python കോഡ് ഉപയോഗിച്ച് ഞാൻ ഇത് പരീക്ഷിച്ചു. ഇത് ലോജിക് വിശകലനം ചെയ്യുകയും കൃത്യമായ ആർക്കിടെക്ചറൽ അനാലിസിസ് നൽകുകയും ചെയ്തു. ഒറ്റ പാസ്സിൽ കസ്റ്റം ഓഡിയോ ഉൾപ്പെടുത്തിയ ഒരു ഫങ്ഷണൽ ഗെയിം പോലും ഇത് നിർമ്മിച്ചു.

ഇൻഡിവിജ്വൽ ഡെവലപ്പർമാർക്കും ഇപ്പോൾ ഫ്രോണ്ടിയർ AI (frontier AI) സെൽഫ്-ഹോസ്റ്റ് ചെയ്യാൻ സാധിക്കും. കുറഞ്ഞ ചെലവിൽ നിങ്ങൾക്ക് സ്വകാര്യതയും കരുത്തും ലഭിക്കുന്നു.

Source: https://dev.to/silvestre-po/deploying-glm-52-fp8-700b-moe-on-modal-serverless-8x-h200s-trade-offs-and-lessons-learned-4m7i

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