Prhub

#47607 [bugfix] fix MOSS-Audio deepstack_input_embeds initialization in PP

原始 PR 作者 yma11 合并时间 2026-07-06 17:15 文件变更 1 提交数 1 评论 1 代码增减 +4 / -0

执行摘要

修复 MOSS-Audio PP 下 deepstack_input_embeds 初始化缺失

PR #44443 将 MOSS-Audio 切换到 ModelRunnerV2 后,在 PP 模式下出现 KeyError 崩溃(具体见 PR body 中的错误栈)。根本原因是 deepstack_input_embeds 的初始化未按 PP 分片裁剪,非首 rank 创建了过多 key,导致后续访问时找不到预期的 key。

值得合入,改动虽小但正确性关键,修复了 PP 下的崩溃。建议同步检查其他是否有其他类似初始化未分片的模型,可作为学习 PP 模式下 intermediate_tensors 分片处理的范例。

讨论亮点

没有实质性 review 讨论,仅有一个 claude[bot] 的自动评论提示不可见,以及三位 reviewer 的 approve。

实现拆解

  1. 在 vllm/model_executor/models/moss_audio.py 的 make_empty_intermediate_tensors 方法中,遍历 self.deepstack_inject_layer_indices 时增加判断:if layer_idx < self.model.start_layer: continue。
  2. 这样非首 PP rank 只会为其负责的层创建 deepstack_input_embeds_{layer_idx} 张量,与 intermediate_tensors 的分片逻辑对齐。
  3. 无其他文件修改,改动仅 4 行,不涉及测试或配置变更。
文件 模块 状态 重要度
vllm/model_executor/models/moss_audio.py 模型实现 modified 5.28

关键符号

make_empty_intermediate_tensors

关键源码片段

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

唯一修改的文件,在 make_empty_intermediate_tensors 中增加 start_layer 判断以修复 PP 下 KeyError。

# vllm/model_executor/models/moss_audio.py
def make_empty_intermediate_tensors(
    self,
    batch_size: int,
    dtype: torch.dtype,
    device: torch.device,
) -> IntermediateTensors:
    intermediate_tensors = self.model.make_empty_intermediate_tensors(
        batch_size, dtype, device
    )
    for layer_idx in self.deepstack_inject_layer_indices:
        # Non-first PP ranks only receive DeepStack payloads for layers
        # at or after their local start layer.
        if layer_idx < self.model.start_layer:
            continue
        intermediate_tensors[f"deepstack_input_embeds_{layer_idx}"] = torch.zeros(
            (batch_size, self.config.hidden_size),
            dtype=dtype,
            device=device,
        )
    return intermediate_tensors

评论区精华

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

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

风险与影响

风险极低。改动仅增加一个条件判断跳过无关层,且该逻辑是其他模型已有的标准做法(如 deepseek 系列)。回归风险限于 MOSS-Audio 的 PP 执行路径,单一文件内单一方法。

影响范围仅限 MOSS-Audio 模型在 PP 模式下的运行。修复后非首 rank 不再因 KeyError 崩溃,模型可正常推理。对于非 PP 用户无影响。

核心路径变更

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论