Hoe ruilt batchverwerking van AI thuis latentie in voor doorvoer?

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Batching van AI op een thuisserver verhoogt de totale doorvoer door compatibel werk te combineren, maar elke aanvraag kan daardoor langer wachten of tragere iteraties delen met andere gebruikers.

Een enkele prompt kan onmiddellijk een inactieve accelerator gebruiken, terwijl een familieserver vaak overlappende chats, documentprompts, spraakverzoeken en achtergrondtaken ontvangt. De runtime kan een aanvraag kort vasthouden om een batch te vormen, nieuwe reeksen tussen decodeeriteraties toe te voegen of lange prefills in kleinere delen op te splitsen. Zo blijft een groter deel van de accelerator actief, maar veranderen ook de tijd tot het eerste token, de vertraging tussen tokens en de eerlijkheid. In de onderstaande secties leggen we uit waar batching helpt en wanneer hogere doorvoer niet langer zorgt voor een betere interactieve ervaring.

Batching zet ongebruikte capaciteit van de accelerator om in gedeeld werk

Eén aanvraag gebruikt mogelijk niet elke parallelle uitvoeringsbaan efficiënt, vooral tijdens kleine matrixbewerkingen of bij korte reeksen. Door meerdere aanvragen te combineren ontstaan grotere tensorbewerkingen die de accelerator effectiever kunnen benutten.

Orca introduceerde planning op iteratieniveau, waarmee aanvragen tussen generatie-iteraties kunnen toetreden en vertrekken in plaats van één vaste batch te verplichten samen te blijven totdat elke reeks is voltooid.

De winst wordt gemeten in voltooide tokens of aanvragen per tijdseenheid. Dat garandeert niet dat een individuele gebruiker sneller een token ontvangt.

Een batchvenster voegt wachttijd toe voordat de berekening begint

Een runtime die op meer aanvragen wacht, kan een grotere en efficiëntere batch samenstellen, maar de eerste aanvraag betaalt die wachttijd, zelfs wanneer de accelerator beschikbaar was.

De afweging tussen doorvoer en latentie wordt zichtbaar wanneer grotere batches de efficiëntie van het apparaat verbeteren, maar de wachtrij- of iteratietijd verlengen.

Interactieve AI op een thuisserver heeft doorgaans een kort of adaptief batchvenster nodig. Achtergrondtaken voor embeddings kunnen meer wachttijd verdragen, omdat het doel voltooide verwerking is en niet een conversatiereactie.

Lange prefills kunnen korte decodeertaken vertragen

Promptverwerking voert een grote, rekenintensieve prefill uit, terwijl actieve gesprekken herhaaldelijk terugkeren voor geheugenintensieve decodeerstappen. Als ze in één batch worden gecombineerd, kan een kleine interactieve decodeerbewerking moeten wachten achter een lange documentprompt.

DistServe isoleert interferentie tussen prefill en decode, omdat de twee fasen verschillende eigenschappen hebben op het gebied van bronnen en latentie.

Chunked prefill is een compromis: een lange prompt wordt opgesplitst zodat decodeeraanvragen tussen de delen door kunnen worden uitgevoerd, maar het document heeft daardoor meer planningsrondes nodig om te voltooien.

De beste instelling hangt ervan af of de server prioriteit geeft aan één lange analysetaak of aan meerdere gebruikers die al gestreamde antwoorden ontvangen.

Reeksen met verschillende lengtes maken elke batch ongelijkmatig

Aanvragen verschillen in promptlengte, uitvoerlengte, stopvoorwaarden en modelkenmerken. Sommige zijn snel klaar, terwijl andere actief blijven, waardoor de samenstelling van de batch voortdurend verandert.

vLLM gebruikt continue batching met een gepagineerde KV-cache om nieuwe aanvragen toe te laten zodra capaciteit beschikbaar komt, in plaats van te wachten op een vaste batchgrens.

Zelfs met efficiënt geheugenbeheer gebruikt één zeer lange reactie gedurende veel iteraties decodeerslots en KV-cache. De batchgrootte moet daarom worden uitgedrukt in token- en geheugenbudgetten, niet alleen in het aantal aanvragen.

Grotere batches kunnen de tokensnelheid per gebruiker verlagen

Het totale aantal tokens per seconde kan stijgen, terwijl elke gebruiker een kleiner aandeel van de decodeeriteraties ontvangt. Een dashboard dat een hogere totale doorvoer toont, kan samengaan met tragere zichtbare streaming.

De gids van ZimaSpace over gelijktijdig gebruik door gezinsleden legt uit waarom benchmarks met één gebruiker de latentie van meerdere overlappende gesprekken niet voorspellen.

Meet naast de totale doorvoer ook de tijd tot het eerste token, de tijd tussen tokens en de voltooiingstijd per aanvraag. Anders kan batching worden afgestemd op een metriek die gebruikers nooit rechtstreeks ervaren.

Gebruik verschillende batchbeleidsregels voor interactief en achtergrondwerk

Reserveer korte wachtrijvensters, begrensde gelijktijdigheid en een hogere prioriteit voor spraak en chat. Sta grotere batches en een lagere prioriteit toe voor embeddings, indexering, samenvattingen en offline transformaties.

Onderzoek naar eerlijke LLM-serving gebruikt tokenbewuste eerlijkheid, zodat de lange invoer of uitvoer van één aanvraag niet onbeperkt een onevenredig groot aandeel inneemt.

Test onder representatieve gezinsbelasting, niet alleen bij de maximale batchgrootte. De nuttige configuratie biedt de hoogst mogelijke doorvoer die nog steeds voldoet aan de doelstellingen voor het eerste token en de streaminglatentie van het interactieve pad.

Wanneer één accelerator niet aan beide categorieën kan voldoen, zijn afzonderlijke workers of planningen mogelijk eenvoudiger dan één universeel batchingbeleid.

Veelgestelde vragen

Verhoogt batching de latentie altijd?

Niet altijd. Efficiënte batching kan de totale wachtrij sneller leegmaken en overbelasting voorkomen, maar wachten op een batch en het delen van langere iteraties kan de latentie van een individuele aanvraag verhogen.

Is de batchgrootte het aantal gebruikers?

Niet precies. Runtimes kunnen budgetteren op basis van actieve reeksen, tokens, KV-blokken of de totale hoeveelheid werk, en één gebruiker kan meerdere gelijktijdige aanvragen genereren.

Moeten spraakverzoeken samen met embeddings worden gebatcht?

Meestal niet onder hetzelfde latentiebeleid. Spraak is interactief, terwijl embeddingtaken kunnen wachten en tijdens ongebruikte capaciteit grotere batches kunnen gebruiken.

Tech & AI HUB

Meer om te lezen

Waarom veranderen AI-fotolabels na een modelupgrade?
Aug 08, 2026

Waarom veranderen AI-fotolabels na een modelupgrade?

Een modelupgrade verandert de representatie en rangschikking die worden gebruikt om labels toe te wijzen, waardoor dezelfde foto verschillende semantische of betrouwbaarheidsgrenzen kan overschrijden.

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.