Prhub

#1791 fix(geo3k-vlm-sft): remove --apply-chat-template from SFT launch script

THUDM/slime · 作者 DongzhuoranZhou · 合并时间 2026-04-03 11:50

分析状态 已生成
文件变更 1提交数 1 · 评论 0
代码增减 +0 / -1
bugfix configuration multimodal

执行摘要

修复 Geo3K VLM SFT 启动脚本中 --apply-chat-template 参数导致的类型错误。

PR body明确指出,--apply-chat-template参数会将messages列表转换为纯字符串,而sft_rollout.generate_rollout()期望sample.prompt是一个消息字典列表,传递字符串会导致运行时TypeError,训练立即失败。

该PR变更简单直接,适合快速浏览以了解SFT数据流中的参数处理问题。对于从事VLM SFT或类似训练脚本开发的工程师,值得关注消息格式在训练流水线中的传递一致性。

讨论亮点

由于review_comments_count为0,没有review讨论记录。

实现拆解

仅修改了一个文件:examples/geo3k_vlm/run_geo3k_vlm_sft.sh,从SFT_ARGS数组中移除了--apply-chat-template参数。该参数原本用于将消息列表转换为聊天模板字符串,但SFT rollout需要原始列表结构来构建损失掩码。

文件 模块 状态 重要度
examples/geo3k_vlm/run_geo3k_vlm_sft.sh examples/geo3k_vlm modified 5.0

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

关键符号

sft_rollout.generate_rollout()

评论区精华

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

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

风险与影响

风险较低:

  1. 回归风险:移除参数可能影响其他依赖该参数的场景,但PR body说明prepare_sft_data.py已生成结构化列表,SFT rollout直接消费,因此风险可控。
  2. 兼容性:仅影响geo3k_vlm SFT训练脚本,不涉及核心系统模块。
  3. 测试覆盖:未提及测试变更,依赖现有SFT流程验证。

影响范围有限:

  1. 用户影响:修复后Geo3K VLM SFT训练可以正常运行,避免因TypeError中断。
  2. 系统影响:仅修改示例脚本,不影响slime核心架构或运行时。
  3. 团队影响:简化了SFT数据流,移除不必要的参数转换步骤。
参数移除影响

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

  • 一句话:修复Geo3K VLM SFT启动脚本中--apply-chat-template参数导致的类型错误。
  • 推荐动作:该PR变更简单直接,适合快速浏览以了解SFT数据流中的参数处理问题。对于从事VLM SFT或类似训练脚本开发的工程师,值得关注消息格式在训练流水线中的传递一致性。

功能与动机

PR body明确指出,--apply-chat-template参数会将messages列表转换为纯字符串,而sft_rollout.generate_rollout()期望sample.prompt是一个消息字典列表,传递字符串会导致运行时TypeError,训练立即失败。

实现拆解

仅修改了一个文件:examples/geo3k_vlm/run_geo3k_vlm_sft.sh,从SFT_ARGS数组中移除了--apply-chat-template参数。该参数原本用于将消息列表转换为聊天模板字符串,但SFT rollout需要原始列表结构来构建损失掩码。

关键文件:

  • examples/geo3k_vlm/run_geo3k_vlm_sft.sh(模块 examples/geo3k_vlm): 唯一修改的文件,移除了导致TypeError的--apply-chat-template参数,直接修复了SFT训练失败问题。

关键符号:sft_rollout.generate_rollout()

评论区精华

由于review_comments_count为0,没有review讨论记录。

  • 暂无高价值评论线程

风险与影响

  • 风险:风险较低:
    1. 回归风险:移除参数可能影响其他依赖该参数的场景,但PR body说明prepare_sft_data.py已生成结构化列表,SFT rollout直接消费,因此风险可控。
    2. 兼容性:仅影响geo3k_vlm SFT训练脚本,不涉及核心系统模块。
    3. 测试覆盖:未提及测试变更,依赖现有SFT流程验证。
  • 影响:影响范围有限:
    1. 用户影响:修复后Geo3K VLM SFT训练可以正常运行,避免因TypeError中断。
    2. 系统影响:仅修改示例脚本,不影响slime核心架构或运行时。
    3. 团队影响:简化了SFT数据流,移除不必要的参数转换步骤。
  • 风险标记:参数移除影响

关联脉络

  • PR #1760 [Multimodal] Add Multimodal OPD support: 同属多模态(multimodal)相关PR,1760为on-policy distillation添加多模态支持,本PR修复VLM SFT训练脚本,显示团队在多模态训练流水线上的持续改进。
  • PR #1756 [Fix]Fix some bugs/clean up: 同属bugfix类别,1756修复了检查点加载等问题,本PR修复脚本参数问题,体现常规维护模式。

参与讨论