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 快取複用。

相關

  • 專案
  • 專案
  • 專案
  • 專案