EMZETT.
Login

Inferenz-Server: Batching, PagedAttention und vLLM

Kurz: Ein Inferenz-Server beantwortet viele Anfragen gleichzeitig. Mit Continuous Batching, PagedAttention und Caching holt er viel mehr Antworten pro Sekunde aus derselben GPU.

Genauer: Weil die Textgenerierung durch die Speicherbandbreite begrenzt ist, kostet es kaum mehr Zeit, mehrere Anfragen gleichzeitig zu bearbeiten: Das Modell wird einmal gelesen und bedient viele Nutzer.

Im Detail

  • Static Batching: Auf die langsamste Anfrage warten. Verschwendet Leistung.
  • Continuous Batching: Beendete Anfragen werden sofort durch neue ersetzt, die GPU bleibt ausgelastet.
  • PagedAttention (vLLM): Der kv-cache wird in kleine Seiten unterteilt wie virtueller Speicher im Betriebssystem. Das vermeidet Verschwendung durch Fragmentierung.
  • Prefix-Caching: Gleiche Anfangsstücke (System-Prompt, lange Dokumente) werden nur einmal berechnet. Deshalb sind gecachte Eingabe-Tokens bei APIs oft deutlich billiger.
  • Chunked Prefill, Disaggregation: Lesen des Prompts und Schreiben der Antwort auf getrennte GPUs legen, siehe prefill-und-decode.
  • Spekulatives Decoding: spekulatives-decoding.
  • Kennzahlen: Latenz bis zum ersten Token (TTFT), Token pro Sekunde je Nutzer, Gesamtdurchsatz.
  • Software: vLLM, SGLang, TensorRT-LLM, llama.cpp-Server, Ollama (einfach, lokal).
  • Kosten: Anbieter rechnen pro Million Token, Eingabe und Ausgabe getrennt.

Siehe auch: tokens-pro-sekunde, Warum GPUs für KI?