本页章节
SFT / FROM RECORDS TO GRADIENTS
样本打包:边界、标签与相同的梯度
同一批独立对话,可以分别计算、补齐长度,也可以放入一个长序列。沿 token、位置、可见范围和监督落点,检查改变存储布局后是否仍在优化同一个目标。
两条记录如何变成训练 token?
记录 A
user: 问一
assistant: 答一
user: 问二
assistant: 答二记录 B
user: 问三 问一
assistant: 答三
user: 问二
assistant: 答二 答三这里把每个词直接映射到固定 ID,用教学模板连接:开头一个 BOS;每轮先放 USER 或 ASSISTANT;assistant 内容后放 EOS。A 共 11 token,B 共 13 token。EOS 用作本例回答结束标记,多轮对话仍可继续;具体模型应遵循自己的模板和轮次结束符。
目标位置与预测位置相差一步
先在 token 本身标记是否监督,再让位置 t 的 logits 预测 t+1。标签列表示当前 logits 应预测的 ID,空白表示不计 loss。模板与用户内容仍可参与后续回答计算。
监督范围先于布局
可监督所有 assistant 轮次,也可只监督原记录末轮。右侧截断在模板完成后执行;“仅末轮”不会把被截断的末轮自动替换成前一轮。
改变布局,输出和梯度是否一致?
分别计算是参考路径;各条 loss sum 使用同一个全局 N。表中的梯度差覆盖 Embedding、Q/K/V 和输出矩阵的全部元素。数据、权重、位置规则和监督目标保持一致。
三种正确布局与两种错误
CPU 二进制双精度 · 固定权重| 方案 | 标签数 | Loss | Logits 最大差 | 梯度最大差 |
|---|
默认三种正确布局各有 9 个监督标签。重复 shift 的故障也可能保留相同标签数量,因此标签计数相同还不足以证明监督一致。错误的跨样本 Attention 则在前向阶段就能影响 B。
检查 ID、监督与允许访问的 key
当前布局的全部 token 与标签
| 显示槽位 | 样本:位置 | Position ID | Token ID / 符号 | 该 token 受监督 | 本位置 logits 的标签 |
|---|
一个 query 实际能读到什么
可见性与概率同时核对| Key | 符号 | 可见性 | Attention 概率 |
|---|
padding 方案在逻辑上是两行等长 batch。为了统一账本,面板把两行展开显示,数值实现用块隔离矩阵保留相同计算;padding query 定义为零 Attention 输出,不进入 loss。真实变长 kernel 的布局、边界标记与全屏蔽行行为需按对应实现核对。
用什么证据确认打包正确?
同一目标
对齐原始样本、截断、监督标签与全局分母,允许布局和 batch 形状不同。
前向和反向
逐有效位置比较 logits,再比较 loss、所有参数梯度和一次更新。
独立样本不互相影响
固定参数,只改一条记录,观察另一条记录的前向结果;更新权重后则不要求保持不变。
零标签与停止标记
确认截断后还有目标;核对回答结束符参与训练的位置和推理停止规则。
查看全部数值约定与权重
词表 ID 按 PAD、BOS、USER、ASSISTANT、EOS、问一、答一、问二、答二、问三、答三、改写排列。查表后给二维输入加 [0.04p, −0.03p],p 为记录内位置;使用标准缩放点积 Attention,再加输入残差,最后输出 12 类 logits。这里的加法位置项专用于数值演示。
Embedding = [[0,0],[.1,.2],[-.2,.3],[.4,-.1],[.1,-.3],
[.5,.2],[-.4,.6],[.2,-.5],[.7,.1],[-.3,-.2],
[.3,.5],[-.7,.8]]
Q = [[.3,-.2],[.4,.5]] K = [[.2,.6],[-.3,.4]]
V = [[.7,.1],[-.2,.5]]
Output = [[.2,-.1,.4,.1,-.3,.5,-.2,.3,-.4,.6,.2,-.5],
[-.3,.4,.1,-.2,.5,-.1,.6,-.4,.2,.1,-.5,.3]]适用范围与一手资料
两条人工多轮记录、12 类符号词表、二维单头 Attention 与加法位置项;右截断,独立样本目标。padding 在页面按逻辑块隔离展开;PyTorch 对照用真实 batch 维度。比较有效位置及参数梯度,不测 GPU 性能。
公式与机制的原始依据 · 4 项
- Hugging Face TRL · SFT Trainer数据格式、模板、assistant/completion loss、截断与 packing;文档于 2026-10-27 核对
- PyTorch · CrossEntropyLoss完整类别分母、ignore_index 与 reduction
- PyTorch 2.9 · Autograd mechanics本项目框架对照固定 PyTorch 2.9.0;冻结、计算图与 no-grad 的语义,2026-10-27 核对
- Attention Is All You Need (2017)Q/K/V、缩放点积、残差与原始 encoder-decoder