Prhub

#38508 [ROCm][CI] Fix Whisper translation test attention backend selection

原始 PR 作者 AndreasKaratzas 合并时间 2026-03-31 13:21 文件变更 1 提交数 2 评论 6 代码增减 +39 / -6

执行摘要

修复 ROCm 平台上 Whisper 翻译测试的注意力后端选择,确保使用兼容后端避免失败。

根据 PR body,'ROCM_AITER_FA does not support ENCODER_DECODER cross-attention',导致 Whisper 模型在测试中使用不兼容后端而失败,因此需要修复测试以正确选择注意力后端,确保 CI 通过。

该 PR 值得快速浏览以了解 ROCm 平台上注意力后端选择的策略,特别是 _get_rocm_attention_config 函数的设计,可作为测试中平台特定配置的参考。对于核心系统工程师,由于其仅涉及测试代码,无需深入分析。

讨论亮点

review 中主要讨论两点:

1) gemini-code-assist[bot] 建议扩展模型名检查到 granite-speech 模型,认为其基于 Whisper 架构;作者 AndreasKaratzas 回复'Granite-speech is not based on the Whisper architecture and has no CrossAttention',因此保持当前逻辑仅针对 'whisper' 模型。
2) gemini-code-assist[bot] 建议将异常处理从 'except Exception:' 改为更具体的 'ImportError' 以提高调试性;作者采纳并添加了日志记录,回应'Good suggestion, I also added a log for that instead of just passing :)'。

实现拆解

实现集中在 tests/entrypoints/openai/speech_to_text/test_translation_validation.py 文件中。新增 _get_rocm_attention_config 函数:检查当前平台是否为 ROCm;如果是,再检查模型名是否包含 'whisper',若是则尝试使用 ROCM_AITER_UNIFIED_ATTN(在 MI3XX 上)或回退到 TRITON_ATTN,否则使用 ROCM_AITER_FA。更新了 server fixture 和测试函数 test_non_asr_model、test_basic_audio_with_lora,移除对 rocm_aiter_fa_attention fixture 的依赖,改为调用 _get_rocm_attention_config 动态获取配置。

文件 模块 状态 重要度
tests/entrypoints/openai/speech_to_text/test_translation_validation.py tests/entrypoints/openai/speech_to_text modified 4.0

关键符号

_get_rocm_attention_config server test_non_asr_model test_basic_audio_with_lora

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

评论区精华

模型名检查范围是否应扩展 设计

gemini-code-assist[bot] 建议将 'whisper' 检查扩展到包括 granite-speech 模型,认为其基于 Whisper 架构;作者指出该模型没有交叉注意力,ROCM_AITER_FA 适用。

结论:保持现有逻辑,仅针对 'whisper' 模型调整后端选择。 · 已解决

异常处理具体化以提升调试性 style

gemini-code-assist[bot] 建议用 ImportError 替代 Exception 以捕获更具体的错误;作者采纳并添加了警告日志。

结论:采纳建议,修改异常处理并添加日志记录。 · 已解决

风险与影响

风险较低,因为变更仅限于测试代码。主要风险包括:模型名检查可能不完全覆盖其他类似模型(如未来新增的语音模型),导致后端选择错误;平台检测依赖 current_platform.is_rocm() 的正确性,如果平台检测失败可能影响配置;日志添加可能引入不必要的输出噪声,但影响微小。

影响范围限于 CI 测试套件,特别是 ROCm 平台上的翻译验证测试。对最终用户无直接影响,但提升了开发流程中 CI 的稳定性和可靠性。对于 ROCm 平台的开发者,确保测试正确运行有助于后续开发和维护,减少 flakiness。

模型检查不完整 平台依赖风险

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论