# PR #1791 完整报告

- 仓库：`THUDM/slime`
- 标题：fix(geo3k-vlm-sft): remove --apply-chat-template from SFT launch script
- 合并时间：2026-04-03 11:50
- 原文链接：http://prhub.com.cn/THUDM/slime/pull/1791

---

# 执行摘要

- 一句话：修复 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 修复脚本参数问题，体现常规维护模式。