VLLM
Jump to navigation
Jump to search
vLLM
Overview
vLLM은 UC Berkeley에서 개발한 고성능 LLM serving 프레임워크. PagedAttention 기술을 기반으로 한 메모리 효율적인 KV 캐시 관리로 높은 처리량과 낮은 지연시간을 제공함.
Summary
- * 무엇인가? LLM 추론 서빙 프레임워크. PagedAttention 기반 메모리 최적화
- * 왜 필요한가? LLM 배포 시 GPU 메모리 효율성이 핵심. vLLM이 SOTA 성능
- * 언제 사용하는가? OpenAI 호환 API로 LLM 서빙, 배치 추론, 실시간 채팅
---
Purpose
이 문서가 존재하는 이유
- Goal: vLLM의 개념, 사용법, 설정 가이드 제공
- Scope: 기본 개념, 설치/설정, 사용 예제, 모범 사례
- Non-goals: 고급 커스터마이징, 내부 소스 코드 분석
---
Key Concepts
---
Architecture
vLLM은 PagedAttention(VMem 기반 메모리 관리) + Continuous Batching(토큰 단위 스케줄링) + Tensor Parallelism(모델 분할) 3가지 핵심 기술로 구성됨.
---
Workflow
1. 1. vLLM 설치(pip install vllm)
2. 2. 모델 로드(vllm.EntryPoint.from_pretrained)
3. 3. LLM 인스턴스 생성(배치 크기, GPU 수 설정)
4. 4. OpenAI 호환 API 서버 실행(포트 8000)
5. 5. clients에서 OpenAI API로 요청
6. 6. 모니터링(vllm.metrics)으로 성능 확인
---
Configuration
# vLLM 설치
pip install vllm
# 모델 서빙 시작 (예: Llama-3-8B)
vllm serve meta-llama/Llama-3-8B-Instruct \
--tensor-parallel-size 2 \
--max-model-len 8192 \
--gpu-memory-utilization 0.9
# OpenAI 호환 API로 호출
python -c "
from openai import OpenAI
client = OpenAI(base_url='http://localhost:8000/v1', api_key='n/a')
response = client.chat.completions.create(
model='meta-llama/Llama-3-8B-Instruct',
messages=[{'role': 'user', 'content': 'Hello!'}]
)
print(response.choices[0].message.content)
"
---
Best Practices
- GPU 메모리 활용률 0.85-0.95로 설정
- 배치 크기(auto)로 동적 조정
- CUDA Graph로 추론 속도 최적화
- Multi-LoRA로 여러 파인튜닝 모델 동시 서빙
- Serving 시 --max-num-seqs로 동시 요청 수 제한
---
Limitations
- Hugging Face 모델만 지원(일부 커스텀 아키텍처 불가)
- 양자화(GGUF) 미지원 — FP16/BF16만
- Fine-tuned 모델 서빙 시 모델 레지스트리 필요
---
References
- PyTorch Official (if applicable)
- Hugging Face
- GitHub Repository
---