Groq ഉപയോഗിക്കുന്നത് ഒരു ചതി പോലെ തോന്നുന്നത് എന്തുകൊണ്ട്

ഞാൻ അടുത്തിടെ LangGraph ഉപയോഗിച്ച് ഒരു multi-agent pipeline നിർമ്മിച്ചു. ഞാൻ Groq-നെ സാധാരണ LLM പ്രൊവൈഡർമാരുമായി താരതമ്യം ചെയ്തു. അവ തമ്മിലുള്ള വ്യത്യാസം വളരെ വലുതായിരുന്നു.

മറ്റ് പ്രൊവൈഡർമാർ ഒരു സാധാരണ API call പോലെയാണ്. നിങ്ങൾ ഒരു റിക്വസ്റ്റ് അയക്കുന്നു, എന്നിട്ട് ടെക്സ്റ്റിനായി കാത്തിരിക്കുന്നു. എന്നാൽ Groq ഉപയോഗിക്കുന്നത് ഒരു ചതി പോലെയാണ്. ഞാൻ എന്റെ പ്രോംപ്റ്റ് വായിച്ചു തീരുന്നതിന് മുമ്പ് തന്നെ ഒരു 70B മോഡൽ പൂർണ്ണമായ മറുപടി നൽകി.

Groq-ന് മികച്ച GPUs ഉണ്ടെന്നാണ് മിക്കവരും കരുതുന്നത്. അത് തെറ്റാണ്. Groq ഒട്ടും തന്നെ GPUs ഉപയോഗിക്കുന്നില്ല. അവർ LPU അഥവാ Language Processing Unit എന്ന് വിളിക്കപ്പെടുന്ന ഒരു പുതിയ ചിപ്പ് നിർമ്മിച്ചു.

ഗ്രാഫിക്സിനും മോഡലുകൾ ട്രെയിൻ ചെയ്യുന്നതിനുമാണ് GPUs നിർമ്മിച്ചിരിക്കുന്നത്. വലിയ അളവിലുള്ള ഡാറ്റാ ബാച്ചുകൾ പ്രോസസ്സ് ചെയ്യുമ്പോൾ അവ നന്നായി പ്രവർത്തിക്കും. എന്നാൽ റിയൽ-ടൈം ഇൻഫറൻസിന്റെ (real-time inference) കാര്യത്തിൽ അവ ബുദ്ധിമുട്ടുന്നു.

ഇതിന്റെ പ്രശ്നം "memory wall" ആണ്. ഒരു GPU-വിൽ, കമ്പ്യൂട്ട് കോറുകളിൽ (compute cores) നിന്ന് വേറിട്ട് മെമ്മറിയിലാണ് മോഡൽ വെയ്റ്റുകൾ (model weights) ഇരിക്കുന്നത്. ഡാറ്റ എത്തിച്ചേരാൻ വേണ്ടി ചിപ്പ് ഒരുപാട് സമയം കാത്തുനിൽക്കേണ്ടി വരുന്നു.

ചിപ്പിന് മുകളിൽ നേരിട്ട് മെമ്മറി വെച്ചുകൊണ്ട് Groq ഈ പ്രശ്നം പരിഹരിച്ചു. അവർ HBM-ന് പകരം SRAM ആണ് ഉപയോഗിക്കുന്നത്. ഇത് ബാൻഡ്‌വിഡ്ത്തിൽ (bandwidth) 10 മടങ്ങ് വ്യത്യാസം ഉണ്ടാക്കുന്നു. ലേറ്റൻസി (latency) കണക്കിലെടുക്കുമ്പോൾ ഇത് ഡാറ്റാ ആക്സസ് 20 മടങ്ങ് വേഗത്തിലാക്കുന്നു.

ഈ വേഗതയ്ക്ക് മറ്റൊരു കാരണമുണ്ട്: determinism.

GPUs ഡൈനാമിക് ഷെഡ്യൂളിംഗ് (dynamic scheduling) ആണ് ഉപയോഗിക്കുന്നത്. ചിപ്പ് പ്രവർത്തിച്ചുകൊണ്ടിരിക്കുമ്പോൾ എന്താണ് ചെയ്യേണ്ടതെന്ന് അത് തീരുമാനിക്കുന്നു. ഇത് ചെറിയ കാലതാമസമുണ്ടാക്കുന്നു. എന്നാൽ Groq ഒരു software-first സമീപനമാണ് സ്വീകരിക്കുന്നത്. അവരുടെ കംപൈലർ (compiler) ഓരോ ഓപ്പറേഷനും ഇൻസ്ട്രക്ഷനും മുൻകൂട്ടി കണക്കാക്കുന്നു. ചിപ്പ് മുൻകൂട്ടി നിശ്ചയിച്ച ഒരു ഷെഡ്യൂൾ പിന്തുടരുന്നു. അടുത്തതായി എന്താണ് ചെയ്യേണ്ടതെന്ന് ചിപ്പ് ചിന്തിക്കേണ്ടി വരുന്നില്ല.

ഫലങ്ങൾ സ്വയം സംസാരിക്കുന്നു: • Groq-ൽ Llama 2 70B സെക്കൻഡിൽ 300 ടോക്കണുകൾ എന്ന വേഗതയിൽ പ്രവർത്തിക്കുന്നു. • ഒരു Nvidia H100 ഇത് സെക്കൻഡിൽ 30–40 ടോക്കണുകൾ എന്ന വേഗതയിൽ പ്രവർത്തിപ്പിക്കുന്നു. • Groq-ൽ Llama 3 8B സെക്കൻഡിൽ 1,300-ലധികം ടോക്കണുകൾ എന്ന വേഗതയിൽ എത്തുന്നു.

Groq കൂടുതൽ കാര്യക്ഷമവുമാണ്. ജോലി വളരെ വേഗത്തിൽ പൂർത്തിയാക്കുന്നതിനാൽ ഓരോ ടോക്കണിനും ഇത് കുറഞ്ഞ അളവിൽ മാത്രമേ ഊർജ്ജം ഉപയോഗിക്കുന്നുള്ളൂ.

ഈ ഡിസൈനിൽ ചില tradeoffs ഉണ്ട്. SRAM വിലകൂടിയതാണ് കൂടാതെ കൂടുതൽ സ്ഥലം എടുക്കുകയും ചെയ്യുന്നു. ഒരു ചിപ്പിന് ഒരു വലിയ മോഡലിനെ ഉൾക്കൊള്ളാൻ കഴിയില്ല. വലിയ മോഡലുകൾ പ്രവർത്തിപ്പിക്കാൻ നൂറുകണക്കിന് LPUs ഒന്നിച്ച് പ്രവർത്തിക്കേണ്ടതുണ്ട്. ഇത് ഹാർഡ്‌വെയറിനെ GPUs-നേക്കാൾ വിലകൂടിയതാക്കുന്നു.

Groq മോഡലുകൾ ട്രെയിൻ ചെയ്യാൻ ശ്രമിക്കുന്നില്ല. Llama അല്ലെങ്കിൽ Mixtral പോലുള്ള നിലവിലുള്ള മോഡലുകൾ എത്രയും വേഗത്തിൽ പ്രവർത്തിപ്പിക്കാനാണ് അവർ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നത്.

വ്യവസായം ഇവ രണ്ടും ഉപയോഗിക്കുന്നതിലേക്ക് നീങ്ങുകയാണ്. കഠിനമായ ട്രെയിനിംഗും പ്രാരംഭ പ്രോസസ്സിംഗും GPUs കൈകാര്യം ചെയ്യുന്നു. വേഗതയേറിയ, റിയൽ-ടൈം സംഭാഷണങ്ങൾ LPUs കൈകാര്യം ചെയ്യുന്നു.

Nvidia മൊത്തത്തിലുള്ള കമ്പ്യൂട്ടേഷനായി (total computation) ഒപ്റ്റിമൈസ് ചെയ്തിരിക്കുന്നു. എന്നാൽ കമ്പ്യൂട്ട് ഒരിക്കലും ഡാറ്റയ്ക്കായി കാത്തുനിൽക്കുന്നില്ലെന്ന് ഉറപ്പാക്കാനാണ് Groq ഒപ്റ്റിമൈസ് ചെയ്തിരിക്കുന്നത്. റിയൽ-ടൈം AI ഏജന്റുകളെ സംബന്ധിച്ചിടത്തോളം രണ്ടാമത്തെ ലക്ഷ്യമാണ് പ്രധാനം.

ഉറവിടം: https://dev.to/priyanshu79/why-groq-feels-like-cheating-29hm

പഠനത്തിനായി ചേരാവുന്ന കമ്മ്യൂണിറ്റി: https://t.me/GyaanSetuAi