Teknisk GUIDE

Kontinuerlig batching

Kontinuerlig batching er en serveringsteknikk som legger til og fjerner forespørsler fra en løpende batch token-by-token, i stedet for å vente på at en hel fast batch er ferdig.

2 min lesingSist oppdatert

Oversikt

It keeps the GPU constantly busy and sharply increases how many users an AI model can serve at once.

Dypdykk

GPUer er raskest når de behandler mange forespørsler sammen i en batch. Den naive tilnærmingen, statisk batching, grupperer et fast sett med forespørsler, kjører dem alle til fullføring, og starter deretter neste batch. Problemet: språkmodellutgangene varierer voldsomt i lengde, så korte forespørsler avsluttes tidlig og sporene deres står uvirksomme mens gruppen venter på den lengste, sløser bort GPU-sykluser og forsinker nye ankomster. Kontinuerlig batching (også kalt batching på fly eller iterasjonsnivå, populært av Orca-papiret og brukt i vLLM, TensorRT-LLM og TGI) opererer med granulariteten til et enkelt dekodingstrinn. Etter at hvert token er generert, går ferdige sekvenser ut av batchen og nyinnkomne forespørsler legges inn umiddelbart. Dette holder batchen full og GPUen mettet, og øker ofte gjennomstrømningen flere ganger med lavere ventetid for ventende brukere.

Teknisk innsikt

Nøkkelskiftet er fra batching av hele forespørsler til batching av individuelle iterasjoner. Ved hvert dekodingstrinn bygger planleggeren det aktive settet: den kjører ett foroverpass over alle sekvenser under flyging, sender ut ett token hver, kaster ut alle som treffer en slutt-av-sekvens-token eller lengdegrense, og innrømmer forespørsler i kø for å fylle de frigjorte sporene. Sammenkobling av dette med PagedAttentions fleksible KV-minne gjør det billig å sette inn og fjerne sekvenser midt i flyet, siden hver sekvenss cache bor i uavhengige blokker.

Strategisk innvirkning

Cost and budget

Arkitekturbeslutninger driver ytelse og driftskostnader i årevis.

Tydeligere avgjørelser

Teknisk utdanning hjelper team med å velge riktig stabel, ikke bare den nyeste.

Quality control

Bedre ingeniørvalg reduserer pålitelighetshendelser i produksjonen.

Fremtiden for kontinuerlig batching

Kontinuerlig batching er nå standard i produksjons-LLM-servering. Fremtidig arbeid foredler planleggeren: skiller den datatunge prefill-fasen fra den lettere dekodingsfasen (disaggregering), chunked prefill for å unngå blokkering av dekoding, prioritets- og rettferdighetspolicyer for blandede arbeidsbelastninger, og tettere kobling med spekulativ dekoding slik at flere utkast-tokens valideres per trinn. Målet er å presse ut maksimale tokens per sekund per GPU, samtidig som individuell responsforsinkelse holdes lav og forutsigbar.

Real-World Implementering

En chat-API som tillater nylig ankomne brukermeldinger i den kjørende batchen umiddelbart i stedet for å sette dem i kø for neste batch

Kaste ut et kort ferdig svar midt i batch og fylle ut sporet slik at GPUen aldri går på tomgang og venter på en lang generasjon

Kombinere kontinuerlig batching med vLLMs PagedAttention for å sette inn og fjerne sekvenser billig ved hvert dekodetrinn

En kodefullføringstjeneste som opprettholder høye tokens per sekund under kraftig trafikk med variabel lengde ved å holde batchen full

Risikoer og rekkverk

Optimalisering av ett benchmark kan skjule bredere systemsvakheter.

Infrastruktur- og vedlikeholdskostnader er ofte undervurdert.

Sikkerhets- og observerbarhetsgap kan vokse etter hvert som systemene blir mer komplekse.

Veikart for implementering

1

Definer ventetid, kvalitet og kostnadsmål før implementering.

2

Benchmark under realistiske belastnings- og dataforhold.

3

Instrumentovervåking for feil, drift og brukerpåvirkning.

4

Forbered tilbakerulling og hendelsesresponsbaner før skalering.

Fortsett å utforske

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.

Start quiz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Neste guide

Kubernetes for ML-arbeidsbelastninger

Ofte stilte spørsmål

What is Continuous Batching?

Kontinuerlig batching er en serveringsteknikk som legger til og fjerner forespørsler fra en løpende batch token-by-token, i stedet for å vente på at en hel fast batch er ferdig. Det holder GPUen konstant opptatt og øker kraftig hvor mange brukere en AI-modell kan betjene samtidig.

Hva er hovedsvakheten ved statisk (fast) batching for LLM-servering?

Fordi utdatalengdene varierer, blir ferdige sekvenser inaktive til den tregeste fullfører, og sløser bort GPU-sykluser og forsinker nye forespørsler.

Med hvilken granularitet legger kontinuerlig batching til og fjerner forespørsler?

Kontinuerlig (iterasjonsnivå) batching oppdaterer det aktive settet etter hvert enkelt dekodetrinn, slik at det opererer token-for-token i stedet for per hele forespørsel.

Når en sekvens avsluttes midt i batch under kontinuerlig batching, hva skjer med sporet?

Ferdige sekvenser kastes ut og ventende forespørsler legges inn umiddelbart, noe som holder batchen full og GPU-en opptatt.

Hvilken teknikk pares naturlig med kontinuerlig batching for å gjøre innsetting/fjerning av sekvenser billig?

PagedAttention lagrer hver sekvenss KV-cache i uavhengige blokker, så det å legge til eller fjerne en sekvens midt på flyvningen forstyrrer ikke andres minne.

Hvilken forskningsartikkel er vanligvis kreditert med popularisering av iterasjonsnivå (kontinuerlig) batching?

Orca-artikkelen introduserte planlegging på iterasjonsnivå, og ideen ble tatt i bruk av serversystemer som vLLM, TGI og TensorRT-LLM.