콘텐츠로 이동

vllm-rbln: RBLN NPU를 위한 vLLM 플러그인

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

설치 방법

vllm-rbln을 설치하기 이전에 반드시 rebel-compileroptimum-rbln의 최신 버전을 설치해야 합니다.

pip install optimum-rbln>=0.8.1
pip install --extra-index-url https://pypi.rbln.ai/simple/ rebel-compiler>=0.8.1 

vllm-rbln은 PyPI에서 바로 설치할 수 있으며, GitHub의 vllm-rbln 저장소 내 소스 코드를 통해서도 설치 가능합니다.

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

pip install vllm-rbln>=0.8.1
최신 버전 및 변경 사항에 대한 자세한 내용은 릴리즈 노트를 참고하세요.

Note

버전 v0.8.1부터 vllm-rbln은 새로운 플러그인 시스템으로 마이그레이션되었습니다. 또한 이 버전부터는 vllm-rbln을 설치하면 vllm이 자동으로 종속성으로 함께 설치됩니다. 만약 vllm-rbln을 이전에 설치한 적 있다면, 정상적인 동작을 위해 기존의 vllm 관련 패키지를 모두 지우고 vllm-rbln 패키지를 다시 설치해 주세요.

튜토리얼

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

아키텍처 디자인

현재 vllm-rblnoptimum-rbln을 기반으로 작동합니다. 모델을 optimum-rbln을 사용해 컴파일한 후, 컴파일된 모델을 vLLM에서 사용합니다. 이 방식은 현재까지 기본이자 권장되는 접근 방식으로, 새로운 아키텍처가 활발히 개발 중인 상황에서도 안정적이고 신뢰할 수 있는 워크플로우를 제공합니다.

모든 튜토리얼과 예제는 이 아키텍처를 기반으로 작성되어 있습니다.

Torch Compile 기반으로의 전환

사용자의 편의를 높이기 위해 새로운 아키텍처를 도입할 예정입니다. 이는 torch.compile()을 활용함으로써 별도의 컴파일 단계를 제거하여, 표준 vLLM 워크플로우를 통한 보다 직관적이고 일관된 사용자 경험을 제공합니다.

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

지원하는 모델 목록

다음은 vllm-rbln이 현재 지원하는 모델 목록입니다.

Generative Models

Architecture Example Model Code
RBLNLlamaForCausalLM Llama-2/3
RBLNGemmaForCausalLM Gemma
RBLNPhiForCausalLM Phi-2
RBLNOPTForCausalLM OPT
RBLNGPT2LMHeadModel GPT2
RBLNMidmLMHeadModel Mi:dm
RBLNMistralForCausalLM Mistral
RBLNExaoneForCausalLM EXAONE-3/3.5
RBLNQwen2ForCausalLM Qwen2/2.5
RBLNBartForConditionalGeneration BART
RBLNT5ForConditionalGeneration T5
RBLNBlip2ForConditionalGeneration BLIP2

Multimodal Language Models

Architecture Example Model Code
RBLNLlavaNextForConditionalGeneration LlaVa-Next
RBLNQwen2_5_VLForConditionalGeneration Qwen2.5-VL
RBLNIdefics3ForConditionalGeneration Idefics3
RBLNGemma3ForConditionalGeneration Gemma3

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