Prhub

#21234 [AMD] Support AMD MXFP4 Qwen3.5-397B-A17B model

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

执行摘要

为 AMD GPU 添加 Qwen3.5 MXFP4 模型支持,提升推理性能。

动机是启用并验证AMD GPU上的Qwen3.5 MXFP4模型支持,目标是在保持可接受准确率的同时,相对于FP8基线提升服务性能。引用PR body:'Enable and validate Qwen3.5 MXFP4 model support on AMD GPUs This PR aims to preserve acceptable accuracy while improving serving performance versus the FP8 baseline.'

建议技术管理者精读此PR,关注融合模块映射的设计决策和性能与准确率的权衡;工程师可学习如何处理不同量化配置的兼容性问题,以及代码重构(如移除硬件检查)的最佳实践。

讨论亮点

讨论亮点包括:BowenBao质疑是否需要_is_hip检查,建议放宽条件以适用于所有量化配置;hubertlu-tw初始保留检查以避免干扰其他代码路径,后移除以使映射硬件无关;BowenBao指出FP8模型也可能需要类似模块拆分信息;HaiShaw关注准确率下降问题,建议另开issue跟踪。最终决策是移除硬件特定检查,使代码更通用,但准确率问题未解决。

实现拆解

实现集中在文件python/sglang/srt/models/qwen3_5.py中。关键改动包括:引入_is_gfx95_supported检测AMD GPU支持;在Qwen3_5ForCausalLM、Qwen3_5ForConditionalGeneration、Qwen3_5MoeForConditionalGeneration类中添加条件逻辑,当_is_gfx95为真时定义packed_modules_mapping映射(如'in_proj_qkvz'映射到['in_proj_qkv', 'in_proj_z']),以匹配量化配置的排除列表名称,确保正确加载模型权重。

文件 模块 状态 重要度
python/sglang/srt/models/qwen3_5.py 模型模块 modified 6.0

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

评论区精华

条件检查的必要性 设计

BowenBao 询问是否需 _is_hip 检查以放宽条件,hubertlu-tw 初始保留后移除以使代码硬件无关。

结论:移除硬件特定检查,使 packed_modules_mapping 更通用,适用于所有量化配置。 · 已解决

准确率下降问题 正确性

HaiShaw 指出 MXFP4 模型准确率较低,BowenBao 回应可能是集成问题,在其他框架中恢复率较高。

结论:未解决,建议另开 issue 跟踪准确率差距和优化计划。 · 未解决

风险与影响

技术风险:准确率下降(基准测试显示GSM8K平均准确率从0.9495降至0.9315),可能影响模型输出质量;兼容性风险,修改可能意外影响非AMD硬件或配置,但讨论后移除了特定检查以降低风险;缺少单元测试覆盖,PR checklist中测试项未完成;核心模型路径变更,在qwen3_5.py文件中添加条件逻辑,可能引入回归或加载错误。

影响范围:AMD GPU用户可直接使用MXFP4模型进行推理,提升服务性能(吞吐量增加18%,延迟降低15%);系统层面优化了推理效率,但牺牲了少量准确率;团队扩展了对AMD量化模型的支持,增强了生态系统多样性。影响程度中等,因为改动局限在单一模型文件,但涉及核心模型加载逻辑。

准确率下降 缺少测试覆盖 核心路径变更

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论