Teknisk GUIDE

Disaggregerad förfyllning och avkodning

En betjänande arkitektur som delar upp stora språkmodeller i två separata faser – förfyllning och avkodning – och kör dem på olika pooler av GPU:er.

2 min readSenast uppdaterad

Översikt

It matters because these two phases have opposite hardware appetites, and forcing them onto the same machines wastes capacity and hurts latency.

Djupdykning

När en LLM svarar fungerar det i två steg. Prefill läser hela prompten på en gång och bygger nyckel-värde (KV) cachen; detta är en stor, parallell, beräkningsbunden skur som mättar GPU:s matematiska enheter. Avkoda genererar sedan tokens en i taget, varje steg läser hela KV-cachen – ett minnesbandbreddsbundet, lätt beräkningstrick. Kör tillsammans, en lång förfyllning stoppar allas avkodning (head-of-line blockering), och batchning av de två skapar störningar. Disaggregering sätter förfyllning på en GPU-pool och avkodar på en annan, vilket överför KV-cachen mellan dem över snabba sammankopplingar som NVLink eller InfiniBand. Varje pool är inställd och skalad oberoende, vilket förbättrar goodput, jämnar ut svansfördröjning och låter operatörer träffa snäva tid-till-första-token- och time-per-output-token-mål samtidigt.

Teknisk insikt

De två faserna skiljer sig åt i sin flaskhals. Prefill bearbetar alla prompt-tokens parallellt, så dess FLOPs skalas med promptlängd och den maximerar tensorkärnorna. Avkodning är autoregressiv: varje ny token behöver en framåtpassning som läser om hela KV-cachen från HBM, så genomströmningen är grindad av minnesbandbredd, inte beräkning. Disaggregation utnyttjar detta genom att dimensionera, gruppera och till och med välja olika parallellitet för varje pool, och sedan skicka KV-cachen från förfyllningsarbetare till avkodningsarbetare.

Strategisk inverkan

Cost and budget

Arkitekturbeslut driver prestanda och driftskostnader i flera år.

Clearer decisions

Teknisk utbildning hjälper team att välja rätt stack, inte bara den nyaste.

Quality control

Bättre tekniska val minskar tillförlitlighetsincidenter i produktionen.

Framtiden för disaggregerad förfyllning och avkodning

Räkna med att uppdelning blir en standard i produktionsstackar. System som DistServe, Splitwise och Mooncake populariserade det, och vLLM och NVIDIA Dynamo levererar nu disaggregerade lägen. Forskning driver KV-cacheöverföringsoptimeringar, cachepooling och återanvändning över förfrågningar, dynamisk ombalansering av prefill/avkodningsförhållanden under skiftande trafik och stramare integration med prefixcache och chunked prefill. När sammanhangsfönster växer till miljontals tokens, blir det allt viktigare att separera dessa faser för kostnadseffektiv visning med låg latens.

Real-World Implementation

En chattassistent dirigerar långa dokumentuppmaningar till ett beräkningstungt förfyllningskluster och streamar sedan svar från ett minnesoptimerat avkodningskluster för att hålla skrivlatensen jämn.

NVIDIA Dynamo och vLLM låter operatörer distribuera separata förfyllnings- och avkodningsarbetsgrupper så att en skur av långa uppmaningar inte fryser pågående generationer.

Mooncake (används av Moonshot AI:s Kimi) disaggregerar förfyllning och avkodning och lägger till en distribuerad KV-cachepool för att minska redundant snabb omräkning i skala.

En kodkompletteringstjänst dedikerar en liten förfyllningspool för korta uppmaningar och en stor avkodningspool, eftersom de flesta kostnaderna kommer från streaming av många utdatatokens.

Risker & skyddsräcken

Att optimera ett riktmärke kan dölja bredare systemsvagheter.

Infrastruktur- och underhållskostnader underskattas ofta.

Säkerhets- och observerbarhetsluckor kan växa i takt med att systemen blir mer komplexa.

Färdplan för genomförande

1

Definiera latens-, kvalitet- och kostnadsmål före implementering.

2

Benchmark under realistiska belastnings- och dataförhållanden.

3

Instrumentövervakning för fel, drift och användarpåverkan.

4

Förbered återställnings- och incidentsvarsvägar innan skalning.

Fortsätt utforska

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 Disaggregated Prefill and Decode Serving quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Starta frågesport

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

Next guide

KServe och modellservering på Kubernetes

Frequently asked questions

What is Disaggregated Prefill and Decode Serving?

En betjänande arkitektur som delar upp stora språkmodeller i två separata faser – förfyllning och avkodning – och kör dem på olika pooler av GPU:er. Det spelar roll eftersom dessa två faser har motsatt hårdvaruaptit, och att tvinga dem på samma maskiner slösar kapacitet och skadar latensen.

Vad är kärnan i hårdvaran för att separera förfyllning och avkodning på olika GPU-pooler?

Prefill bearbetar hela prompten parallellt och mättar beräkning, medan avkodning läser KV-cachen varje steg och begränsas av minnesbandbredd – motsatta aptit som motiverar separata, oberoende inställda pooler.

Vilken datastruktur måste överföras från prefill-arbetare till avkodningsarbetare?

Prefill bygger KV-cachen för prompten; avkodning behöver den cachen för att fortsätta generera, så cachen skickas via en snabb sammankoppling till avkodningspoolen.

Vilket problem minskar disaggregering specifikt i en delad GPU-konfiguration?

På delade GPU:er kan en lång prefill-skur blockera pågående avkodningssteg; att separera dem förhindrar den störningen och stabiliserar svanslatensen.

Varför kan förfyllning batchas aggressivt men avkodningsfördelar med olika inställning?

Prefill bearbetar alla prompt-tokens tillsammans, så större partier matar tensorkärnorna väl; avkodning genererar en token i taget och gated av minnet, så den skalas annorlunda.

Vilka sammankopplingar används vanligtvis för att flytta KV-cachen mellan disaggregerade pooler?

Länkar med hög bandbredd och låg latens som NVLink (intra-nod) och InfiniBand (inter-nod) behövs så att KV-cacheöverföring inte blir den nya flaskhalsen.