Prhub

#42521 [Fix] Weight loading for qwen3_5 using runai_streamer

原始 PR 作者 hks-9697-v2 合并时间 2026-05-14 10:36 文件变更 1 提交数 1 评论 1 代码增减 +2 / -2

执行摘要

修复 Qwen3.5 权重加载参数传递问题

修复 Qwen3.5 MoE 模型在 TPU 多主机上使用 runai_streamer 加载权重时的 AssertionError,根源是位置参数与下游 hook 的 kwargs 期望不匹配。

值得快速合并,修复明确,改动极小。

讨论亮点

无实质性讨论,ZJY0516 直接批准。

实现拆解

  1. vllm/model_executor/models/qwen3_5.pyload_fused_expert_weights 方法中,将第 265-266 行的 shard_id, expert_id 改为 shard_id=shard_id, expert_id=expert_id 作为关键字参数传递。
  2. 仅修改了 2 行代码,无其他文件变更。
文件 模块 状态 重要度
vllm/model_executor/models/qwen3_5.py 模型加载 modified 4.88

关键符号

load_fused_expert_weights

关键源码片段

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

修复权重加载参数传递问题,避免 runai_streamer 场景下的 AssertionError。

# vllm/model_executor/models/qwen3_5.py
# 修复前:shard_id 和 expert_id 作为位置参数传递
# 修复后:改为关键字参数,确保下游 weight_loader hook
# (如 maybe_process_weights)能通过 kwargs.get('expert_id') 获取到值
success = weight_loader(
    param,
    curr_expert_weight,
    name,
    shard_id=shard_id, # 原为位置参数,现改为关键字参数
    expert_id=expert_id, # 同上
    return_success=True,
)

评论区精华

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

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

风险与影响

风险极低:仅将两个位置参数改为关键字参数,语义等价,不会影响未使用 kwargs 调用的 weight_loader。

影响范围:仅影响 Qwen3.5 模型在使用 runai_streamer 加载方式时的权重加载流程,修复了特定场景下的崩溃。对正常加载路径无影响。

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论