AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

vLLM – 고처리량·메모리 효율 LLM 추론·서빙 엔진

vLLM은 UC Berkeley Sky Computing Lab에서 시작된 LLM 추론·서빙 라이브러리다. PagedAttention으로 GPU 메모리 사용 효율을 극대화하고, OpenAI 호환 API와 200여 개 모델 아키텍처를 지원해 오픈소스 LLM 배포의 사실상 표준으로 자리잡았다. 2,000명 이상의 컨트리뷰터가 참여하는 가장 활발한 AI 오픈소스 프로젝트 중 하나다.

왜 vLLM인가

LLM 서빙의 핵심 병목은 KV 캐시(key-value cache) 메모리다. 기존 방식은 시퀀스 최대 길이를 기준으로 연속 메모리를 사전 할당해 실제 사용량과 무관하게 메모리를 낭비하고 배치 처리 효율이 낮았다.

vLLM은 OS의 가상 메모리에서 착안한 PagedAttention으로 이 문제를 해결한다. KV 캐시를 고정 크기 블록(page)으로 나눠 비연속 메모리에 저장하고 동적으로 할당·해제함으로써 메모리 낭비를 거의 없애고, 여러 시퀀스가 같은 KV 캐시 블록을 공유(prefix caching)할 수 있게 한다.

핵심 기능

성능 최적화

  • PagedAttention: KV 캐시를 페이지 단위로 관리해 메모리 낭비 최소화
  • 연속 배치(Continuous Batching): 진행 중인 배치에 새 요청을 즉시 삽입해 GPU 유휴 시간 제거
  • 청크 프리필(Chunked Prefill): 긴 프롬프트의 프리필을 청크로 나눠 배치 효율 유지
  • 프리픽스 캐싱: 동일 시스템 프롬프트를 공유하는 요청들이 KV 캐시를 재사용
  • 추측 디코딩(Speculative Decoding): n-gram, EAGLE, DFlash 등으로 토큰 생성 속도 향상

양자화 지원

FP8, MXFP8/MXFP4, NVFP4, INT8, INT4, GPTQ, AWQ, GGUF, compressed-tensors, TorchAO 등 다양한 양자화 형식을 지원한다.

하드웨어 지원

하드웨어지원 형태
NVIDIA GPU공식 지원
AMD GPU공식 지원
x86 / ARM / PowerPC CPU공식 지원
Google TPU플러그인
Intel Gaudi플러그인
Apple Silicon플러그인
Huawei Ascend NPU플러그인

분산 추론

텐서 병렬, 파이프라인 병렬, 데이터 병렬, 전문가 병렬(MoE), 컨텍스트 병렬을 지원한다. Disaggregated prefill-decode 구조로 대규모 클러스터에서 효율적으로 스케일아웃된다.

지원 모델

Hugging Face의 200개 이상 모델 아키텍처를 지원한다.

유형예시
디코더 전용 LLMLlama, Qwen, Gemma
MoE LLMMixtral, DeepSeek-V3, Qwen-MoE
하이브리드 (어텐션 + SSM)Mamba, Qwen3.5
멀티모달LLaVA, Qwen-VL, Pixtral
임베딩·검색E5-Mistral, GTE, ColBERT
보상·분류Qwen-Math

설치 및 빠른 시작

# uv (권장)
uv pip install vllm

# pip
pip install vllm

OpenAI 호환 API 서버 실행:

vllm serve Qwen/Qwen3-8B --dtype auto --api-key token-abc123

이후 OpenAI Python 클라이언트나 curl로 바로 연결할 수 있다.

라이선스

Apache 2.0. 핵심 기술 논문: Efficient Memory Management for Large Language Model Serving with PagedAttention (SOSP 2023).

관련 문서

  • vllm-recipes — 하드웨어별·모델별 vLLM 실행 레시피 커뮤니티 모음
  • tiny-vllm — C++와 CUDA로 LLM 추론 엔진을 직접 구현하는 교육 과정


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)