지원 모델 — vLLM 네이티브와 Transformers 백엔드

지원 모델 — vLLM 네이티브와 Transformers 백엔드

vLLM은 생성(generative) 모델과 풀링(pooling) 모델을 다양한 태스크에 걸쳐 지원해요. 모델이 어떤 방식으로 구현됐는지에 따라 쓰는 방법이 조금 달라집니다.

출처: https://docs.vllm.ai/en/latest/models/supported_models.html

vLLM 네이티브 구현

vLLM이 자체적으로 지원하는 모델은 vllm/model_executor/models 에 구현이 들어 있어요. 이 모델들이 공식 "지원 텍스트 모델"과 "지원 멀티모달 모델" 목록에 해당합니다.

Transformers 백엔드

vLLM은 Transformers에 있는 모델 구현도 "Transformers modeling backend"라는 이름으로 지원해요. 이 백엔드로 불러온 모델의 성능은 전용 vLLM 구현과 동일하게 유지됩니다. 현재 지원 범위는 다음과 같아요.

  • 모달리티: 임베딩 모델, 언어 모델, 비전-언어 모델*
  • 아키텍처: encoder-only, decoder-only, mixture-of-experts
  • 어텐션 종류: full attention 및/또는 sliding attention

*비전-언어 모델은 현재 이미지 입력만 받고, 비디오 입력은 이후 릴리스에서 추가될 예정이에요.

어떤 모델이 Transformers 백엔드를 쓰는지 확인하려면 다음과 같이 LLM 인스턴스에 apply_model을 호출해보면 돼요.

from vllm import LLM

llm = LLM(model=...)  # 모델 이름 또는 경로
llm.apply_model(lambda model: print(type(model)))

출력된 타입이 Transformers...로 시작하면 Transformers 구현으로 로드된 거예요. 네이티브 구현이 있는 모델이라도 model_impl="transformers"(오프라인) 또는 --model-impl transformers(온라인 서빙)로 Transformers 구현을 강제할 수 있습니다.

더 알아보기