SGLang으로 새 모델 평가하기
SGLang으로 새 모델 평가하기
이 문서는 모델의 정확도와 성능을 평가하는 명령을 제공해요. 새 모델을 오픈소싱하기 전에, 이 명령들을 돌려 점수가 내부 벤치마크 결과와 일치하는지 확인해 봐 주세요.
교차 검증을 위해, 모델을 오픈소싱할 때 설치·서버 실행·벤치마크 실행 명령을 모든 점수와 하드웨어 요구사항과 함께 제출해 주세요.
정확도
LLM
SGLang은 일반적인 벤치마크를 평가하는 내장 스크립트를 제공해요.
MMLU
python -m sglang.test.run_eval \
--eval-name mmlu \
--port 30000 \
--num-examples 1000 \
--max-tokens 8192
GSM8K
python -m sglang.test.run_eval \
--eval-name gsm8k \
--host 127.0.0.1 \
--port 30000 \
--num-examples 200 \
--num-shots 5
HellaSwag
python benchmark/hellaswag/bench_sglang.py \
--host http://127.0.0.1 \
--port 30000 \
--num-questions 200 \
--num-shots 20
GPQA
python -m sglang.test.run_eval \
--eval-name gpqa \
--port 30000 \
--num-examples 198 \
--max-tokens 120000 \
--repeat 8
HumanEval
pip install human_eval
python -m sglang.test.run_eval \
--eval-name humaneval \
--num-examples 10 \
--port 30000
VLM
MMMU
python benchmark/mmmu/bench_sglang.py \
--port 30000 \
--concurrency 64
비디오를 처리할 수 있는 모델이라면 평가 범위를 VideoMME, MVBench 같은 관련 벤치마크로 넓히는 걸 추천해요.
성능
성능 벤치마크는 Latency(Time To First Token - TTFT)와 Throughput(tokens/second)을 측정해요.
LLM
지연 민감 벤치마크
단일 사용자처럼 낮은 동시성을 시뮬레이션해서 지연을 측정해요.
python -m sglang.bench_serving \
--backend sglang \
--host 0.0.0.0 \
--port 30000 \
--dataset-name random \
--num-prompts 10 \
--max-concurrency 1
처리량 민감 벤치마크
높은 트래픽 시나리오를 시뮬레이션해서 시스템 최대 처리량을 측정해요.
python -m sglang.bench_serving \
--backend sglang \
--host 0.0.0.0 \
--port 30000 \
--dataset-name random \
--num-prompts 1000 \
--max-concurrency 100
단일 배치 성능
단일 배치를 오프라인으로 처리하는 성능도 벤치마크할 수 있어요.
python -m sglang.bench_one_batch_server \
--model <model-path> \
--batch-size 8 \
--input-len 1024 \
--output-len 1024
더 세분화된 벤치마크를 실행할 수도 있어요.
- 낮은 동시성:
--num-prompts 10 --max-concurrency 1 - 중간 동시성:
--num-prompts 80 --max-concurrency 16 - 높은 동시성:
--num-prompts 500 --max-concurrency 100
결과 보고하기
각 평가에 대해 다음을 보고해 주세요.
- Metric 점수: 정확도 %(LLM, VLM); 지연(ms)과 처리량(tok/s)(LLM만).
- 환경 설정: GPU 종류/개수, SGLang 커밋 해시.
- 실행 구성: 모델 경로, TP 크기, 특별한 플래그.
- 평가 파라미터: 샷 수, 예시 수, max tokens.