Prhub

#44897 [Bugfix][MoE] Fix fused MoE expert mapping helper call sites

原始 PR 作者 mmangkad 合并时间 2026-06-09 04:35 文件变更 6 提交数 1 评论 1 代码增减 +26 / -11

执行摘要

修复 FusedMoE 专家映射调用点

在 #41184 重构中,FusedMoE.make_expert_params_mapping 被重构为独立的 fused_moe_make_expert_params_mapping 函数,但部分调用点未被更新。PR body 明确指出:‘Fixes stale fused MoE expert mapping call sites after #41184, restoring pre-commit on main and avoiding runtime failures in affected weight-loading paths.’

建议精读,这是一个教科书级的重构遗漏修复,适合理解跨文件重构的收尾工作。

讨论亮点

无实质性讨论,仅自动审核评论。

实现拆解

  1. 导入调整:在 6 个文件中,将 from vllm.model_executor.layers.fused_moe import FusedMoE 改为同时导入 fused_moe_make_expert_params_mapping(或仅导入新函数)。
  2. 调用替换:将所有 FusedMoE.make_expert_params_mapping(...) 替换为 fused_moe_make_expert_params_mapping(...),参数签名保持不变。
  3. 注释更新:在 vllm/lora/model_manager.py 中更新了一处注释,将 FusedMoE.make_expert_params_mapping 改为 fused_moe_make_expert_params_mapping,确保文档与代码一致。
文件 模块 状态 重要度
vllm/model_executor/models/hy_v3.py 模型加载 modified 5.8
vllm/models/deepseek_v4/xpu/model.py 模型加载 modified 5.8
vllm/model_executor/models/hy_v3_mtp.py 模型加载 modified 5.94
vllm/models/deepseek_v4/xpu/mtp.py 模型加载 modified 5.94
vllm/model_executor/models/cohere2_moe.py 模型加载 modified 6.02
vllm/lora/model_manager.py LoRA modified 4.89

关键符号

get_expert_mapping load_weights _restrict_to_local_experts

关键源码片段

vllm/model_executor/models/hy_v3.py data-contract

主模型文件,替换了 `FusedMoE.make_expert_params_mapping` 调用。

# vllm/model_executor/models/hy_v3.py (partial)def get_expert_mapping(self) -> list[tuple[str, str, int, str]]:
    # 返回 expert params mapping 列表,用于权重加载
    # 重构后使用独立的函数取代 FusedMoE 类方法
    return fused_moe_make_expert_params_mapping(
        self,
        ckpt_gate_proj_name="gate_proj",
        ckpt_down_proj_name="down_proj",
        ckpt_up_proj_name="up_proj",
        num_experts=self.config.num_experts,
    )

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。变更仅为函数调用重定向,参数签名完全一致,且经过 CI 验证。但若未来 fused_moe_make_expert_params_mapping 的语义发生变化,这些调用点需要同步更新。

直接修复了 main 分支上因重构导致的 pre-commit 阻塞和潜在的权重加载崩溃,影响所有使用 MoE 的模型(如 deepseek、cohere、hy v3 等)。

跨文件变更 低风险

关联 Issue

#41184 [MoE Refactor] FusedMoE/MoERunner inversion refactor

完整报告

参与讨论