인프라

vLLM

vLLM은 오픈소스 LLM을 GPU 서버에 올려 여러 사용자가 동시에 쓰는 OpenAI 호환 API로 만들어 주는 서빙 엔진이다. 혼자 노트북에서 돌릴 때보다 팀이나 서비스가 같은 모델에 요청을 몰아 보낼 때 효과가 크다.

도구주 용도잘 맞는 환경
vLLM다중 사용자 API 서빙GPU 서버
Ollama, llama.cpp개인용 로컬 실행노트북, Mac, CPU
Hugging Face Transformers실험·연구 코드요청이 적을 때

2023년 UC 버클리 연구팀이 공개했고, 지금은 오픈 모델을 서빙할 때 가장 널리 쓰인다.

메모리를 페이지로 쪼개 동시 처리량을 높인다

LLM은 답을 만들면서 앞 내용을 KV 캐시에 쌓아 둔다. 이 캐시는 GPU 메모리를 많이 차지하고 요청마다 길이가 달라서, 중간중간 쓰지 못하는 빈 공간이 많이 생겼다. vLLM은 운영체제의 가상 메모리처럼 KV 캐시를 고정 크기 블록으로 나눠 필요한 만큼만 할당하는 PagedAttention을 도입했다.

메모리 낭비가 줄어든 만큼 GPU 한 장으로 더 많은 요청을 함께 처리한다. 끝난 요청 자리에 새 요청을 바로 끼워 넣는 연속 배칭까지 더해, 같은 GPU에서 기존 방식보다 처리량이 크게 늘었다.

명령 한 줄로 OpenAI 호환 서버

pip install vllm으로 설치하고 vllm serve meta-llama/Llama-3.1-8B-Instruct를 실행하면 Hugging Face에서 모델을 받아 OpenAI 호환 API 서버를 띄운다. 기존 OpenAI SDK 코드는 base_url만 이 서버 주소로 바꾸면 그대로 동작한다. 상황별로 자주 바꾸는 옵션은 아래와 같다.

상황옵션효과
모델이 GPU 한 장에 안 들어감--tensor-parallel-size여러 GPU에 나눠 올림
메모리 부족 오류--max-model-len최대 문맥을 줄여 공간 확보
GPU를 다른 프로그램과 나눠 씀--gpu-memory-utilizationvLLM이 잡을 메모리 비율 조절
작은 GPU에 큰 모델--quantization awq양자화 모델로 메모리 절약

공통 프롬프트가 길수록 빨라진다

챗봇이나 RAG처럼 매 요청 앞에 같은 시스템 프롬프트나 문서를 붙인다면 프리픽스 캐싱이 그 앞부분 계산을 재사용해서 응답이 빨라진다. 작은 모델이 먼저 초안을 쓰고 큰 모델이 검증하는 투기적 디코딩도 지원하므로, 응답 지연이 중요한 서비스라면 시험해 볼 만하다.

혼자 쓰는 노트북에는 과하다

vLLM은 시작할 때 GPU 메모리를 미리 크게 잡아 두는 구조다. 개인 PC에서 가볍게 대화만 할 거라면 Ollama 같은 도구가 더 편하다. 주로 NVIDIA GPU가 있는 리눅스 서버에서 쓰고, 다른 하드웨어는 지원 범위가 다르니 문서를 먼저 확인해야 한다. 지원 모델과 옵션이 자주 바뀌므로 운영 환경에서는 버전을 고정해 두는 게 안전하다.

오픈 모델을 내 서버의 API로 돌릴 때 쓴다

가장 흔한 건 외부 API 대신 자체 GPU 서버에 오픈 모델을 띄워 팀이나 서비스가 함께 쓰게 하는 방식이다. OpenAI 호환이라 기존 코드를 거의 고치지 않고 옮길 수 있다.

어디서어떻게 쓰나
사내 LLM API데이터를 밖으로 보내지 않도록 사내 GPU에 오픈 모델을 띄우고, 기존 앱은 base_url만 바꿔 연결
사내 문서 검색·챗봇매번 같은 시스템 프롬프트와 문서를 붙이는 RAG 서버로 두고 프리픽스 캐싱으로 응답 속도 확보
대량 일괄 처리모델 평가나 데이터 생성처럼 많은 프롬프트를 한꺼번에 돌릴 때 연속 배칭으로 GPU를 꽉 채워 처리
#서빙#PagedAttention#고처리량
참고 자료
← AI Wiki에서 더 보기
updated at 2026-10-20