sgl-project/rbg
A workload for deploying LLM inference services on Kubernetes
해결하는 문제
기존의 Kubernetes 기본 리소스인 StatefulSet과 Deployment는 LLM 추론 서비스의 복잡한 요구사항을 고려하지 않고 설계되었습니다. 이러한 서비스는 일반적으로 다중 역할 아키텍처(예: prefill 및 decode 역할 분리)를 필요로 하며, 엄격한 하드웨어 친화성(GPU-NVLink, RDMA)과 스케일링 또는 업그레이드 시 다양한 역할 간 원자적 동작을 요구합니다.
작동 방식
RoleBasedGroup(RBG)은 전체 추론 서비스를 하나의 조정된 단위로 취급하는 Kubernetes API입니다. 다음과 같은 핵심 개념을 도입합니다:
- 역할(Roles): 각 역할(prefill 또는 decode 등)이 고유한 사양과 라이프사이클을 가지는 기본 스케줄링 단위입니다.
- RoleBasedGroup: 하나의 서비스를 구성하는 이러한 역할들의 논리적 그룹입니다.
- RoleInstance: 연결된 라이프사이클을 가진 Pod의 집합이며, 인플레이스 업데이트를 지원합니다.
- CoordinatedPolicy: 여러 역할 간 동시 롤링 업데이트 및 스케일링을 관리하기 위한 별도의 CRD입니다.
대상 사용자
Kubernetes에서 분산형, 상태 유지형 AI 추론 워크로드를 배포하는 엔지니어 및 운영자에게 적합하며, 특히 SGLang 또는 vLLM과 같은 엔진을 사용하는 경우에 유용합니다.
주요 특징
- 트로포로지 인식: 고유한 RoleID 주입을 통한 결정론적 동작.
- 역할 간 조정: 쌍으로 배포, 연결된 복구, 조정된 업그레이드를 위한 정책 엔진.
- 하드웨어 친화성: GPU-NVLink, PCIe, RDMA, VPC 최적화된 스케줄링.
- 서비스 디스커버리: 분산된 역할을 위한 내장형, 트로포로지 인식 서비스 디스커버리.
- 에코시스템 통합: NVIDIA Dynamo 및 Mooncake을 통한 KV 캐시 재사용에 대한 네이티브 지원.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트