Hvad der sker i hver fase
Under prefill læser modellen hele prompten på én gang. Det er en stor, meget parallel matrix-matrix-beregning, der udnytter hardwarens regneenheder fuldt ud. Resultatet er KV-cachen: attention-nøgler og -værdier for hvert token i prompten. De beregnes én gang og genbruges resten af forespørgslen. Prefill slutter, når det første output-token er produceret. Derfor er det promptens længde, der styrer time to first token.
Under decode genererer modellen ét token, føjer det til konteksten og gentager. Hvert trin er en smal matrix-vektor-operation, der genbruger den cachede tilstand. Alligevel skal hardwaren hente modellens vægte fra hukommelsen for hvert eneste token. Denne fase er memory-bound: Det er hastigheden, hvormed vægte og cache-data flyttes fra hukommelsen, der styrer latensen, ikke regnekraften.
Hvorfor forskellen betyder noget
De to faser stiller forskellige krav til hardwaren. Prefill belønner rå regnekraft. Decode belønner hukommelsesbåndbredde og effektiv dataflytning. Databricks' tekniske guide siger det praktisk: Hukommelsesbåndbredde forudsiger tokengenereringens hastighed bedre end maksimal regnekraft. En chip med imponerende FLOPS kan stadig generere tokens langsomt, hvis den venter på hukommelsen.
Det er også derfor, GPU-baseret serving læner sig så tungt op ad batching. Når hver indlæsning af vægtene fordeles på mange samtidige forespørgsler, stiger udnyttelsen under decode igen. Prisen er lavere hastighed per bruger. Arkitekturer, der er designet omkring dataflytning, angriber i stedet flaskehalsen i decode direkte. Et eksempel er den dataflow-hardware, vi kører på. Den holder udnyttelsen høj, selv ved små batch-størrelser.
Metrikkerne set gennem denne linse
Ydelsen i prefill viser sig i TTFT. Ydelsen i decode viser sig i inter-token latency og output-tokens per sekund. Forskningslitteraturen tager ét forbehold: Opdelingen i compute-bound og memory-bound gælder ved almindelige batch-størrelser i serving. Ved meget store batches kan decode blive compute-bound. Netop fordi de to faser er så forskellige, går branchen mod disaggregeret serving, hvor prefill og decode kører på separate, specialiserede hardware-puljer.
Kilder
Læs, hvordan SambaNovas dataflow-arkitektur ændrer økonomien i inferens, og hvorfor vi har bygget på den.
Udforsk teknologien