vllm-rbln: RBLN NPU를 위한 vLLM 플러그인¶
vllm-rbln
은 리벨리온 NPU를 위한 vLLM용 하드웨어 플러그인으로, 고성능 LLM 추론 및 서빙을 지원합니다.
설치 방법¶
vllm-rbln
을 설치하기 이전에 반드시 rebel-compiler
와 optimum-rbln
의 최신 버전을 설치해야 합니다.
vllm-rbln
은 PyPI에서 바로 설치할 수 있으며, GitHub의 vllm-rbln 저장소 내 소스 코드를 통해서도 설치 가능합니다.
다음은 pip를 통해 최신 릴리즈를 설치하는 명령어입니다.
Note
버전 v0.8.1부터 vllm-rbln
은 새로운 플러그인 시스템으로 마이그레이션되었습니다. 또한 이 버전부터는 vllm-rbln
을 설치하면 vllm
이 자동으로 종속성으로 함께 설치됩니다.
만약 vllm-rbln
을 이전에 설치한 적 있다면, 정상적인 동작을 위해 기존의 vllm
관련 패키지를 모두 지우고 vllm-rbln
패키지를 다시 설치해 주세요.
튜토리얼¶
vllm-rbln
을 쉽게 시작할 수 있도록, 기본적인 기능과 다양한 배포 옵션을 보여주는 튜토리얼을 제공합니다.
vllm-rbln
플러그인을 vLLM에서 활용하는 예시 코드vllm-rbln
플러그인을 활용해서 OpenAI와 호환되는 서버를 구축하는 예시 코드
아키텍처 디자인¶
현재 vllm-rbln
은 optimum-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 |