← 返回书架人工智能 · 交互式 Wiki
模型工程/样本打包与监督边界资料与边界
数据与表示进阶计算演示

SFT / FROM RECORDS TO GRADIENTS

样本打包:边界、标签与相同的梯度

同一批独立对话,可以分别计算、补齐长度,也可以放入一个长序列。沿 token、位置、可见范围和监督落点,检查改变存储布局后是否仍在优化同一个目标。

01 / RECORDS & TEMPLATE

两条记录如何变成训练 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 轮次,也可只监督原记录末轮。右侧截断在模板完成后执行;“仅末轮”不会把被截断的末轮自动替换成前一轮。

Cij=1[ci=cj] 1[j≤i],Mij=νiνjCij,L=1N∑r,tmr,t+1 CE⁡(zr,t,xr,t+1).\begin{aligned} C_{ij}&=\mathbf 1[c_i=c_j]\,\mathbf 1[j\le i],\\ M_{ij}&=\nu_i\nu_jC_{ij},\\ \mathcal L&=\frac{1}{N}\sum_{r,t}m_{r,t+1}\,\operatorname{CE}(z_{r,t},x_{r,t+1}). \end{aligned}
c 是样本 ID,ν 标记有效位置;M 决定 query 可访问哪些 key;m 决定哪个目标 token 直接提供监督;N 是两条记录的有效标签总数。每条记录的位置从 0 开始,跨记录预测被屏蔽。
02 / COMPARE THE COMPUTATION

改变布局,输出和梯度是否一致?

分别计算是参考路径;各条 loss sum 使用同一个全局 N。表中的梯度差覆盖 Embedding、Q/K/V 和输出矩阵的全部元素。数据、权重、位置规则和监督目标保持一致。

三种正确布局与两种错误

CPU 二进制双精度 · 固定权重
有效监督标签
当前平均 loss
参数梯度最大差
方案标签数LossLogits 最大差梯度最大差

默认三种正确布局各有 9 个监督标签。重复 shift 的故障也可能保留相同标签数量,因此标签计数相同还不足以证明监督一致。错误的跨样本 Attention 则在前向阶段就能影响 B。

03 / INSPECT EACH POSITION

检查 ID、监督与允许访问的 key

当前布局的全部 token 与标签
显示槽位样本:位置Position IDToken ID / 符号该 token 受监督本位置 logits 的标签

一个 query 实际能读到什么

可见性与概率同时核对
Key符号可见性Attention 概率

padding 方案在逻辑上是两行等长 batch。为了统一账本,面板把两行展开显示,数值实现用块隔离矩阵保留相同计算;padding query 定义为零 Attention 输出,不进入 loss。真实变长 kernel 的布局、边界标记与全屏蔽行行为需按对应实现核对。

04 / REFERENCE & FAILURE

用什么证据确认打包正确?

01 / ALIGN

同一目标

对齐原始样本、截断、监督标签与全局分母,允许布局和 batch 形状不同。

02 / COMPARE

前向和反向

逐有效位置比较 logits,再比较 loss、所有参数梯度和一次更新。

03 / PERTURB

独立样本不互相影响

固定参数,只改一条记录,观察另一条记录的前向结果;更新权重后则不要求保持不变。

04 / CHECK

零标签与停止标记

确认截断后还有目标;核对回答结束符参与训练的位置和推理停止规则。

查看全部数值约定与权重

词表 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 项
知识目录
搜索知识库