RBLN NPU에서 paligemma2-3b-mix-224 서빙¶
{"attn": "eager", "axes": [{"axis": "lmcache", "options": [{"label": "Off", "value": "off"}, {"label": "LMCache (CPU)", "value": "cpu"}, {"label": "LMCache (RDS)", "value": "rds"}], "title": "KV Offload"}, {"axis": "kv_connector", "options": [{"label": "Off", "value": "off"}, {"label": "LMCache (CPU)", "value": "lmcache_cpu"}, {"label": "LMCache (RDS)", "value": "lmcache_rds"}], "title": "KV Offload"}, {"axis": "prefix_caching", "options": [{"label": "On", "value": "on"}, {"label": "On (sub-block)", "value": "on_sub_block"}, {"label": "Off", "value": "off"}], "title": "Prefix Caching"}, {"axis": "spec_decode", "options": [{"label": "Off", "value": "off"}, {"label": "N-gram", "value": "ngram"}, {"label": "EAGLE-3", "value": "eagle3"}, {"label": "Suffix", "value": "suffix"}, {"label": "MTP", "value": "mtp"}], "title": "Speculative Decoding"}, {"axis": "on_device_sampler", "options": [{"label": "On", "value": "on"}, {"label": "Off", "value": "off"}], "title": "On-device Sampler"}, {"axis": "structured_output", "options": [{"label": "On", "value": "on"}, {"label": "Off", "value": "off"}], "title": "Structured Output"}], "badges": ["Dense", "3B", "8,192 ctx", {"hl": true, "text": "vllm-rbln"}, "eager", "Multimodal"], "client": "curl http://localhost:8000/v1/chat/completions \\\n -H \"Content-Type: application/json\" \\\n -d \u0027{\n \"model\": \"paligemma2-3b-mix-224\",\n \"messages\": [{\"role\": \"user\", \"content\": [\n {\"type\": \"text\", \"text\": \"What is in this image?\"},\n {\"type\": \"image_url\", \"image_url\": {\"url\": \"https://rbln-public.s3.ap-northeast-2.amazonaws.com/images/tabby.jpg\"}}\n ]}],\n \"max_tokens\": 64\n }\u0027", "features": {"api": true, "mm": true, "text": true}, "hf": "https://huggingface.co/google/paligemma2-3b-mix-224", "installLine": "pip install rebel-compiler vllm-rbln", "model": "google/paligemma2-3b-mix-224", "name": "paligemma2-3b-mix-224", "provider": "google", "strategies": [{"label": "RSD", "nodes": null, "options": [{"attn": "eager", "features": {}, "label": null, "modelImpl": "transformers", "note": null, "npus": 1, "roles": [{"cmd": "vllm serve google/paligemma2-3b-mix-224 \\\n --block-size 8192 \\\n --max-model-len 8192 \\\n --max-num-seqs 1 \\\n --model-impl transformers \\\n --rbln-num-devices-per-local-rank 1 \\\n --served-model-name paligemma2-3b-mix-224", "role": "main"}], "skus": ["RBLN-CR13"], "target": null, "verified": "2026-10-16"}, {"attn": "eager", "features": {}, "label": null, "modelImpl": "transformers", "note": null, "npus": 4, "roles": [{"cmd": "vllm serve google/paligemma2-3b-mix-224 \\\n --block-size 8192 \\\n --max-model-len 8192 \\\n --max-num-seqs 1 \\\n --model-impl transformers \\\n --rbln-num-devices-per-local-rank 4 \\\n --served-model-name paligemma2-3b-mix-224", "role": "main"}], "skus": ["RBLN-CA22", "RBLN-CA25"], "target": null, "verified": "2026-10-16"}], "slug": "rsd", "tag": "Aggregated", "variant": "BF16"}], "text": {"en": {"strategyNote": "Vision-language serving \u2014 the language model and vision encoder are compiled together. See \u003cstrong\u003eConfiguration\u003c/strong\u003e in the guide for the engine arguments.", "sub": "paligemma2-3b-mix-224 \u2014 vision-language model served on RBLN NPUs with RBLN vLLM; accepts images and text through an OpenAI-compatible chat API.", "tag": "The vllm serve command compiles the model on first run and starts an OpenAI-compatible server."}, "ko": {"strategyNote": "\ube44\uc804-\uc5b8\uc5b4 \uc11c\ube59 \u2014 \uc5b8\uc5b4 \ubaa8\ub378\uacfc \ube44\uc804 \uc778\ucf54\ub354\ub97c \ud568\uaed8 \ucef4\ud30c\uc77c\ud569\ub2c8\ub2e4. \uc5d4\uc9c4 \uc778\uc790\ub294 \uac00\uc774\ub4dc\uc758 \u003cstrong\u003eConfiguration\u003c/strong\u003e\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.", "sub": "paligemma2-3b-mix-224 \u2014 \ube44\uc804-\uc5b8\uc5b4 \ubaa8\ub378, RBLN vLLM\uc73c\ub85c RBLN NPU\uc5d0\uc11c \uc11c\ube59. OpenAI \ud638\ud658 chat API\ub85c \uc774\ubbf8\uc9c0\uc640 \ud14d\uc2a4\ud2b8\ub97c \ud568\uaed8 \uc785\ub825\ud569\ub2c8\ub2e4.", "tag": "vllm serve \uba85\ub839\uc740 \ucd5c\ucd08 \uc2e4\ud589 \uc2dc \ubaa8\ub378\uc744 \ucef4\ud30c\uc77c\ud558\uace0 OpenAI \ud638\ud658 \uc11c\ubc84\ub97c \uc2dc\uc791\ud569\ub2c8\ub2e4."}}, "variant": "BF16"} 호스트에 RBLN Driver가 설치되어 있어야 하며, RBLN Compiler(rebel-compiler)를 설치하려면 RBLN Portal 계정이 필요합니다. 호환되는 패키지 버전은 설치 매트릭스에서 확인할 수 있습니다.
가이드 — 개요 및 설정
개요¶
google/paligemma2-3b-mix-224는 비전-언어 모델입니다. RBLN NPU에서는 RBLN vLLM 플러그인이 최초 실행 시 언어 모델과 비전 인코더를 컴파일하고, 이를 vLLM OpenAI 호환 API로 서빙합니다. 이미지는 chat-completions의 image_url 콘텐츠 필드로 전달합니다.
Configuration¶
--rbln-num-devices-per-local-rank는 엔진 프로세스 하나가 사용할 NPU 디바이스 수를 지정하며, RBLN 컴파일러는 Rebellions Scalable Design(RSD)으로 이 디바이스들에 맞게 모델을 분할합니다. NPU별 RSD 적용 방식은 모델 병렬화에서 확인할 수 있습니다. 비전 인코더는 --additional-config(optimum_overrides.visual)로 설정합니다. 이 설정을 바꾸면 다음 실행 시 모델을 재컴파일합니다. 재컴파일을 일으키는 설정 전체는 Compile Cache에 정리되어 있습니다.
전체 엔진 인자는 설정 가이드에서 확인할 수 있습니다.
참고 및 제약¶
- 시퀀스 길이와 NPU 개수는 컴파일 시 고정되며, 변경하면 다음 실행 시 재컴파일됩니다.