How to Benchmark LLM Inference Performance: TTFT, ITL, and Throughput Metrics
개요
LLM 추론 성능 벤치마킹을 위한 핵심 지표와 새로운 Rust 기반 벤치마킹 도구인 llmperf-rs의 개발 동기를 설명합니다.
주요 내용
- 주요 LLM 추론 성능 지표:
- Time To First Token (TTFT): 요청 후 첫 토큰이 응답되기까지 걸리는 시간으로, 상호작용 애플리케이션의 체감 지연 시간과 RAG 애플리케이션의 prefill 단계 처리에 중요합니다.
- Inter-Token Latency (ITL): 토큰 생성 간의 지연 시간으로, KV 캐시 크기 한계, 네트워크 문제, 요청 선점(preemption) 등 다양한 문제를 탐지하는 데 사용됩니다. 기존 도구들의 ITL 집계 방식(요청별 평균 후 집계) 대신 모든 ITL 값을 직접 집계하여 이상치(outliers)를 보존하는 방식이 강조됩니다.
- Throughput:
- Prefill TPS: prefill 단계에서 처리되는 초당 토큰 수로, TTFT에 큐 대기 시간이 포함될 수 있어 시스템 처리 능력을 정확히 반영하지 못할 수 있습니다.
- Decode TPS: decode 단계에서 생성되는 초당 토큰 수로, 모델의 실제 출력 속도를 나타냅니다.
- Tail Latency: P95, P99와 같은 값으로 사용자 경험에 영향을 미칩니다.
- 기존 벤치마킹 도구의 한계점:
-
ray-project/llmperf(현재 아카이브됨): ITL 계산 시 요청별 평균을 먼저 구한 후 집계하는 방식은 개별 지연 시간 스파이크를 보존하지 못합니다. -
genai-perf: Docker 없이 Ubuntu 22.04에서 실행하기 어려운 점이 있었습니다 (현재aiperf로 대체됨). -
vllm-bench: vLLM 설치가 필요합니다. - 새로운 도구는 최소한의 종속성으로 어디서든 실행 가능한 간단한 바이너리 형태로 설계되었습니다.
- llmperf-rs의 특징 및 사용 시점:
- Rust 기반으로 오버헤드가 낮고, Ray/ZMQ 등의 종속성이 없습니다.
- OpenAI 호환 엔드포인트 벤치마킹에 적합합니다.
- GPU 레벨 지표, vLLM 특정 기능 테스트, 광범위한 리포팅 대시보드, 분산 테스트 등이 필요한 경우에는 대안 도구(예:
trtllm-bench,aiperf) 사용을 고려해야 합니다. - 정확한 토큰 수 측정을 위해 API 응답의
usage필드를 우선 사용하며, 필요시 HuggingFace Tokenizer를 지정할 수 있습니다.
- ITL의 중요성:
- 높은 처리량에도 불구하고 ITL이 좋지 않으면 토큰이 불규칙적으로 도착하여 사용자 경험을 저하시킬 수 있습니다.
- ITL 스파이크(p99 > 100ms)는 선점, 네트워크 문제 등을 시사합니다.
- 에이전트 코딩과 같이 실시간 스트리밍이 중요하지 않은 경우, ITL보다는 처리량이 더 중요할 수 있습니다.
시사점
LLM 프로덕션 환경에서는 TTFT, ITL 통계, RPM(Requests Per Minute)에 집중하는 것이 사용자 체감 응답성과 잠재적 문제를 파악하는 데 중요하며, llmperf-rs는 이러한 요구사항을 충족시키는 효율적인 벤치마킹 도구로 활용될 수 있습니다.
원문을 불러오는 중...
댓글
GitHub Discussions