콘텐츠로 이동

RBLN NPU에서 A.X-K2 서빙

호스트에 RBLN Driver가 설치되어 있어야 하며, RBLN Compiler(rebel-compiler)를 설치하려면 RBLN Portal 계정이 필요합니다. 호환되는 패키지 버전은 설치 매트릭스에서 확인할 수 있습니다.

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

KV 오프로드(LMCache)와 prefill/decode disaggregated 명령에는 lmcache-rbln과 nixl-rbln을 설치하는 kv_connectors extra가 필요합니다. 없으면 해당 서버가 시작 단계에서 실패합니다.

1
2
3
4
5
$ pip install \
  --extra-index-url https://pypi.rbln.ai/simple \
  --extra-index-url https://wheels.vllm.ai/0.30.0/cpu \
  --extra-index-url https://download.pytorch.org/whl/cpu \
  "vllm-rbln[kv_connectors]==0.12.0"
가이드 — 개요 및 설정

개요

skt/A.X-K2는 688B 파라미터 Mixture-of-Experts 디코더 전용 모델입니다(routed expert 256개 + 공유 expert 1개, 토큰당 8개 활성화). Multi-head Latent Attention(MLA)과 Sparse Gated Attention(SGA)을 함께 사용합니다. RBLN-CR13에서는 RBLN vLLM 플러그인으로 서빙되며, aggregated 또는 prefill/decode disaggregated 구성을 고를 수 있습니다. 서빙되는 체크포인트는 NVFP4로 양자화된 skt/A.X-K2-NVFP4이며, 262,144 토큰 컨텍스트 전체를 서빙합니다.

Configuration

RBLN-CR13으로 검증된 구성입니다. 위 recipe에서 strategy를 고르면 됩니다. 서버 하나가 디바이스 8개를 씁니다.

  • Data + Expert Parallel: --data-parallel-size는 모델 복제를 하나씩 올릴 CR13 디바이스 수이고, --enable-expert-parallel이 expert를 그 디바이스들에 분할합니다.
  • Pipeline Parallel: --pipeline-parallel-size가 layer를 디바이스에 나눠 올립니다.
  • Prefill/Decode disaggregated: prefill 서버와 decode 서버를 서로 다른 노드에서 실행하고 llm-d router 뒤에 둡니다. router의 helm 명령은 recipe에서 두 서버 명령 다음에 나옵니다. Kubernetes에서 llm-d router와 serving stack을 배포하는 방법은 Coding Assistant reference design의 Kubernetes 배포를 참고하세요.

모든 명령은 --model-impl vllm으로 선택하는 vllm model implementation으로 동작합니다. 커스텀 아키텍처라 --trust-remote-code가 필요하며, 모든 명령에 들어 있습니다.

전체 엔진 인자는 설정 가이드에서 확인할 수 있습니다.

참고 및 제약

  • RBLN-CR13으로 검증되었으며, serve 인자는 변경될 수 있습니다.
  • 이 recipe에는 FP8 원본 체크포인트(skt/A.X-K2)를 사용하는 설정이 포함되어 있지 않습니다. 262,144 토큰에서는 --block-size 2048 기준 KV cache가 rank당 21.1 GiB입니다. RBLN-CR13 디바이스는 이를 weight와 함께 담지 못해 서버가 SYS_EBUSY: Lack of device memory로 실패합니다. 컨텍스트를 줄이면 서빙할 수 있습니다. --max-model-len 163840에서는 KV cache가 rank당 13.3 GiB입니다.
  • 배치 크기·시퀀스 길이·디바이스 수는 컴파일 시 고정되며, 변경하면 다음 실행 시 재컴파일됩니다.