vLLM
vLLM
vLLM은 대규모 LLM 서빙을 위한 고처리량 추론 엔진이에요. Transformers 모델을 백엔드로 사용해 vLLM으로 서빙하는 방법을 살펴볼게요.
출처: 문서
본문
vLLM은 대규모로 LLM을 서빙하기 위한 고처리량 추론 엔진이에요. 요청을 연속으로 배칭하고, PagedAttention으로 KV cache 메모리를 컴팩트하게 유지해요.
Transformers 모델링 백엔드로 모델을 불러오려면 model_impl="transformers"로 설정해요.
from vllm import LLM
llm = LLM(model="meta-llama/Llama-3.2-1B", model_impl="transformers")
print(llm.generate(["The capital of France is"]))
온라인 서빙의 경우 vllm serve 명령에 --model-impl transformers를 넘겨요.
vllm serve meta-llama/Llama-3.2-1B \
--task generate \
--model-impl transformers
Transformers 통합 과정
- AutoConfig.from_pretrained()가 Hub 또는 Hugging Face 캐시에서 모델의
config.json을 불러와요. vLLM은architectures필드를 자체 모델 레지스트리와 비교해 어떤 vLLM 모델 클래스를 쓸지 결정해요. - 모델이 레지스트리에 없으면 vLLM은 AutoModel.from_config()를 호출해 Transformers 모델 구현을 대신 불러와요.
- AutoTokenizer.from_pretrained()가 토크나이저 파일을 불러와요. vLLM은 추론 중 오버헤드를 줄이기 위해 토크나이저 내부 일부를 캐시해요.
- 모델 가중치는 safetensors 포맷으로 Hub에서 다운로드돼요.
model_impl="transformers"로 설정하면 vLLM 모델 레지스트리를 우회하고 Transformers에서 직접 불러와요. vLLM은 Transformers 모델 구조를 유지하면서 대부분의 모델 모듈(MoE, attention, 선형 레이어)을 자체 최적화 버전으로 교체해요.
리소스 (Resources)
- 더 많은 사용 예시와 팁은 vLLM docs
- Integration with Hugging Face은 vLLM이 Transformers와 통합되는 방식을 설명해요
더 알아보기 (Learn more)
- SGLang 문서에서 다른 추론 엔진 통합을 살펴보세요.
- 추론용 호환 모델 백엔드 만들기 문서