RBLN NPU에서 DeepSeek-R1-Distill-Llama-70B 서빙¶
{"attn": "flash_attn", "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", "70B", "131,072 ctx", {"hl": true, "text": "vllm-rbln"}, "flash_attn", "Text"], "client": "curl http://localhost:8000/v1/chat/completions \\\n -H \"Content-Type: application/json\" \\\n -d \u0027{\n \"model\": \"DeepSeek-R1-Distill-Llama-70B\",\n \"messages\": [{\"role\": \"user\", \"content\": \"Hello\"}],\n \"max_tokens\": 32\n }\u0027", "features": {"api": true, "mm": false, "text": true}, "hf": "https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Llama-70B", "installLine": "pip install rebel-compiler vllm-rbln", "model": "deepseek-ai/DeepSeek-R1-Distill-Llama-70B", "name": "DeepSeek-R1-Distill-Llama-70B", "provider": "deepseek-ai", "strategies": [{"label": "RSD", "nodes": null, "options": [{"attn": "flash_attn", "features": {}, "label": null, "modelImpl": "transformers", "note": null, "npus": 16, "roles": [{"cmd": "vllm serve deepseek-ai/DeepSeek-R1-Distill-Llama-70B \\\n --block-size 16384 \\\n --max-model-len 131072 \\\n --max-num-seqs 1 \\\n --model-impl transformers \\\n --rbln-num-devices-per-local-rank 16 \\\n --served-model-name DeepSeek-R1-Distill-Llama-70B", "role": "main"}], "skus": ["RBLN-CA22", "RBLN-CA25"], "target": null, "verified": "2026-10-16"}], "slug": "rsd", "tag": "Aggregated", "variant": "BF16"}], "text": {"en": {"strategyNote": "Rebellions Scalable Design (RSD): the RBLN Compiler partitions the model across NPU devices, or across the chiplets within one device. See \u003ca href=\"../features/model-parallelism.html#rebellions-scalable-design-rsd\"\u003eModel Parallelism\u003c/a\u003e for how RSD applies on each NPU, and \u003cstrong\u003eConfiguration\u003c/strong\u003e in the guide for the engine arguments.", "sub": "DeepSeek-R1-Distill-Llama-70B \u2014 dense decoder-only LLM served on RBLN NPUs with RBLN vLLM, 131,072-token context (Flash Attention).", "tag": "The vllm serve command compiles the model on first run and starts an OpenAI-compatible server."}, "ko": {"strategyNote": "Rebellions Scalable Design(RSD): RBLN \ucef4\ud30c\uc77c\ub7ec\uac00 \ubaa8\ub378\uc744 NPU \ub514\ubc14\uc774\uc2a4 \uac04 \ub610\ub294 \ub514\ubc14\uc774\uc2a4 \ud558\ub098\uc758 \uce69\ub81b \uac04\uc5d0 \ubd84\ud560\ud569\ub2c8\ub2e4. NPU\ubcc4 RSD \uc801\uc6a9 \ubc29\uc2dd\uc740 \u003ca href=\"../features/model-parallelism.html#rebellions-scalable-design-rsd\"\u003e\ubaa8\ub378 \ubcd1\ub82c\ud654\u003c/a\u003e\uc5d0\uc11c, \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": "DeepSeek-R1-Distill-Llama-70B \u2014 dense \ub514\ucf54\ub354 \uc804\uc6a9 LLM, RBLN vLLM\uc73c\ub85c RBLN NPU\uc5d0\uc11c \uc11c\ube59. 131,072 \ud1a0\ud070 \ucee8\ud14d\uc2a4\ud2b8(Flash Attention).", "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 계정이 필요합니다. 호환되는 패키지 버전은 설치 매트릭스에서 확인할 수 있습니다.
가이드 — 개요 및 설정
개요¶
deepseek-ai/DeepSeek-R1-Distill-Llama-70B는 dense 디코더 전용 모델입니다. RBLN NPU에서는 RBLN vLLM 플러그인이 최초 실행 시 배치 크기·시퀀스 길이·NPU 개수를 고정해 아티팩트로 컴파일하고, 이를 vLLM OpenAI 호환 API로 서빙합니다.
Configuration¶
--rbln-num-devices-per-local-rank는 엔진 프로세스 하나가 사용할 NPU 디바이스 수를 지정하며, RBLN 컴파일러는 Rebellions Scalable Design(RSD)으로 이 디바이스들에 맞게 모델을 분할합니다. NPU별 RSD 적용 방식은 모델 병렬화에서 확인할 수 있습니다. 이 설정을 바꾸면 다음 실행 시 모델을 재컴파일합니다. 재컴파일을 일으키는 설정 전체는 Compile Cache에 정리되어 있습니다.
이 모델 라인의 다른 크기이며, 각각 별도의 recipe가 있습니다:
전체 엔진 인자는 설정 가이드에서 확인할 수 있습니다.
참고 및 제약¶
- 배치 크기·시퀀스 길이·NPU 개수는 컴파일 시 고정되며, 변경하면 다음 실행 시 재컴파일됩니다.
- 이 recipe는
--max-num-seqs 1로 서빙합니다. 값을 늘리면 처리량을 높일 수 있습니다. 모델은 그에 맞게 재컴파일됩니다.