Prhub

#47004 [ROCm][CI][Multimodal] Use ROCm-aware FA availability check for Unlimited-OCR

原始 PR 作者 AndreasKaratzas 合并时间 2026-06-30 14:03 文件变更 1 提交数 1 评论 0 代码增减 +1 / -1

执行摘要

修复 ROCm 上 Unlimited-OCR 的 FA 导入失败

在 ROCm 环境下,vllm.vllm_flash_attn 是 CUDA-only 模块,导入会失败,导致 baidu/Unlimited-OCR 模型在配置验证阶段就崩溃,无法正确 fallback 到 FlexAttention。

值得合并的小修复,无需深入精读。可提醒团队统一使用 fa_utils 进行 FA 版本检查,避免类似问题。

讨论亮点

无讨论,PR 直接被审核者 DarkLight1337 批准合并。

实现拆解

  1. 修改导入源:在 vllm/model_executor/models/config.pyUnlimitedOCRForCausalLMConfig.verify_and_update_config 方法中,将 from vllm.vllm_flash_attn import is_fa_version_supported 替换为 from vllm.v1.attention.backends.fa_utils import is_fa_version_supported
  2. 保持逻辑不变:其余代码(包括 FA4 可用性判断和 fallback 逻辑)不做任何改动,仅修复导入路径。
文件 模块 状态 重要度
vllm/model_executor/models/config.py 模型配置 modified 5.1

关键符号

UnlimitedOCRForCausalLMConfig.verify_and_update_config

关键源码片段

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

修复了导入路径,使得 ROCm 环境下 Unlimited-OCR 模型能够正确判断 FlashAttention 4 可用性并 fallback。

# 在 UnlimitedOCRForCausalLMConfig.verify_and_update_config 中
from vllm.v1.attention.backends.fa_utils import is_fa_version_supported # 使用统一入口,支持 ROCm
from vllm.v1.attention.backends.registry import AttentionBackendEnumattn_config = vllm_config.attention_config
fa4_available = is_fa_version_supported(4) # 行为与之前完全一致if attn_config.backend is None:
    attn_config.backend = (
        AttentionBackendEnum.FLASH_ATTN
        if fa4_available
        else AttentionBackendEnum.FLEX_ATTENTION # 自动 fallback
    )

评论区精华

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

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

风险与影响

风险极低:仅修改一行导入语句,逻辑完全不变。需验证 fa_utils.is_fa_version_supported 在 CUDA 和 ROCm 上行为一致。

影响范围小:仅针对 Unlimited-OCR 模型在 ROCm 环境下的配置验证。CUDA 环境不受影响,导入路径仍然有效。

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论