vLLMvLLM
쉽게 이해하기
LLM 서비스를 운영하면 두 가지 문제가 자주 생깁니다. 첫째, 요청마다 길이가 달라서 모델이 쓰는 KV(key-value) 캐시 메모리가 여기저기 비어 낭비됩니다. 둘째, 한 배치에서 가장 느린 요청을 기다리느라 GPU가 멍 때리는 시간이 늘어납니다.
vLLM은 이 두 병목을 정면으로 겨냥합니다. 책장을 작은 칸으로 쪼개 필요한 만큼만 꽂는 것처럼, KV 캐시를 작은 페이지 단위로 관리해 붙어 있는 큰 공간을 미리 잡아두지 않습니다. 또 한 번 돌린 배치가 끝나길 기다리지 않고, 매 단계가 끝날 때마다 새 요청을 바로 합류시켜 GPU가 계속 일을 하게 만듭니다.
구체적으로는 엔진 코어가 중앙 스케줄러 역할을 하며 페이지드 KV 캐시를 관리하고, 각 GPU 워커에 프리필/디코드 단계를 끊임없이 분배합니다. 이때 연속 배치는 이전 시퀀스가 한 스텝을 마치는 즉시 다음 요청을 끼워 넣어 정체 구간을 줄이고, 페이지드 메모리는 비연속 블록으로 캐시를 배치해 단편화를 완화합니다.
비유와 예시
- 실시간 고객지원 챗 인터페이스: 피크 시간대에 질문이 몰려도 연속 배치가 진행 중 배치에 새 채팅을 계속 합류시켜 처리량을 유지합니다.
- 대규모 코드 생성 백엔드: 짧은 답과 긴 답이 섞여도 가장 긴 요청을 기다리지 않고, 단계마다 새로운 요청을 끼워 GPU 유휴 시간을 줄입니다.
- 교육 플랫폼 모의고사 채점: 수천 개 에세이를 동시에 채점할 때 페이지드 KV 캐시로 메모리 낭비를 줄여 같은 장비에서 더 많은 작업을 소화합니다.
한눈에 비교
| vLLM | Hugging Face TGI | |
|---|---|---|
| 메모리 관리 | PagedAttention: 비연속 블록으로 KV 캐시 관리 | 전통적/다른 방식, 캐시 단편화 완화 한계 언급 |
| 배치 방식 | 연속 배치: 진행 중 배치에 동적 합류 | 배치·지연 균형, 배포 용이성 중시 |
| 자원 활용 | KV 메모리 효율과 처리량 중심 | TTFT·tail latency 튜닝 관점 |
| 선택 기준 | 고동시성·고처리량에 적합 | 대화형 낮은 지연·생태계 통합 선호 시 |
고처리량·메모리 효율이 우선이면 vLLM, 짧은 대화 지연과 배포 편의가 더 중요하면 TGI가 선택될 수 있다.
어디서 왜 중요한가
- 운영 실무 변화: 연속 배치가 표준 옵션으로 자리잡으며, 혼합 길이 트래픽에서도 GPU 유휴 시간이 줄었다.
- 평가 맥락: 처리량과 p99 지연의 트레이드오프가 명확해져, 워크로드 특성(대화형/배치형)에 맞춘 프레임워크 선택이 일반화됐다.
- 측정 관행 정교화: TTFT처럼 첫 토큰 지연을 분리 측정하고, 워밍업 비활성 등 프로덕션 유사 조건으로 벤치마크하는 문화가 확산됐다.
- 아키텍처 이해도 향상: 엔진 코어·GPU 워커·데이터 병렬 코디네이터 등 프로세스 토폴로지 기반의 리소스 사이징이 보편화됐다.
자주 하는 오해
- ❌ 오해: vLLM은 항상 가장 낮은 지연을 보장한다 → ✅ 실제: 고처리량에 유리하지만 p50/p99 지연은 워크로드와 스케줄링에 따라 달라진다.
- ❌ 오해: PagedAttention이면 메모리 문제는 끝 → ✅ 실제: 단편화는 줄지만 모델 크기·컨텍스트 길이에 따른 절대 메모리 한계는 남는다.
- ❌ 오해: 배치만 키우면 성능이 선형으로 오른다 → ✅ 실제: 프리필 단계와 공정성, 서비스 목표(SLO)에 맞춘 균형 조정이 필요하다.
대화에서는 이렇게
- "이번 스파이크 트래픽에서 continuous batching을 켰더니 GPU idle 구간이 줄었습니다. 배치 상한은 p99 기준으로 다시 조정해요."
- "메모리 압박이 커서 PagedAttention 페이지 크기랑 kv-cache 예산부터 다시 잡아봅시다."
- "인터랙티브 봇은 p50 TTFT가 중요하니, 배치 사이즈 상한을 낮추고 우선순위 큐 정책을 바꿔야겠어요."
- "TP/DP 조합을 바꾸면 API 서버·엔진 코어·GPU 워커 수가 같이 늘어요. GPU뿐 아니라 CPU 코어와 네트워크도 같이 배정합시다."
- "벤치마크는 vLLM 공식 스크립트 조건처럼 워밍업 끄고 스트리밍 모드로 재현해 주세요."
함께 읽으면 좋은 용어
참고 자료
- A Performance Study of vLLM and HuggingFace TGI
연속 배치·PagedAttention에 따른 성능·지연 트레이드오프.
- Architecture Overview - vLLM
엔진 코어·GPU 워커 등 프로세스 구조와 역할 설명.
- vLLM Explained: PagedAttention, Continuous Batching, and ...
KV 캐시 문제와 vLLM의 메모리·스케줄링 메커니즘 해설.
- Serving LLMs with vLLM: A practical inference guide
PagedAttention, 연속 배치, 분산 설정 실무 가이드.
- Cut Model Deployment Costs While Keeping Performance With GPU Memory Swap
TTFT 측정 정의와 vLLM 스크립트 기반 벤치마크 맥락.