Technický PRŮVODCE

Disagregované předvyplnění a dekódování zobrazování

Obslužná architektura, která rozděluje odvození velkého jazykového modelu do dvou samostatných fází – předvyplnění a dekódování – a spouští je na různých fondech GPU.

2 minuty čteníNaposledy aktualizováno

Přehled

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

Hluboký ponor

Když LLM odpoví, funguje to ve dvou fázích. Prefill přečte celou výzvu najednou a vytvoří mezipaměť klíč-hodnota (KV); toto je velký, paralelní, výpočetně vázaný výbuch, který nasytí matematické jednotky GPU. Dekódování pak generuje tokeny jeden po druhém, přičemž každý krok čte celou KV mezipaměť – mírný úprk vázaný na šířku pásma paměti. Když běžte společně, dlouhá předvýplň zastaví dekódování všech (blokování hlavičky) a jejich dávkování v dávkách vytváří interferenci. Disagregace vloží předvyplnění do jednoho fondu GPU a dekódování do druhého, mezi nimiž se mezi nimi přenese mezipaměť KV přes rychlá propojení, jako je NVLink nebo InfiniBand. Každý fond je laděn a škálován nezávisle, čímž se zlepšuje dobrý výkon, vyhlazuje latence ocasu a umožňuje operátorům dosáhnout napjatých cílů v době do prvního tokenu a času na výstup současně.

Technický přehled

Obě fáze se liší svým úzkým hrdlem. Prefill zpracovává všechny tokeny výzvy paralelně, takže jeho FLOP se škáluje podle délky výzvy a maximalizuje jádra tenzoru. Dekódování je autoregresivní: každý nový token potřebuje jeden dopředný průchod, který znovu načte celou mezipaměť KV z HBM, takže propustnost je řízena šířkou pásma paměti, nikoli výpočtem. Disagregace toho využívá dimenzováním, dávkováním a dokonce výběrem různého paralelismu pro každý fond a poté odesílá KV mezipaměť od pracovníků předvyplnění k pracovníkům s dekódováním.

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 rozčleněného předvyplnění a dekódování

Očekávejte, že se dezagregace stane výchozím nastavením v produkčních hromadách. Systémy jako DistServe, Splitwise a Mooncake jej popularizovaly a vLLM a NVIDIA Dynamo nyní dodávají rozčleněné režimy. Výzkum prosazuje optimalizaci přenosu mezipaměti KV, sdružování a opětovné použití mezipaměti napříč požadavky, dynamické vyvažování poměrů předvyplnění/dekódování při přesunu provozu a těsnější integraci s mezipamětí prefixů a předvyplněním po částech. Jak kontextová okna narůstají do milionů tokenů, je oddělení těchto fází stále důležitější pro nákladově efektivní obsluhu s nízkou latencí.

Real-World Implementace

Asistent chatu směruje výzvy k dlouhým dokumentům do výpočetně náročného předvyplňovacího clusteru a poté streamuje odpovědi z paměťově optimalizovaného dekódovacího clusteru, aby byla latence psaní plynulá.

NVIDIA Dynamo a vLLM umožňují operátorům nasadit samostatné skupiny pracovníků pro předvyplnění a dekódování, takže příval dlouhých výzev nezmrazí další generace.

Mooncake (používaný Kimi z Moonshot AI) rozděluje předvyplnění a dekódování a přidává distribuovaný fond mezipaměti KV, aby se snížil nadbytečný rychlý přepočet ve velkém měřítku.

Služba dokončování kódu vyčleňuje malý fond předvyplnění pro krátké výzvy a velký fond dekódování, protože většina nákladů pochází ze streamování mnoha výstupních tokenů.

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

1

Před implementací definujte cíle latence, kvality a nákladů.

2

Benchmark za realistických podmínek zatížení a dat.

3

Monitorování chyb, posunu a dopadu na uživatele.

4

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

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

Spustit kvíz

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

Další průvodce

KServe a modelování na Kubernetes

Často kladené otázky

What is Disaggregated Prefill and Decode Serving?

Obslužná architektura, která rozděluje odvození velkého jazykového modelu do dvou samostatných fází – předvyplnění a dekódování – a spouští je na různých fondech GPU. Záleží na tom, protože tyto dvě fáze mají protichůdné požadavky na hardware a jejich vnucování stejným strojům plýtvá kapacitou a škodí latenci.

Jaký je hlavní hardwarový důvod pro oddělení předvyplnění a dekódování do různých fondů GPU?

Prefill zpracovává celou výzvu paralelně a saturuje výpočet, zatímco dekódování čte KV cache každý krok a je omezeno šířkou pásma paměti – opačné požadavky, které ospravedlňují samostatné, nezávisle laděné fondy.

Jaká struktura dat musí být přenesena z pracovníků s předvyplněním do pracovníků s dekódováním?

Prefill vytvoří mezipaměť KV pro výzvu; decode potřebuje tuto mezipaměť, aby pokračovalo ve generování, takže mezipaměť je dodávána přes rychlé propojení do fondu dekódování.

Který problém konkrétně snižuje dezagregace v nastavení sdíleného GPU?

Na sdílených GPU může dlouhé předvyplnění blokovat probíhající kroky dekódování; jejich oddělení zabraňuje tomuto rušení a stabilizuje latenci ocasu.

Proč lze předvyplnění dávkovat agresivně, ale dekódování těží z jiného ladění?

Předvyplnění zpracovává všechny tokeny výzvy společně, takže větší dávky dobře zásobují tenzorová jádra; dekódování generuje vždy jeden token a je hradlováno pamětí, takže se různě škáluje.

Která propojení se obvykle používají k přesunu mezipaměti KV mezi dezagregovanými fondy?

Aby se přenos KV-mezipaměti nestal novým úzkým hrdlem, jsou zapotřebí vysokorychlostní spojení s nízkou latencí, jako je NVLink (v rámci uzlu) a InfiniBand (mezi uzlem).