콘텐츠로 이동

vLLM RBLN: RBLN NPU용 vLLM 플러그인

vLLM RBLN(vllm-rbln)은 리벨리온 NPU를 위한 vLLM하드웨어 플러그인으로, 고성능 LLM 추론 및 서빙을 지원합니다.

설치 방법

vLLM RBLN을 설치하기 이전에 반드시 rebel-compiler 최신 버전을 설치해야 합니다.

1
2
3
$ pip install \
  --extra-index-url https://pypi.rbln.ai/simple \
  rebel-compiler==0.10.4

vLLM RBLN은 PyPI에서 설치하거나 소스 코드를 직접 빌드하여 설치하는 두 가지 방법을 제공합니다.

PyPI로 설치하기

다음은 pip를 통해 최신 릴리즈를 설치하는 명령어입니다.

1
2
3
4
$ pip install \
  --extra-index-url https://wheels.vllm.ai/0.18.0/cpu \
  --extra-index-url https://download.pytorch.org/whl/cpu \
  vllm-rbln==0.10.4

소스 코드 빌드 후 설치하기

1. vllmvllm-rbln 저장소 클론

vllm의 버전 번호는 vllm-rbln에서 사용되는 버전 번호와 일치하지 않음에 유의해야 합니다.

$ git clone -b v0.18.0+cpu --single-branch https://github.com/vllm-project/vllm.git
$ git clone https://github.com/rebellions-sw/vllm-rbln.git

2. vllm 설치

VLLM_TARGET_DEVICE=empty는 설치 시 타깃 디바이스 설정을 생략하고 빌드만 진행하도록 하는 옵션입니다.

1
2
3
$ cd vllm/
$ VLLM_TARGET_DEVICE=empty pip install -e .
$ cd ..

3. vllm-rbln 설치

1
2
3
$ cd vllm-rbln
$ pip install -e .
$ cd ..

최신 버전 및 변경 사항에 대한 자세한 내용은 릴리즈 노트를 참고하세요.

아키텍처 디자인

현재 vLLM RBLN은 optimum-rbln을 기반으로 작동합니다. 사용자가 optimum-rbln으로 모델을 미리 컴파일한 뒤, 그 디렉토리를 model 파라미터로 vLLM에 전달합니다. 이 방식이 현재까지 기본이자 안정적인 워크플로우이며, 모든 튜토리얼과 예제는 이를 기반으로 작성되어 있습니다.

vLLM RBLN v0.10.4부터는 optimum-rbln의 컴파일 단계를 vLLM RBLN이 자동으로 처리하는 베타 기능을 지원합니다. LLM()에 엔진 파라미터를 직접 전달하면 엔진 시작 시 컴파일이 진행되어, 별도의 사전 컴파일 단계가 필요 없습니다.

Torch Compile 기반으로의 전환

torch.compile()을 활용해 vLLM의 기본 모델 구현과 API에 곧바로 통합되는 새로운 아키텍처로 마이그레이션이 진행 중입니다. optimum-rbln 경로는 지원하는 각 모델 아키텍처에 대해 RBLN 전용 모델 클래스(예: RBLNLlamaForCausalLM)를 제공하는 반면, 이 새로운 아키텍처는 PyTorch의 표준 torch.compile 백엔드 메커니즘을 그대로 활용해 upstream vLLM/PyTorch 생태계와 자연스럽게 어울립니다.

torch.compile()을 사용하면 첫 실행 시 모델이 컴파일되는 콜드 스타트(cold start)가 발생합니다. 이 때 컴파일 결과는 캐시에 저장되며, 이후 실행은 웜 스타트(warm start)로 처리되어 더 빠르고 최적화된 성능을 제공합니다.

튜토리얼 및 주요기능

vllm-rbln을 쉽게 시작할 수 있도록, 기본적인 기능과 다양한 배포 옵션을 보여주는 튜토리얼을 제공합니다.

지원하는 모델 목록

다음은 vLLM RBLN이 현재 지원하는 모델 목록입니다.

Decoder-only Models

Architecture Example Model Code
RBLNLlamaForCausalLM Llama-2/3
RBLNGemmaForCausalLM Gemma
RBLNGemma2ForCausalLM Gemma2
RBLNPhiForCausalLM Phi-2
RBLNOPTForCausalLM OPT
RBLNGPT2LMHeadModel GPT2
RBLNMistralForCausalLM Mistral
RBLNExaoneForCausalLM EXAONE-3/3.5
RBLNQwen2ForCausalLM Qwen2/2.5
RBLNQwen3ForCausalLM Qwen3
RBLNGptOssForConditionalGeneration gpt-oss

Encoder-Decoder Models

Architecture Example Model Code
RBLNWhisperForConditionalGeneration Whisper

변경 사항

vLLM RBLN v0.10.1부터 V0는 더 이상 지원되지 않습니다. 이에 따라 encoder–decoder 모델로는 Whisper만 지원되며, 그 외 모든 encoder–decoder 모델에 대한 지원은 제거되었습니다. 자세한 내용은 vLLM V1 사용자 가이드를 참고하세요.

Multimodal Language Models

Architecture Example Model Code
RBLNLlavaNextForConditionalGeneration LlaVa-Next
RBLNQwen2VLForConditionalGeneration Qwen2-VL
RBLNQwen2_5_VLForConditionalGeneration Qwen2.5-VL
RBLNQwen3VLForConditionalGeneration Qwen3-VL
RBLNIdefics3ForConditionalGeneration Idefics3
RBLNGemma3ForConditionalGeneration Gemma3
RBLNLlavaForConditionalGeneration Llava
RBLNBlip2ForConditionalGeneration BLIP2
RBLNPaliGemmaForConditionalGeneration PaliGemma
RBLNPaliGemmaForConditionalGeneration PaliGemma2

Pooling Models

Architecture Example Model Code
RBLNT5EncoderModel T5Encoder-based
RBLNBertModel BERT-based
RBLNRobertaModel RoBERTa-based
RBLNXLMRobertaModel XLM-RoBERTa-based
RBLNXLMRobertaForSequenceClassification XLM-RoBERTa-based
RBLNRobertaForSequenceClassification RoBERTa-based
RBLNQwen3ForCausalLM Qwen3-based
RBLNQwen3Model Qwen3-based