Kvantizálás és gyors következtetés saját hardveren
Hogyan futtassunk nagyobb modelleket kisebb GPU-kon, és hogyan szolgáljuk ki azokat gyorsan.
A mérnökök első reakciója, amikor megnézik egy csúcskategóriás nagy nyelvi modell hardverkövetelményeit, sokszor az árcímke-sokk. Egy 70 milliárd paraméteres modell natív FP32 formátumban kb. 280 GB GPU-memóriát igényelne – ez több, mint amennyivel a legtöbb szervezet egyetlen szerveren rendelkezik, és sokkal több, mint amennyit alkalmazotti kérdések megválaszolásához akar fenntartani. A kvantizálás az a technika, amely ezeket a számokat kezelhető szintre hozza, és megértése elengedhetetlen mindazoknak, akik on-premise AI-stacket terveznek.
Mit csinál valójában a kvantizálás
Egy neurális hálózat végső soron nagyon sok szám – a tanítás során megtanult súlyok. Alapértelmezés szerint ezek a súlyok 32-bites lebegőpontos értékekként (FP32) vannak tárolva, amelyek egyenként 4 bájtot foglalnak. A kvantizálás a magas pontosságú számokat alacsonyabb pontosságú reprezentációkra cseréli: 16-bites lebegőpontosra (FP16 vagy BF16), 8-bites egészre (INT8) vagy akár 4-bites egészre (INT4). A memória-lábnyom arányosan zsugorodik, és az alacsonyabb pontosságú aritmetikát natívan támogató hardvereken a következtetés is gyorsul.
- FP16 / BF16 – félprecíziós lebegőpontosak. Szinte veszteségmentes a legtöbb feladathoz; az éles telepítések alapvető választása, ahol a pontosság kritikus. Memória-megtakarítás: 2x az FP32-höz képest.
- INT8 – 8-bites egészek, amelyeket általában GPTQ vagy llm.int8() módszerű tanítás utáni kvantizálással (PTQ) állítanak elő. Mérsékelt minőségromlás komplex következtetésnél; jelentős a legtöbb praktikus feladatban. Memória-megtakarítás: 4x az FP32-höz képest.
- INT4 – 4-bites egészek, az agresszív kvantizálás frontvonala. Az olyan eszközök, mint a GGUF Q4_K_M és az AWQ, meglepően jó minőséget nyújtanak méretükhöz képest. Memória-megtakarítás: 8x az FP32-höz képest, elfogadható romlással csevegési és összefoglalási feladatokra.
A minőség kontra méret kompromisszum
A kvantizálás nem ingyenes. Minden elvett bit elvetett információ, és egy bizonyos ponton ez rontott kimenetben – hallucináció, következtetési hibák vagy nuanszok elvesztése – jelenik meg. A Privonis telepítések gyakorlati megállapítása az, hogy a kompromisszum meglepően kedvező a legtöbb vállalati feladathoz. Egy INT4-re kvantizált 70 milliárd paraméteres modell jellemzően felülmúl egy FP16-os 13 milliárdosat, annak ellenére, hogy mindkettő hasonló GPU-memóriába fér. Ha kétséges, használja a legnagyobb modellt, amely belefér a hardvere által támogatott legmagasabb pontosságon.
A megfelelő kvantizálás kiválasztása kevésbé szól a bitek számáról, és inkább a modellkapacitás feladathoz való illesztéséről: egy jól megválasztott INT4 70 milliárdos minden alkalommal ver egy gondatlan FP16 13 milliárdosat.
Következtetési szerverek: honnan ered az áteresztőképesség
Egy kvantizált modell futtatása csak a fél történet. Hatékony kiszolgálása párhuzamos terhelés alatt olyan következtetési szervert igényel, amely megérti a transzformer figyelmi mechanizmus struktúráját. A ma domináns nyílt forráskódú lehetőség a vLLM, amely bevezette a PagedAttention-t – az operációs rendszer virtuális memóriájából kölcsönzött memóriakezelési technikát, amely lehetővé teszi a szerver számára, hogy sok kérést egyidejűleg kezeljen anélkül, hogy előre allokált KV-cache blokkokra pazarolja a GPU-memóriát. A gyakorlati hatás 10-30-szoros áteresztőképesség-javulás a naiv egyetlen lekérdezéses hurokhoz képest.
Más figyelemre méltó lehetőségek közé tartozik az llama.cpp (CPU-barát, kiváló kisebb modellekhez alap hardveren), az Ollama (fejlesztőbarát burkoló az llama.cpp körül), a Hugging Face TGI (erős támogatás a Hugging Face modell formátumokhoz) és az NVIDIA TensorRT-LLM (legmagasabb áteresztőképesség NVIDIA hardveren, bonyolultabb kompilációs folyamat árán). A Privonis mindezeket értékeli és referenciaértékeli minden ügyfélkonfigurációhoz.
Kötegelt feldolgozás és áteresztőképesség
A GPU-k csúcshatékonyságot érnek el, amikor sok műveletet dolgoznak fel egyidejűleg – erre tervezték őket. A folyamatos kötegelt feldolgozás (más néven dinamikus kötegelt feldolgozás vagy iterációs szintű ütemezés) lehetővé teszi egy következtetési szerver számára, hogy több párhuzamos kérés tokenjeit egyetlen GPU-kernel hívásba csoportosítsa, drámaian javítva a kihasználtságot. Kötegelt feldolgozás nélkül egyetlen felhasználói lekérdezés a GPU-kapacitás 5%-át használhatja; folyamatos kötegelt feldolgozással valós forgalmi mintákban 70-80%-os kihasználtságot lehet elérni. Tucatnyi párhuzamos felhasználóval rendelkező nagyvállalat esetén a különbség egy kötegelt feldolgozást támogató szerver és egy naiv szerver között egy vagy négy GPU-szerver szükségességét jelenti.
A megfelelő kvantizálás kiválasztása a GPU-jához
A döntési fa egyszerűbb, mint amilyennek látszik. Kezdje a GPU-memória-keretével, vonjon le tartalékot az operációs rendszernek és a következtetési szervernek (jellemzően 4-8 GB), majd keresse meg a lehetségesen legnagyobb modellt a legmagasabb pontossági szinten. Néhány praktikus referenciapont:
- 24 GB VRAM (pl. RTX 4090, A5000) – kényelmesen futtat egy 13 milliárdos modellt FP16-on, vagy egy 34 milliárdosat INT4-en.
- 48 GB VRAM (pl. RTX 6000 Ada, A6000) – futtat egy 34 milliárdos modellt FP16-on, vagy egy 70 milliárdosat INT4-en.
- 2 × 80 GB (pl. A100-as pár NVLink-ken keresztül) – futtat egy 70 milliárdos modellt FP16-on, vagy egy 140 milliárdosat INT4-en tenzor-párhuzamossággal.
- Csak CPU (nincs GPU) – az llama.cpp Q4_K_M 7 milliárdos vagy 13 milliárdos modellel alacsony egyidejűségű fejlesztői eszközökhöz lehetséges; várható 5-15 token/mp.
Összerakva a Privonissal
Egy kvantizálási formátum és következtetési szerver kiválasztása olyan mérnöki munka, amely profilozást igényel a saját hardveren a saját munkaterheléssel. A Privonis ezt a referenciaértékelést minden telepítés részének tekinti: áteresztőképességi teszteket futtatunk, kimenet-minőséget mérünk valódi promptok reprezentatív mintáján, és olyan konfigurációt szállítunk, amely maximalizálja a teljesítményt a hardverköltségvetésen belül. Az eredmény egy éles következtetési stack, amelyet a csapat szakosodott ML-mérnök nélkül is tud üzemeltetni. Ha készen áll arra, hogy megvizsgálja, mi illeszkedik a környezetéhez, a csapatunk örömmel futtatja át a számokat.
Beszéljünk az Ön MI-projektjéről
Időpont foglalása