요약: 2025년 현재, LLM 서빙의 사실상 표준(De Facto Standard)이 된 vLLM. 도대체 무엇이 GPU 메모리 효율을 24배나 높였을까요? 핵심 기술인 PagedAttention의 원리부터 TGI, TensorRT-LLM과의 비교, 그리고 바로 써먹는 실전 코드까지 엔지니어의 관점에서 파헤쳐 봅니다.

1. 들어가며: GPU 메모리, 80%는 공기만 채우고 있다?
ChatGPT 이후, 모든 기업이 LLM을 도입하려 할 때 마주친 가장 큰 벽은 '모델 학습'이 아니라 '추론(Inference) 비용'이었습니다. 비싼 A100 GPU를 사서 서비스를 돌리는데, 정작 메모리의 60~80%는 아무 데이터도 없이 낭비되고 있었다는 사실, 알고 계셨나요?
이 '메모리 낭비'가 바로 동시 접속자를 늘리지 못하게 만드는 주범이었습니다. 이 문제를 해결하기 위해 UC 버클리 연구진이 내놓은 해답이 바로 vLLM입니다. 하드웨어 추가 없이 소프트웨어만으로 처리량(Throughput)을 최대 24배까지 끌어올린 이 기술은 이제 텐서플로우나 파이토치처럼 AI 인프라의 기본 소양으로 자리 잡았습니다.
오늘은 vLLM이 어떻게 GPU의 '빈방' 문제를 해결했는지, 그리고 2025년 최신 vLLM V1 아키텍처는 무엇이 달라졌는지 핵심만 짚어드립니다.
2. 핵심 개념: 1분 만에 이해하는 PagedAttention
vLLM을 이해하려면 딱 두 가지 용어만 알면 됩니다. KV 캐시(KV Cache)와 페이징(Paging)입니다.
병목의 원인: KV 캐시의 파편화
LLM은 텍스트를 생성할 때 이전 대화 내용을 기억하기 위해 'KV 캐시'라는 데이터를 GPU 메모리에 저장합니다. 기존 방식은 "미리 예약하기"였습니다.
- 기존 방식: "질문이 얼마나 길지 모르니, 일단 최대 길이(예: 2048 토큰)만큼 메모리를 비워두자."
- 문제점: 답변이 짧으면 예약된 공간의 대부분이 버려집니다(내부 파편화). 마치 식당에 손님 1명이 왔는데 4인석 테이블을 내주고 합석도 금지시키는 것과 같습니다.
해결책: 운영체제에서 배운 '페이징'
vLLM의 PagedAttention은 컴퓨터 운영체제(OS)의 가상 메모리 관리 기법을 GPU에 도입했습니다.
- vLLM 방식: "데이터를 잘게 쪼개서(블록), 메모리 구석구석 빈 곳에 채워 넣자."
- 효과: 메모리를 미리 예약하지 않고 필요할 때마다 작은 블록 단위로 할당합니다. 식당으로 치면 손님이 오는 대로 빈 의자에 꽉꽉 채워 앉히는 겁니다.
- 결과: 메모리 낭비율이 4% 미만으로 줄어들었습니다. 남는 메모리에는 더 많은 사용자의 요청을 태울 수 있게 되었죠.
3. 비교 분석: vLLM vs. TGI vs. TensorRT-LLM (2025 Ver.)
현업에서 가장 많이 고민하는 세 가지 선택지를 비교해 드립니다.
| 특징 | vLLM | HuggingFace TGI | NVIDIA TensorRT-LLM |
|---|---|---|---|
| 핵심 철학 | 범용성 & 처리량 극대화 | 안정성 & 생태계 통합 | 하드웨어 극한 성능 |
| 장점 | 압도적인 처리량(Throughput), 쉬운 사용성(Python), 빠른 최신 모델 지원 |
일관된 지연 시간(Latency), 생산성 도구(모니터링 등) 내장 |
H100 등 최신 칩에서 가장 빠름, 엔비디아 공식 최적화 |
| 단점 | 요청별 응답 속도 편차가 있을 수 있음 | vLLM 대비 높은 부하에서 처리량 부족 | 빌드 과정이 복잡하고 까다로움 |
| 추천 대상 | 대부분의 스타트업 및 서비스 | RAG 등 지연 시간 일관성이 중요한 경우 | 초대형 트래픽을 처리하는 전용 클러스터 |
💡 Insight:
- vLLM은 "가장 무난하고 강력한 육각형 육상선수"입니다. 설정이 쉽고 성능이 준수하여 현재 업계 표준으로 통합니다. 2025년 공개된 vLLM V1은 스케줄러를 분리하여 CPU 오버헤드까지 없앴습니다.
- TensorRT-LLM은 성능은 최고지만, 모델을 변환(Build)하는 과정이 번거롭습니다. 개발 속도가 중요하다면 vLLM이 유리합니다.
4. 실전 시나리오: 오프라인 배치 추론 구축하기
서버를 띄우는 것보다 더 자주 쓰이는 패턴이 있습니다. 바로 '오프라인 배치 추론'입니다. 쌓여있는 대량의 데이터(예: 고객 리뷰 100만 건 분석)를 처리할 때 vLLM을 쓰면 처리 속도가 비약적으로 빨라집니다.
바로 복사해서 쓸 수 있는 코드를 준비했습니다.
from vllm import LLM, SamplingParams
# 1. 모델 로드 (자동으로 GPU 메모리 최적화 수행)
# tensor_parallel_size=1: GPU 1개 사용 (멀티 GPU라면 숫자 변경)
llm = LLM(model="meta-llama/Meta-Llama-3-8B-Instruct", tensor_parallel_size=1)
# 2. 파라미터 설정
# temperature=0.8: 창의적인 답변, top_p=0.95
sampling_params = SamplingParams(temperature=0.8, top_p=0.95, max_tokens=500)
# 3. 처리할 데이터 (프롬프트 리스트)
prompts = [
"vLLM의 장점을 한 문장으로 요약해줘.",
"대한민국의 수도는 어디야?",
"파이썬으로 피보나치 수열 코드 짜줘."
]
# 4. 고속 추론 실행 (vLLM 엔진이 내부적으로 배칭 처리)
outputs = llm.generate(prompts, sampling_params)
# 5. 결과 출력
for output in outputs:
prompt = output.prompt
generated_text = output.outputs.text
print(f"질문: {prompt!r}\n답변: {generated_text!r}\n---")
🚀 팁: 메모리가 부족하다면 vllm serve 실행 시 --quantization awq 옵션을 사용하여 모델을 압축하세요. AWQ 양자화 모델을 사용하면 성능 저하 없이 메모리를 절반 가까이 아낄 수 있습니다.
5. 결론: vLLM은 선택이 아닌 필수
vLLM은 단순히 '빠른 라이브러리'가 아닙니다. 하드웨어 비용을 절감하여 AI 비즈니스의 손익분기점(BEP)을 낮춰주는 경제적인 도구입니다.
2025년 현재, vLLM은 V1 업데이트를 통해 멀티모달(이미지, 비디오) 모델 지원을 강화하고, CPU 병목을 제거하는 등 진화하고 있습니다. 여러분이 자체 LLM 서비스를 구축한다면, vLLM은 가장 먼저 검토해야 할 1순위 솔루션입니다.
FAQ (자주 묻는 질문)
Q: OOM(Out of Memory) 에러가 자꾸 발생해요.
A: vLLM은 기본적으로 GPU 메모리의 90%를 미리 점유합니다. 만약 다른 프로세스와 GPU를 같이 쓴다면 gpu_memory_utilization 옵션을 0.8이나 0.7로 낮춰보세요.
Q: 양자화(Quantization)는 어떤 걸 써야 하나요?
A: vLLM에서는 AWQ 방식을 가장 추천합니다. 설정이 간편하고 배칭 처리 시 성능 효율이 뛰어납니다. 최신 H100 GPU를 쓴다면 FP8도 좋은 선택입니다.
Q: vLLM V1은 무엇이 다른가요?
A: 2025년 초 알파로 공개된 V1은 스케줄러 루프를 별도 프로세스로 분리하여 CPU 병목을 없앴습니다. 또한 'Prefix Caching'이 기본 활성화되어, RAG(검색 증강 생성)처럼 같은 문서를 반복해서 참조하는 시스템에서 속도가 비약적으로 향상되었습니다.
참고 자료 (References)
- 1 vLLM: Easy, Fast, and Cheap LLM Serving with PagedAttention (vLLM Blog) - https://blog.vllm.ai/2023/06/20/vllm.html
- 2 Efficient Memory Management for Large Language Model Serving with PagedAttention (SOSP 2023 Paper) - https://arxiv.org/abs/2309.06180
- 3 vLLM vs TGI vs TensorRT-LLM Benchmark 2025 - https://www.marktechpost.com/2025/11/19/vllm-vs-tensorrt-llm-vs-hf-tgi-vs-lmdeploy-a-deep-technical-comparison-for-production-llm-inference/
- 4 vLLM V1 Alpha Release Note - https://blog.vllm.ai/2025/01/27/v1-alpha-release.html
- 5 vLLM Official Documentation: Supported Models - https://docs.vllm.ai/en/latest/models/supported_models.html
