În inferența LLM tradițională, fiecare instanță GPU execută două faze complet diferite: Prefill (fază bound de calcul masiv, care procesează promptul de intrare în paralel) și Decode (fază bound de lățimea de bandă a memoriei, care generează câte un token la fiecare pas pas-cu-pas). Când un utilizator trimite un prompt masiv de 50.000 de tokeni pe o instanță care deservește deja generarea altor clienți, generarea acestora suferă o întârziere majoră (spike de latență).
Prefill Disaggregation (disocierea etapelor) reprezintă arhitectura de ultimă generație din vLLM: clusterul este împărțit în noduri specializate de Prefill (optimizate pentru throughput maxim și procesare rapidă a prompturilor lungi) și noduri specializate de Decode (optimizate pentru latență inter-token minimă).
Starea KV Cache calculată pe nodul de Prefill este transferată instantaneu către nodul de Decode prin rețele de mare viteză (RDMA / RoCE), permițând ca primul token (Time-to-First-Token – TTFT) să fie returnat utilizatorului în timp record, fără a degrada experiența celorlalți utilizatori activi.
Sintaxă, opțiuni și concepte cheie
| Opțiune / Concept | Descriere practică |
|---|---|
Time-to-First-Token (TTFT) |
Timpul scurs de la trimiterea promptului până la recepția primului token generat. |
Inter-Token Latency (ITL) |
Timpul necesar pentru generarea fiecărui token consecutiv în faza de decode. |
Chunked Prefill |
Spargerea prompturilor mari în bucăți mai mici intercalate cu pași de decode. |
KV Cache Transfer (RDMA) |
Protocolul de memorie directă prin rețea ce mută memoria cache a atenției între GPU-uri fără trecere prin CPU. |
vllm serve --enable-chunked-prefill |
Flagul de lansare ce activează procesarea intercalată la nivel de server unificat. |
Exemple practice și comenzi
Exemplul 1: Pornirea serverului vLLM cu Chunked Prefill activat pentru latență redusă
Comanda optimă de lansare pentru API-uri cu trafic mixt (prompturi lungi și scurte concurente).
# Lansare vLLM cu suport pentru chunked prefill și optimizare PagedAttention:
$ python3 -m vllm.entrypoints.openai.api_server \
--model meta-llama/Llama-3.3-70B-Instruct \
--tensor-parallel-size 4 \
--enable-chunked-prefill \
--max-num-batched-tokens 2048 \
--gpu-memory-utilization 0.92 \
--port 8000
Rezultat & Impact
Scădere de până la 4x a latenței TTFT în scenarii cu prompturi lungi de RAG.
Greșeli frecvente și bune practici
- Setarea unui `–max-num-batched-tokens` prea mic, ceea ce sub-utilizează nucleele Tensor ale GPU-ului în faza de prefill.
- Implementarea dezagregării complete Prefill/Decode pe clustere fără conexiuni RDMA/InfiniBand, unde transferul de KV Cache prin rețea standard 1Gbps/10Gbps devine un blocaj mai grav decât rularea unificată.