vllm bench serve în vLLM & Infrastructură LLM

Server & Invocare CLI vLLM 0.32.0 (octombrie 2026)

Benchmark pentru un server vLLM pornit: trimite cereri dintr-un set de date și raportează throughput-ul și latențele (TTFT, ITL și altele).

Sintaxă & invocare
vllm bench serve [--model MODEL] [--host 127.0.0.1] [--port 8000] [--dataset-name random] [--num-prompts 1000] [--request-rate inf] [--max-concurrency N]

Ce face vllm bench serve

vllm bench serve se conectează la un server deja pornit (implicit 127.0.0.1:8000, endpoint-ul /v1/completions) și trimite cererile unui set de date. Rata se controlează cu --request-rate (implicit inf: toate cererile pornesc la momentul 0) și --max-concurrency.

Setul de date implicit este random. Pentru fiecare tip de set de date există opțiuni proprii (de exemplu --random-input-len, --sharegpt-output-len, --hf-split), listate în ultimele rânduri ale tabelului. Opțiunile --top-p, --top-k, --min-p, --temperature și penalizările se trimit în fiecare cerere.

Rezultatele se salvează în JSON cu --save-result; --plot-timeline creează un grafic HTML cu execuția cererilor.

Sintaxă și opțiuni

Opțiune / Parametru Descriere
--backend Tipul de backend sau endpoint: vllm, openai, openai-chat, openai-responses, openai-audio, openai-embeddings și altele. Implicit openai.
--base-url URL-ul serverului, dacă nu folosești host și port.
--host / --port Serverul țintă. Implicit 127.0.0.1 și 8000.
--endpoint Endpoint-ul API. Implicit /v1/completions.
--header Perechi cheie=valoare trimise ca antete în fiecare cerere.
--model Modelul. Implicit, primul model din /v1/models.
--served-model-name Numele modelului în API, dacă diferă de --model.
--tokenizer / --tokenizer-mode Tokenizerul folosit pentru numărarea tokenilor (implicit modul auto).
--trust-remote-code Permite cod de la distanță din Hugging Face.
--skip-tokenizer-init Nu inițializează tokenizerul.
--seed Seed-ul. Implicit 0.
--dataset-name Setul de date: sharegpt, burstgpt, random, random-mm, random-rerank, hf, custom, custom_audio, custom_image, prefix_repetition, spec_bench, speed_bench, timed_trace. Implicit random.
--dataset-path Calea setului ShareGPT sau ID-ul setului HF.
--num-prompts Numărul de prompturi. Implicit 1000.
--input-len / --output-len Lungimi generale de intrare și ieșire, mapate pe opțiunile setului de date.
--no-stream Nu încarcă setul de date în modul streaming.
--no-oversample Nu repetă eșantioane când setul are mai puține decât --num-prompts.
--skip-chat-template Nu aplică chat template-ul promptului.
--enable-multimodal-chat Transformarea multimodală de chat pentru seturile care o suportă.
--disable-shuffle Nu amestecă eșantioanele (ordine deterministă).
--request-rate Cereri pe secundă. Implicit inf.
--burstiness Factorul de rafală al cererilor (1 = proces Poisson). Contează doar cu --request-rate finit.
--max-concurrency Numărul maxim de cereri simultane.
--ramp-up-strategy / --ramp-up-start-rps / --ramp-up-end-rps Creșterea treptată a ratei: linear sau exponential, între rata inițială și cea finală.
--probe-request-rate Rata cererilor de probă de un token trimise în paralel cu sarcina principală. Implicit 0.
--ready-check-timeout-sec Cât se așteaptă ca endpoint-ul să fie gata. Implicit 0 (fără verificare).
--num-warmups Cereri de încălzire. Implicit 0.
--use-beam-search Folosește beam search.
--logprobs Numărul de logprobs per token cerute.
--ignore-eos Trimite ignore_eos în cereri.
--extra-body JSON cu parametri suplimentari adăugați în fiecare cerere.
--chat-template-kwargs JSON transmis lui apply_chat_template când setul randează prompturile local.
--lora-modules / --lora-assignment Adaptoarele LoRA folosite și modul de alocare: random (implicit) sau round-robin.
--percentile-metrics Metricile pentru care se raportează percentile.
--metric-percentiles Percentilele raportate, separate prin virgulă. Implicit 99.
--goodput Obiective de serviciu METRICĂ:MILISECUNDE pentru calculul goodput.
--self-timed / --no-self-timed Folosește momentele din trace în loc de configurație (reluarea fidelă a unui trace).
--request-id-prefix Prefixul ID-urilor de cerere.
--profile Profilare vLLM; serverul trebuie pornit cu --profiler-config.
--label Eticheta rezultatelor (implicit valoarea lui --backend).
--save-result / --save-detailed / --append-result Salvează rezultatele în JSON, cu detalii per cerere, sau le adaugă la un fișier existent.
--result-dir / --result-filename Directorul și numele fișierului de rezultate.
--metadata Perechi cheie=valoare salvate în JSON-ul de rezultate.
--disable-tqdm Dezactivează bara de progres.
--insecure Nu verifică certificatul SSL (servere cu certificat self-signed).
--plot-timeline / --timeline-itl-thresholds Grafic HTML al execuției; pragurile ITL (ms) pentru culori, implicit 25,50.
--plot-dataset-stats Grafic matplotlib cu distribuția tokenilor din setul de date.
--top-p, --top-k, --min-p, --temperature, --frequency-penalty, --presence-penalty, --repetition-penalty Parametri de eșantionare trimiși în cereri.
--random-input-len, --random-output-len, --random-range-ratio, --random-prefix-len, --random-batch-size, --no-reranker Opțiunile setului random.
--random-mm-base-items-per-request, --random-mm-num-mm-items-range-ratio, --random-mm-limit-mm-per-prompt, --random-mm-bucket-config Opțiunile setului random-mm.
--hf-subset, --hf-split, --hf-name, --hf-output-len Opțiunile seturilor Hugging Face.
--sharegpt-output-len Opțiunea setului ShareGPT.
--custom-output-len, --custom-ensure-client-side-data Opțiunile setului custom.
--prefix-repetition-prefix-len, --prefix-repetition-suffix-len, --prefix-repetition-num-prefixes, --prefix-repetition-output-len Opțiunile setului prefix_repetition.
--spec-bench-output-len, --spec-bench-category; --speed-bench-dataset-subset, --speed-bench-output-len, --speed-bench-category Opțiunile seturilor Spec Bench și SPEED-Bench.
--timed-trace-chunk-hash-size, --timed-trace-sec-multiplier, --timed-trace-label-* Opțiunile setului timed_trace.
--blazedit-min-distance, --blazedit-max-distance; --asr-min-audio-len-sec, --asr-max-audio-len-sec; --bfcl-categories Opțiunile seturilor BlazEdit, ASR și BFCL.

Exemple practice

Exemplul 1: Exemplul din ghidul CLI

Înlocuiește server-host și server-port cu adresa serverului pornit.

vllm bench serve \
    --model meta-llama/Llama-3.2-1B-Instruct \
    --host server-host \
    --port server-port \
    --random-input-len 32 \
    --random-output-len 4  \
    --num-prompts  5

Greșeli frecvente și bune practici

  • Lași --request-rate inf fără --max-concurrency și toate cererile pornesc deodată; rezultatul nu seamănă cu traficul real.
  • Testezi endpoint-ul de completări cu un set de chat. Alege --backend și --endpoint potrivite (de exemplu openai-chat și /v1/chat/completions).
  • Folosești --profile fără --profiler-config pe server.

Comenzi înrudite