Hoe beïnvloedt de contextlengte de doorvoer van lokale LLM's?

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.

Een langere context verlaagt doorgaans de doorvoer van lokale LLM's doordat de prefill-berekening, het KV-cachegeheugen, het decodeerwerk en de concurrentie om capaciteit voor gelijktijdige reeksen toenemen.

Het effect volgt niet één universele curve van tokens per seconde. De promptlengte vergroot vooral de prefillfase, terwijl de groeiende actieve context ervoor zorgt dat latere decodeerstappen meer in de cache opgeslagen keys en values moeten raadplegen. Als het geheugen vol raakt, kan de server minder verzoeken toelaten, reeksen onderbreken, de cache verplaatsen of werk weigeren. De doorvoer hangt daarom af van het model, de attention-kernel, de hardware, de scheduler en de samenstelling van de werklast.

De promptlengte vergroot het prefillwerk vóór het eerste token

Tijdens prefill verwerkt het model alle prompttokens om verborgen toestanden en de initiële key-value-cache te maken. Het werk voor standaardattention neemt sterk toe met de sequentielengte, hoewel geoptimaliseerde kernels het geheugentransport en constante factoren verminderen zonder de invoer kosteloos te maken.

Het artikel over IO-bewuste attention introduceert een IO-bewust algoritme voor exacte attention dat het transport tussen geheugenniveaus van de GPU vermindert. De snelheidswinst laat zien waarom de keuze van de kernel de curve verandert, terwijl de onderliggende context nog steeds berekeningen en geheugentransport vereist.

Een server die alleen decodeertokens per seconde rapporteert, kan deze kosten verbergen. Voor RAG en lange gesprekken zijn time-to-first-token en verwerkte prompts per seconde nodig naast de uitvoerdoorvoer. Dit onderscheid blijft zichtbaar tijdens latere tests in een huishoudelijke omgeving.

De KV-cache groeit met elk actief contexttoken

Autoregressieve decodering slaat keys en values van eerdere tokens op, zodat ze niet opnieuw hoeven te worden berekend. Het cachegeheugen schaalt mee met de lengte van actieve reeksen, het aantal lagen, de dimensies, de precisie en het aantal gelijktijdige reeksen. Langere contexten verminderen daarom het aantal verzoeken dat tegelijk past.

De vLLM-implementatie PagedAttention introduceert PagedAttention om fragmentatie van de KV-cache te verminderen en flexibel delen mogelijk te maken. Een betere toewijzing vergroot de bruikbare capaciteit, maar verwijdert niet de bytes die nodig zijn voor de behouden context zelf. Het tussenresultaat moet inspecteerbaar blijven voordat automatisering erop volgt.

Wanneer de capaciteit op is, kunnen systemen nieuwe verzoeken in de wachtrij plaatsen, de cache verwijderen of opnieuw berekenen, naar hostgeheugen wisselen of de batch verkleinen. Dit beleid kan een soepele benchmark voor één gebruiker veranderen in instabiele goodput voor meerdere gebruikers. Die grens moet afzonderlijk worden gemeten onder realistische bedrijfsomstandigheden.

Decodeerstappen lezen meer geschiedenis naarmate de context groeit

Elk gegenereerd token bevraagt de opgebouwde cache, waardoor geheugenuitlezingen en attentionwerk toenemen met de sequentielengte. Het model kan beperkt blijven door de geheugenbandbreedte, terwijl contextcompressie of cachekwantisatie geheug bespaart ten koste van nauwkeurigheid en kernelondersteuning.

Het onderzoek naar KV-cachekwantisatie kwantiseert de KV-cache om veel langere contexten mogelijk te maken en benoemt de cachecapaciteit expliciet als knelpunt voor lange contexten. Dit laat zien dat een geadverteerde maximale context en een efficiënte aanhoudende doorvoer verschillende eigenschappen zijn. Het praktische gevolg wordt zichtbaar wanneer meerdere bronnen concurreren om beperkte context.

De foutgrens ontstaat wanneer twee contexten worden vergeleken terwijl de promptsamenstelling, uitvoerlengte, gelijktijdigheid of cacheprecisie verandert. De kwaliteit van het ophalen kan verbeteren door extra bewijs, ook als de systeemdoorvoer daalt. Prestaties en bruikbaarheid van antwoorden hebben daarom afzonderlijke assen nodig.

Benchmark de doorvoer over buckets met verschillende promptlengtes

Maak vaste promptbuckets, zoals 512, 2.048, 8.192 en 16.384 tokens, met gecontroleerde uitvoerlengtes. Voer elke bucket uit met één gebruiker en met toenemende gelijktijdigheid. Leg daarbij prompttokens per seconde, uitvoertokens per seconde, time-to-first-token, intertokentijd, cachegebruik, wachtrijtijd, onderbrekingen en fouten vast.

Vergelijk de curve met de vertraging bij lange gesprekken die wordt beschreven in de vertraging van het contextvenster. Houd het model, de kwantisatie, sampling, scheduler en hardware constant en herhaal de test vervolgens met prefixcaching of cachekwantisatie als afzonderlijke experimenten. Deze afhankelijkheid moet expliciet blijven in de uiteindelijke interface.

Stel een operationeel contextbudget vast op basis van goodput binnen de vereiste latentie, niet op basis van de maximaal geaccepteerde lengte van het model. Haal alleen extra informatie op of vat die samen wanneer de daaruit voortvloeiende kwaliteitswinst opweegt tegen de gemeten prefill- en cachekosten.

Tech & AI HUB

Meer om te lezen

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.