vLLM Production Stack: nasazení a základní nastavení pro produkci
vLLM Production Stack usnadňuje nasazení vysokoproduktivního inferenčního provozu LLM v Kubernetes. Sestává ze skupiny instancí vLLM a směrovače pro směrování požadavků. Podporuje kompatibilní rozhraní OpenAI: chat/completions, embeddings, tokenizer, stejně jako přepisování a překlad zvuku. Testovací prostředí: 2 servery s 8× NVIDIA H200 (141 GB), Astra Linux SE 8, Kubernetes 1.30, vLLM 0.17.0, Production Stack 0.1.10.
Příklady konfigurací jsou uvedeny fragmenty YAML. Plné manifesty obsahují standardní pole Kubernetes, která nejsou opakována pro stručnost. Konflikty parametrů jsou uvedeny zvlášť.
Podporované modely a načítání
vLLM podporuje většinu aktuálních LLM. Pro nové modely použijte nightly image. Modely se ve výchozím stavu stahují z Hugging Face. Při absence internetu je možné je připojit prostřednictvím PVC:
extraVolumeMounts:
- mountPath: /models/Qwen3-8B
name: model
readOnly: true
extraVolumes:
- name: model
persistentVolumeClaim:
claimName: pvc-qwen3-8b
Základní spuštění Qwen3-8B
Nasazení Qwen3-8B s lokálním připojením a OpenAI API:
servingEngineSpec:
enableEngine: true
modelSpec:
- name: qwen3-8b
repository: vllm-openai
tag: v0.17.0
env:
- name: HF_HUB_OFFLINE
value: "1"
modelURL: /models/Qwen3-8B
extraVolumeMounts:
- mountPath: /models/Qwen3-8B
name: model
readOnly: true
extraVolumes:
- name: model
persistentVolumeClaim:
claimName: pvc-qwen3-8b
replicaCount: 1
requestCPU: 8
requestGPU: 1
requestMemory: 16Gi
vllmConfig:
extraArgs:
- --served-model-name
- Qwen/Qwen3-8B
gpuMemoryUtilization: 0.98
Proměnná HF_HUB_OFFLINE=1 zakazuje přístup k HF. Přesměrování portu: kubectl port-forward svc/... 9191:9191. Testovací požadavek:
curl -N http://localhost:9191/v1/chat/completions \
-H "Content-Type: application/json" \
--data-raw '{
"model": "Qwen/Qwen3-8B",
"messages": [
{ "role": "user", "content": "Napiš: Ahoj!" }
]
}'
Model s režimem myšlení vrací blok <think></think>.
Volání nástrojů a režimy myšlení
Pro volání nástrojů aktivujte serverové možnosti:
extraArgs:
- --enable-auto-tool-choice
- --tool-call-parser
- qwen3_coder
Bez nich agenty selhají s chybou. Režim myšlení/ne-myšlení se nastavuje prostřednictvím --default-chat-template-kwargs:
extraArgs:
- --default-chat-template-kwargs
- '{"enable_thinking": false}'
Klientské chat_template_kwargs přepisují serverové. Pro DeepSeek: {"thinking": false}.
Multimodální modely a CPU backend
Multimodální modely vyžadují vlastní obrázek:
FROM vllm/vllm-openai:v0.17.0
RUN uv pip install --system "vllm[audio]==0.17.0" && \
uv pip install --system "vllm[video]==0.17.0"
Zvětšete shmSize: "32Gi" pro mm_processor_cache. Je nutné nastavit tensorParallelSize: 1. Pro Qwen3-Omni-30B: --limit-mm-per-prompt.
CPU provoz pro embedding modely (Qwen3-Embedding-0.6B):
env:
- name: VLLM_CPU_KVCACHE_SPACE
value: "48"
vllmConfig:
extraArgs:
- --served-model-name
- Qwen3-Embedding-0.6B
VLLM_CPU_KVCACHE_SPACE je povinné s rezervou paměti.
Klíčové parametry spuštění
| Parametr | Účel | Kdy je důležitý |
|----------|------|----------------|
| enablePrefixCaching | Uložení společného prefixu do KV-cache | Společné začátky promptů |
| enableChunkedPrefill | Rozdělení dlouhého prefillu | Dlouhé vstupy, smíšená zátěž |
| maxModelLen | Maximální délka kontextu | Úspora paměti, dlouhý kontext |
| dtype | Typ čísel pro váhy | Fixace přesnosti |
| tensorParallelSize | Rozdělení mezi GPU | Velké modely |
| maxNumSeqs | Maximální počet posloupností v batchu | Paralelizmus, zpoždění |
| gpuMemoryUtilization | Využití paměti GPU | Optimalizace OOM |
gpuMemoryUtilization=0.98 zanechává rezervu pro KV-cache. maxModelLen omezuje kontext pro úsporu paměti. enablePrefixCaching zrychluje opakující se prefixy.
Co je důležité
- vLLM Production Stack je kompletní K8s obálka s routerem a observabilitou.
- Pro offline provoz připojujte modely přes PVC, HF_HUB_OFFLINE=1.
- Volání nástrojů vyžaduje --enable-auto-tool-choice a model-specifický parser.
- Multimodální modely: vlastní obrázek + shmSize 32Gi + tensorParallelSize.
- CPU režim: VLLM_CPU_KVCACHE_SPACE s rezervou.
— Editorial Team
Zatím žádné komentáře.