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 inffă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--endpointpotrivite (de exempluopenai-chatși/v1/chat/completions). - Folosești
--profilefără--profiler-configpe server.