vLLM parametre yardımcısı — ayarlanmış vllm serve komutu
Ayarlanmış bir `vllm serve` komutu üret. Bir model, neyi optimize ettiğini ve iş tipini seç — LLMScale en iyi performans, doğruluk ve güvenilirlik için parametreleri önerir ve kopyalanabilir komut verir.
Model seç
Neyi optimize et
İş tipi
Önerilen komut
vllm serve meta-llama/Llama-3.1-8B-Instruct \
--max-model-len 8192meta-llama/Llama-3.1-8B-Instruct--max-model-len 8192Context penceresini sınırlar — modelin tam maksimumuna göre KV cache'i serbest bırakır.
vLLM loguyla karşılaştır
vllm serve'ün açılış sırasında yazdırdığı çıktıyı yapıştır. LLMScale, vLLM'in kendi rakamlarını okur ve bunları yukarıdaki model, kart ve ayarlar için yaptığı tahminin yanına koyar. Log tarayıcından çıkmaz.
vllm serve bayrakları nasıl seçiliyor
Bir model, bir GPU ve adedi, bir context uzunluğu, bir öncelik (dengeli, throughput, düşük gecikme, maks doğruluk ya da bellek-kısıtlı) ve bir görev (sohbet, RAG, kod, araç kullanımı, yapısal JSON, görsel ya da akıl yürütme) seç. Yardımcı bunu, her bayrak için tek satırlık gerekçesiyle bir vllm serve komutuna ve aynı bayrakların Kubernetes args biçimine dönüştürür.
- --max-model-len = seçtiğin context
- --tensor-parallel-size, --pipeline-parallel-size, --data-parallel-size ve --enable-expert-parallel = hesaplayıcının o kadar GPU'daki düzeni: vLLM'in modeli onlarda çalıştırabileceği ve context'teki istekleri taşıyan yollardan en hızlısı (ona %10 yakın olanlardan en çok isteği taşıyanı; throughput ve bellek önceliğinde en çok isteği taşıyanı), pipeline aşamaları yalnız başka düzen taşımıyorsa (ya da bir linkin veya düzen seçicinin verdiği)
- --gpu-memory-utilization = throughput ya da bellek-kısıtlı için optimize ederken 0.95; diğer seçeneklerde vLLM'in varsayılanı 0.92 olduğu gibi bırakılır
- --kv-cache-dtype fp8 = bellek-kısıtlı ya da throughput önceliğinde, 32k+ context ya da RAG görevinde; DeepSeek V4'te her zaman, --block-size 256 ile, vLLM tarifinin verdiği gibi
- --max-num-seqs = 512 (throughput), 32 (düşük gecikme) ya da 64 (bellek-kısıtlı); en fazla, her GPU ağırlık payını ve vLLM'in ek yükünü aldıktan sonra KV cache'in tutabildiği tam uzunlukta dizi sayısı
- Prefix caching ve chunked prefill vLLM 0.31'de varsayılan olarak açıktır; bu yüzden komutta yer almaz
Araç kullanımı, modelin ailesine uygun tool-call ayrıştırıcısıyla --enable-auto-tool-choice ekler; yapısal JSON xgrammar arka ucunu ekler, görsel görev prompt başına görsel sayısını sınırlar. Önceden quantize edilmiş depolar (AWQ, GPTQ, FP8, NVFP4) --quantization bayrağı gerektirmez ve sayfa bunu belirtir. Bellek kontrolü — VRAM hesaplayıcısının, düzenin her GPU'sunda tam uzunlukta tek bir istek için kendi hesabı — model sığmayacaksa uyarır ve hesaplayıcının bu GPU'lardan kaç tane gerektiğini ve nasıl yerleştirileceğini verir. vLLM'in Metal arka ucu olmadığı için Apple cihazları listede yoktur.
Sık sorulanlar
- --gpu-memory-utilization ne işe yarar?
- vLLM'in her GPU'da model ağırlıkları, aktivasyonlar ve KV cache için alabileceği bellek oranıdır. Ağırlıkların kullanmadığı kısım KV cache olur; değer yükseldikçe daha çok eşzamanlı dizi sığar ve karttaki başka işlere daha az pay kalır.
- --max-num-seqs neden beklediğimden düşük?
- Yardımcı onu, seçtiğin context uzunluğunda KV cache'in gerçekten tutabileceği sayıyla sınırlar. Daha yüksek ayarlamak kapasite eklemez: o noktadan sonraki istekler kuyrukta bekler.
- FP8 KV cache kullanmalı mıyım?
- KV cache'i yarıya indirir, yani yaklaşık iki kat dizi sığar; ama uzun context'li işlerde doğruluğa mal olabilir. Yardımcının onu yalnızca bellek ya da throughput öncelikliyken ve context uzunken önermesi, önce doğrulamanı istemesi bu yüzdendir.
- Kaç GPU gerekir, nasıl bölünür?
- Ağırlıkların ve iş yükünün KV cache'inin sığacağı kadar. Tek GPU taşımadığında bellek kontrolü VRAM hesaplayıcısının sayısını ve düzenini verir: attention head'ler bölünüyorsa tensor paralel, bölünmüyorsa ya da cache daha fazla bölünemiyorsa pipeline aşamaları, MoE'de uzmanların veri-paralel sıralara dağıtılması. Kapasite planlayıcı aynı düzenleri bir yük için boyutlar.