vLLM 처리량 벤치마크

vLLM 처리량 벤치마크 (vllm bench throughput)

vllm bench throughput는 주어진 데이터셋과 구성으로 vLLM 모델의 처리량(throughput)을 측정하는 명령이에요. 프롬프트 수, 입력·출력 길이, 백엔드, 데이터셋 등을 다양하게 지정해 벤치마크를 수행하고 결과를 JSON으로 저장할 수 있어요.

서빙 전 성능을 예측하거나, 여러 설정(모델·양자화·배치 크기)을 비교할 때 유용해요.

출처: vLLM vllm bench throughput 문서

백엔드와 데이터셋

  • --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-assignmentrandom, 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 경로에 저장돼요.

더 알아보기