vLLM 모델 서빙
개요
vLLM은 PagedAttention 알고리즘을 통해 KV 캐시 메모리 낭비를 60-80% 줄이고(vLLM 벤치마크 기준, 워크로드별 상이), 연속 배칭(Continuous Batching)으로 기존 대비 2-24배의 처리량 향상을 제공하는(vLLM 벤치마크 기준, 워크로드별 상이) 고성능 LLM 추론 엔진입니다. Meta, Mistral AI, Cohere, IBM 등 주요 기업들이 프로덕션 환경에서 활용하고 있으며, OpenAI 호환 API를 제공하여 기존 애플리케이션의 마이그레이션이 용이합니다.
📌 현재 버전: vLLM v0.24+ / v0.25.x (2026-07 기준)
왜 vLLM이 표준이 되었나
전통적인 LLM 서빙 엔진은 KV 캐시 메모리를 정적으로 할당하여 60-80%의 메모리 낭비가 발생했습니다(vLLM 벤치마크 기준, 워크로드별 상이). 정적 배칭 방식은 고정된 수의 요청이 모일 때까지 대기하여 GPU 유휴 시간이 길었습니다. vLLM은 이 두 가지 근본적인 병목을 제거하여 동일한 하드웨어에서 최대 24배 높은 처리량을 제공합니다(vLLM 벤치마크 기준, 워크로드별 상이).
vLLM의 핵심 혁신:
- PagedAttention: 운영체제의 가상 메모리 관리에서 영감을 받아 KV 캐시를 비연속적 블록으로 관리
- Continuous Batching: 배치 경계를 제거하고 반복(iteration) 수준에서 동적으로 요청 추가/제거
- OpenAI API 호환: 기존 애플리케이션 코드 변경 없이 마이그레이션 가능
핵심 아키텍처
PagedAttention과 KV 캐시 관리
Transformer 아키텍처의 자기회귀적 특성으로 인해 각 요청은 이전 토큰들의 키-값 쌍을 저장해야 한다. 이 KV 캐시는 입력 시퀀스 길이와 동시 사용자 수에 비례하여 선형적으로 증가하며, 전통적인 방식에서는 최대 길이에 맞춰 메모리를 사전 할당하여 실제 사용량과 무관하게 공간을 낭비한다.
vLLM의 PagedAttention은 KV 캐시를 고정 크기 블록으로 나누어 비연속적으로 저장한다. 요청이 짧으면 적은 블록만 할당하고, 길어지면 필요할 때 추가 블록을 할당한다. 블록 테이블을 통해 논리적 순서를 유지하며, 메모리 단편화가 사라진다.
메모리 효율성 개선:
- 기존 방식: 최대 시퀀스 길이 × 배 치 크기만큼 사전 할당 → 60-80% 낭비(vLLM 벤치마크 기준, 워크로드별 상이)
- PagedAttention: 실제 사용량만큼만 동적 할당 → 낭비 제거
Continuous Batching
정적 배칭은 고정된 수의 요청이 모일 때까지 대기한 후 처리한다. 요청이 불규칙하게 도착하면 GPU가 부분적으로만 활용되어 처리량이 저하된다. 또한 배치 내에서 먼저 완료된 요청도 전체 배치가 끝날 때까지 대기해야 한다.
vLLM의 연속 배칭은 배치 경계를 완전히 제거한다:
- 스케줄러가 반복(iteration) 수준에서 동작
- 완료된 요청은 즉시 제거하고 새로운 요청을 동적으로 추가
- GPU가 항상 최대 용량으로 작동
- 평균 지연 시간과 처리량 모두 개선
Speculative Decoding
추측적 디코딩은 작은 드래프트 모델이 토큰을 예측하고, 메인 모델이 병렬로 검증하여 2-3배 속도 향상을 제공한다. 예측 가능한 출력(코드 생성, 정형화된 응답)에서 특히 효과적이다.
from vllm import LLM
# vLLM v0.9+ 권장 API (speculative_config)
llm = LLM(
model="large-model",
speculative_config={
"method": "draft_model",
"model": "small-draft-model",
"num_speculative_tokens": 5
}
)
V1 엔진 아키텍처
vLLM V1 엔진(v0.19.x 이전부터 기본값)은 다음 기능을 제공합니다:
- Chunked Prefill: 프리필(계산 집약적)과 디코드(메모리 집약적)를 동일 배치에서 혼합 처리
- FP8 KV Cache: KV 캐시 메모리를 2배 절감하여 더 긴 컨텍스트 지원
- Improved Prefix Caching: 공통 프리픽스 재사용으로 400%+ 처리량 향상(vLLM 벤치마크 기준, 워크로드별 상이)