Prhub

#1974 [docs] Add finer explanation for re-tokenizationi issue

原始 PR 作者 zhuzilin 合并时间 2026-05-29 14:53 文件变更 1 提交数 1 评论 0 代码增减 +40 / -0

执行摘要

细化 re-tokenization 问题文档说明

此前 README 对 re-tokenization 问题的解释不够细致,用户可能不理解为什么训练必须基于 token 而非 string,以及多轮对话中 token 丢失或漂移的风险。新增章节旨在提供更准确的指导,帮助用户避免常见陷阱。

该 PR 值得精读,特别是对于使用 coding_agent_rl 进行多轮训练的用户。文档清晰解释了 token 级训练的核心设计原则和正确性保证机制。

讨论亮点

无讨论和评论。

实现拆解

  1. examples/coding_agent_rl/README.mdFan-out Semantics 章节之前,新增 ## String-in, Token-out Trajectories 小节。
  2. 解释编程代理环境基于 string/message(如 claude-code 发送 Anthropic Messages),但训练必须基于 token,因此执行“string in, token out”契约。
  3. 描述每条消息历史如何通过模型的 chat template 转换为 input_ids,SGLang 调用 return_logprob=True 记录精确的 prompt_idsoutput_ids 和日志概率。
  4. 介绍了 slime.agent.trajectory.merge_turns 如何拼接多轮对话中的 token 流,并说明 loss_mask 的赋值逻辑,特别是当新 prompt 不再与之前采样的 output token 完全匹配时,保留前缀但将丢失部分标记为 loss_mask=0
  5. 指出此方法是重要的正确性保证,并提及其由 tests/test_agent_trajectory.py 中的单元测试覆盖。
文件 模块 状态 重要度
examples/coding_agent_rl/README.md 文档 modified 3.2

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

评论区精华

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

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

风险与影响

纯文档更新,无代码变更,不涉及技术风险。

影响范围限于阅读文档的用户,提供更清晰的指导,降低误用风险。对于已有用户无直接影响。

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论