Průběžné dávkování
Nepřetržité dávkování je technika poskytování, která přidává a odebírá požadavky z běžící dávky token po tokenu, namísto čekání na dokončení celé pevné dávky.
Přehled
It keeps the GPU constantly busy and sharply increases how many users an AI model can serve at once.
Hluboký ponor
GPU jsou nejrychlejší, když zpracovávají mnoho požadavků společně v dávce. Naivní přístup, statické dávkování, seskupuje pevnou sadu požadavků, všechny je zpracuje až do konce a poté spustí další dávku. Problém: Délka výstupů jazykových modelů se velmi liší, takže krátké požadavky skončí brzy a jejich sloty nečinně čekají, zatímco dávka čeká na nejdelší, čímž se plýtvá cykly GPU a zpožďují se nové příchozí. Nepřetržité dávkování (také nazývané dávkování za letu nebo na úrovni iterací, popularizované papírem Orca a používané ve vLLM, TensorRT-LLM a TGI) funguje s granularitou jediného kroku dekódování. Po vygenerování každého tokenu hotové sekvence opustí dávku a čerstvě došlé požadavky jsou okamžitě vloženy. To udržuje dávku plnou a GPU nasycený, což často několikrát zvyšuje propustnost s nižší latencí pro čekající uživatele.
Technický přehled
Klíčový posun je od dávkování celých požadavků k dávkování jednotlivých iterací. V každém kroku dekódování plánovač sestaví aktivní sadu: spustí jeden dopředný průchod přes všechny sekvence během letu, každou vyšle jeden token, vyřadí všechny, které dosáhly tokenu konce sekvence nebo limitu délky, a přijme ve frontě požadavky na zaplnění uvolněných slotů. Spárováním s flexibilní pamětí KV PagedAttention je vkládání a odebírání sekvencí během letu levné, protože mezipaměť každé sekvence žije v nezávislých blocích.
Strategický dopad
Cena a rozpočet
Rozhodnutí o architektuře zvyšují výkon a provozní náklady po mnoho let.
Jasnější rozhodnutí
Technické vzdělání pomáhá týmům vybrat ten správný stack, nejen ten nejnovější.
Kontrola kvality
Lepší konstrukční volby snižují výskyt problémů se spolehlivostí ve výrobě.
Budoucnost kontinuálního dávkování
Nepřetržité dávkování je nyní standardem v produkčním podávání LLM. Budoucí práce zdokonalí plánovač: oddělení fáze předvyplnění náročné na výpočet od lehčí fáze dekódování (disagregace), chunked prefill, aby se zabránilo zastavení dekódování, zásady priority a spravedlnosti pro smíšenou pracovní zátěž a těsnější propojení se spekulativním dekódováním, takže v každém kroku je ověřeno více konceptů tokenů. Cílem je stlačit maximální počet tokenů za sekundu na GPU při zachování nízké a předvídatelné latence individuální odezvy.
Real-World Implementace
Rozhraní API pro chat, které nově příchozí uživatelské zprávy okamžitě přijme do běžící dávky, místo aby je řadilo do fronty pro další dávku
Vyřazení krátké dokončené odpovědi v polovině dávky a zaplnění jejího slotu, aby GPU nikdy nezahálelo čekáním na dlouhou generaci
Kombinace nepřetržitého dávkování s PagedAttention vLLM pro levné vkládání a odstraňování sekvencí v každém kroku dekódování
Služba dokončování kódu, která udržuje vysoké množství tokenů za sekundu při nárazovém provozu s proměnnou délkou tím, že udržuje plnou dávku
Rizika a zábradlí
Optimalizace jednoho benchmarku může skrýt širší systémové slabiny.
Náklady na infrastrukturu a údržbu jsou často podceňovány.
Mezery v zabezpečení a pozorovatelnosti se mohou zvětšovat, jak se systémy stávají složitějšími.
Plán implementace
Před implementací definujte cíle latence, kvality a nákladů.
Benchmark za realistických podmínek zatížení a dat.
Monitorování chyb, posunu a dopadu na uživatele.
Před škálováním připravte cesty vrácení zpět a reakce na incidenty.
Pokračujte v objevování
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
Další průvodce
Kubernetes for ML Workloads
Často kladené otázky
What is Continuous Batching?
Nepřetržité dávkování je technika poskytování, která přidává a odebírá požadavky z běžící dávky token po tokenu, namísto čekání na dokončení celé pevné dávky. Udržuje GPU neustále zaneprázdněný a prudce zvyšuje počet uživatelů, kterým může AI model sloužit najednou.
Jaká je hlavní slabina statického (pevného) dávkování pro poskytování LLM?
Vzhledem k tomu, že výstupní délky se liší, hotové sekvence jsou nečinné, dokud se nedokončí ta nejpomalejší, čímž se plýtvají cykly GPU a zpožďují se nové požadavky.
S jakou granularitou průběžné dávkování přidává a odstraňuje požadavky?
Nepřetržité dávkování (na úrovni iterace) aktualizuje aktivní sadu po každém jednotlivém kroku dekódování, takže funguje po tokenu po tokenu, nikoli po celém požadavku.
Když sekvence skončí uprostřed dávky při nepřetržitém dávkování, co se stane s jejím slotem?
Dokončené sekvence jsou vyřazeny a čekající požadavky jsou okamžitě vloženy, což udržuje dávku plnou a GPU zaneprázdněný.
Která technika se přirozeně spojuje s kontinuálním dávkováním, aby bylo vkládání/odebírání sekvencí levné?
PagedAttention ukládá KV mezipaměť každé sekvence do nezávislých bloků, takže přidání nebo odebrání sekvence během letu nenaruší paměť ostatních.
Jaké výzkumné práci se běžně připisuje popularizace (nepřetržitého) dávkování na úrovni iterací?
Dokument Orca zavedl plánování na úrovni iterací a myšlenku převzaly systémy jako vLLM, TGI a TensorRT-LLM.