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

5488

积分

0

好友

764

主题
发表于 3 小时前 | 查看: 2| 回复: 0

Kthena 是一个专为 Kubernetes 设计的云原生、高性能 LLM 推理路由和编排调度系统。它旨在解决在生产环境中大规模编排、部署和提供大语言模型服务时所面临的核心挑战。通过其独特的超节点拓扑感知亲和性调度、KV Cache 感知的流量调度、Prefill/Decode 分离路由等高级功能,Kthena 能够显著提升 GPU 或 NPU 的资源利用率与吞吐量,同时降低推理延迟,赋予企业前所未有的灵活性与控制力。作为 Volcano 的子项目,Kthena 致力于将能力边界从 AI 训练拓展至推理,打造一个训推一体的完整解决方案。

Kthena v0.4.0 版本的发布,进一步简化了大语言模型工作负载的管理,为 AI 基础设施注入了新的活力。该版本凝聚了社区贡献者过去两个月的倾力付出与通力协作,运行更稳定,功能也愈发丰富。

Kthena v0.4.0 关键特性

更快、更智能的路由器

确定且高效的模型选择

此前,由于 Kubernetes 内置的 CRD 校验无法强制实现跨对象的全局唯一性,若将多个 ModelRoute 资源映射到同一个模型,可能会引发路由冲突,导致规则匹配出现歧义,使得目标选择不一致。Kthena v0.4.0 优雅地解决了这个痛点。

该版本引入了一套可靠的冲突解决机制。当存在重复的 ModelRoute 时,路由器会确定性地优先选择创建时间最早(通常是预构建的)的路由,并将较新的重复项视为低优先级。这一策略确保了每一次路由请求都能得到可预测且稳定的结果。

可配置的 Prefix-Cache

统一的标准往往难以满足所有场景的需求。为此,Kthena 将硬编码的 Prefix-Cache 参数替换为完全可配置的 Prefix-Cache 系统。现在,你可以通过以下参数对 Prefix-Cache 的行为进行细粒度控制:

  • Block Size(哈希处理块大小):控制前缀匹配的粒度。较小的块能提供更精确的匹配,但会增加 CPU 开销;较大的块处理速度更快,但精准度会下降。
  • Max Block Limits(最大块限制):设定对给定提示词进行哈希处理的上限。这能避免路由器在处理过长的传入提示词时,出现延迟激增的问题。
  • Cache Capacity(缓存容量):定义路由器可以记住的前缀条目数量。增加此值可以提高多样化工作负载的缓存命中率,代价是略微增加内存占用。
  • Top-K Results(结果数):决定在匹配成功时,将多少个候选实例纳入考量。调整此参数有助于实现更好的负载均衡,确保流量平稳地分布在多个节点上,防止单个活跃实例过载。

通过微调这些设置,你可以为各类模型和特定的业务 LLM 工作负载,量身定制 Kthena Router 的 Prefix-Cache。

细粒度、资源高效的滚动更新

过去,Kthena 能在整个 ServingGroup 级别执行滚动更新。然而,对于大规模的大语言模型应用而言,完全重建一个 ServingGroup 通常是极其消耗资源且耗时的过程。

为解决此问题,我们引入了基于 Role 的滚动更新机制。当只有特定的 Role 需要变更时,你无需再更新整个 ServingGroup(这也是我们在恢复策略中引入 RoleRecreate 的原因)。从 v0.4.0 开始,你可以动态调整 rolloutStrategy——这将大幅降低升级时的资源消耗,并显著缩短升级过程中 ServingGroup 的不可用时间。

支持 SGLang 和 vLLM 的 PD 分离部署

PD 分离部署架构已成为大规模 LLM 服务的标准。在 Kthena v0.4.0 中,Kthena 的 modelServingRouter 已通过全面验证,能够良好地支持 vLLMSGLang 的 PD 分离部署。用户可以根据需求,通过 ModelServing 配置 Prefill 和 Decode,并结合 ModelServer 中的 pdGroup 配置,实现 PD 感知的智能路由,从而轻松构建高效的 PD 分离推理服务。

提升可观测性

Role 状态可见性

为了最大限度地降低 kube-apiserver 的负载,Kthena 的 ModelServing 使用了本地存储缓存 ServingGroupRole 的状态。虽然这种方式效率很高,但也限制了可观测性,使整个调和过程中 ServingGroupRole 的状态变化变成了难以洞察的“黑盒”。

在 v0.4.0 中,我们打破了这种状态。现在,我们能够直接通过 Kubernetes Events 暴露 Role 的状态,显著提升了 ModelServing 的可观测性。未来,我们还计划根据用户需求,将关键的 Role 信息直接嵌入到 ModelServing 的 Status 字段中,为你提供全面且透明的部署状态掌控力。同时,我们还为开发者提供了 debug-port,可以直接拉取本地缓存中的 ServingGroupRole 状态。

全面的访问日志

现在,Router 会生成更详细的访问日志,为每一个请求捕获更丰富多样的路由元数据。以下是 Kthena v0.4.0 Router 日志的一个示例:

[2026-04-16T07:33:08.435627146Z] "POST /v1/chat/completions HTTP/1.1" 200 model_name=deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B model_router=deepseek-r1-1-1.5b model_server=deepseek-r1 selected_pod=deepseek-r1-1-1.5b-6989c66877-p6jvv request_id=ad683d1b-6011-4b0f-b9b5-cbb18d43c57b gateway=dev/default http_route=kthena-e2e-gie-8eoas/llm-route inference_pool=kthena-e2e-gie-8eoas/deepseek-r1-1-1.5b tokens=10/38 timings=3ms(0+2+0)

与之前的版本相比,我们新增了 gatewayhttp_routeinference_pool 字段,从而为 Gateway 及 Gateway Inference Extension 的流量提供了更丰富的信息。

开放的生态系统

Kthena 致力于携手广大的开源社区,将项目建设成为一个开放、包容且繁荣的生态。

支持 ModelScope

在 v0.4.0 中,Kthena 的模型下载器扩展了对 ModelScope 协议的支持。这让用户和运维人员可以更灵活地选择符合项目需求的模型仓库。

Kthena 拒绝绑定单一技术栈,坚持与多样化的 AI 技术无缝集成,深耕于充满活力的 云原生 AI 生态之中。社区热忱地邀请全球开发者加入,共同构建包容且充满机遇的未来数字基础设施。

Kthena Router ScorePlugin 架构与基准测试分析主题图

Kthena v0.4.0 贡献者

@YaoZengzeng @VanderChen @hzxuzhonghu
@Tweakzx @pierluigilenoci @lihua871205
@nalan2012 @Murphylu1993 @xrwang8
@thisisharsh7 @vyagh @FAUST-BENCHOU
@LiZhenCheng9527 @aabhinavvvvvvv @anirudh240
@blenbot @sicaario @katara-Jayprakash
@WHOIM1205 @agrawalcodes

相关链接

[1] Volcano: https://volcano.sh/
[2] Kthena : https://kthena.volcano.sh/
[3] Kthena v0.4.0: https://github.com/volcano-sh/kthena/releases/tag/v0.4.0
[4] 冲突解决机制: https://github.com/volcano-sh/kthena/pull/779
[5] 可配置的Prefix-Cache系统: https://github.com/volcano-sh/kthena/pull/844
[6] 基于 Role 的滚动更新机制: https://github.com/volcano-sh/kthena/pull/802
[7] 直接通过 Kubernetes Events 暴露 Role 的状态: https://github.com/volcano-sh/kthena/pull/676
[8] 路由元数据: https://github.com/volcano-sh/kthena/pull/621
[9] ModelScope 协议的支持: https://github.com/volcano-sh/kthena/pull/861




上一篇:理想自研M100 NPU架构详解:面向自动驾驶与AI推理的数据流芯片设计
下一篇:构建生产级 AI Agent 的 7 大 Harness 核心组件
您需要登录后才可以回帖 登录 | 立即注册

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

GMT+8, 2026-4-29 10:30 , Processed in 0.862834 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

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