Prhub

#21004 [Fix] Add EPLB rebalance support for Kimi K2.5

原始 PR 作者 yafengio 合并时间 2026-03-26 12:01 文件变更 1 提交数 1 评论 10 代码增减 +4 / -0

执行摘要

为 Kimi K2.5 模型添加 EPLB 负载均衡所需的 routed_experts_weights_of_layer 属性,修复 AttributeError。

根据PR body中的错误日志,当启用EPLB负载均衡时,Kimi K2.5模型在调度过程中抛出AttributeError:'KimiK25ForConditionalGeneration' object has no attribute 'routed_experts_weights_of_layer'。该错误发生在EPLB管理器尝试访问模型属性以进行负载均衡时,导致服务器崩溃。

该PR变更简单直接,是典型的缺失属性修复。对于关注Kimi模型支持或EPLB负载均衡机制的工程师,可快速浏览以了解模型类如何暴露专家权重信息。无需深入分析代码逻辑。

讨论亮点

review中仅有一条来自gemini-code-assist[bot]的代码风格建议,建议为新增属性添加返回类型提示(-> dict)以保持代码一致性。该建议未被采纳(最终代码未添加类型提示),但reviewer yeahdongcn已批准PR。

实现拆解

在python/sglang/srt/models/kimi_k25.py文件的KimiK25ForConditionalGeneration类中,新增一个只读属性routed_experts_weights_of_layer,该属性返回self.language_model._routed_experts_weights_of_layer.value,将属性访问委托给底层的语言模型。

文件 模块 状态 重要度
python/sglang/srt/models/kimi_k25.py models modified 8.0

关键符号

routed_experts_weights_of_layer

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

为 routed_experts_weights_of_layer 属性添加类型提示 style

gemini-code-assist[bot] 建议为新增属性添加返回类型提示(-> dict)以保持与类中其他属性(如 start_layer、end_layer)的一致性,提高代码清晰度。

结论:建议未被采纳,最终代码未添加类型提示。 · 已解决

风险与影响

风险较低:

  1. 变更范围极小(仅4行代码),仅添加一个属性委托,不涉及核心逻辑修改。
  2. 可能存在的风险是如果底层语言模型的_routed_experts_weights_of_layer.value结构不符合预期,可能导致后续EPLB逻辑错误,但该风险在现有代码中已存在。
  3. 缺少类型提示可能影响代码可读性,但不会影响运行时行为。
  1. 对用户:修复了Kimi K2.5模型在启用EPLB负载均衡时的服务器崩溃问题,使负载均衡功能恢复正常。
  2. 对系统:确保EPLB管理器能正确访问专家权重信息,优化多专家模型的负载分布。
  3. 对团队:解决了特定模型配置下的阻塞性问题,支持了Kimi K2.5模型在EPLB环境下的稳定运行。
缺少类型提示

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论