vLLM

vLLM은 거대 언어 모델(LLM)의 추론 작업 및 서빙(Serving)을 고속으로 처리하기 위해 UC 버클리(UC Berkeley) 연구진이 주도하여 개발한 오픈소스 프레임워크이다. 제한된 GPU 스토리지 환경에서 메모리 병목 현상을 해소하고 전체 트래픽 처리량(Throughput)을 최적화하는 데 목적을 두고 설계되었다.

vLLM 아키텍처의 핵심 기술은 메모리 관리 기법인 PagedAttention(페이지드 어텐션)이다. 모델의 자연어 생성 과정에서 발생하는 어텐션 키와 값 데이터를 통칭하는 KV 캐시(KV Cache)는 기존 시스템에서 연속적인 메모리 할당을 요구하여 극심한 단편화와 낭비를 유발했다. vLLM은 운영체제의 가상 메모리 페이징 구조를 차용하여 KV 캐시를 고정된 크기의 블록 단위로 나누고, 이를 비연속적인 물리 메모리 공간에 매핑한다. 이 메커니즘을 통해 메모리 낭비율을 대폭 낮추고 가용 메모리를 확보하며, 요청이 들어올 때마다 대기열을 유연하게 처리하는 연속 배칭(Continuous Batching) 작업을 수행한다.

오픈소스 모델 서빙 생태계에서 대표적으로 상호 비교되는 프레임워크인 vLLM과 Hugging Face의 TGI(Text Generation Inference)의 구조적 차이 및 특징은 다음과 같다.

특징vLLMHugging Face TGI (Text Generation Inference)
주요 최적화 기술PagedAttention 시스템을 통한 세밀한 KV 캐시 메모리 관리FlashAttention 등 고도화된 커스텀 CUDA 커널 적용
개발 언어 및 환경Python 기반 구조 (코어 로직에 C++ 및 CUDA 통합)Rust 기반 아키텍처 (Python은 외부 래퍼 로직 수행)
인터페이스 호환성OpenAI API 프로토콜과 100% 호환되는 서버를 기본 제공함Hugging Face 인터페이스 및 자체 API 엔드포인트에 최적화됨
성능적 강점동시 접속 요청이 몰리는 환경에서 전체 시스템의 처리량(Throughput)이 우수함단일 사용자 요청에 대한 초기 응답 지연 시간(Latency) 감소에 이점이 있음

출처 (Sources):

  • Kwon, W., et al. (2023), “Efficient Memory Management for Large Language Model Serving with PagedAttention”. Proceedings of the 29th Symposium on Operating Systems Principles (SOSP ‘23). Available at: https://arxiv.org/abs/2309.06180
  • vLLM Project, “vLLM: Easy, Fast, and Cheap LLM Serving for Everyone”. Available at: https://vllm.ai/
  • vLLM Official Documentation, “Welcome to vLLM!”. Available at: https://docs.vllm.ai/

Entities