Prhub

#6296 [rollout] fix: skip_tokenizer_init=True for OPD teacher

原始 PR 作者 wuxibin89 合并时间 2026-05-09 16:54 文件变更 5 提交数 1 评论 0 代码增减 +5 / -5

执行摘要

OPD teacher 跳过 tokenizer 初始化

OPD teacher 需要跳过 tokenizer 初始化,以启用 Token-In-Token-Out 模式。参见 PR body: "OPD teacher should skip tokenizer initialization to enable Token-In-Token-Out。"

建议精读该 PR 用于了解 OPD teacher 的配置要求。值得关注的设计决策是将 skip_tokenizer_init 设为硬编码默认值而非从外部配置传递,简化用户使用。

讨论亮点

无代码 review 讨论。仅有一条 gemini-code-assist 的自动评论表示无反馈。该 PR 未经人工 review,作者直接合并。

实现拆解

  1. verl/trainer/config/distillation/distillation.yaml 中,于 teacher_models.teacher_model.inference 下将 skip_tokenizer_initfalse 改为 true
  2. 同步更新所有生成的 PPO trainer 配置文件,确保一致性:
    • verl/trainer/config/_generated_ppo_megatron_trainer.yaml
    • verl/trainer/config/_generated_ppo_torchtitan_trainer.yaml
    • verl/trainer/config/_generated_ppo_trainer.yaml
    • verl/trainer/config/_generated_ppo_veomni_trainer.yaml
      每个文件只有一行变更,位于 distillation 段落的 teacher_models 下。
文件 模块 状态 重要度
verl/trainer/config/distillation/distillation.yaml 蒸馏配置 modified 3.47
verl/trainer/config/_generated_ppo_megatron_trainer.yaml 生成配置 modified 3.07
verl/trainer/config/_generated_ppo_torchtitan_trainer.yaml 生成配置 modified 3.07
verl/trainer/config/_generated_ppo_trainer.yaml 生成配置 modified 3.07
verl/trainer/config/_generated_ppo_veomni_trainer.yaml 生成配置 modified 3.07

关键源码片段

verl/trainer/config/distillation/distillation.yaml configuration

蒸馏主配置,直接影响 OPD teacher 行为,是变更的核心文件。

# verl/trainer/config/distillation/distillation.yaml ( 修改 )
teacher_models:
  teacher_model:
    _target_: verl.workers.config.DistillationTeacherModelConfig
    key: null
    model_path: null
    num_replicas: 0
    inference:
      _target_: verl.workers.config.RolloutConfig
      name: ${oc.select:actor_rollout_ref.rollout.name}
      dtype: ${oc.select:actor_rollout_ref.rollout.dtype}
      # ... 其他 rollout 参数 ...
      # 关键变更:设为 true 以启用 Token-In-Token-Out 模式
      skip_tokenizer_init: true
      prompt_length: ${oc.select:actor_rollout_ref.rollout.prompt_length}
      response_length: ${oc.select:actor_rollout_ref.rollout.response_length}
      temperature: ${oc.select:actor_rollout_ref.rollout.temperature}

评论区精华

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

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

风险与影响

风险较低。变更仅涉及配置开关,逻辑简单。但仍需确认:如果某些 teacher 模型依赖 tokenizer 初始化(如需要词汇扩展),skip_tokenizer_init=True 可能导致推理行为异常。建议确保所有 OPD teacher 用例都支持 raw token 输入。

影响范围:所有启用蒸馏训练的配置,包括 Megatron、Torchtitan、VeOmni 等后端。影响程度:对使用 OPD teacher 的蒸馏流程是必要修复,否则 teacher 无法正确运行。对其他不使用蒸馏的场景无影响。

配置变更未验证依赖 缺少测试覆盖

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论