当前位置: 首页 > news >正文

在 K8s 上可靠运行 PD 分离推理:RBG 的设计与实现

Prefill-Decode(PD)分离架构通过将大模型推理拆分为两个独立阶段——Prefill(预填充)Decode(解码),实现了计算与显存资源的精细化调度。该架构在性能上优势显著,但其在 Kubernetes 生产环境中的落地,对平台的编排与运维能力提出了新要求。

本文将介绍 RBG(RoleBasedGroup) ——一个专为多角色推理服务设计的 Kubernetes 编排扩展,以及它如何与 OME Operator 协同,解决 PD 分离架构的生产级部署难题。


一、PD 分离带来的平台挑战

在 PD 分离架构中:

  • Prefill 阶段:处理完整 prompt,计算密集,适合高算力 GPU(如 A100/H100);
  • Decode 阶段:逐 token 生成,依赖 KV Cache,对显存带宽敏感,通常需要更多实例。

这种拆分虽提升了资源利用率,但也引入了以下平台级问题:

问题原因影响
启动顺序不可控Prefill 必须先于 Decode 就绪Decode 启动后无法连接 Prefill,服务不可用
服务发现手动维护角色间需直连通信扩缩容后需人工更新地址配置
缩容中断请求直接删除 Pod正在处理的推理失败,客户端需重试
升级导致缓存重建滚动更新未排空请求首请求延迟飙升,TPS 抖动
弹性指标失准HPA 基于 CPU/内存无法感知推理队列积压,扩缩容滞后

这些问题的本质是:PD 分离服务是一个多角色、有状态、强协同的整体,而 Kubernetes 原生工作负载(Deployment/StatefulSet)仅面向单角色设计


二、RBG:多角色推理服务的编排原语

RBG(RoleBasedGroup)是 SGLang 社区联合阿里云、小红书等团队开源的 Kubernetes CRD 项目(GitHub),目标是将多角色服务提升为 K8s 中的一等公民。

核心抽象

RBG 引入两个核心资源:

  • RoleTemplate:定义角色的 Pod 模板(容器、GPU、挂载等),支持跨 RBG 复用;
  • RoleBasedGroup(RBG):声明角色副本数、启动依赖、扩缩容策略。
apiVersion: rbg.sglang.ai/v1alpha1
kind: RoleBasedGroup
metadata:name: deepseek-r1-pd
spec:roles:- name: prefillreplicas: 4templateRef: prefill-h100- name: decodereplicas: 8templateRef: decode-a100startupOrder:- ["prefill"]   # 第一阶段- ["decode"]    # 第二阶段

RBG 控制器按 DAG 顺序创建角色,确保依赖就绪后再启动下游。

关键能力

  1. 按角色精细扩缩容
    支持单独调整 prefilldecode 副本数,RBG 自动更新服务发现。

  2. 优雅生命周期管理

    • 缩容前调用推理引擎的 /drain 接口,排空请求;
    • 滚动升级支持分批、暂停、最大不可用数控制。
  3. 自动服务发现
    为每个角色创建 Headless Service,并通过环境变量注入对端地址列表,例如:

    DECODE_ENDPOINTS=prefill-0.rbg-svc,prefill-1.rbg-svc
    
  4. 与平台生态集成

    • 暴露自定义指标(如 rbg_role_pending_requests),供 KEDA 驱动弹性;
    • 兼容 Koordinator、OpenKruise 等高级调度器;
    • 可作为 OME、AIBrix 等 LLM 平台的底层 workload。

三、RBG 与 OME Operator 的集成

OME(Open Model Engine)是一个端到端的大模型服务平台,用户只需声明模型和运行时,OME 自动生成部署拓扑。

在 PD 分离场景下,OME 与 RBG 形成分层协作

+---------------------+
|     用户 (User)     |
+----------+----------+|| 提交 InferenceService CRv
+----------+----------+
|    OME Operator     | ← 高层控制面:模型驱动
+----------+----------+|| 若 deploymentMode == "Disaggregated"v
+----------+----------+
|   RoleBasedGroup    | ← RBG CR
+----------+----------+|| RBG Controller 创建v
+---------------------+
| Prefill Pods        |
| Decode Pods         | ← 底层工作负载
| Router Pods (可选)  |
+---------------------+
  • OME 负责:模型下载、运行时选择、GPU 数量规划、暴露 OpenAI 兼容 API;
  • RBG 负责:多角色 Pod 的创建、顺序控制、弹性伸缩、升级策略。

这种分层设计使 OME 无需重复实现多角色编排逻辑,而 RBG 也可被其他平台复用。


四、故障恢复机制

当某个角色 Pod 异常时,RBG 提供两级恢复策略:

场景:Decode Pod 崩溃

  1. Kubernetes 触发 PodDeleted 事件;
  2. RBG Controller 检查 restartPolicy(默认为 role);
  3. 仅重建该 Decode Pod,保留其他角色;
  4. 新 Pod 启动后,自动注入 Prefill 地址列表;
  5. 后续请求由 Router 路由到新实例,Prefill 重新发送 KV Cache。

注意:RBG 不负责 KV Cache 迁移(属推理引擎职责),但确保新实例能正确连接 Prefill 以重建缓存。

恢复策略配置

spec:restartPolicy: role    # 仅重建故障角色(默认)# restartPolicy: group # 重建整个 RBG(强状态一致性场景)

该机制避免了全组重建带来的大规模缓存失效,将故障影响控制在最小范围。


五、生产实践建议

  • 避免全组滚动更新:除非模型版本变更,否则应允许单角色升级;
  • 必须实现 drain 接口:推理引擎需提供 /drain 接口,确保 preStop 能真正排空请求;
  • 监控角色间延迟:Prefill → Decode 的通信延迟是关键 SLO,建议纳入告警;
  • 限制 Decode 副本上限:过多实例会导致 Router 负载不均,建议结合动态负载均衡;
  • 使用 KEDA 驱动弹性:基于 pending_requests 指标扩缩容,比 CPU/内存更准确。

六、总结

RBG 的核心价值,在于为 “多角色、有状态、强协同” 的新型推理服务提供了标准化的 Kubernetes 编排原语。它不替代推理引擎,也不绑定特定平台,而是聚焦解决以下生产痛点:

  • 多角色启动顺序不可控 → DAG 启动协调
  • 扩缩容中断请求 → 优雅排空 + 按角色扩缩
  • 服务发现手动维护 → 自动注入 endpoint
  • 升级即雪崩 → 分批滚动 + 流量切换

目前 RBG 已在多个大规模 LLM 推理集群中稳定运行,代码完全开源:

  • GitHub: https://github.com/sgl-project/rbg
  • 文档: https://github.com/sgl-project/rbg/blob/main/doc/TOC.md

对于正在构建大模型推理平台的团队,RBG 提供了一种轻量、标准、可集成的方式,让 PD 分离架构真正 “跑得稳、管得住、弹得准”

http://www.dtcms.com/a/462425.html

相关文章:

  • 自己的网站服务器网站平台建设缴纳什么税
  • 我的C++学习初体验与心得
  • 网站建设框架模板东营有做网站的公司
  • 学校网站建设项目需求报告小程序代理加盟条仿
  • Linux网络编程(上)
  • 基于wordpress站点的域名迁移
  • spring 框架中常用注解汇总,及对应作用介绍、使用示例demo演示
  • 网站后台下载二级建造师报名官网
  • 济宁住房和城乡建设局网站秦皇岛 免费建网站
  • 企业网站建设报价方案动易官方网站
  • 制作一个 MBTI 人格测试网页项目
  • Echarts如何实现line的实线虚线的分段,并且虚实线连接点平滑过度效果(未来预测场景)?
  • 苍穹外卖day06
  • mysql大表批量查询中IN vs JOIN vs CTE 性能实验
  • Cryptomator:免费的加密工具,
  • 逐位加|二分
  • 外贸行业网站推广wordpress galleria
  • 没技术怎么做网站湛江的高铁站建在哪里
  • MySQL 中数据完整性约束、外键管理(含级联策略) 和多表查询
  • 做效果图的网站有哪些软件有哪些wordpress漂浮
  • 为什么ffmpeg进行视频合成有时长误差
  • 做旅游销售网站平台ppt百度的域名
  • 网站建营销型企业网站有哪些类型
  • 2008服务器网站专门做定制的网站
  • 【软件设计师中级】计算机组成与结构(四):总线系统 - 计算机的“高速公路网络“
  • 专注服务于站长和网站的信息平台.网站建设需要学ps吗
  • 视频直播点播平台EasyDSS推拉流技术结合无人机推流在道路交通巡检场景中的应用
  • 涂鸦T5AI开发板直播互动游戏控制器实现方案【全开源】
  • Spring Boot 应用启动机制详解
  • 河南省建设工程造价协会网站joomla 2.5:你的网站建设_使用与管理 pdf