loss mask 的细节:模型到底在学哪些 token
SFT 的损失公式人人会写,公式里那个 mask(损失掩码)才是真正的设计决定:同一条轨迹、同一个 next-token loss,mask 划在哪,模型学到的就是动作、文风,还是停不下来。本篇沿 slides L8 p.11-19 走 mask 全线:chat template 把整条轨迹套成一条 token 序列(p.11);只对 assistant span 算损失的公式与 render→tokenize→mask 的造法(p.12-13);TRL/Axolotl/LLaMA-Factory 三框架的同一个决定(p.14);stop token 必须在 mask 内、否则模型可能学不会停止(p.15);think 块留上下文/进训练两个独立开关与 Nemotron 3 Ultra 的取舍(p.16);BalanceSFT 的轮内加权与「按样本配平、按 token 结账」的账本错位(p.17-18);最后落在无人做过的 8B mask 消融(p.19),收尾是 LIMA 1,000 条的不可外推边界(数字出自 LIMA 论文)。
伴读第三节「SFT:把示范写进参数」里那句「只对答案部分算损失」,落到 agent 轨迹上是一串必须逐个拍板的小决定:模板、公式、stop token、推理块、token 账本。
本篇把它们排成一列,队尾停在一个无人做过的实验面前。这一步至今没有公开消融,每一家的划法都是工程自觉 (L8 p.11-19)。
一、模板即边界:trainer 只见一条串和一列 bit
InstructGPT 把 SFT 立为三段管线的第一步;mask(损失掩码)决定这一步究竟把什么写进权重。
第一步的第一件事,是让多角色轨迹变成模型吃得下的形状。chat template(聊天模板)把 user/assistant/tool 消息连同角色标记套进一个模具,产出一条 token 序列 (L8 p.11):
<|im_start|>tool↵3·failed,·41·passed<|im_end|>…<tool_call>str_replace(...)</tool_call><|im_end|>
注意 <|im_start|> 这类记号:它在词表里是单个特殊 token,不是一串普通字符 (L8 p.11)。序列有了,学哪段用一条与它等长的 mask 表示,每 token 一 bit (L8 p.12):
只有 的 token 计入损失,默认划法只学 assistant (L8 p.12)。
observation(工具返回、环境反馈)在这套语义里是条件上下文,模型不学着预测它 (L8 p.12)。要学的是另一件事:世界长这样时,下一个动作该是什么。
mask 怎么造 (L8 p.13):render 阶段记下每段 assistant span → tokenize → span 内 token 置 1、其余置 0。
时序是理解这件事的关键。训练真正开始时,角色已经消失了:trainer 眼里没有 user/tool/assistant,只有一条 token 串和一列 bit。mask 的全部语义,都封死在模板这一步。
这套语义还给训练与部署立了一条军规:两边的模板必须一致到空白级别。部署时追加的工具消息会改写前缀,模板一漂移,训练时的条件分布就不再是部署时的条件分布 (L8 p.39)。
拿到一份训练数据,按这张图逐类 token 判断在不在 mask 内:
<|im_start|>assistant → 0 角色头由系统供给,永不是目标
3·failed,·41·passed(observation) → 0 条件上下文,不是预测目标
<tool_call>str_replace(...)</tool_call> → 1 assistant 的动作,真正要教的
<|im_end|>(收尾这条消息) → 1 stop token,模型要自己学会产出
同一个决定,三大框架各配了一个开关 (L8 p.14):TRL 叫 assistant_only_loss,Axolotl 叫 roles_to_train,LLaMA-Factory 叫 train_on_prompt;Axolotl 还为 stop token 单独留了 train_on_eos。
名字不同,语义是同一个。差别只在 TRL 把 span 标记放进模板本身,另两家留在 trainer 配置里。
角色头在不在损失里?stop token 在不在?think 块在不在?三问答完,这场训练在教什么就基本清楚了。
二、边界上最贵的两个 bit:stop token 与推理块
mask 划漏一格,代价不是少学一点,而是学错一件事 (L8 p.15-16)。
最典型的是 stop token(停止词元)。角色头由系统供给,永远不是预测目标;但一条消息怎么收尾,得模型自己产出。所以 stop token 必须在 mask 内 (L8 p.15)。
哪家的模板把它漏在外面,模型从头到尾没被要求过停下来:损失账面完全正常,线上症状是停不下来。
K3 的 XTML 格式干脆用独立 token 把 think/response/end_of_msg 拆开,否则「the model may not learn to stop.」(L8 p.15)。
End of turn 这个位置扛着三重语义:结束一条消息、交回工具、宣告任务完成;拆成独立 token,模型才可能分别学会三件事。
第二个易漏项是推理块(think 块)。它有两个互不相干的是 / 否 (L8 p.16):
- 留上下文:决定这段思考能否解释随后的动作。
- 进训练:一旦进 loss,长此以往会沉淀为模型自己的写作风格。
两个开关、四个象限,没有默认正确的一格。Nemotron 3 Ultra 给出一组示范取舍:预算截断的推理留在上下文里,给后续动作留解释;人为截断点从 loss mask 掉 (L8 p.16)。半截草稿不配成为风格。
管推理时:下一步动作的条件里有没有这段思考。有,动作更可解释、更连贯;没有,上下文更省。
管训练时:这段思考进不进损失。进,它会沉淀成模型的写作风格;不进,它只是 teacher 的草稿,借道而已。
三、mask 之内还有账本:按样本配平,按 token 结账
mask 定的是谁进损失;每类 token 在损失里占多大权重,它管不着。损失按 token 加总,而 agent 轨迹的 token 分布极度不均 (L8 p.17):长推理主导 loss,真正要对的是短工具调用。
错位还有更结构性的层面 (L8 p.18):数据集按轨迹条数配平,损失却按 token 结算,一条长轨迹可以吃掉几乎全部 token。
MAI-Thinking-1 的教训:你以为配平了的混合,在 loss 账面上可能被单类长轨迹完全主导。
四、无消融之地:一个人人做得起的实验
以上所有细节有一个尴尬的共同点:改 agent SFT 的 mask 并测后果,这样的实验至今一篇也没发表 (L8 p.19)。整条线靠的是各家不写进论文的工程自觉。
唯一已发表的 unmask prompt 有益案例,成立条件是长 prompt + 短回答 + 少数据;agent 轨迹三点全反,结论搬不过来 (L8 p.19)。
做一次像样的 mask 消融,8B 规模就很便宜,至今无人跑 (L8 p.19)。LoRA 把门槛再往下拉:冻结主干、只训低秩注入,mask 消融落进消费级硬件的射程。
配上知乎那篇 agentic SFT 全流程当工程对照,一个认真的团队可以把这格空白填上。
最后是外推的边界:LIMA(Zhou et al., 2023)用 1,000 条精选样本做到 43% 的对比追平 / 胜过 GPT-4(数字出自 LIMA 论文),常被引为数据少也行的证据。
但 LIMA 的对象是闲聊式对齐,状态短;agent 轨迹是多步决策。从闲聊到 agent,少而精不可外推。
与本讲的连接
在 4b 训练线上,本篇上承《改行为改在哪》:那篇定改在权重,本篇定写进权重的是哪些 token;下接《轨迹经济学》,问选哪些轨迹来学。下次打开任何一份 SFT 配置,先找 mask 开关,把上面那三问答完。有余力,就把 L8 p.19 那格 8B 消融空白填了。
本节论文与规范
本节资料
- InstructGPT 论文2203.02155入门
经典·高引(NeurIPS 2022)。指令微调 + RLHF 开山之作:SFT—奖励建模—PPO 三段管线,SFT 是第一步。1.3B InstructGPT 的输出被人类偏好于 175B GPT-3。训练线必读起点。
- LIMA: Less Is More for Alignment 论文2305.11206入门
经典·高引(NeurIPS 2023)。65B LLaMA 仅用 1,000 条精选样本微调,43% 的回复被评判追平或胜过 GPT-4——表面对齐假说:知识在预训练,对齐只需少量示范。对 agent 轨迹数据的价值判断要划边界。
- LoRA 论文2106.09685入门
经典·高引(ICLR 2022)。冻结原权重、注入可训低秩矩阵:可训参数降 10,000×、显存降 3×、推理零额外延迟。SFT 走向消费级硬件的基座,如今 agent 微调的默认选项。
2025-12 中文。agentic SFT 工程向全流程:配对数据怎么造、从哪来、怎么训练与评测。与 4b 小节逐点对得上的中文对照材料,工程细节比论文讲得更细。
AI 生成 · 仅供参考,与课程方无关。选中正文里的任何一段也能直接问我(解释一下 / 举个例子)。
本详解以 CMU 11-768 AI Agents (Fall 2026) 课程大纲为参考框架独立撰写,AI 辅助起草、人工抽审。 涉及的官方课件、论文与课程材料版权归原所有方,讲义为站内镜像、其余外链原文出处; 观点与文字(除标注引用外)为作者原创。