
AI 모델을 서비스 환경에서 운영하다 보면 성능 측정이 가장 큰 고민 중 하나입니다. 특히 **Latency(지연시간)**과 **Throughput(처리량)**은 항상 언급되지만, 두 지표가 정확히 무엇을 의미하는지, 그리고 왜 서로 경쟁 관계를 가지는지 헷갈릴 때가 많습니다. 이 글에서는 Latency와 Throughput의 정의, 각각이 중요한 상황, 그리고 vLLM 벤치마크 도구를 활용한 측정 방법을 정리했습니다. 실제 사용 경험과 함께 설명해 드리니, 개념이 잘 정리되지 않았던 분들에게 도움이 될 것입니다.
Latency란 무엇인가?
Latency는 사용자가 요청을 보낸 순간부터 결과를 받기까지 걸리는 시간입니다. 더 세부적으로는 다음과 같은 지표로 나눌 수 있습니다.
- TTFT (Time to First Token): 첫 번째 토큰이 나올 때까지 걸리는 시간
- ITL (Inter-Token Latency): 연속된 두 토큰 사이의 시간
- TPOT (Time per Output Token): 출력 토큰 전체에 걸친 평균 ITL
- E2E Latency (End-to-End): 요청 제출부터 마지막 토큰까지 걸린 전체 시간
Latency는 대화형 애플리케이션에서 특히 중요합니다. 예를 들어 챗봇 서비스에서 답변이 늦게 나오면 사용자가 답답함을 느끼고 이탈할 가능성이 커집니다. 따라서 빠른 반응 속도가 사용자 경험의 핵심이 됩니다.
Throughput이란 무엇인가?
Throughput은 일정 시간 동안 얼마나 많은 요청이나 토큰을 처리할 수 있는지를 의미합니다. 일반적으로 초당 토큰 수(tokens/sec) 혹은 **초당 요청 수(requests/sec)**로 측정합니다.
Throughput은 **대량 처리(batch workload)**에서 중요합니다. 예를 들어 데이터 전처리, 합성 데이터 생성, 모델 학습 전후의 데이터 가공 작업은 사용자와의 즉각적인 상호작용이 필요하지 않습니다. 대신 더 많은 데이터를 빠르게 처리하는 것이 핵심이므로 Throughput을 최대화하는 것이 효율적입니다.
Latency와 Throughput의 경쟁 관계
문제는 Latency와 Throughput이 동시에 최적화되기 어렵다는 점입니다. 그 이유는 **배치 크기(batch size)**와 관련이 있습니다.
- 배치 크기를 줄이면: 각 요청의 처리량이 적으므로 Latency는 줄어들지만, 전체 처리 효율은 떨어집니다.
- 배치 크기를 늘리면: 여러 요청을 한 번에 처리해 Throughput은 올라가지만, 각 요청의 Latency는 길어집니다.
이를 이해하기 위해 roofline 모델을 생각해볼 수 있습니다. 일정 배치 크기까지는 메모리 대역폭이 병목이 되어 Latency가 거의 일정하지만, 특정 임계점을 넘으면 연산량이 급격히 늘어나면서 Latency가 증가합니다. 결국 서비스의 성격에 따라 Latency와 Throughput 사이에서 균형을 잡아야 합니다.
vLLM에서의 벤치마크 방법
성능을 정확히 측정하기 위해서는 올바른 벤치마크 도구가 필요합니다. vLLM은 다음과 같은 벤치마크 스크립트를 제공합니다.
- latency: 짧은 입력(기본 32 토큰)과 제한된 출력(기본 128 토큰)을 여러 번 실행하여 Latency를 측정
- throughput: 일정한 수의 프롬프트(기본 1000개)를 동시에 제출하고 초당 토큰 및 요청 수를 측정
- serve: 실제 환경을 시뮬레이션해 요청 간 도착 시간을 분포에 따라 설정하고, 다양한 지표를 함께 측정
예를 들어 Latency를 측정하려면 다음과 같이 실행할 수 있습니다.
vllm bench latency
--model <model-name>
--input-tokens 32
--output-tokens 128
--batch-size 8
자동 튜닝과 SLO 최적화
실무에서는 단순히 수치를 확인하는 것에 그치지 않고, **서비스 수준 목표(SLO)**를 만족하는 것이 중요합니다. 예를 들어, "p99 Latency가 500ms 이내"라는 조건을 만족하면서 Throughput을 최대화해야 할 수 있습니다. vLLM의 auto-tune 기능은 serve 벤치마크를 활용해 이런 조건을 만족하는 최적의 설정을 찾아줍니다. 이를 통해 운영자는 직접 시행착오를 줄이고 효율적인 설정을 적용할 수 있습니다.
Latency와 Throughput은 모델 서빙 성능을 이해하는 핵심 지표입니다.
- Latency는 대화형 서비스에서 사용자 경험을 좌우하고,
- Throughput은 대규모 데이터 처리에서 효율성을 결정합니다.
두 지표는 배치 크기와 같은 설정에 따라 상충하는 관계를 보이므로, 서비스 목적에 맞게 우선순위를 정하는 것이 중요합니다.
개인적으로 벤치마크를 실행해보면서 느낀 점은, 단순히 Latency와 Throughput 수치를 따로 보는 것보다 서비스 상황에 맞는 최적화 기준을 세우는 것이 더 중요하다는 것입니다. 특히 vLLM의 auto-tune 기능은 직접 설정을 맞춰보며 시행착오를 줄이는 데 큰 도움이 되었습니다.
결국 중요한 것은 "내 서비스에서는 무엇이 더 중요한가?"라는 질문에 대한 답을 먼저 찾고, 그에 맞춰 Latency와 Throughput을 관리하는 것입니다.
Inside vLLM: Anatomy of a High-Throughput LLM Inference System
[!NOTE] Originally posted on Aleksa Gordic’s website.
blog.vllm.ai

'인공지능' 카테고리의 다른 글
| 초거대 언어 모델의 새로운 도약: Qwen3-Next 완벽 분석 (0) | 2025.09.12 |
|---|---|
| Replit Agent 3: AI와 함께하는 개발의 새로운 시대 (0) | 2025.09.12 |
| Nano-vLLM: 1,200줄로 다시 구현한 초경량 LLM 추론 엔진 (0) | 2025.09.12 |
| Go 개발자를 위한 AI 혁신, Genkit Go 1.0 공개 (0) | 2025.09.11 |
| 엔터프라이즈 AI 시대, 왜 지금 AI 게이트웨이가 필요한가 (0) | 2025.09.11 |