Prhub

#31056 Fix MockDSV4ModelRunner missing spec_algorithm

原始 PR 作者 Jialin 合并时间 2026-07-14 04:24 文件变更 1 提交数 2 评论 10 代码增减 +2 / -0

执行摘要

修复 MockDSV4ModelRunner 缺少 spec_algorithm 属性

DSpark (#30261) 切换了 DSV4 注意力后端初始化时读取 spec_algorithm 的源,导致所有 dsv4 注意力单元测试(如 test/registered/attention/unittests/dsv4/test_deepseek_v4.py)在构造后端时 AttributeError。该 PR 旨在修复 CI 阻塞。

值得精读,以理解 mock 对象维护的重要性。建议同步检查其他 mock runner 是否也需要类似修复。

讨论亮点

PR 无 review 评论,变更直接合并。

实现拆解

  1. 在 python/sglang/test/kits/attention_unittest/attention_methods/dsv4_attention.py 中添加 from sglang.srt.speculative.spec_info import SpeculativeAlgorithm。
  2. 在 MockDSV4ModelRunner.init 中设置 self.spec_algorithm = SpeculativeAlgorithm.NONE,匹配 DSpark 变更前的行为(server_args.speculative_algorithm is None 等价于 NONE)。
文件 模块 状态 重要度
python/sglang/test/kits/attention_unittest/attention_methods/dsv4_attention.py DSV4 注意力 modified 4.79

关键符号

MockDSV4ModelRunner.__init__

关键源码片段

python/sglang/test/kits/attention_unittest/attention_methods/dsv4_attention.py test-coverage

唯一的变更文件:为 MockDSV4ModelRunner 添加 spec_algorithm 属性及对应 import,修复单元测试崩溃。

# 文件 : python/sglang/test/kits/attention_unittest/attention_methods/dsv4_attention.py# 在文件头部新增 import
from sglang.srt.speculative.spec_info import SpeculativeAlgorithmclass MockDSV4ModelRunner:
    def __init__(self, ...):
        # ... 其他属性 ...
        self.is_draft_worker = False
        self.spec_algorithm = SpeculativeAlgorithm.NONE # 新增 : 默认为非推测模式
        self._kernel_warmed_up = True

评论区精华

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

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

风险与影响

低风险。仅影响测试 mock 对象,不涉及生产代码。spec_algorithm 设为 NONE 与 DSpark 变更前行为等价,不会引入回归。

修复了所有 dsv4 注意力单元测试的 CI 崩溃,确保后续 PR 可通过这些测试。

测试基础设施修复

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论