Folyamatos adagolás
A folyamatos kötegelés egy olyan kiszolgálási technika, amely egy futó kötegelt tokenről tokenre ad hozzá és eltávolítja a kéréseket ahelyett, hogy a teljes rögzített köteg befejezésére várna.
Áttekintés
It keeps the GPU constantly busy and sharply increases how many users an AI model can serve at once.
Mély merülés
A GPU-k akkor a leggyorsabbak, ha sok kérést egyszerre dolgoznak fel egy kötegben. A naiv megközelítés, a statikus kötegelés, a kérések rögzített halmazát csoportosítja, mindegyiket a befejezésig futtatja, majd elindítja a következő köteget. A probléma: a nyelvi modell kimeneteinek hossza vadul változik, így a rövid kérések korán befejeződnek, és a slotjaik tétlenül állnak, miközben a köteg a leghosszabbra vár, ezzel elpazarolva a GPU-ciklusokat és késleltetve az új érkezéseket. A folyamatos kötegelés (más néven repülés közbeni vagy iterációs szintű kötegelés, amelyet az Orca papír népszerűsített és a vLLM-ben, a TensorRT-LLM-ben és a TGI-ben használnak) egyetlen dekódolási lépés részletességében működik. Minden egyes token létrehozása után a kész sorozatok kilépnek a kötegből, és a frissen érkezett kérések azonnal bekerülnek. Ezáltal a köteg tele marad, a GPU pedig telített, ami gyakran többszörösére növeli az átviteli sebességet alacsonyabb késleltetés mellett a várakozó felhasználók számára.
Technikai betekintés
A kulcsváltás a teljes kérések kötegelésétől az egyedi iterációk kötegeléséig terjed. Az ütemező minden dekódolási lépésnél összeállítja az aktív halmazt: lefuttat egy előrelépést az összes repülés közbeni szekvencián, egy-egy tokent bocsát ki, kilakoltatja azokat, amelyek elérik a sorozatvégi tokent vagy hosszkorlátot, és elfogadja a sorba állított kéréseket a felszabadult helyek kitöltésére. A PagedAttention rugalmas KV-memóriájával való párosítás olcsóbbá teszi a szekvenciák beillesztését és eltávolítását menet közben, mivel az egyes szekvenciák gyorsítótára független blokkokban él.
Stratégiai hatás
Költség és költségvetés
Az építészeti döntések évekig növelik a teljesítményt és a működési költségeket.
Tisztább döntések
A technikai oktatás segít a csapatoknak a megfelelő verem kiválasztásában, nem csak a legújabb készletben.
Minőségellenőrzés
A jobb mérnöki döntések csökkentik a termelés megbízhatósági incidenseit.
A folyamatos adagolás jövője
A folyamatos adagolás ma már alapfelszereltség az éles LLM kiszolgálásban. A jövőbeni munka finomítja az ütemezőt: a számításigényes előtöltési fázis elválasztása a könnyebb dekódolási fázistól (bontás), a dekódolás elakadásának elkerülése érdekében feldarabolt előtöltés, a vegyes munkaterhelések prioritási és méltányossági irányelvei, valamint a spekulatív dekódolással való szorosabb összekapcsolás, így lépésenként több piszkozat token érvényesül. A cél az, hogy GPU-nként a maximális másodpercenkénti tokeneket szorítsák meg, miközben az egyéni válaszok várakozási ideje alacsony és kiszámítható marad.
Valós megvalósítás
Egy chat API, amely az újonnan érkezett felhasználói üzeneteket azonnal beengedi a futó kötegbe, ahelyett, hogy sorba állítaná őket a következő köteghez
A rövid kitöltött válasz kidobása a köteg közepén, és a nyílás visszatöltése, hogy a GPU soha ne tétlenül várjon egy hosszú generációra
A folyamatos kötegelés kombinálása a vLLM PagedAttention funkciójával a szekvenciák olcsó beszúrásához és eltávolításához minden dekódolási lépésnél
Kód-kiegészítő szolgáltatás, amely magas másodpercenkénti tokeneket tart fenn burst, változó hosszúságú forgalom alatt azáltal, hogy a köteg tele van
Kockázatok és védőkorlátok
Egy benchmark optimalizálása elrejtheti a rendszer általános hiányosságait.
Az infrastrukturális és karbantartási költségeket gyakran alábecsülik.
A biztonsági és megfigyelhetőségi hiányosságok a rendszerek bonyolultabbá válásával nőhetnek.
Végrehajtási ütemterv
Határozza meg a késleltetési, minőségi és költségcélokat a megvalósítás előtt.
Benchmark reális terhelési és adatviszonyok mellett.
Műszerfigyelés a hibák, az eltolódás és a felhasználói hatások szempontjából.
A méretezés előtt készítse elő a visszagörgetési és az incidensre adott válaszútvonalakat.
Folytassa a felfedezést
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Continuous Batching quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Következő útmutató
Kubernetes ML munkaterhelésekhez
Gyakran ismételt kérdések
What is Continuous Batching?
A folyamatos kötegelés egy olyan kiszolgálási technika, amely egy futó kötegelt tokenről tokenre ad hozzá és eltávolítja a kéréseket ahelyett, hogy a teljes rögzített köteg befejezésére várna. Folyamatosan lefoglalja a GPU-t, és jelentősen megnöveli, hogy egy AI-modell hány felhasználót tud egyszerre kiszolgálni.
Mi a statikus (rögzített) kötegelés fő gyengesége az LLM-kiszolgáláshoz?
Mivel a kimeneti hossza változó, a kész sorozatok tétlenül állnak addig, amíg a leglassabb be nem fejeződik, így elpazarolják a GPU-ciklusokat és késleltetik az új kéréseket.
Milyen részletességgel ad hozzá és távolítja el a kéréseket a folyamatos kötegelés?
A folyamatos (iterációs szintű) kötegelés minden egyes dekódolási lépés után frissíti az aktív készletet, így nem teljes kérésenként, hanem tokenenként működik.
Amikor egy sorozat a köteg közepén befejeződik folyamatos kötegelés közben, mi történik a slotjával?
A kész sorozatok kiürítésre kerülnek, és a várakozó kérések azonnal bekerülnek, így a köteg tele marad, és a GPU elfoglalt marad.
Melyik technika párosul természetesen a folyamatos kötegeléssel, hogy olcsó legyen a szekvenciák beillesztése/eltávolítása?
A PagedAttention az egyes szekvenciák KV gyorsítótárát független blokkokban tárolja, így egy szekvencia repülés közbeni hozzáadása vagy eltávolítása nem zavarja mások memóriáját.
Melyik kutatási cikknek tulajdonítják általában az iterációs szintű (folyamatos) kötegelés népszerűsítését?
Az Orca-dokumentum bevezette az iterációs szintű ütemezést, és az ötletet átvették a kiszolgáló rendszerek, például a vLLM, a TGI és a TensorRT-LLM.