Műszaki ÚTMUTATÓ

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.

2 perc olvasásUtoljára frissítve

Á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

1

Határozza meg a késleltetési, minőségi és költségcélokat a megvalósítás előtt.

2

Benchmark reális terhelési és adatviszonyok mellett.

3

Műszerfigyelés a hibák, az eltolódás és a felhasználói hatások szempontjából.

4

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.

Kezdő kvíz

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.