NVIDIA H100 ഉപയോഗിച്ച് Llama 2 70B ടർബോചാർജ് ചെയ്യുന്നു

ത്വരിതപ്പെടുത്തിയ LLM അനുമാനത്തിന്റെ യാത്ര

The journey of accelerated LLM inference

Perplexity-യുടെ ഉത്തര എഞ്ചിനിലെ പ്രകടനത്തിനായുള്ള അന്വേഷണം NVIDIA-യും AWS-ഉം വാഗ്ദാനം ചെയ്യുന്ന ഏറ്റവും പുതിയ സാങ്കേതികവിദ്യ സ്വീകരിക്കാൻ ഞങ്ങളെ പ്രേരിപ്പിക്കുന്നു. ഞങ്ങളുടെ ഏറ്റവും പുതിയ പരീക്ഷണങ്ങളുടെ ഫലങ്ങൾ പങ്കുവെക്കുന്നതിൽ ഞങ്ങൾ സന്തുഷ്ടരാണ്: വിവിധ ഹാർഡ്‌വെയർ, സോഫ്റ്റ്‌വെയർ ക്രമീകരണങ്ങളിലുടനീളമുള്ള Llama 2 70B അനുമാനത്തിന്റെ (inference) താരതമ്യം ഈ ബ്ലോഗിൽ ഞങ്ങൾ ചർച്ച ചെയ്യുന്നു.

ഞങ്ങളുടെ LLM അനുമാന പ്ലാറ്റ്‌ഫോം ആയ pplx-api, ഓപ്പൺ സോഴ്സ് ലൈബ്രറികളിൽ പ്രവർത്തിക്കുന്ന അത്യാധുനിക സ്റ്റാക്കിലാണ് നിർമ്മിച്ചിരിക്കുന്നത്. ഒക്ടോബറിൽ pplx-api-യുടെ പബ്ലിക് ബീറ്റ ആരംഭിച്ചതുമുതൽ, സ്കെയിലിംഗ് വെല്ലുവിളികളെ നേരിടാനും വലിയ തോതിലുള്ള പ്രവർത്തനം കൈവരിക്കുന്നതിന് ഞങ്ങളുടെ കോൺഫിഗറേഷൻ എങ്ങനെ മികച്ച രീതിയിൽ ട്യൂൺ ചെയ്യണമെന്ന് മനസ്സിലാക്കാനും ഞങ്ങൾ ശ്രമിച്ചുവരികയാണ്. താഴെ പറയുന്ന പ്രധാന ചോദ്യങ്ങളുമായി പരീക്ഷണങ്ങൾ നടത്താൻ ഇത് ഞങ്ങളെ പ്രേരിപ്പിച്ചു:

മറ്റ് ക്രമീകരണങ്ങളെല്ലാം മാറ്റമില്ലാതെ തുടരുമ്പോൾ, ഞങ്ങളുടെ GPU-കൾ NVIDIA A100-ൽ നിന്ന് NVIDIA H100-ലേക്ക് മാറ്റുമ്പോൾ ലഭിക്കുന്ന യഥാർത്ഥ പ്രകടന നേട്ടം എന്താണ്?

H100 നേറ്റീവായി പിന്തുണയ്ക്കുന്ന 8-ബിറ്റ് ഫ്ലോട്ടിംഗ് പോയിന്റ് (fp8) ക്വാണ്ടൈസേഷന്റെ കാര്യക്ഷമത നേട്ടം എന്താണ്? ഈ ക്വാണ്ടൈസേഷൻ മൂലം കൃത്യതയിൽ ഉണ്ടാകുന്ന കുറവ് എത്രയാണ്?

ടെൻസർ പാരലലിസവും ബാച്ച് വലുപ്പവും ലേറ്റൻസിയെയും ടോക്കൺ ത്രൂപുട്ടിനെയും എങ്ങനെ ബാധിക്കുന്നു?

മുകളിൽ പറഞ്ഞവ കണക്കിലെടുക്കുമ്പോൾ, പ്രകടനത്തിന്റെയും ചെലവ്-കാര്യക്ഷമതയുടെയും ഏറ്റവും സ്കെയിൽ ചെയ്യാവുന്ന ബാലൻസ് നൽകുന്ന കോൺഫിഗറേഷൻ ഏതാണ്?

പരീക്ഷണ സജ്ജീകരണങ്ങൾ

നെറ്റ്‌വർക്ക് ലേറ്റൻസി ഒഴിവാക്കാൻ ഞങ്ങൾ ഈ പരീക്ഷണം ഒരു പരമ്പരയായി ലോക്കൽ ബെഞ്ച്മാർക്കുകളായി നടത്തി.

പ്രധാന മെട്രിക്സ്:

ലേറ്റൻസി (Latency): അനുമാന സെർവറിന് അതിന്റെ മുഴുവൻ പ്രതികരണവും സൃഷ്ടിക്കാൻ എടുക്കുന്ന മൊത്തം സമയം.

ത്രൂപുട്ട് (Throughput): എല്ലാ ഉപയോക്താക്കളിൽ നിന്നും അഭ്യർത്ഥനകളിൽ നിന്നും അനുമാന സെർവറിന് സൃഷ്ടിക്കാൻ കഴിയുന്ന, ഒരു സെക്കൻഡിൽ, ഒരു GPU-വിന് കീഴിലുള്ള ഔട്ട്പുട്ട് ടോക്കണുകളുടെ എണ്ണം.

സ്ഥിരാങ്കങ്ങൾ (Constants):

താഴെ പറയുന്ന ഘടകങ്ങൾ പ്രധാന മെട്രിക്കുകളെ സ്വാധീനിക്കും, അതിനാൽ പരീക്ഷണത്തിന്റെ വിവിധ ട്രയലുകളിൽ ഞങ്ങൾ അവ സ്ഥിരമായി നിലനിർത്തി.

AI മോഡൽ

LLM-ന്റെ വലുപ്പത്തിനനുസരിച്ച് പ്രകടനം വർദ്ധിക്കുന്നു. കൂടുതൽ പാരാമീറ്ററുകൾക്ക് കൂടുതൽ കണക്കുകൂട്ടലുകൾ ആവശ്യമാണ്, ഇത് മന്ദഗതിയിലുള്ള അനുമാനത്തിന് കാരണമാകുന്നു. ഉദാഹരണത്തിന്, മറ്റ് ക്രമീകരണങ്ങൾ തുല്യമായിരിക്കുമ്പോൾ Llama 2 13B, Llama 2 70B-യേക്കാൾ വേഗതയുള്ളതാണ്. ഏറ്റവും ശക്തമായ ഓപ്പൺ സോഴ്സ് മോഡലുകൾ നൽകുന്നതിന് അനുയോജ്യമായ രീതിയിൽ ഒപ്റ്റിമൈസ് ചെയ്യാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നതിനാൽ ഈ പരീക്ഷണത്തിൽ ഞങ്ങൾ Llama 2 70B ഉപയോഗിക്കുന്നത് തുടരുന്നു.

ഇൻപുട്ട്/ഔട്ട്പുട്ട് ടോക്കൺ ഡാറ്റാസെറ്റ്

ഓരോ സാമ്പിൾ അഭ്യർത്ഥന/പ്രതികരണ ജോടിയിലെയും ഇൻപുട്ട്, ഔട്ട്പുട്ട് ടോക്കണുകളുടെ അളവ് പ്രകടന അളവുകളെ സ്വാധീനിച്ചേക്കാം. പൊതുവെ, ഔട്ട്പുട്ട് ടോക്കൺ ജനറേഷനാണ് മൊത്തത്തിലുള്ള പ്രതികരണ സമയത്തെ നിയന്ത്രിക്കുന്നത്. ഡാറ്റ സാമ്പിൾ ചെയ്യുമ്പോൾ LLM-ൽ നിന്ന് "അതെ/ഇല്ല" പ്രതികരണങ്ങൾ മാത്രം ലഭിക്കുകയാണെങ്കിൽ, ഉപന്യാസങ്ങൾ എഴുതാൻ LLM-നോട് ആവശ്യപ്പെടുന്ന സാമ്പിളുകളുമായി താരտم്യം ചെയ്യുമ്പോൾ പ്രതികരണം വേഗതയുള്ളതായിരിക്കും. 1024 ഇൻപുട്ട് ടോക്കണുകളും 512 ഔട്ട്പുട്ട് ടോക്കണുകളും നൽകുന്ന സിന്തറ്റിക് അഭ്യർത്ഥനകൾ അടങ്ങിയതാണ് ഞങ്ങളുടെ ഡാറ്റാസെറ്റ്. Llama2 70B-യുടെ ഞങ്ങളുടെ പബ്ലിക് ഡെപ്ലോയ്മെന്റിൽ കണ്ട ട്രাফিক വിതരണവുമായി പൊരുത്തപ്പെടാൻ വേണ്ടിയാണ് ഈ വിതരണം തിരഞ്ഞെടുത്തത്.

സോഫ്റ്റ്‌വെയർ പതിപ്പ്

LLM അനുമാനം ഒപ്റ്റിമൈസ് ചെയ്യുന്നതിനുള്ള ഒരു ഓപ്പൺ സോഴ്സ് ലൈബ്രറിയാണ് NVIDIA TensorRT-LLM (റിലീസ് v0.5.0). 2023-ന്റെ അവസാനത്തിൽ പുറത്തിറങ്ങിയ ഇത്, NVIDIA-യുടെ നിരവധി അനുമാന ഒപ്റ്റിമൈസേഷനുകൾ സംയോജിപ്പിക്കുകയും ഈ പരീക്ഷണത്തിന്റെ പ്രധാന പാരാമീറ്ററുകൾക്കായി (ബാച്ച് വലുപ്പം, ക്വാണ്ടൈസേഷൻ, ടെൻസർ പാരലലിസം) വഴക്കമുള്ള ഒരു കസ്റ്റമൈസേഷൻ പാളി നൽകുകയും ചെയ്യുന്നു.

വേരിയബിളുകൾ

ടെൻസർ പാരലലിസം, GPU ആർക്കിടെക്ചർ, ക്വാണ്ടൈസേഷൻ, പരമാവധി ബാച്ച് വലുപ്പം എന്നിങ്ങനെ 4 കോൺഫിഗറേഷൻ അച്ചുകളിലുടനീളം ഞങ്ങൾ പരീക്ഷണം നടത്തി. GPU മെമ്മറിയുടെ നിർണായകമായ തടസ്സപ്പെടുത്തുന്ന വിഭവവുമായി ബന്ധപ്പെട്ട ഒരു ട്രേഡ്-ഓഫിനെ ഓരോന്നും പ്രതിനിധീകരിക്കുന്നതിനാൽ ഈ അച്ചുകൾ പരസ്പരം ബന്ധപ്പെട്ടിരിക്കുന്നു.

GPU ആർക്കിടെക്ചർ

ഒൻപതാം തലമുറ ഹോപ്പർ (Hopper) (H100-HBM3-80GB / p5.48xlarge) GPU ആർക്കിടെക്ചർ, അതിന്റെ മുൻഗാമിയായ ആംപിയർ (Ampere)-നെ (A100-SXM4-80GB / p4de.24xlarge) അപേക്ഷിച്ച് 2x-6x കമ്പ്യൂട്ടേഷൻ നിരക്കുകളും ഏകദേശം 2x GPU മെമ്മറി ബാൻഡ്‌വിഡ്ത്തും ഉൾപ്പെടെയുള്ള വലിയൊരു നിര സവിശേഷതകൾ ഉൾക്കൊള്ളുന്നു. അനുമാനത്തിന് GPU മെമ്മറി ബാൻഡ്‌വിഡ്ത്ത് വളരെ നിർണായകമായ ഒരു മെട്രിക്കാണ്, കാരണം അനുമാനത്തിന്റെ മാട്രിക്സ് ഗുണനങ്ങളുടെ പ്രാഥമിക ലേറ്റൻസി തടസ്സം GPU മെമ്മറിയിൽ നിന്ന് കമ്പ്യൂട്ട് രജിസ്റ്ററുകളിലേക്ക് മോഡൽ ഡാറ്റയുടെ ജിഗാബൈറ്റുകൾ ലോഡ് ചെയ്യുന്നതിൽ നിന്നാണ് ഉണ്ടാകുന്നത്. ഈ സ്ഥിതിവിവരക്കണക്കുകളുടെ അടിസ്ഥാനത്തിൽ, NVIDIA H100-ന്റെയും A100-ന്റെയും നേരിട്ടുള്ള താരതമ്യം ലേറ്റൻസിയിലും ത്രൂപുട്ടിലും 2x മെച്ചപ്പെടുത്തൽ പ്രകടമാക്കുമെന്ന് ഞങ്ങൾ അനുമാനിച്ചു.

NVIDIA H100-ഉം A100-ഉം തമ്മിലുള്ള മറ്റൊരു പ്രധാന വ്യത്യാസം, H100 ടെൻസർ കോർ നേറ്റീവായി 8-ബിറ്റ് ഫ്ലോട്ടിംഗ് പോയിന്റ് (fp8) നിർദ്ദേശങ്ങൾക്കുള്ള പിന്തുണ ചേർക്കുന്നു എന്നതാണ്, ഇത് താഴെ വിശദീകരിച്ചിരിക്കുന്ന കൂടുതൽ ഒപ്റ്റിമൈസേഷനുകളിലേക്ക് വഴിതുറക്കുന്നു. അതുകൊണ്ടാണ് ഞങ്ങൾ H100-നായി പ്രത്യേകമായി fp8, fp16 എന്നിവ ഉപയോഗിക്കുന്നത്.

ഈ പരീക്ഷണത്തിൽ ഓരോ GPU-വിലുമുള്ള മെമ്മറി സ്ഥിരമായി നിലനിർത്താൻ, ഞങ്ങളുടെ NVIDIA A100-കൾക്കും H100-കൾക്കുമായി 8x80GB GPU മെമ്മറിയുള്ള നോഡുകളിൽ ഞങ്ങൾ ശ്രദ്ധ കേന്ദ്രീകരിച്ചു. ഉയർന്ന ബാച്ച് വലുപ്പങ്ങൾ പ്രവർത്തനക്ഷമമാക്കുന്നതിന് പുറമേ, GPU മെമ്മറി പ്രധാനമാണ്, കാരണം വേഗത്തിലുള്ള പ്രവേശനത്തിനായി സെർവർ സ്റ്റാർട്ടപ്പിൽ മോഡലിന്റെ പാരാമീറ്ററുകൾ GPU മെമ്മറിയിലേക്ക് ലോഡ് ചെയ്യപ്പെടുന്നു. ഉദാഹരണത്തിന്, ഞങ്ങളുടെ മോഡലിലെ 70 ബിലIÓN പാരാമീറ്ററുകളിൽ ഓരോന്നും 16-ബിറ്റ് ഫ്ലോട്ടിംഗ് പോയിന്റ് നമ്പർ ആണെങ്കിൽ, മോഡലിന്റെ വലിപ്പം ഏകദേശം 140GB ആണ്, ഇത് ഒരൊറ്റ GPU-വിൽ ഉൾക്കൊള്ളാൻ കഴിയില്ല. അതിനാൽ ടെൻസർ പാരലലിസത്തിന്റെ ആവശ്യകത വരുന്നു, അത് ഞങ്ങൾ താഴെ വിശദീകരിക്കുന്നു.

ടെൻസർ പാരലലിസം

ഇൻഫറൻസ് സെർവർ പ്രവർത്തിപ്പിക്കുന്നതിന് ഉപയോഗിക്കുന്ന GPU ഉപകരണങ്ങളുടെ എണ്ണത്തെയാണ് ടെൻസർ പാരലലിസം സൂചിപ്പിക്കുന്നത്. നമ്മൾ ഒരു കൂട്ടം GPU-കൾ അനുവദിക്കുമ്പോൾ, Llama2 70B പ്രവർത്തിപ്പിക്കുന്നതിന് ആവശ്യമായ ഏറ്റവും കുറഞ്ഞ മെമ്മറി ബജറ്റിൽ എത്തിച്ചേരാൻ TensorRT-LLM അവയുടെ വിഭവങ്ങൾ ഒരുമിച്ച് ശേഖരിക്കുന്നു. ഉയർന്ന ടെൻസർ പാരലലിസവുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ, കുറഞ്ഞ ടെൻസർ പാരലലിസം കുറഞ്ഞ ലേറ്റൻസിയിലേക്കും (ഓരോ ബാച്ചും തൃപ്തിപ്പെടുത്താൻ കുറഞ്ഞ വിഭവങ്ങൾ ഉപയോഗിക്കുന്നത് കാരണം) എന്നാൽ ഉയർന്ന GPU ത്രൂപുട്ടിലേക്കും (മെച്ചപ്പെട്ട ഉപയോഗം കാരണം) നയിക്കുമെന്നാണ് ഞങ്ങളുടെ അനുമാനം.

ക്വാണ്ടൈസേഷൻ

ന്യൂറൽ നെറ്റ്‌വർക്കുകൾ ഉപയോഗിക്കുന്ന വെയിറ്റുകളിലെയും ആക്റ്റിവേഷനുകളിലെയും കൃത്യത കുറയ്ക്കുന്ന പ്രക്രിയയാണ് ക്വാണ്ടൈസേഷൻ. fp16-ൽ നിന്ന് fp8-ലേക്ക് മാറുമ്പോൾ GPU മെമ്മറി ഉപഭോഗം പകുതിയായി കുറയ്ക്കാൻ ഞങ്ങൾ ഈ സാങ്കേതികവിദ്യ ഉപയോഗിക്കുന്നു. കുറഞ്ഞ മൊത്തത്തിലുള്ള GPU മെമ്മറി ഉപയോഗിച്ച് അതേ മോഡൽ പ്രവർത്തിപ്പിക്കാൻ ഇത് സാധ്യമാക്കുന്നു, ഇത് കുറഞ്ഞ ടെൻസർ പാരലലിസം സാധ്യമാക്കുകയും ത്രൂപുട്ട് വർദ്ധിപ്പിക്കുകയും ചെയ്യുന്നു.

ക്വാണ്ടൈസേഷൻ നടപ്പിലാക്കുന്നത് കൃത്യത കുറയാൻ ഇടയാക്കിയേക്കാം. അതിനാൽ, Llama അടുത്ത ടോക്കൺ എത്ര നന്നായി പ്രവചിക്കുന്നു എന്നതിന്റെ അളവുകോലായ പെർപ്ലെക്സിറ്റി സ്ഥിതിവിവരക്കണക്കുകൾ WikiText കോർപ്പസിൽ താരതമ്യം ചെയ്തുകൊണ്ട് ഞങ്ങൾ വിവിധ കൃത്യതകൾക്കായി കൃത്യത വിലയിരുത്തി. 8-ബിറ്റ് ഫ്ലോട്ടിംഗ് പോയിന്റിനും 8-ബിറ്റ് ആക്റ്റിവേഷനും ഒപ്പം 8-ബിറ്റ് വെയിറ്റും SmoothQuant (w8a8 SQ) ഉപയോഗിച്ചതിനും WikiText-ലെ fp16-മായി താരതമ്യം ചെയ്യുമ്പോൾ പെർപ്ലെക്സിറ്റിയിൽ കാര്യമായ മാറ്റമൊന്നും (< 1%) ഉണ്ടായില്ല, അതിനാൽ മുന്നോട്ട് പോകാൻ ഞങ്ങൾക്ക് ആത്മവിശ്വാസമുണ്ടായി. എന്നിരുന്നാലും, w4a16 പെർപ്ലെക്സിറ്റിയിൽ 7%-ത്തിന്റെ ഗണ്യമായ മാറ്റം പ്രകടമാക്കി, ഇത് കുറഞ്ഞ കൃത്യതയും int4-നും fp16-നും ഇടയിലുള്ള ആവശ്യമായ ഡൈനാമിക് പരിവർത്തനങ്ങളും കാരണമാകാം.

ബാച്ച് സൈസ്

വിഭവ പരിമിതമുള്ള ഒരു സിസ്റ്റത്തിൽ നിന്ന് പ്രകടനം മെച്ചപ്പെടുത്തുന്നതിനുള്ള ക്ലാസിക് തന്ത്രമാണ് ബാച്ചിംഗ് വഴിയുള്ള പാരലലിസം. ന്യൂറൽ നെറ്റ്‌വർക്കിലൂടെയുള്ള ഓരോ ഫോർവേഡ് പാസ്സിലും ഒന്നിലധികം അഭ്യർത്ഥനകൾ പ്രോസസ്സ് ചെയ്യുന്നതിലൂടെ, കുറഞ്ഞ ലേറ്റൻസിയിൽ ചില വർദ്ധനവോടെ ത്രൂപുട്ട് വർദ്ധിപ്പിക്കാൻ ബാച്ചിംഗ് സഹായിക്കുന്നു. അറ്റൻഷൻ മെക്കാനിസം കൈകാര്യം ചെയ്യുന്ന KV കാഷെയുടെ വലിപ്പം ബാച്ച് സൈസിനനുസരിച്ച് രേഖീയമായി വളരുന്നതിനാൽ ബാച്ചിംഗ് ഉയർന്ന GPU മെമ്മറി ഉപഭോഗത്തിനും കാരണമാകുന്നു.

Llama 2 70B-ന്റെ കാര്യത്തിൽ (ഇതിന് 80 ലെയറുകൾ ഉണ്ട്), 4096 കോൺടെക്സ്റ്റ് സൈസിനായി 32 ബാച്ച് സൈസോടുകൂടിയ fp16, KV കാഷെയുടെ വലിപ്പം ഗണ്യമായ 40 GB ആയി വരുന്നു. വെയിറ്റുകൾ മാത്രം 140GB എടുക്കുന്ന Llama 2 70B fp16, ടെൻസർ പാരലലിസം 2 (TP-2)-ൽ ലഭ്യമായ 160GB GPU മെമ്മറിയിലേക്ക് സുഖമായി ഒതുങ്ങുന്നതിൽ നിന്ന് ഇത് തടയുന്നു.

ഫലങ്ങൾ

പരീക്ഷണത്തിലെ 4 വേരിയബിളുകളുടെ അനുയോജ്യമായ കോമ്പിനേഷനുകളിലൂടെ ഞങ്ങൾ കടന്നുപോവുകയും ഏറ്റവും ഉൾക്കാഴ്ചയുള്ള ട്രെൻഡുകൾ താഴെ അവതരിപ്പിക്കുകയും ചെയ്യുന്നു.

ചിത്രം 1 - ലഭ്യമായ 8 GPU-കൾ ഉപയോഗിച്ച് മികച്ച ലേറ്റൻസി നൽകുന്ന ടെൻസർ പാരലലിസം 8 ഉള്ള, അഞ്ച് വ്യത്യസ്ത കോൺഫിഗറേഷനുകളിലുടനീളമുള്ള വിവിധ ബാച്ച് വലുപ്പങ്ങളുള്ള അഭ്യർത്ഥനകളുടെ ലേറ്റൻസി. ഓരോ കോൺഫിഗറേഷനിലും, ബാച്ച് വലുപ്പം 1-ൽ നിന്ന് 32 ആയി വർദ്ധിപ്പിക്കുമ്പോൾ ലേറ്റൻസി പൊതുവെ ഇരട്ടிக்கുകയും, 32-ൽ നിന്ന് 128 ആയി വീണ്ടും ഇരട്ടிக்கുകയും ചെയ്യുന്നു. പര്യാപ്തമായി വലിയ ബാച്ച് വലുപ്പങ്ങളിൽ, A100-നെ അപേക്ഷിച്ച് H100 ലേറ്റൻസി ഏകദേശം പകുതിയായി കുറയ്ക്കുന്നു. ആർക്കിടെക്ചറിന് fp8-നുള്ള നേറ്റീവ് പിന്തുണ ഇല്ലാത്തതിനാൽ A100 മിക്സഡ് പ്രിസിഷൻ ഉപയോഗിക്കുന്നു. SmoothQuant (SQ) ഉള്ള w8a8 എന്നത് fp8-ന് സമാനമായിരിക്കാൻ ഉദ്ദേശിച്ചുള്ളതാണ്.

H100 fp16 → fp8, A100 fp16 → SmoothQuant ഉള്ള w8a8 എന്നിവ താരതമ്യം ചെയ്യുമ്പോൾ ക്വാണ്ടൈസേഷന്റെ ലേറ്റൻസി മെച്ചപ്പെടുത്തൽ ഏകദേശം 10% ആണ്. എന്നിരുന്നാലും, മിക്സഡ് പ്രിസിഷൻ w4a16 യഥാർത്ഥത്തിൽ കുറഞ്ഞ ബാച്ച് വലുപ്പങ്ങളിൽ മികച്ചതും ഉയർന്ന ബാച്ച് വലുപ്പങ്ങളിൽ fp16-നെ അപേക്ഷിച്ച് മോശവുമായ പ്രകടനം കാഴ്ചവയ്ക്കുന്നു. ഒപ്റ്റിമൈസ് ചെയ്യാത്ത കമ്പ്യൂട്ട് കെർണലുകൾ, int4-നും fp16-നും ഇടയിലുള്ള കാസ്റ്റിംഗ് സമയം, w4a16 ആക്റ്റിവേഷനുകൾക്കായി ഇപ്പോഴും 16-ബിറ്റ് ഫ്ലോട്ടിംഗ് പോയിന്റുകൾ ഉപയോഗിക്കുന്നു എന്നതും കാരണം KV കാഷെയുടെ അളവുകളിൽ സേവിങ്സ് ഒന്നും ഉണ്ടാകുന്നില്ല എന്നതുൾപ്പെടെയുള്ള നിരവധി ഘടകങ്ങൾ ഇതിന് കാരണമാകാം. w4a16 കുറഞ്ഞ കൃത്യതയും പ്രകടിപ്പിച്ചതിനാൽ, A100-കൾക്ക് w8a8 SQ-വിലേക്കും H100-കൾക്ക് fp8-ലേക്കും ഞങ്ങൾ മാറണമെന്ന് ഞങ്ങൾ നിഗമനം ചെയ്യുന്നു.

ചിത്രം 2 - വ്യത്യസ്ത ആർക്കിടെക്ചർ, ക്വാണ്ടൈസേഷൻ, ബാച്ച് വലുപ്പം എന്നിവയുള്ള TP-8 കോൺഫിഗറേഷനുകളിലുടനീളമുള്ള ത്രൂപുട്ട്. ഓരോ ആർക്കിടെക്ചറിനും ക്വാണ്ടൈസേഷനും, 25600ms ലേറ്റൻസി ആവശ്യകതയെ (512 ടോക്കണുകൾക്ക് സെക്കൻഡിൽ 20 ടോക്കണുകൾ) മാനിക്കുന്ന ഏറ്റവും വലിയ ബാച്ച് വലുപ്പമാണ് തിരഞ്ഞെടുത്തത്, അതുവഴി സമാനമായ ലേറ്റൻസി ഉള്ള കോൺഫിഗറേഷനുകൾ നമുക്ക് താരതമ്യം ചെയ്യാം. ഈ ആവശ്യകതയ്ക്ക് കീഴിൽ, BS-128 ഉള്ള H100, അതേ ക്വാണ്ടൈസേഷൻ (fp16) ഉപയോഗിക്കുന്ന A100 BS-64-നെ അപേക്ഷിച്ച് 228% ത്രൂപുട്ട് കൈവരിക്കുന്നു, കൂടാതെ ഇരട്ടി ബാച്ച് വലുപ്പം ഉണ്ടായിരുന്നിട്ടും പ്രതികരണ ലേറ്റൻസി കുറവായിരിക്കുകയും ചെയ്യുന്നു. fp8 ഉപയോഗിച്ചുള്ള ക്വാണ്ടൈസേഷൻ ഈ ഗുണകം 251% ആയി മെച്ചപ്പെടുത്തുന്നു.

ഞങ്ങളുടെ ആദ്യത്തെ രണ്ട് ചിത്രങ്ങളിൽ, ഞങ്ങൾ TP-8-ന്റെ കോൺഫിഗറേഷനുകൾ മാത്രമാണ് അവതരിപ്പിക്കുന്നത്. രണ്ടും fp16 / BS-128 / TP-8 ഉപയോഗിക്കുമ്പോൾ A100-നെ അപേക്ഷിച്ച് H100 54% ലേറ്റൻസിയും 184% ത്രൂപുട്ടും കൈവരിക്കുന്നു, H100-ൽ fp8 ഉപയോഗിക്കുമ്പോൾ ഇത് 49% ലേറ്റൻസിയും 202% ത്രൂപുട്ടും ആയി മെച്ചപ്പെടുന്നു. H100-ഉം A100-ഉം തമ്മിലുള്ള കമ്പ്യൂട്ടേഷൻ പവറിലെയും മെമ്മറി ബാൻഡ്‌വിഡ്ത്തിലെയും വർദ്ധനവാണ് ഈ പ്രകടന മെച്ചപ്പെടുത്തലിന് കാരണം. പ്രത്യേകിച്ചും, കുറഞ്ഞ ഉപയോഗം ഉണ്ടായേക്കാവുന്ന കുറഞ്ഞ ബാച്ച് വലുപ്പങ്ങളിൽ വ്യത്യാസം പ്രകടമല്ല.

ഞങ്ങൾ ഞങ്ങളുടെ പ്ലാറ്റ്‌ഫോം നിർമ്മിക്കുമ്പോൾ, ത്രൂപുട്ട് പരമാവധിയാക്കിക്കൊണ്ട് ഞങ്ങളുടെ ഉപയോക്താക്കൾക്ക് ചില ലേറ്റൻസി ആവശ്യകതകൾ നൽകാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നു. അതിനാൽ, ഒരേ ബാച്ച് വലുപ്പത്തിൽ A100-ഉം H100-ഉം താരതമ്യം ചെയ്യുന്നതിന് പകരം, ഒരു ലേറ്റൻസി ആവശ്യകത നിറവേറ്റുന്ന കോൺഫിഗറേഷനുകൾക്ക് കീഴിൽ മാത്രം അവയുടെ ത്രൂപുട്ട് താരതമ്യം ചെയ്യുന്നതാണ് കൂടുതൽ അർത്ഥവത്താകുന്നത്. 512 ഔട്ട്പുട്ട് ടോക്കണുകൾ പൂർത്തിയാക്കുന്നതിന് ഞങ്ങൾ 25600ms ലേറ്റൻസിയിൽ ഒരു കട്ടോഫ് സജ്ജമാക്കുകയും, A100 / TP-8 / fp16 / BS-64-നെ അപേക്ഷിച്ച് H100 / TP-8 / fp8 / BS-128 251% ത്രൂപുട്ട് നൽകുന്നു എന്ന് കണ്ടെത്തുകയും ചെയ്തു, കാരണം ഇതിന് കുറഞ്ഞ ലേറ്റൻസിയിൽ ഇരട്ടി ബാച്ച് വലുപ്പം പ്രോസസ്സ് ചെയ്യാൻ സാധിക്കുന്നു. ക്വാണ്ടൈസേഷൻ GPU മെമ്മറി ലാഭിക്കൽ നൽകുന്നു എന്നതിനാൽ, ഒപ്റ്റിമൈസേഷന്റെ അടുത്ത പാളി ടെൻസർ പാരലലിസത്തിന് എങ്ങനെ ചേർക്കാൻ കഴിയുമെന്ന് നമ്മൾ ഇപ്പോൾ വിലയിരുത്തേണ്ടതുണ്ട്.

ചിത്രം 3 - H100 fp8-നായുള്ള വിവിധ ബാച്ച് വലുപ്പങ്ങളിലും ടെൻസർ പാരലലിസത്തിലുമുള്ള ലേറ്റൻസി. ബാച്ച് വലുപ്പം 1-ൽ നിന്ന് 32 ആയി വർദ്ധിപ്പിക്കുമ്പോൾ ലേറ്റൻസി പൊതുവെ ഇരട്ടிக்கുകയും, 32-ൽ നിന്ന് 128 ആയി വീണ്ടും ഇരട്ടிக்கുകയും ചെയ്യുന്നു. ബാച്ച് വലുപ്പങ്ങൾ തുല്യമായിരിക്കുമ്പോൾ TP-2 സ്ഥിരമായി TP-8-നേക്കാൾ ഇരട്ടി മന്ദഗതിയിലാണ്. ബാച്ച് വലുപ്പം ഇരട്ടിയാക്കുമ്പോൾ ടെൻസർ പാരലലിസം ഇരട്ടിയാക്കുന്നത് ലേറ്റൻസി താരതമ്യേന സ്ഥിരമായി നിലനിർത്തുന്നു, കാരണം GPU-കൾ പ്രോസസ്സ് ചെയ്യുന്ന ബാച്ചുകളുടെ എണ്ണം തുല്യമായി തുടരുന്നു.

ക്വാണ്ടൈസേഷന്റെയും ആർക്കിടെക്ചറിന്റെയും കാര്യത്തിൽ, വ്യക്തമായ വിജയികളുണ്ട്: H100 A100-നെ പിന്നിലാക്കുന്നു, കൂടാതെ കുറഞ്ഞ പ്രിസിഷൻ ക്വാണ്ടൈസേഷൻ മെമ്മറി ഉപയോഗം, ലേറ്റൻസി, ത്രൂപുട്ട് എന്നിവ മെച്ചപ്പെടുത്തുന്നു. എന്നിരുന്നാലും, ബാച്ച് വലുപ്പവും ടെൻസർ പാരലലിസവും ഞങ്ങളുടെ പ്രധാന മെട്രിക്കുകളിൽ ഒരു ട്രേഡ്-ഓഫ് അവതരിപ്പിക്കുന്നു. വലിയ ബാച്ച് വലുപ്പം വർദ്ധിച്ച ലേറ്റൻസിയുടെയും മെമ്മറി ഉപയോഗത്തിന്റെയും ചിലവിൽ ത്രൂപുട്ടിനായി ഒപ്റ്റിമൈസ് ചെയ്യുന്നു. മറുവശത്ത്, ഉയർന്ന ടെൻസർ പാരലലിസം ലഭ്യമായ മെമ്മറിയുടെ മൊത്തത്തിലുള്ള അളവ് വർദ്ധിപ്പിക്കുകയും ലേറ്റൻസിക്കായി ഒപ്റ്റിമൈസ് ചെയ്യുകയും ചെയ്യുന്നു, എന്നാൽ വിതരണം ചെയ്ത മാട്രിക്സ് ഗുണനത്തിന്റെ സിൻക്രണൈസേഷൻ ചെലവുകൾ കാരണം കൂടാതെ കൂടുതൽ GPU വിഭവങ്ങൾ ലോക്ക് ചെയ്യുന്നതിലൂടെ ത്രൂപുട്ടുമായി ട്രേഡ്-ഓഫ് ചെയ്യുന്നു.

ചിത്രം 4 - H100 fp8-നായുള്ള വിവിധ ബാച്ച് വലുപ്പങ്ങളിലും ടെൻസർ പാരലലിസത്തിലുമുള്ള ത്രൂപുട്ട്. A100/TP-8/fp16/BS-64-ന്റെ അടിസ്ഥാനരേഖയുമായി താരതമ്യം ചെയ്യുമ്പോൾ 460% ഉള്ള TP-2 BS-128-ൽ നിന്നാണ് ഏറ്റവും ഉയർന്ന ത്രൂപുട്ട് ലഭിക്കുന്നത്. എന്നിരുന്നാലും, ചിത്രം 3-ൽ ഏറ്റവും മന്ദഗതിയിലുള്ള ഫലവും TP-2 BS-128 ആണ്.

ഞങ്ങളുടെ പരീക്ഷണത്തിന്റെ ത്രൂപുട്ട് വർദ്ധിപ്പിക്കുന്ന കോൺഫിഗറേഷൻ H100 / fp8 / TP-2 / BS-128 ആണ്, ഒരു GPU-വിന് സെക്കൻഡിൽ 767 ഔട്ട്പുട്ട് ടോക്കണുകൾ എന്ന തോതിലാണിത്. A100 / fp16 / TP-8 / BS-64-നേക്കാൾ 460% മെച്ചപ്പെടുത്തലാണിത്. എന്നിരുന്നാലും, ഇത് ഇരട്ടിയായ ലേറ്റൻസിയുടെ ചിലവിലാണ് വരുന്നത് - 512 ഔട്ട്പുട്ട് ടോക്കണുകൾക്ക് ഏകദേശം 42000ms - അതിനാൽ ഇത് ഒരു പ്രൊഡക്ഷൻ കോൺഫിഗറേഷനായി അനുയോജ്യമല്ലായിരിക്കാം. TP-4 BS-128 (26188ms പ്രതികരണ സമയത്ത് 626 tok/sec/gpu), TP-2 BS-32 (18821ms പ്രതികരണ സമയത്ത് 435 tok/sec/gpu) എന്നിവയുടെ ഫലങ്ങൾ ഞങ്ങളുടെ പ്രധാന മെട്രിക്കുകളിൽ മികച്ച ട്രേഡ്-ഓഫുകളെ പ്രതിനിധീകരിച്ചേക്കാം.

ഉപസംഹാരം

ഞങ്ങളുടെ ഫലങ്ങൾ തെളിയിക്കുന്നത്:

ഒരേ കോൺഫിഗറേഷൻ നൽകിയാൽ A100-നെ അപേക്ഷിച്ച് H100 ഉപയോഗിച്ച് ഞങ്ങൾ 54% ലേറ്റൻസിയും 184% ത്രൂപുട്ടും കൈവരിക്കുന്നു, H100 അതിന്റെ നേറ്റീവ് fp8 പിന്തുണ പ്രയോജനപ്പെടുത്തുമ്പോൾ ഇത് യഥাক্রমে 49%, 202% ആയി മെച്ചപ്പെടുന്നു.

ഒരു ലേറ്റൻസി പരിമിതിക്ക് വിധേയമായി ത്രൂപുട്ട് പരമാവധിയാക്കുമ്പോൾ, A100 / fp16 / TP-8 / BS-64-നെ അപേക്ഷിച്ച് H100 / fp8 / TP-8 / BS-128 251% ത്രൂപുട്ട് നൽകുന്നു, കാരണം ഇതിന് വേഗത്തിലുള്ള വേഗതയിൽ ഇരട്ടി ബാച്ച് പ്രോസസ്സ് ചെയ്യാൻ സാധിക്കും.

fp8 ഉള്ള TP-2-നൊപ്പം H100 പ്രയോജനപ്പെടുത്തിക്കൊണ്ട്, ലേറ്റൻസിയിൽ 10%-ൽ താഴെ മാത്രം വർദ്ധനവോടെ, A100 / fp16 / TP-8 / BS-128-ന്റെ 373% ത്രൂപുട്ട് നമുക്ക് കൈവരിക്കാൻ കഴിയും.

ബാച്ച് വലുപ്പവും ടെൻസർ പാരലലിസവും ഒരു LLM അനുമാന സിസ്റ്റത്തിന്റെ ഓപ്പറേറ്റർക്ക് ത്രൂപുട്ടും ലേറ്റൻസിയും തമ്മിലുള്ള ഒരു ട്രേഡ്-ഓഫ് അവതരിപ്പിക്കുന്നു.

ഈ ഫലങ്ങൾ മുമ്പ് A100 നൽകിയിരുന്ന ഞങ്ങളുടെ ഹാർഡ്‌വെയർ സ്റ്റാക്കിൽ H100 GPU-കളിലേക്കുള്ള സമ്പൂർണ്ണ മാറ്റത്തെക്കുറിച്ച് ഞങ്ങൾക്ക് ആത്മവിശ്വാസം നൽകുന്നു. NVIDIA പരസ്യപ്പെടുത്തിയ പ്രകടന നേട്ടങ്ങൾ സ്ഥിരീകരിക്കാൻ സാധിച്ചതിൽ ഞങ്ങൾ സന്തുഷ്ടരാണ് കൂടാതെ വേഗത്തിലാക്കിയ ഹാർഡ്‌വെയറിലെ അവരുടെ അടുത്ത മുന്നേറ്റങ്ങൾക്കായി ഞങ്ങൾ കാത്തിരിക്കുന്നു.

അടുത്തത് എന്താണ്

ഒപ്റ്റിമൈസേഷനായുള്ള ഞങ്ങളുടെ അടുത്ത ലക്ഷ്യം സ്ട്രക്ചർഡ് സ്പാർസിറ്റിയുടെയും (structured sparsity) int4 പ്രിസിഷന്റെയും കൃത്യതയും പ്രകടന ആഘാതവും പരിശോധിക്കുക എന്നതാണ്, ഇത് Llama 2 70B-യുടെ GPU മെമ്മറി കാൽപ്പാടുകൾ ഗണ്യമായി കുറയ്ക്കുകയും ലേറ്റൻസിയിൽ 2x വരെ മെച്ചപ്പെടുത്തലുകൾ നൽകുകയും ചെയ്യും. അതിവേഗ അനുമാനത്തിന്റെ യാത്ര തുടരുന്നതിൽ ഞങ്ങൾ സന്തുഷ്ടരാണ് കൂടാതെ ഞങ്ങളുടെ പ്ലാറ്റ്‌ഫോമിന് മുകളിൽ ശക്തമായ ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കാൻ ഞങ്ങളുടെ ഉപയോക്താക്കളെ പ്രാപ്തരാക്കുമെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു.

സമീപഭാവിയിൽ, pplx-api നിരക്ക് പരിധികൾ നീക്കം ചെയ്യുകയും വസ്തുതകൾക്കായുള്ള ഗ്രൗണ്ടിംഗുള്ള ഇന്റർനെറ്റ് അധിഷ്ഠിത LLM ഉൾപ്പെടെ കൂടുതൽ കസ്റ്റം Perplexity LLM-കൾ വാഗ്ദാനം ചെയ്യുകയും ചെയ്യും.

perplexity.ai/pro-ൽ Perplexity Pro-ക്കായി സൈൻ അപ്പ് ചെയ്യുക. ഞങ്ങളുടെ അത്യാധുനിക pplx-api-യിലേക്കുള്ള പ്രവേശനം നേടുക, കൂടാതെ നിങ്ങളുടെ പ്രോജക്റ്റുകളിൽ ഈ പുരോഗമിച്ച ശേഷികൾ പ്രയോജനപ്പെടുത്തുക. ഞങ്ങളുടെ ബ്ലോഗിൽ pplx-api-യെക്കുറിച്ച് കൂടുതൽ കണ്ടെത്തുക.

AI-യുടെ ഭാവി രൂപപ്പെടുത്തുന്നതിൽ താല്പര്യമുണ്ടോ? ഞങ്ങൾ ആളുകളെ ജോലിക്കെടുക്കുന്നു! വലിയ തോതിലുള്ള, ജനറേറ്റീവ് LLM അടിസ്ഥാന സൗകര്യങ്ങൾ നയിക്കുന്ന ഒരു ടീമിന്റെ ഭാഗമാകൂ. Perplexity Careers-ൽ അവസരങ്ങൾ പര്യവേക്ഷണം ചെയ്യുക.

രചയിതാക്കൾ:

ആരാഷ് ഹെയ്ദാരി, ഗ്രിഗറി അലക്സീവ്, കെവിൻ ഹു, ഡെനിസ് യാരാറ്റ്സ്