vLLM 처리량 벤치마크
vLLM 처리량 벤치마크 (vllm bench throughput)
vllm bench throughput는 주어진 데이터셋과 구성으로 vLLM 모델의 처리량(throughput)을 측정하는 명령이에요. 프롬프트 수, 입력·출력 길이, 백엔드, 데이터셋 등을 다양하게 지정해 벤치마크를 수행하고 결과를 JSON으로 저장할 수 있어요.
서빙 전 성능을 예측하거나, 여러 설정(모델·양자화·배치 크기)을 비교할 때 유용해요.
백엔드와 데이터셋
- --backend — 벤치마크 백엔드.
vllm,hf,mii,vllm-chat중 선택. 기본vllm - --dataset-name — 벤치마크할 데이터셋.
sharegpt,random,sonnet,burstgpt,hf,prefix_repetition,random-mm,random-rerank,custom_audio중 선택. 기본sharegpt
주요 인자
- --input-len — 요청당 입력 프롬프트 길이
- --output-len — 요청당 출력 길이. 데이터셋의 출력 길이를 덮어씀
- --n — 프롬프트당 생성할 시퀀스 수. 기본
1 - --num-prompts — 처리할 프롬프트 수. 기본
1000 - --num-warmups — 타이밍 벤치마크 전에 처리할 워밍업 프롬프트 수. 기본
0 - --output-json — 처리량 결과를 JSON 형식으로 저장할 경로
- --async-engine — LLM 클래스 대신 vLLM async engine 사용. 기본
False - --disable-detokenize — 응답을 디토크나이즈하지 않음(디토크나이즈 시간을 측정에서 제외). 기본
False - --lora-path — 사용할 LoRA 어댑터 경로(HF 모델 식별자 가능)
- --lora-assignment —
random,round-robin중 LoRA 어댑터 할당 전략. 기본random - --prefix-len — 요청의 랜덤 컨텍스트 앞 고정 프리픽스 토큰 수. 기본
0
랜덤 샘플링 관련
- --random-input-len — 랜덤 샘플링 시 요청당 입력 토큰 수. 기본
1024 - --random-output-len — 랜덤 샘플링 시 요청당 출력 토큰 수. 기본
128 - --random-range-ratio — 입력/출력 길이 샘플링 범위 비율.
0.0(기본). JSON 딕셔너리'{"input": 0.3, "output": 0.5}'로 독립 설정 가능. 값은[0, 1)사이
사용 예시
vllm bench throughput \
--backend vllm \
--model meta-llama/Llama-3.1-8B-Instruct \
--input-len 256 --output-len 128 \
--num-prompts 1000 \
--output-json ./result.json
벤치마크가 끝나면 처리량(초당 생성 토큰 수 등) 결과가 --output-json 경로에 저장돼요.
더 알아보기
- vLLM vllm serve 문서: 서버 서빙
- vLLM vllm run-batch 문서: 오프라인 배치 추론
- vLLM vllm complete 문서: 프롬프트 완료 요청