Kthena × Mooncake:在昇腾集群解锁高效的分布式推理与 KVCache 复用

举报
云容器大未来 发表于 2026/07/03 14:27:04 2026/07/03
【摘要】 随着大模型向长上下文和复杂推理任务演进,Prefill-Decode分离架构已成为提升集群整体吞吐量的标准实践。作为一款云原生环境下的分布式推理负载编排引擎,Kthena 在 v0.4.0 版本中已全面支持基于 vLLM 和 Mooncake 的 PD 分离部署,并深度针对华为昇腾(Ascend)NPU 集群进行了硬件级优化。

随着大模型向长上下文(Long-Context)和复杂推理任务演进,Prefill-Decode(预填充-解码,简称 PD)分离架构已成为提升集群整体吞吐量的标准实践。然而,在分布式架构下,将庞大的 KVCache 从 Prefill 节点跨网络传输至 Decode 节点,往往会带来显著的通信开销,成为制约系统性能的新瓶颈。

kthena小图.png

业界优秀的开源 LLM 推理增强系统 Mooncake 凭借其对 KVCache 的全局池化管理与跨节点复用能力,有效解决了这一难题。作为一款云原生环境下的分布式推理负载编排引擎Kthena 在 v0.4.0 版本中已全面支持基于 vLLM 和 Mooncake 的 PD 分离部署,并深度针对华为昇腾(Ascend)NPU 集群进行了硬件级优化。


解决 KVCache 传输痛点:Mooncake 的核心价值

在传统的 PD 分离方案中,每次请求都需要在节点间进行点对点的 KVCache 搬运。而 Kthena 引入 Mooncake 后,系统具备了以下关键能力:

  1. 全局 KVCache 池化:将集群中分布在各个节点(特别是高算力的昇腾节点)的内存与显存统一管理,构建分布式的 KVCache 存储池。
  2. 跨节点复用:对于具有相同前缀(Prefix)的请求,Mooncake 可以直接复用已生成的 KVCache,显著降低重复的 Prefill 计算开销。
  3. 降低 TTFT(Time to First Token,首Token延迟):通过高效的底层传输与缓存命中,长上下文场景下有效降低首Token延迟。


Kthena 中的分布式编排与昇腾硬件加速

在 Kubernetes 环境中手动配置复杂的 PD 分离与 Mooncake 组件是一项繁琐的工作。Kthena 将这种复杂的分布式拓扑抽象为声明式的 API,并与华为昇腾硬件底座深度融合:

1. 精细化的节点调度与资源分配

Kthena 允许用户根据 Prefill 和 Decode 的不同计算特征进行资源编排:

  • Prefill 阶段(计算密集型):自动调度至具备高计算吞吐量的昇腾节点,利用 NPU 的并行张量运算能力快速生成初始 KVCache。
  • Decode 阶段(显存/内存密集型):调度至配备大容量内存的昇腾节点,专注于自回归的 Token 生成。

2. 基于 HCCL 的底层通信优化

在 KVCache 的实际传输链路上,Kthena 结合了华为集合通信库(HCCL)。通过 NPU 专用的网络接口和通信协议,系统能够在支持 NPU 的节点之间实现更低延迟的数据交换,确保 Mooncake 的高速缓存读取不受底层网络限制。


实战:在集群中启用分离推理

通过以下步骤,您可以快速在配备昇腾 NPU 的 K8s 集群中部署基于 Mooncake Connector的分离式deepseek-v4推理服务。

1. 部署 ModelServing(编排工作负载)

首先,创建 ModelServing 资源[1]以拉起预填充和解码的具体工作负载。该配置定义了预填充角色和解码角色,并分配了针对 NPU 优化的容器及硬件资源。

kubectl apply -f https://raw.githubusercontent.com/volcano-sh/kthena/main/examples/models/deepseek-v4-flash/modelserving.yaml

2. 创建推理路由策略ModelServer(配置网络拓扑)

接下来,创建 ModelRouteModelServer 资源[2]。这一步负责创建模型路由规则和KV Connector感知,包含感知Prefill、Decode不同角色的工作负载,以及传输层的流量策略。

cat <<EOF | kubectl apply -f -
apiVersion: networking.serving.volcano.sh/v1alpha1
kind: ModelRoute
metadata:
  name: deepseek-v4
  namespace: default
spec:
  modelName: "deepseek_v4"
  rules:
  - name: "default"
    targetModels:
    - modelServerName: "deepseekv4-pd"
---
apiVersion: networking.serving.volcano.sh/v1alpha1
kind: ModelServer
metadata:
  name: deepseekv4-pd
  namespace: default
spec:
  inferenceEngine: vLLM
  model: "deepseek_v4"
  workloadPort:
    port: 7100
    protocol: http
  workloadSelector:
    matchLabels:
      modelserving.volcano.sh/name: deepseekv4-pd
    pdGroup:
      groupKey: "modelserving.volcano.sh/group-name"
      prefillLabels:
        modelserving.volcano.sh/role: prefill
      decodeLabels:
        modelserving.volcano.sh/role: decode
  trafficPolicy:
    timeout: "300s"
    retry:
      attempts: 3
      retryInterval: "150ms"
  kvConnector:
    type: mooncake
EOF

3. 验证部署与测试

完成上述三个 CRD 的部署后,PD分离推理即搭建完成。您可以通过调用 Chat API 来测试预填充和解码服务是否正常通信:

curl --location 'http://${ENDPOINT}/v1/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
    "model": "deepseek_v4",
    "messages": [
        {
            "role": "user",
            "content": "Where is the capital of China?"
        }
    ],
    "stream": false
}'

(注:请将 ${ENDPOINT} 替换为您的实际Kthena Router入口的IP 地址和端口。)

如果收到正确的响应文本,即表明预填充服务已成功将生成的 KV 缓存通过底层通信层传输给解码服务,分离推理架构正在按预期高效工作。


结语

随着各类推理框架对 PD 分离和 KVCache 优化的持续跟进,分布式推理架构的落地标准正在不断提高。Kthena 通过集成 Mooncake 并结合昇腾 NPU 的硬件级优化,为开发者提供了一个开箱即用的分布式推理负载编排解决方案,旨在以客观的工程指标提升 LLM 在生产环境中的实际运行效率。

了解完整的部署指南与架构细节,欢迎访问 Kthena [3]官方文档或访问 GitHub 仓库 (volcano-sh/kthena[4])。


相关链接:

[1] Deepseek-v4部署脚本 modelserving: https://github.com/volcano-sh/kthena/blob/main/examples/models/deepseek-v4-flash/modelserving.yaml
[2] Deepseek-v4部署脚本 router: https://github.com/volcano-sh/kthena/blob/main/examples/models/deepseek-v4-flash/router.yaml
[3] Kthena官网: https://kthena.volcano.sh/
[4] volcano-sh/kthena GitHub: https://github.com/volcano-sh/kthena


欢迎Star,Fork,来 Kthena 社区一起玩转LLM推理!


容器模仿.png

关注魔方公众号,获取更多前沿资讯

添加社区小助手k8s2222,进入Kthena技术交流群

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。