Workstation technische briefing: hoe u LLM-services en -agenten een boost kunt geven PagedAttention, vLLM, Self-Debugging, PowerInfer, En EG-MLA. Metgezel: bloggen · grondlaag: LLMs op Kubernetes-artikel · laboratorium: Enterprise AI-lab.
- Knelpunt: KV-cachegroei en fragmentatie, niet ‘het model is traag’ in abstracte zin.
- PagedAttention: OS-stijl paging van KV-blokken; stem de blokgrootte en cachehiërarchie af.
- vLLM: motor bedienen met vrijwel nul KV-afval + continue batching; bekijk TTFT versus tokens/s.
- Self-Debugging: programmareparatie met een paar shots verslaat enorme kandidatensets; doprondjes in prod.
- PowerInfer: warm/koud split; 13,20 tok/s gemiddeld / 29,08 piek op RTX 4090 (cijfers op papier/repo).
- EG-MLA: KV-compressie op architectuurniveau (~91,6% versus MHA); opnieuw evalueren vóór ruilen.
1. Waarom dienen, en niet trainen, de crisis is
Grote taalmodellen veranderden NLP: chat, generatie, tools. Opleiding is eenmaal duur; serveren is elke seconde duur. Decoderen is autoregressief. Voor elk nieuw token zijn de vorige sleutels en waarden nodig. Het geheugen voor die KV-cache is evenredig met lagen × koppen × verborgen × reeks × batch. Vooraf invullen is rekenintensief; decoderen is geheugen-bandbreedte-zwaar. Als je per verzoek een aaneengesloten KV-tensor met maximale lengte toewijst, is het grootste deel leeg totdat de reeks daadwerkelijk groeit: klassieke interne fragmentatie. Gelijktijdige verzoeken kunnen deze gaten niet stelen. Batchgrootte neemt af. Tokens per seconde vallen. GPU's zien er druk en nog steeds inactief uit.
Dat is het probleem dat PagedAttention en vLLM in 2023 aanvielen, en het probleem dat PowerInfer en latere aandachtsvarianten nog steeds vanuit verschillende hoeken aanvallen.
Bekijk: LLM mentaal model
Contextvideo: Inleiding tot grote taalmodellen. Workstation uitleg: hoe LLM's werken en hoe u ze op Kubernetes kunt uitvoeren.
2. PagedAttention: paging voor de KV-cache
Kwon, Li, Zhuang, Sheng, Zheng, Yu, Gonzalez, Zhang en Stoica introduceerden PagedAttention als een aandachtsalgoritme geïnspireerd door virtueel geheugen en OS-paging, en bouwden er vLLM bovenop [arXiv:2309.06180]. Het idee:
- Splits KV in blokken met een vaste maat (een klein aantal tokens per blok).
- Houd een blok tafel van logische tokenposities tot fysieke GPU-blokken (mogelijk niet-aangrenzend).
- Wijs blokken toe/vrij naarmate reeksen groeien of eindigen – zoals paginatoewijzing, niet zoals malloc van één gigantische array.
- Deel blokken (copy-on-write) voor hergebruik van voorvoegsels, zoeken naar bundels en parallelle bemonstering, zodat u geen identieke voorvoegsels dupliceert.
Implementatie is niet “een vlag zetten op BERT.” De aandachtskernel moet verspreide blokken verzamelen. De planner moet weten welke blokken vrij zijn. De cachehiërarchie is van belang: HBM-residente blokken versus CPU-offload versus NVLink-peers. Buffer (blok) grootte is een echte knop. Te klein: meer tabelzoekopdrachten en kernel-overhead. Te groot: verspilde slots in het laatste gedeeltelijke blok. Koppel blokgrootte met max_model_len en de daadwerkelijke prompt/voltooiingsmix van uw verkeer.
Oefening: profielfragmentatie (ongebruikte KV-bytes / gereserveerde KV-bytes) en tokens/s samen. Geheugengrafieken zonder doorvoer zijn ijdelheid.
3. vLLM: het bedieningssysteem rondom de pager
De claim van vLLM is dat er vrijwel geen verspilling is in het KV-cachegeheugen, plus flexibel delen binnen en tussen verzoeken. Evaluaties in de krant lieten grofweg zien 2–4× doorvoer versus toenmalige SOTA-systemen (FasterTransformer, Orca) met vergelijkbare latentie, met grotere winsten bij lange sequenties en luxere decodering. Tegenwoordig levert de engine ook continue batching, chunked prefill, prefix caching en tensor/pipeline parallel voor multi-GPU.
Operationele checklist:
- Set
gpu_memory_utilizationhoog genoeg om gewichten + KV te dragen, laag genoeg om de CUDA-werkruimte te verlaten. - Schakel prefix-caching alleen in nadat u de evaluatiescores hebt bevestigd en p95 TTFT hebt ingeschakeld jouw aanwijzingen.
- Scheid prefill-zware en decodeer-zware pools als gemengd verkeer SLO vernietigt (gedesaggregeerde weergave).
- Stel OpenAI-compatibele eindpunten achter uw gateway bloot (Workstation-installaties laten dit vaak achter WSL Proxy / API-gateway patronen).
from vllm import LLM, SamplingParams
llm = LLM(
model="meta-llama/Llama-3.1-8B-Instruct",
gpu_memory_utilization=0.90,
max_model_len=8192,
enable_prefix_caching=True,
)
params = SamplingParams(temperature=0.2, max_tokens=256)
outs = llm.generate(["Summarise PagedAttention for a platform engineer."], params)
print(outs[0].outputs[0].text)
Antipatroon (dit is niet PagedAttention):
# Classifier forward pass — logits, not paged KV serving
import torch
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
out = model(torch.tensor([[1, 2, 3]]), attention_mask=torch.tensor([[1, 1, 1]]))
print(out.logits)
Bekijk: serveersystemen in het wild
Contextueel dienend gesprek. Canonisch schrijven: vLLM-blog (PagedAttention) · motor: vllm-project/vllm.
4. Self-Debugging: meer kwaliteit per kandidaat, niet meer kandidaten
Chen, Lin, Klein, et al. toonde aan dat het leren van een LLM om zijn voorspelde programma te debuggen met een paar demonstraties, basislijnen kan evenaren of verslaan die meer dan 10x zoveel kandidaten genereren [arXiv:2304.05128]. De lus is: genereren → uitvoeren of testen van eenheden → sporen terugkoppelen → repareren.
Afweging van de productie: elk feedbackbericht is een nieuwe prefill+decode (of een lange contexttoevoeging). De nauwkeurigheid neemt vaak toe met meer rondes; dat geldt ook voor de latentie en de kosten. Workstation-richtlijnen voor agenten (zie ook Muse Glimmer / lokale agenten):
- Harde limiet voor foutopsporingsrondes (bijvoorbeeld 2–4) per tooloproep.
- Budgettokens afzonderlijk van voor de gebruiker zichtbare chat.
- Escaleer naar een menselijk of gespecialiseerd model in plaats van oneindig opnieuw te proberen.
- Traceringen registreren voor evaluatie — Self-Debugging zonder telemetrie is folklore.
5. PowerInfer: locatiebewuste tokengeneratie
PowerInfer (SJTU IPADS / gerelateerde repos) is een systeem voor het genereren van tokens dat gebruik maakt van de activeringslocatie: een klein “hete” neuron ingesteld op GPU, koudere gewichten gestreamd of uitgevoerd op CPU. Gepubliceerde bedrijfspunten omvatten 13,20 tokens/s gemiddeld En 29,08 tokens/s piek op een enkele NVIDIA RTX 4090, en tot 11,69× versus llama.cpp met behouden nauwkeurigheid [PowerInfer GitHub]. (Op de gebruiker gerichte vorken zoals Tiiny-AI/PowerInfer volgen hetzelfde werkgebied.)
Opschaling is het moeilijkste deel. Eén enkel 4090-locatieprofiel wordt niet automatisch een gezonde Kubernetes-implementatie. Je hebt nodig:
- Eerlijke GPU-verzoeken/-limieten en NUMA-bewuste CPU-pinning als CPU-experts actief zijn.
- Een gedistribueerd plan als het model niet langer past: tensor parallel versus pijplijn versus expert parallel.
- SLO-splitsing: interactieve chat versus batchvoltooiing versus agenttoolloops.
Gebruik PowerInfer (of llama.cpp, of MLX) op werkstations en edge-boxen; gebruik vLLM (of TensorRT-LLM of SGLang) wanneer u datacenter GPU's vult met gelijktijdig OpenAI-achtig verkeer. Meet beide. Ons Enterprise AI-lab standpunt is hetzelfde als Polyglot Benchmarks: bewijs, dan ADR.
6. EG-MLA: verminder de aandacht op de architectuur
Serveertrucs kunnen een model waarvan de KV intrinsiek enorm is, niet repareren. EG-MLA-rapporten (embedding-gated latente aandacht met meerdere hoofden). meer dan 91,6% KV-cachegroottereductie versus multi-head aandacht (MHA) met verwaarloosbare verslechtering, extra besparingen versus MLA (tot 59,9%) en verbeterde redeneer-benchmark-nauwkeurigheid. De auteurs beweren dat het inbedden van gating impliciete interacties van hoge orde induceert en laat zien dat er voorbij 1B-parameters wordt geschaald [EG-MLA, arXiv].
Technische implicatie: dit is een opleiding / architectuur beslissing. Je kunt EG-MLA niet omdraaien op een willekeurige vLLM-nacht van Llama-3 en de percentages van het papier verwachten. Als u de voor- of voortgezette voortraining beheert, is EG-MLA een kandidaat om HBM te verminderen voordat u nog een GPU koopt. Als je alleen publieke gewichten bedient, blijf dan op PagedAttention + kwantisering + MLA-varianten die de engine al ondersteunt, en volg EG-MLA-checkpoints terwijl ze landen.
7. Het combineren van de stapel zonder ladingcultivering
| Laag | Gebruik wanneer | Pas op |
|---|---|---|
| PagedAttention / vLLM | Gelijktijdige API-weergave, lange context, gedeelde voorvoegsels | Voorvoegselcache versus correctheid; OOM bij hoog gebruik |
| PowerInfer | Single fat GPU / tokensnelheid voor werkstations | Plaatsmismatch; rommelige schaalvergroting |
| Self-Debugging | Code-/agentlussen die tests kunnen uitvoeren | Onbegrensde rondes; extra voorvulkosten |
| EG-MLA | Je traint of verfijnt de ruggengraat | Geen serveervlag; Voer de volledige evaluatie opnieuw uit |
8. Schaalbaarheid op Kubernetes
Een goed ontworpen gedistribueerde architectuur verhoogt de doorvoer en brengt ook faalmodi met zich mee: achterblijvers, KV-cacheoverdracht, tokenizer-skew en autoscalers die warme voorvoegsels doden. Praktisch patroon (afgestemd op onze Ollama / vLLM op Kubernetes opschrijven):
- Toegewijde GPU-knooppuntpools; verpak nooit decodeerpods met willekeurige CPU-taken.
- Afzonderlijk vooraf invullen en decoderen als TTFT SLO's en tokens/s SLO's vechten.
- HPA op wachtrijdiepte of GPU KV-bezetting, niet alleen CPU.
- Promoot serveerstapels via ringen (Ring Promoter) zodat een slechte motorconstructie de test niet kan overslaan.
9. Conclusie
De LLMs met turbocompressor is niet één algoritme. Het is het paging van de KV-cache (PagedAttention), een dienstverlenende engine die deze pagina's niet verspilt (vLLM), locatiebewuste generatie wanneer de hardware een GPU-werkstation is (PowerInfer), agentlussen die debuggen in plaats van kandidaten te spuiten (Self-Debugging), en – als je de gewichten bezit – aandacht die simpelweg minder opslaat (EG-MLA). Elke laag ruilt geheugen, latentie en nauwkeurigheid. Meet uw verkeer. Publiceer de ADR. Schip.
Referenties
- Kwon et al. — Efficiënt geheugenbeheer voor weergave van grote taalmodellen met PagedAttention (arXiv:2309.06180, 14 september 2023).
- Chen et al. — Grote taalmodellen leren zichzelf te debuggen (arXiv:2304.05128, 12 april 2023).
- PowerInfer — SJTU-IPADS/PowerInfer (en gerelateerde Tiiny-AI-vorken).
- EG-MLA — Inbedding-Gated latente aandacht met meerdere koppen (arXiv, 20 september 2025).
- vLLM-blog — Gemakkelijke, snelle en goedkope LLM-servering met PagedAttention.
Gepubliceerd door Workstation. Papieren cijfers geciteerd zoals gepubliceerd door de oorspronkelijke auteurs; productieaantallen op uw cluster zullen verschillen.