Prhub

#17122 [bugfix]GLM-4V model

原始 PR 作者 KnightLTC 合并时间 2026-04-01 10:37 文件变更 3 提交数 4 评论 11 代码增减 +38 / -3

执行摘要

修复 GLM-4V 模型在 VisionAttention 中因 num_dummy_heads 计算缺失导致的 dist_utils.divide 异常。

根据PR body描述,修复GLM-4V模型bug,具体为在VisionAttention中需使用num_dummy_heads进行计算,否则当num_dummy_heads=0且num_dummy_heads+num_heads不是self.tp_size的整数倍时,dist_utils.divide会抛出异常,影响模型正常运行。

对于从事NPU开发、多模态模型维护或视觉语言模型集成的工程师,建议精读此PR以理解num_dummy_heads参数传递和硬件兼容性处理;同时关注测试准确性问题的后续解决。

讨论亮点

Review讨论主要围绕两个点:

  1. 兼容性:reviewer xiaobaicxy询问修改是否影响其他硬件平台的正常运行,并要求在PR描述中添加GPU测试结果,但未显示后续回复或添加结果。
  2. 测试准确性:reviewer iforgetmyname指出新增测试文件中的mmm_accuracy = 0.2不准确,并引用外部文档链接,此问题未在讨论中解决。

实现拆解

实现分为三个关键改动:

  1. python/sglang/srt/models/glm4v.py中,向VisionAttention的__init__方法添加num_dummy_heads=vision_config.num_dummy_heads参数,确保计算时包含dummy heads;调整vision_utils.update_vit_attn_dummy_heads_config(self.config)调用顺序,以正确配置。
  2. python/sglang/srt/multimodal/processors/base_processor.py中,修改process_mm_data函数,排除'Glm4vProcessor'类以避免在NPU上应用不兼容的补丁。
  3. 新增test/registered/ascend/vlm_models/test_ascend_glm_4_5v.py测试文件,为GLM-4.5V模型添加NPU测试用例。
文件 模块 状态 重要度
python/sglang/srt/models/glm4v.py srt/models modified 8.0
python/sglang/srt/multimodal/processors/base_processor.py srt/multimodal/processors modified 6.0
test/registered/ascend/vlm_models/test_ascend_glm_4_5v.py test/registered/ascend/vlm_models added 5.0

关键符号

__init__ process_mm_data test_vlm_mmmu_benchmark

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

评论区精华

跨硬件兼容性 正确性

reviewer xiaobaicxy 询问修改是否影响其他硬件平台的正常运行,并要求在 PR 描述中添加 GPU 测试结果。

结论:未在讨论中明确回复或添加测试结果,疑虑可能未解决。 · unresolved

测试准确性 测试

reviewer iforgetmyname 指出新增测试文件中的 mmm_accuracy = 0.2 不准确,并引用外部文档链接。

结论:未在讨论中解决,准确性问题悬而未决。 · unresolved

风险与影响

技术风险包括:

  1. 跨硬件兼容性风险:修改可能影响GPU等其他平台的模型行为,因未在PR描述中明确展示GPU测试结果。
  2. 测试覆盖率不足:新增测试用例的准确性被质疑,可能无法有效验证修复效果。
  3. 代码副作用:调整vision_utils.update_vit_attn_dummy_heads_config调用顺序可能引入配置时序问题,影响其他视觉模型组件。

对用户的影响:修复了GLM-4V模型在NPU上可能因计算异常导致的崩溃,提升模型稳定性。对系统的影响:确保多模态视觉语言模型在NPU和GPU上正常工作,支持更广泛的硬件部署。对团队的影响:新增测试用例有助于未来回归测试,但准确性疑虑需跟进验证。

跨硬件兼容性风险 测试准确性未验证

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论