Prhub

#38114 [Bugfix] Add missing ASRDataset import and CLI args in benchmarks/throughput.py

原始 PR 作者 nemanjaudovic 合并时间 2026-04-08 21:53 文件变更 1 提交数 11 评论 1 代码增减 +22 / -0

执行摘要

修复 benchmark 吞吐量脚本中 ASRDataset 导入缺失,添加 CLI 参数以支持 ASR 模型基准测试。

ASRDataset在vllm/benchmarks/datasets.py中定义和使用,但在vllm/benchmarks/throughput.py中缺少导入,导致运行ASR模型基准测试时出现错误,例如'ValueError: openslr/librispeech_asr is not supported by hf dataset'。PR添加了缺失的导入和相关处理逻辑,以支持通过数据集路径(如openslr/librispeech_asr)进行ASR基准测试,并通过新CLI参数替换硬编码值,使基准测试可配置。

对于不涉及ASR基准测试的工程师,此PR变更简单,可略过;对于使用ASR模型(如Whisper)进行性能评估的开发者,建议关注新增的CLI参数及其在数据集过滤中的应用,以优化测试配置。

讨论亮点

review中没有实质性技术讨论或争议点。reviewer gemini-code-assist[bot] 提供了变更概述,但未提出具体反馈;maintainer DarkLight1337 直接批准合并。讨论仅限于PR描述中的测试计划和实现说明。

实现拆解

实现集中在单个文件vllm/benchmarks/throughput.py,关键改动点包括:1. 导入模块中添加ASRDataset;2. 在get_requests函数中,当数据集路径匹配ASRDataset.SUPPORTED_DATASET_PATHS时,设置dataset_cls为ASRDataset,并传递新参数asr_min_audio_len_sec和asr_max_audio_len_sec到sample_kwargs;3. 在validate_args函数中,将ASRDataset.SUPPORTED_DATASET_PATHS添加到数据集路径验证,确保使用vLLM后端;4. 在add_cli_args函数中,新增两个浮点型命令行参数,用于指定音频过滤的最小和最大秒数。

文件 模块 状态 重要度
vllm/benchmarks/throughput.py benchmarks modified 3.0

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

关键符号

get_requests validate_args add_cli_args

评论区精华

代码变更概述 other

reviewer gemini-code-assist[bot] 总结了 PR 内容,指出添加了 ASR 数据集支持和 CLI 参数,但无具体反馈。

结论:PR 被 maintainer DarkLight1337 批准合并,无争议。 · 已解决

风险与影响

技术风险较低:1. 新添加的CLI参数默认值(0.0和inf)处理正确,但需注意inf在浮点运算中的潜在问题,不过代码使用float('inf')标准做法。2. ASRDataset依赖torchcodec包,但PR body已注明其非默认依赖,用户需单独安装,否则可能导致运行时错误。3. 变更仅限于benchmark脚本,不影响核心推理路径,回归风险小。

影响范围:仅限使用ASR模型进行吞吐量基准测试的用户,特别是研究人员和开发者。影响程度:小范围bugfix,修复了此前无法运行ASR基准测试的问题,通过可配置参数提升灵活性,但不改变系统核心功能或性能。对团队影响:简化了ASR模型测试流程,无需硬编码音频长度。

ASR 功能依赖额外安装 参数默认值处理

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

此PR修复了vLLM基准测试脚本中ASRDataset导入缺失的bug,通过添加导入和两个新CLI参数,使自动语音识别(ASR)模型的吞吐量基准测试可配置且正常运行。变更仅影响benchmark模块,风险低,适用于使用ASR模型的研究场景。

功能与动机

为什么做:在vLLM的吞吐量基准测试脚本throughput.py中,ASRDataset类(定义于datasets.py)缺少导入,导致当用户尝试使用ASR模型(如OpenAI Whisper)和对应数据集(如openslr/librispeech_asr)进行基准测试时,出现ValueError: openslr/librispeech_asr is not supported by hf dataset错误。PR旨在修复此问题,并添加可配置的音频长度过滤参数,以支持不同ASR模型的测试需求。

实现拆解

改动文件vllm/benchmarks/throughput.py

  1. 导入添加:在文件顶部导入模块中增加ASRDataset
  2. 数据集处理逻辑:在get_requests函数中,添加条件分支处理ASR数据集路径,设置dataset_cls并传递新参数到sample_kwargs
    elif args.dataset_path in ASRDataset.SUPPORTED_DATASET_PATHS:
        dataset_cls = ASRDataset
        common_kwargs["dataset_subset"] = args.hf_subset
        common_kwargs["dataset_split"] = args.hf_split
        sample_kwargs["asr_min_audio_len_sec"] = args.asr_min_audio_len_sec
        sample_kwargs["asr_max_audio_len_sec"] = args.asr_max_audio_len_sec
    
  3. 参数验证:在validate_args函数中,将ASRDataset.SUPPORTED_DATASET_PATHS加入数据集路径集合,确保ASR数据集使用vLLM后端。
  4. CLI参数扩展:在add_cli_args函数中,新增两个浮点型参数:
    • --asr-min-audio-len-sec:默认0.0,最小音频时长(秒)。
    • --asr-max-audio-len-sec:默认inf,最大音频时长(秒)。

评论区精华

review过程中无技术讨论交锋。仅有代码助手bot的总结性评论和维护者的快速批准,表明变更简单直接,无需深入评审。

风险与影响

风险

  • 依赖风险:ASRDataset需要torchcodec包,非vLLM默认依赖,用户需手动安装,否则可能导致运行时错误。
  • 参数风险:新CLI参数使用float('inf')作为默认最大值,需确保浮点运算兼容性,但标准做法风险低。

影响

  • 用户影响:仅影响使用ASR模型进行基准测试的用户,修复后可直接运行测试,提升开发体验。
  • 系统影响:不变更核心推理逻辑,仅扩展benchmark脚本功能,无性能或安全影响。

关联脉络

从提供的近期历史PR分析中,未发现直接修改相同文件或涉及ASR数据集的PR,表明此变更为独立bugfix。然而,仓库中已有multi-modality标签用于多模态模型支持(如PR 39232添加视觉语言模型),此PR将ASR音频处理纳入同类范畴,反映了vLLM在扩展基准测试覆盖多模态场景的趋势。

参与讨论