Prhub

#6873 [model] fix: tokenizer.hf_processor: GLM-4V arm uses wrong processor class name (#6814)

原始 PR 作者 yushuosun 合并时间 2026-06-29 15:39 文件变更 1 提交数 1 评论 0 代码增减 +1 / -1

执行摘要

修复 GLM-4V processor 类名匹配 bug

训练 GLM-4.1V/GLM-4V 多模态模型时,hf_processor 中的类名匹配从未命中,导致 Glm4vModel 无法绑定 get_rope_index,最终训练失败(Issue #6814)。根因是 AutoProcessor 返回的是 Glm4vProcessor,而匹配分支写的是 Glm4vImageProcessor(它是图像处理器子组件,而非主处理器类)。

建议合并,并考虑补充 GLM-4V 的单元测试或 E2E 测试,避免类似回归。

讨论亮点

PR 无人工讨论,仅两个 bot 自动审查且均无反对意见。

实现拆解

修改 verl/utils/tokenizer/tokenizer.pyhf_processor 函数的 match 语句:将 case "Glm4vImageProcessor": 改为 case "Glm4vProcessor":,使类名匹配与 AutoProcessor 返回的实际类名一致,从而正确执行 Glm4vModel 的导入和方法绑定。

文件 模块 状态 重要度
verl/utils/tokenizer/tokenizer.py 工具 modified 4.89

关键符号

hf_processor

关键源码片段

verl/utils/tokenizer/tokenizer.py core-logic

核心 dispatch 逻辑所在,单行修正直接修复 GLM-4V 训练失败问题。

# 文件 : verl/utils/tokenizer/tokenizer.py, 函数 : hf_processor
# 原本的 case "Glm4vImageProcessor": 从未匹配,因为 AutoProcessor 返回的是 Glm4vProcessor
# 修正后与其他 VL 分支模式一致
case "Glm4vProcessor":
    from transformers.models.glm4v import Glm4vModel
    model_class = Glm4vModel

评论区精华

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

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

风险与影响

风险极低:单字符级别的类名修正,与 Qwen 等其他 VL 分支模式保持一致。但缺少回归测试覆盖 GLM-4V 的训练流程。

直接修复 GLM-4.1V/GLM-4V 多模态模型训练的阻塞问题,对其他模型无影响。

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论