Kraftmesta Llama 2 70B með NVIDIA H100
Ferðalag hraðra LLM-ályktana

Leitin að afköstum í svaraþjónustu Perplexity hvetur okkur til að taka upp nýjustu tækni sem NVIDIA og AWS hafa upp á að bjóða. Í þessari bloggfærslu erum við spennt að deila niðurstöðum nýjustu tilrauna okkar: samanburði á ályktun Llama 2 70B í ýmsum vélbúnaðar- og hugbúnaðarstillingum.
Ályktunarvettvangur okkar fyrir stór málmódel (LLM), pplx-api, er byggður á hátæknilegu kerfi sem knúið er áfram af opnum söfnum. Frá því að almenn prufa á pplx-api hófst í október höfum við tekist á við stærðaráskoranir og lært hvernig best sé að fínstilla uppsetningu okkar til að ná fram gríðarlegri stærð. Þetta varð til þess að við gerðum tilraunir með eftirfarandi leiðbeinandi spurningar:
Hver er raunverulegur ávinningur í afköstum þegar skipt er um grafíkörgjafa (GPU) úr NVIDIA A100 yfir í NVIDIA H100, á meðan allar aðrar stillingar haldast óbreyttar?
Hver er skilvirkniávinningur 8 bita fljótandi kommu (fp8) mögnunar, sem H100 býður upp á innbyggðan stuðning við? Hver er nákvæmniskostnaðurinn við þessa mögnun?
Hvernig hafa tensórsamsíðun (tensor parallelism) og lotustærð (batch size) áhrif á töf (latency) og afköst auðkenna (tokens)?
Miðað við framangreint, hvaða uppsetning skilar stigstærðasta jafnvæginu á milli afkasta og kostnaðarhagkvæmni?
Uppsetning tilraunar
Við gerðum eftirfarandi tilraun sem röð af staðbundnum viðmiðunarprófum til að koma veg fyrir seinkun á neti.
Lykilmælikvarðar:
Seinkun: Heildartíminn sem það tekur ályktunarþjóninn að framleiða fullt svar sitt.
Afköst: Fjöldi úttaksauðkenna, á sekúndu, á grafíkörgjafa, sem ályktunarþjóninn getur framleitt fyrir alla notendur og beiðnir.
Fastar stærðir:
Eftirfarandi þættir hefðu áhrif á lykilmælikvarðana, þannig að við höfðum þá stöðuga í mismunandi tilraunum.
Gervigreindarlíkan
Afköst aukast í hlutfalli við stærð mállíkansins (LLM). Fleiri breytur krefjast meiri útreikninga sem leiðir til hægari ályktunar. Til dæmis er Llama 2 13B hraðari en Llama 2 70B þegar aðrar stillingar eru jafnar. Við höldum okkur við Llama 2 70B í þessari tilraun þar sem við viljum hámarka þjónustu við öflugustu opnu málmódelin.
Gagnasafn fyrir inntaks-/úttaksauðkenni
Magn inntaks- og úttaksauðkenna í hverju sýnatökubeiðni-/svarparri getur haft áhrif á mælingar á afköstum. Almennt séð ráða úttaksauðkennaframleiðsla heildarsvartímanum. Þegar gagnaúrtak kallar aðeins fram „já/nei“ svör frá mállíkaninu er svarskipanin hraðari samanborið við sýni sem biðja mállíkanið um að skrifa ritgerðir. Gagnasafnið okkar samanstendur af tilbúnum beiðnum með 1024 inntaksauðkennum sem kalla fram 512 úttaksauðkenni. Þessari dreifingu var valið til að passa við megindrifna dreifingu umferðar á opinberri útgáfu okkar af Llama2 70B.
Hugbúnaðarútgáfa
NVIDIA TensorRT-LLM (útgáfa v0.5.0) er opið safn til að fínstilla ályktanir mállíkana. Það kom út seint á árinu 2023, samþættir margar ályktunarfínstillingar NVIDIA og býður upp á sveigjanlegt sérsniðslag fyrir lykilbreytur þessarar tilraunar: lotustærð, mögnun og tensórsamsíðun.
Breytur
Við gerðum tilraunir í gegnum 4 stillingarása: tensórsamsíðun, grafíkörgjafaarkitektúr, mögnun og hámarks lotustærð. Þessir ásar eruengir hver öðrum háðir þar sem þeir tákna hver um sig málamiðlun varðandi mikilvæga flöskuhálsauðlindina í minni grafíkörgjafans.
Arkitektúr grafíkörgjafa
Níundu kynslóðar Hopper (H100-HBM3-80GB / p5.48xlarge) grafíkörgjafaarkitektúrinn býður upp á gríðarlegan lista af eiginleikum um umfram fyrrverandi kynslóð sína, Ampere (A100-SXM4-80GB / p4de.24xlarge), þar á meðal 2x-6x útreikningshraða og nálægt 2x bandbreidd grafíkörgjafaminnis. Bandbreidd grafíkörgjafaminnis er mikilvægur mælikvarði fyrir ályktanir vegna þess að helsti flöskuháls seinkunar í fylkis margföldun ályktunar kemur frá því að hlaða gígabætum af gögnum líkansins úr grafíkörgjafaminni yfir í útreikningsskrár. Byggt á þessum tölfræði, gerðum við ráð fyrir að beinn samanburður á NVIDIA H100 og A100 myndi sýna 2x bata í bæði seinkun og afköstum.
Annar lykilmunur á NVIDIA H100 og A100 er sá að H100 tensórkjarninn bætir við innbyggðum stuðningi við 8 bita fljótandi kommu (fp8) leiðbeiningar, sem opnar dyrnar að frekari fínstillingum sem lýst er hér að neðan. Þetta er ástæðan fyrir því að við notum fp8 og fp16 sérstaklega fyrir H100.
Til að halda minni á hvern grafíkörgjafa stöðugum í þessari tilraun, héldum við okkur við hnuta með 8x80GB grafíkörgjafaminni fyrir bæði NVIDIA A100 og H100. Til viðbótar við að gera stærri lotustærðir kleift er grafíkörgjafaminni mikilvægt vegna þess að breytur líkansins eru hlaðnar inn í grafíkörgjafaminnið við ræsingu þjónsins tilgreint fyrir skjótan aðgang. Til dæmis, ef hver af 70 milljörðum breyta í líkaninu okkar er 16 bita fljótandi kommutala, þá er líkanið um 140GB að stærð, sem kemst ekki fyrir á einum grafíkörgjafa. Þar af leiðandi er þörf á tensórsamsíðun, sem við útskýrum hér að neðan.
Tensórsamsíðun
Tensórsamsíðun vísar til fjölda grafíkörgjafatækja sem notuð eru til að keyra ályktunarþjóninn. Þegar við úthlutum fjölda grafíkörgjafa sameinar TensorRT-LLM auðlindir sínar til að hjálpa okkur að ná lágmarks tilskildu minnisfjárhagsáætlun til að keyra Llama2 70B. Tilgáta okkar er sú að lægri tensórsamsíðun muni skila meiri seinkun (vegna færri auðlinda sem notaðar eru til að mæta hverri lotu) en meiri afköstum á hvern grafíkörgjafa (vegna betri nýtingar) í samanburði við hærri tensórsamsíðun.
Mögnun (Quantization)
Mögnun er lækkun á nákvæmni í þyngdum og virkjunum sem taugakerfi nota. Við notum þessa tækni til að helminga notkun grafíkörgjafaminnis þegar við skiptum úr fp16 yfir í fp8. Þetta gerir það mögulegt að keyra sama líkan með minni heildarnotkun á grafíkörgjafaminni, sem gerir kleift að nota lægri tensórsamsíðun, sem eykur afköst.
Útfærslur á mögnun hafa möguleika á að rýra nákvæmni. Þess vegna metuðum við nákvæmni fyrir mismunandi nákvæmni með því að bera saman flækjustigstölfræði þeirra (perplexity), sem er mælikvarði á hvernig mállíkanið spáir fyrir um hvert næsta auðkenni í setningu, á WikiText textasafninu. Fyrir 8 bita fljótandi kommu og 8 bita þyngd með 8 bita virkjun og SmoothQuant (w8a8 SQ), var engin marktæk breyting á flækjustigi (< 1%) miðað við fp16 á WikiText, svo okkur fannst öruggt að halda áfram. Hins vegar sýndi w4a16 verulega 7% breytingu á flækjustigi, sem gæti stafað af enn lægri nákvæmni og nauðsynlegum breytingum á milli int4 og fp16.
Lotustærð
Samsíðun með lotuvinnslu er klassísk aðferð til að ná afköstum út úr auðlindatakmörkuðu kerfi. Með því að vinna úr mörgum beiðnum í hverri framvirkri ferð í gegnum taugakerfið er vitað að lotuvinnsla eykur afköst á kostnað einhverrar seinkunar. Lotuvinnsla veldur einnig meiri notkun á grafíkörgjafaminni vegna þess að stærð KV-skyndiminnisins sem stjórnar athygliskerfinu vex línulega með lotustærðinni.
Í tilviki Llama 2 70B (sem hefur 80 lög), fp16 með lotustærð 32 fyrir 4096 samhengisstærð, kemur stærð KV-skyndiminnisins út í talsverðum 40 GB. Þetta endar á því að koma í veg fyrir að Llama 2 70B fp16, en þyngdir þess einar og sér taka upp 140GB, komist þægilega fyrir í 160GB grafíkörgjafaminni sem er í boði við tensórsamsíðun 2 (TP-2).
Niðurstöður
Við fórum í gegnum samhæfðar samsetningar af 4 breytum tilraunarinnar og kynnum innsæisríkustu þróunina hér að neðan.
Seinkunabótin við mögnun er í kringum 10% þegar borið er saman H100 fp16 → fp8 og A100 fp16 → w8a8 með SmoothQuant. Hins vegar skilar blandaða nákvæmni w4a16 í raun betri árangri við litlar lotustærðir og verri við hærri lotustærðir samanborið við fp16. Þetta gæti stafað af ýmsum þáttum, þar á meðal færri fínstilltum útreikningskjörnum, kasttíma milli int4 og fp16, og því staðreynd að w4a16 notar enn 16 bita fljótandi kommur fyrir virkjanir, sem leiðir til engins sparnaðar í stærðum KV-skyndiminnisins. Þar sem w4a16 sýndi einnig lægri nákvæmni ályktum við að við ættum að halda okkur við w8a8 SQ fyrir A100 og fp8 fyrir H100.
Í fyrstu tveimur myndunum okkar kynnum við aðeins TP-8 stillingar. H100 nær 54% seinkun og 184% afköstum miðað við A100 þegar báðar nota fp16 / BS-128 / TP-8, sem batnar í 49% seinkun og 202% afköst þegar fp8 er notað á H100. Þessi frammistöðubót má rekja til aukningar á útreikningsafli og minnisbandbreidd á milli H100 og A100. Athyglisvert er að munurinn er minna áberandi við lægri lotustærðir þar sem nýting gæti verið minni.
Þegar við byggjum upp vettvang okkar viljum við virða ákveðnar kröfur um seinkun fyrir notendur okkar á meðan við hámarkum afköst. Þannig að í stað þess að bera saman A100 vs. H100 við sömu lotustærð, meikar það í raun meiri sens fyrir okkur að bera afköst þeirra aðeins saman undir stillingum þar sem þær uppfylla kröfu um seinkun. Við settum mörk við 25600ms seinkun fyrir lokun 512 úttaksauðkenna og komumst að því að H100 / TP-8 / fp8 / BS-128 skilar 251% afköstum miðað við A100 / TP-8 / fp16 / BS-64, þar sem það getur unnið úr tvöfaldri lotustærð við lægri seinkun. Í ljósi þess að mögnun veitir sparnað á grafíkörgjafaminni þurfum við nú að meta hvernig tensórsamsíðun getur bætt við næsta lagi af fínstillingu.
Þegar kemur að mögnun og arkitektúr eru skýr sigurvegarar: H100 drottnar yfir A100 og lækkuð nákvæmnismögnun bætir minnisnýtingu, seinkun og afköst. Hins vegar bjóða lotustærð og tensórsamsíðun upp á málamiðlun í lykilmælikvarðum okkar. Stærri lotustærð hámarkar afköst á kostnað aukinnar seinkunar og minnisnotkunar. Á hinn bóginn eykur hærri tensórsamsíðun heildarsafn tiltæks minnis og hámarkar seinkun, en tekur á sig málamiðlun með afköstum vegna samstillingarkostnaðar dreifðrar fylkismargföldunar og með því að bindast fleiri grafíkörgjafauðlindum.
Afkastahámörkunaruppsetning tilraunarinnar okkar er H100 / fp8 / TP-2 / BS-128, með 767 úttaksauðkenni á sekúndu á hvern grafíkörgjafa. Þetta er 460% bót yfir A100 / fp16 / TP-8 / BS-64. Hins vegar kemur þetta á kostnað tvöfaldaðrar seinkunar - nær 42000ms fyrir 512 úttaksauðkenni - þannig að það gæti verið óhæft sem framleiðsluuppsetning. Niðurstöður TP-4 BS-128 (626 tok/sec/gpu við 26188ms svatíma) og TP-2 BS-32 (435 tok/sec/gpu við 18821ms svatíma) gætu táknað betri málamiðlanir á lykilmælikvarðum okkar.
Niðurstaða
Niðurstöður okkar sýna fram á að:
Við náum 54% seinkun og 184% afköstum með því að nota H100 miðað við A100 miðað við sömu uppsetningu, sem batnar í 49% og 202% í sömu röð þegar H100 nýtir sér innbyggðan stuðning við fp8.
Þegar afköst eru hámörkuð með tilliti til seinkunartakmörkunar skilar H100 / fp8 / TP-8 / BS-128 251% afköstum miðað við A100 / fp16 / TP-8 / BS-64, þar sem það getur unnið úr tvöfaldri lotu á meiri hraða.
Með því að nýta okkur H100 með TP-2 með fp8 getum við náð 373% afköstum A100 / fp16 / TP-8 / BS-128, með minna en 10% aukningu á seinkun.
Lotustærð og tensórsamsíðun bjóða upp á málamiðlun á milli afkasta og seinkunar fyrir rekstraraðila mállíkanalyktunarkerfis.
Þessar niðurstöður fá okkur til að finna til öryggis um algjöra yfirfærslu yfir í H100 grafíkörgjafa í vélbúnaðarstöflunni okkar sem áður var knúin áfram af A100. Við erum spennt að geta staðfest frammistöðubæturnar sem auglýstar voru af NVIDIA og hlökkum til næstu byltinga þeirra í hraðari vélbúnaði.
Hvað er framundan
Næsta landamæri okkar í fínstillingu er að skoða nákvæmni og áhrif á afköst af skipulagðri dreifingu (structured sparsity) og int4 nákvæmni, sem gæti dregið verulega úr grafíkörgjafaminni Llama 2 70B og skilað allt að 2x bata í seinkun. Við erum spennt að halda áfram ferðalagi leifturhraðra ályktana og vonumst til að styrkja notendur okkar til að byggja upp öflug forrit ofan á vettvang okkar.
Í náinni framtíð mun pplx-api aflétta hraðatakmörkunum og bjóða upp á fleiri sérsniðin Perplexity LLM, þar á meðal internet-knúið LLM með jarðtengingu fyrir staðreyndir.
Skráðu þig í Perplexity Pro á perplexity.ai/pro. Fáðu aðgang að hátækni pplx-api okkar og nýttu þessa háþróaða eiginleika í verkefnum þínum. Kynntu þér meira um pplx-api á blogginu okkar.
Hefurðu áhuga á að móta framtíð gervigreindar? Við erum að ráða! Vertu hluti af teymi sem knýr áfram stórfellda, kynslóðlega LLM innviði. Kannaðu tækifæri hjá Perplexity Careers.
Höfundar:
Aarash Heydari, Grigorii Alekseev, Kevin Hu, Denis Yarats