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 등에서도 실행됩니다.

일반적인 워크플로우

  1. uv pip install vllm(또는 pip)으로 설치하고, 필요 시 vllm download-kernels로 사전 컴파일된 커널을 받습니다.
  2. vllm.Engine 또는 CLI vllm serve <model>을 사용하여 Hugging Face에서 모델을 로드합니다.
  3. 서버를 시작(python -m vllm.entrypoints.openai.api_server)하고 OpenAI 호환 HTTP API, gRPC 또는 Python 클라이언트를 통해 요청을 보냅니다.
  4. 설정(배치 크기, 양자화, 투기적 디코딩, LoRA 어댑터)을 조정하여 원하는 지연 시간-처리량 트레이드오프를 달성합니다.

중요성 – 프로덕션 규모에서 LLM을 서빙할 때 메모리 집약적인 KV 캐시와 토큰별 커널 오버헤드가 병목이 되는 경우가 많습니다. vLLM의 페이징, 연속 배치, 특수 커널은 GPU당 초당 토큰 수를 크게 향상시켜 비용을 낮추고 실시간 애플리케이션을 가능하게 합니다.

리소스 – 문서 사이트, 빠른 시작 가이드, 모델 목록, PagedAttention 기술에 대한 연구 논문은 README에 링크되어 있습니다.

관련

  • 프로젝트
  • Dispatch
  • Dispatch
  • 프로젝트
  • 프로젝트