sgl-project/rbg

A workload for deploying LLM inference services on Kubernetes

解决的问题

传统的 Kubernetes 原语(如 StatefulSets 和 Deployments)并未针对 LLM 推理服务的复杂需求进行设计。这些服务通常需要多角色拓扑(例如分离 prefill 和 decode 角色)、严格的硬件亲和性(GPU-NVLink、RDMA),以及在扩缩容或升级过程中跨不同角色的原子操作。

工作原理

RoleBasedGroup (RBG) 是一个 Kubernetes API,将整个推理服务视为一个协调的单一单元。它引入了几个关键概念:

  • 角色:基本的调度单元,每个角色(如 prefill 或 decode)都有其独立的规格和生命周期。
  • RoleBasedGroup:构成一个服务的这些角色的逻辑分组。
  • RoleInstance:具有绑定生命周期的 Pod 集合,支持就地更新。
  • CoordinatedPolicy:一个独立的 CRD,用于同时管理多个角色的滚动更新和扩缩容,以保持稳定性。

适用人群

专为在 Kubernetes 上部署分布式、有状态 AI 推理工作负载的工程师和运维人员设计,尤其适用于使用 SGLang 或 vLLM 等引擎的用户。

主要亮点

  • 拓扑感知:通过注入唯一 RoleID 实现确定性操作。
  • 跨角色协调:支持配对部署、关联恢复和协调升级的策略引擎。
  • 硬件亲和性:针对 GPU-NVLink、PCIe、RDMA 和 VPC 优化的调度。
  • 服务发现:为分布式角色提供内置的、拓扑感知的服务发现。
  • 生态集成:原生支持 NVIDIA Dynamo 和 Mooncake 以实现 KV 缓存复用。

相关

  • 项目
  • 项目
  • 项目
  • 项目