Prhub

#40927 Bugfix: fix SpecBench sample argument error

原始 PR 作者 izhuhaoran 合并时间 2026-04-28 15:33 文件变更 1 提交数 3 评论 2 代码增减 +1 / -0

执行摘要

修复 SpecBench 中缺失 self 参数的错误

PR body 描述了执行 vllm bench serve --dataset-name spec_bench 时因 SpecBench.sample() 缺少 self 参数而触发 TypeError,该问题由 PR#30156 引入。需要修复以恢复 SpecBench 数据集的正常采样功能。

值得合并的紧急修复。审查者可通过直接运行指定命令快速验证。建议后续为该基准数据集类添加基础的单元测试。

讨论亮点

无技术性讨论。作者 @izhuhaoran 提审 @DarkLight1337,后者确认并批准。机器人审查者无额外反馈。

实现拆解

  1. vllm/benchmarks/datasets/datasets.py 文件第 2367 行的 sample 方法签名中添加缺失的 self 参数。
  2. 该变更使 SpecBench.sample() 正确接收实例引用,从而调用 super().sample(**kwargs) 完成采样。
  3. 测试配套:本次提交未包含新测试,但该修复旨在恢复已有功能的正常运行,可通过手动运行 vllm bench serve --dataset-name spec_bench 验证。
文件 模块 状态 重要度
vllm/benchmarks/datasets/datasets.py 基准测试 modified 4.3

关键符号

SpecBench.sample

关键源码片段

vllm/benchmarks/datasets/datasets.py core-logic

问题根源文件,在 SpecBench 类的 sample 方法签名中新增 self 参数。

# 修复前:缺少 self 参数,导致 TypeError
# def sample(
# **kwargs,
# ) -> list[SampleRequest]:
# return super().sample(**kwargs)# 修复后:添加 self 参数,正确绑定实例方法
def sample(
    self, # <-- 新增 self 参数,修复 TypeError
    **kwargs,
) -> list[SampleRequest]:
    # 利用父类 CustomDataset 的 sample 方法进行采样
    return super().sample(
        **kwargs,
    )

评论区精华

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

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

风险与影响

风险极低。变更仅添加 self 参数,是 Python 方法的正确写法,不会引入回归。但无单元测试覆盖该类方法,建议后续补充。

直接影响:修复 vllm bench serve --dataset-name spec_bench 命令的崩溃问题,使 SpecBench 数据集可正常使用。不影响其他数据集或功能。

缺少测试覆盖

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论