vllm-project/vllm
A high-throughput and memory-efficient inference and serving engine for LLMs
vLLM – 빠르고 유연한 LLM 서빙
정의 – vLLM은 대규모 언어 모델을 고속으로 추론(서빙)할 수 있는 오픈소스 Python 라이브러리입니다. GPU(및 기타 가속기)에서 최대 처리량을 끌어내는 데 중점을 두면서도 API는 단순하게 유지합니다.
주요 기능
- PagedAttention – KV 캐시 페이지를 스왑 인/아웃하는 맞춤형 어텐션 메모리 관리자로, GPU 메모리를 고갈시키지 않고 많은 동시 요청을 처리할 수 있습니다.
- 연속 배치 및 청크 프리필 – 새 프롬프트가 동일한 배치에 즉시 추가되어 유휴 시간을 줄입니다.
- 양자화 지원 – FP8, INT8/4, GPTQ, AWQ, GGUF 등을 지원하여 저정밀 가중치로 모델을 실행해 속도/크기 이점을 얻을 수 있습니다.
- 최적화 커널 – FlashAttention, FlashInfer, TRT-LLM, FlashMLA, Triton 커널을 통합하고, CUTLASS, TRT-LLM-GEN, CuTeDSL을 통한 맞춤형 GEMM/MoE 커널도 제공합니다.
- 투기적 디코딩 – n-gram, 접미사, EAGLE, DFlash 방법으로 토큰을 미리 생성하여 지연 시간을 줄입니다.
- 분산 추론 – 텐서, 파이프라인, 데이터, 전문가, 컨텍스트 병렬 처리를 지원하여 멀티 GPU/CPU 구성에 대응합니다.
- 광범위한 모델 지원 – 200개 이상의 Hugging Face 모델이 즉시 작동합니다: 디코더 전용 LLM(Llama, Qwen), MoE 모델(Mixtral), 하이브리드 상태 공간 모델(Mamba), 멀티모달(LLaVA), 임베딩/검색 모델 등.
- API 레이어 – OpenAI 호환 REST 엔드포인트, Anthropic 스타일 메시지 API, gRPC를 제공하며, 스트리밍 토큰 출력 및 도구 호출을 지원합니다.
- 하드웨어 유연성 – NVIDIA, AMD, Intel GPU, CPU에서 실행되며, 플러그인을 통해 TPU, Gaudi, Huawei Ascend, Apple Silicon 등에서도 실행됩니다.
일반적인 워크플로우
uv pip install vllm(또는 pip)으로 설치하고, 필요 시vllm download-kernels로 사전 컴파일된 커널을 받습니다.vllm.Engine또는 CLIvllm serve <model>을 사용하여 Hugging Face에서 모델을 로드합니다.- 서버를 시작(
python -m vllm.entrypoints.openai.api_server)하고 OpenAI 호환 HTTP API, gRPC 또는 Python 클라이언트를 통해 요청을 보냅니다. - 설정(배치 크기, 양자화, 투기적 디코딩, LoRA 어댑터)을 조정하여 원하는 지연 시간-처리량 트레이드오프를 달성합니다.
중요성 – 프로덕션 규모에서 LLM을 서빙할 때 메모리 집약적인 KV 캐시와 토큰별 커널 오버헤드가 병목이 되는 경우가 많습니다. vLLM의 페이징, 연속 배치, 특수 커널은 GPU당 초당 토큰 수를 크게 향상시켜 비용을 낮추고 실시간 애플리케이션을 가능하게 합니다.
리소스 – 문서 사이트, 빠른 시작 가이드, 모델 목록, PagedAttention 기술에 대한 연구 논문은 README에 링크되어 있습니다.
관련
- 프로젝트
- Dispatch
- Dispatch
- 프로젝트
- 프로젝트