找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2088

积分

0

好友

296

主题
发表于 2025-12-25 18:02:24 | 查看: 34| 回复: 0

大语言模型(LLM)推理服务正迅速成为企业级应用的核心基础设施,其生产级落地的关键在于平衡性能、稳定性与成本。当前,推理架构正从单体模式向分布式演进,主流方向包括 Prefill-Decode 分离与 KVCache 外置,其根本动因是模型规模与长上下文带来的显存压力。将 KVCache 解耦外置,不仅能突破单机容量瓶颈,更能实现跨请求缓存共享、弹性伸缩等关键能力。

Mooncake 正是为应对这一挑战而生的分布式 KVCache 存储引擎,它为 SGLang 等推理框架提供高吞吐、低延迟的缓存服务。然而,在生产中管理由 Prefill、Decode 和 Mooncake 缓存节点组成的分布式系统,对传统的 Kubernetes 编排能力提出了新挑战:部署运维复杂,且滚动升级易导致缓存丢失,引发性能毛刺。

为根治这些痛点,RoleBasedGroup(RBG) 应运而生。作为面向 AI 推理的 Kubernetes 原生 API,RBG 通过多角色协同编排,将 Mooncake 缓存与 SGLang 推理节点视为同一服务的不同角色,统一管理其部署、升级与弹性,从而在保障性能最大化的同时,提升生产环境的稳定性与可运维性。

Mooncake:面向大模型推理的分布式 KVCache 存储引擎

Mooncake 是 SGLang HiCache(层级缓存)的高性能分布式 L3 存储后端,通过 RDMA 实现跨机 KVCache 共享,突破单机 GPU/CPU 缓存容量瓶颈。

核心组件:

  • Master Service: 管理集群存储池、元数据与节点生命周期。
  • Store Service: 提供分布式缓存存储,支持多副本、条带化传输与热点负载均衡。

核心特性:

  • RDMA 加速 + 零拷贝机制,实现高带宽、低延迟数据访问。
  • 智能预取与 GPU 直传,最大化 I/O 效率。
  • 支持 PD 分离架构,提升大规模集群 Token 吞吐量。

快速预览:

# 启动 Master
mooncake_master --http_metadata_server_port=9080
# 启动 Store 服务(配置 RDMA 设备与内存池)
python -m mooncake.mooncake_store_service --config=config.json
# 启动 SGLang(启用 Mooncake 后端)
python -m sglang.launch_server \
    --enable-hierarchical-cache \
    --hicache-storage-backend mooncake \
    --model-path <model_path>

RoleBasedGroup (RBG):面向大模型推理的弹性角色编排引擎

核心问题:大模型推理生产落地的五大挑战
大模型推理正演变为“最昂贵的微服务”,生产环境面临五大根本性挑战:

  1. 快速架构迭代:分离式架构演进快,传统平台难以及时适配。
  2. 性能敏感:关键指标对GPU拓扑、RDMA亲和性有亚毫秒级敏感度。
  3. 组件强依赖:关键角色间存在强绑定关系,升级回滚需保持原子性。
  4. 运维效率低:缺乏多角色统一视角,手动协调导致资源空置浪费。
  5. 资源潮汐显著:流量峰谷差大,静态配置下GPU平均利用率长期偏低。

RBG 设计理念:角色即一等公民
RBG 将一次推理服务视为拓扑化、有状态、可协同的“角色有机体”。基于此,RBG 提出了面向生产环境的 SCOPE 核心能力框架:

  • S – Stable:面向拓扑感知的确定性运维
  • C – Coordination:跨角色协同策略引擎
  • O – Orchestration:有编排语义的角色与服务发现
  • P – Performance:拓扑感知的高性能调度
  • E – Extensible:面向未来的声明式抽象

SCOPE 核心能力解析

  1. Stable (稳定):通过为每个 Pod 注入全局唯一 RoleID,并遵循“最小替换域”原则,确保运维操作在原有硬件拓扑范围内完成,避免拓扑漂移导致的性能抖动。
    roles:
    - name: prefill
      replicas: 3
      rolloutStrategy:
        rollingUpdate:
          type: InplaceIfPossible
          maxUnavailable: 1
  2. Coordination (协同):内置声明式协同引擎,精确定义角色间在部署、升级、故障、伸缩时的依赖关系与联动策略。
    coordination:
    - name: prefill-decode-co-update
      type: RollingUpdate
      roles:
        - prefill
        - decode
      strategy:
        maxUnavailable: 5%
        maxSkew: 1% # 两个角色在升级的过程中新版本比例的最大偏差
        partition: 20%
  3. Orchestration (编排):显式定义角色依赖与启动顺序,并提供拓扑自感知的内建服务发现,将完整拓扑信息注入Pod环境,降低集成复杂度。
  4. Performance (性能):引入拓扑感知的装箱策略,支持GPU拓扑优先级、角色间亲和/反亲和约束等,以保障TTFT、TPOT等关键指标。
  5. Extensible (可扩展):通过声明式API与插件化机制,将角色关系定义与部署管理解耦,支持快速适配社区演进的新架构。

基于RBG部署PD分离架构+Mooncake推理服务

部署架构
PD分离架构+Mooncake部署图
核心角色包括:

  • SGLang Router: 统一请求入口与流量调度器。
  • Prefill Serving Backend: 处理提示词前向计算,生成初始KVCache。
  • Decode Serving Backend: 执行自回归生成,依赖KVCache进行高效推理。
  • Mooncake Master/Store: 提供分布式KVCache存储服务,突破单机容量限制。

部署步骤

  1. 安装 RBG:参考官方安装指南
  2. 镜像准备:可使用SGLang官方镜像或参考附录Dockerfile自行构建。
  3. 服务部署:使用示例YAML文件进行部署,环境变量说明参考Mooncake Store文档
  4. 查看部署结果
    kubectl get pods -l rolebasedgroup.workloads.x-k8s.io/name=sglang-pd-with-mooncake-demo

Benchmark 测试结果:多级缓存加速显著
多轮对话场景测试表明,多级缓存架构显著提升了KVCache命中率与推理性能:

  • Baseline(仅GPU显存):平均TTFT 5.91s,P90 12.16s,InputToken吞吐 6576.85 token/s。
  • L2 DRAM HiCache:命中率40.62%,平均TTFT降至3.77s(↓36.2%),吞吐提升至10054.21 token/s(↑52.89%)。
  • L3 Mooncake 缓存:平均TTFT降至2.58s(↓56.3%),P90大幅改善至6.97s(↓42.7%),吞吐提升至15022.80 token/s(↑49.41%)。

吞吐指标对比图
命中率与TTFT指标对比图

通过原地升级实现Mooncake版本平滑升级

Mooncake与推理引擎的transfer-engine需保持严格版本一致。传统滚动升级会导致缓存Pod重建,内存中KVCache丢失,进而引发P99延迟毛刺与吞吐下跌。

解决方案:Mooncake缓存本地持久化 + RBG原地升级。

  1. Mooncake缓存持久化:支持将KVCache元数据与热数据快照持久化至节点本地,进程重启后可快速恢复。
  2. RBG原地升级:升级时避免重建Pod,而是原地替换容器镜像并复用本地持久化数据,实现“无缝”版本切换。

原地升级示意图

操作示例:将引擎版本从v0.5.5更新至v0.5.6。

kubectl patch rolebasedgroup sglang-pd-with-mooncake-demo \
  --type='json' \
  -p='[{"op": "replace", "path": "/spec/roles/1/template/spec/containers/0/image", "value": "lmsysorg/sglang:v0.5.6"}]'

升级后,Mooncake Store Pod仅容器重启,Pod本身(包括IP、调度节点)未发生改变,结合缓存持久化能力,实现了升级无感。

总结与展望

本文阐述了如何通过RBG与Mooncake协同,构建生产级的高性能PD分离推理服务:

  • RBG 重新定义了LLM推理服务的编排范式,通过多角色协同与拓扑感知调度,解决了分布式部署复杂性,并利用原地升级攻克了有状态缓存服务平滑演进的难题。
  • Mooncake 作为L3缓存层,通过分布式内存池与RDMA加速,显著提升缓存命中率与推理性能,同时助力GPU利用率提升。
  • 分级缓存架构(GPU HBM → DRAM → Mooncake)被证明是长上下文、高并发推理场景的必由之路。

RBG + Mooncake的实践表明,只有将高性能系统设计与云原生运维能力深度融合,才能让大模型推理真正从“能用”走向“好用”

附录

镜像构建
部署样例可直接使用官方镜像 lmsysorg/sglang:v0.5.5。定制化构建可参考示例Dockerfile

Benchmark测试详情

  • 环境配置环境配置表
  • 测试方法:使用 HiCache 多轮对话压测工具,模拟多轮对话场景。
  • 测试命令
    
    python3 benchmark/hicache/bench_multiturn.py \
    --model-path /models/Qwen3-235B/Qwen3-235B-A22B \
    --dataset-path ShareGPT_V3_unfiltered_cleaned_split.json \
    --disable-random-sample \
    --output-length 1 \
    --request-length 2048 \
    --num-clients 150 \
    --num-rounds 10 \
    --max-parallel 4 \
    --request-rate 16 \
    --ready-queue-policy random \
    --disable-auto-run \
    --enable-round-barrier



上一篇:树莓派5外接显卡实战评测:eGPU在AI推理与媒体转码中的性能表现
下一篇:Vibe Coding AI编程方法论指南:从项目规划到高效协作的完整实战
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-11 09:06 , Processed in 0.294475 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表