AI Hero Club

大模型后训练 · 第 1 章

已自行标记完成0 / 8

仅保存在当前浏览器;完成标记不代表通过项目验收。

本章提纲 7 个小节
全课目录 8 章
完整课程计划 ↗
大模型后训练 / 课程计划 ↗

CHAPTER 01 / 8建议学习 120 分钟

后训练究竟改变什么

示范只给一个回答,偏好比较两个回答,它们分别允许我们改变和判断什么?

本章要解决的 3 个问题
  • 把条件策略、监督示范、偏好比较与独立评估定义为不同数据对象
  • 在四响应任务上逐项计算正确率质量、简短质量与期望效用
  • 建立不夸大模型能力的后训练状态与分区契约
课程项目 ZIP ↓

任务与读者起点

本课研究一个具体问题:已有条件概率策略后,怎样用示范和偏好改变它的行为,同时知道自己到底优化了什么。读者应会Python列表与函数、有限概率、对数、导数与链式法则;softmax与交叉熵会在下一章展开。先以四种完整响应、八参数微型策略作可穷举参考,再连接完整PyTorch decoder做真实序列SFT/DPO,二者全部参数都实际学习。它不是商用大模型,也没有预训练语料或在线模型接口;有限任务让偏好、概率与KL都能穷举核对,随后把机制映射到语言模型时会明确增加哪些假设。

在语言模型中,预训练通常以大量文本下一token预测为任务,监督微调以给定提示下的示范回答为目标,偏好学习则利用同一提示中两个回答谁更好的比较。这三个数据对象并不等价。示范提供一个要提高似然的具体回答,却未说明其余回答谁更差;比较给相对顺序,却通常不给绝对质量值。本课依次建立SFT、偏好数据、Bradley–Terry奖励模型、带KL的最优策略与DPO,最后在独立上下文上测量行为。显式奖励模型用于理解和对照,不是DPO训练必须调用的组件。

一个可以穷举的后训练世界

项目提示是非零实数x,任务是判断正负并尽量简短。四种响应编号固定:零为“负数,简短”,一为“正数,简短”,二为“负数,冗长”,三为“正数,冗长”。这里每个编号代表一个完整回答,而不是某个回答的第一个词。生成动作只有一次,因此条件响应分布完全等于一次四分类softmax。我们不会把这个简化说成已经训练完整自回归语言模型;多token回答的似然和掩码在第二章专门推导。

令动作集合为A,策略写作 πθ(a∣x)\pi_\theta(a\mid x),其中a属于四个编号,θ\theta是可训练参数。每个动作有两个参数:偏置与对x的斜率,logit为 za=ba+waxz_a=b_a+w_ax,共八个标量。softmax将实数logit变成严格正、和为一的概率。这个参数化能表达与正负相关的线性趋势,不能表达任意任务。为了可观察全部错误,我们始终保留四个动作,训练时不把错误类别硬遮掉;正确性改善必须来自学习,而非从候选集合中删掉错误。

训练上下文是负三、负二、负一、正一、正二、正三;验证是正负一点五与二点五;测试是正负零点五与三点五。三集合数值不重叠,但共享“看符号”的规则,测试既有靠近零的插值也有超出训练绝对值的外推。它不是新任务分布,更没有自然语言理解的证明范围。项目用固定数据摘要同时覆盖动作定义、划分、示范与比较生成规则;改其中任何一项都视作新实验,旧状态载入会拒绝摘要不匹配。

示例、偏好与评估函数

每个训练x有三条示范:正确简短两次、正确冗长一次。因此同一上下文的经验示范比例为三分之二与三分之一,错误动作零次。重复样本是有意的权重,而不是三个不同人真的写了这些话。若模型可自由给每个上下文分配概率,SFT最优会拟合这个比例;我们的共享线性参数与有限步优化只能近似它。保留冗长示范,能使后续偏好学习有一个非平凡的行为调整目标,而非SFT已经把简短概率推到一。

偏好集对每个x选择正确简短回答为winner,分别与另外三个回答配对,得到十八个训练比较。它明确偏好正确且简短,但没有直接比较两个失败回答之间的顺序。标签完全由公开规则生成,不来自人类标注者;把它称为“人类价值对齐数据”会越过证据。我们用一个独立定义的检查函数 u(x,a)=1[sign⁡(a)x>0]−0.2(1−brief⁡(a))u(x,a)=\mathbf1[\operatorname{sign}(a)x>0]-0.2(1-\operatorname{brief}(a)) 评估,前项奖励正确,后项惩罚冗长。这个函数不是训练中的BT分数,也不是DPO隐式奖励。

算例一:均匀策略的完整行为账

设x为正一,四动作均为四分之一。正确动作是一与三,总正确质量为二分之一;简短动作是零与一,总简短质量也是二分之一。四个效用依次是零、一、负零点二、零点八,所以期望效用是四项相加除四,等于零点四。即使greedy在并列时总挑编号零而答错,概率分布上的正确质量仍是二分之一;“greedy准确率”与“随机按策略采样的期望正确率”不是同一量。

现在把概率改为 [0.05,0.60,0.05,0.30]。总正确质量是0.90,简短质量0.65,期望效用为0.60加0.30乘0.8再减0.05乘0.2,等于0.83。另一路检查用“正确质量减去零点二倍冗长质量”,得到0.90−0.2×0.35,也为0.83。这是第一个独立恒等式核验,能发现把简短与正确轴混用或遗漏失败冗长动作的实现。

Ea∼π[u(x,a)]=∑a=03π(a∣x)u(x,a)=Pπ(correct∣x)−0.2Pπ(verbose∣x).\mathbb E_{a\sim\pi}[u(x,a)]=\sum_{a=0}^3\pi(a\mid x)u(x,a)=P_\pi(\mathrm{correct}\mid x)-0.2P_\pi(\mathrm{verbose}\mid x).
有限响应空间上的精确期望;不是通过少量随机样本估计。

算例二:SFT拟合不等于偏好最优

理想示范分布把三分之二概率给正确简短、三分之一给正确冗长,正确质量为一,简短质量三分之二,期望效用为一减零点二乘三分之一,即十五分之十四。若偏好阶段把概率全部移到正确简短,期望效用升到一,但SFT示范的交叉熵反而会变差,因为示范中确实有冗长回答。没有一个单独的“训练loss下降”能替代行为目标:不同损失对应不同数据假设,必须先说自己希望模仿示范频率还是改变偏好。

这个例子还揭示支持条件。有限logit的softmax给每个动作正概率,无法在有限参数精确达到错误动作零概率;所谓理想分布只是无限可表达空间中的边界解,不是两百步训练的精确终点。若把某些动作概率硬设零,后面的相对参考概率与KL可能无定义。项目保留正支持、采用稳定log概率计算,独立检查每个上下文概率和为一,再检查所有日志损失有限。

数据边界与可识别内容

偏好标签没有决定绝对奖励零点:同一x下给所有回答奖励加一个常数,所有两两胜率都不变。它也未决定没有比较过的回答在所有新上下文中的行为。用一个简单参数族补全这些空白是模型假设,不是标签本身证明。项目奖励使用两个可观察特征:动作符号乘x,及是否简短;它以线性方式共享跨上下文信息。没有把独立评估效用直接作为每条比较的实数训练标签。

数据检查必须逐项确认winner与loser不同、同一pair共享同一x、两者都是合法动作、上下文来自训练划分。相同pair重复会改变经验权重,反向重复可表示标注分歧,不能一律当重复垃圾删除。当前规则是确定无噪声比较,后面的BT因此会出现可分数据的参数尺度压力;课程会用这个失败机制解释正则化,而不把完美排序准确率当成奖励概率已经校准。

除了上下文分区,还应冻结候选生成过程。现实偏好集若只包含某个旧策略容易生成的回答,新策略移到未覆盖区域时,奖励或DPO约束并无直接标签支持。本项目穷举四候选的winner与其他三者,覆盖明确而狭窄;并未模拟开放文本中的无限候选空间。所谓离线偏好学习,意味着比较集在训练期间固定,不是策略每次更新后都去重新获得新反馈。

项目状态与本章验收

项目最初base是随机八参数策略,不冒充从大语料预训练得到的基础模型。SFT结束复制出reference;后续DPO只更新独立副本,reference始终冻结。奖励模型另有两个参数,与策略没有共享对象。明确对象身份能防止“参考也被更新”这种损失仍能运行却改变数学目标的故障。JSON保存数据摘要、各阶段参数、seed、β\beta与完整检查点历史,标准库训练没有隐藏在线服务或外部随机输出。

本章交付是任务、动作顺序、数据分区与三个评价量的契约。第二章将从示范似然推导SFT梯度,证明全部八个策略参数实际接到更新;第三章再处理比较如何进入统计模型。进入下一步前,读者应能在纸上给任意四概率向量算出正确质量、简短质量和期望效用,并指出这些数值仅描述本有限任务,不能改名为通用安全、事实性或商用大模型能力。

本课最终还有完整decoder序列支线,不停在四分类器上。它用ASCII提示与多字节回答,从随机参数做response-only SFT,再按完整回答logprob做DPO;embedding、注意力、位置、前馈、归一化和输出头全部更新。可穷举参考负责把每个公式与有限差分算到底,完整decoder负责检验真实序列接线,二者不能互相冒充。第七章会逐项对应两者概率空间,第八章保留标准格式成功与格式迁移失败。

任务明确排除x为零,因为四响应没有“零”这个类别。对零输入若强行评分,只会把未定义问题包装成模型错误;应先扩展动作与规则,再更新数据摘要。测试中的正负零点五仍属已定义非零域,但靠近边界。一个模型在这个边界表现不好是合法失败观察,跟向它询问没有定义标签的零不是同一回事。

独立运行标准库独立核算:三个行为量及理想SFT与偏好目标的差异。
p=[.05,.60,.05,.30]
u=[0.,1.,-.2,.8]
assert abs(sum(p)-1)<1e-12
correct=p[1]+p[3]; brief=p[0]+p[1]
expected=sum(a*b for a,b in zip(p,u))
assert abs(expected-(correct-.2*(1-brief)))<1e-12
ideal=1-.2/3
print('correct mass',correct,'brief mass',brief,'expected utility',expected,'ideal SFT utility',ideal)

TRY IT YOURSELF

练习一:分开两个行为轴

策略在正数上下文给四响应概率[0.4,0.1,0.1,0.4],求正确质量、简短质量、期望效用。

提示 1
先按动作定义分别圈出正确、简短与冗长的响应编号。
提示 2
对各集合概率求和,再用“正确奖励减冗长罚项”计算期望,不从greedy单项代替分布。
对照参考解答
正确是一与三,共0.5;简短是零与一,也0.5;冗长0.5,期望效用0.5−0.2×0.5=0.4。虽然与均匀策略的三个汇总量相同,四个动作概率不同,greedy行为也可能不同,因此应保留完整分布。

TRY IT YOURSELF

练习二:示范与比较

只有示范“正确冗长”,是否能据此推断它优于正确简短?还需要什么信息?

提示 1
示范记录了被展示的回答,不一定记录未展示回答的排序。
提示 2
区分增加某回答似然与明确两两比较,指出要补哪种同提示信息才能比较两个正确回答。
对照参考解答
不能。示范只告诉系统增加该回答的条件似然,不给未展示回答之间的顺序。需要同一提示下两个回答的明确比较或预先定义的任务规则;若自行假定“示范一定比所有其他好”,就引入了额外假设,必须写进数据契约而非当作观测事实。

TRY IT YOURSELF

练习三:解释有限任务

列出本项目能直接测量的两项性质与不能由它证明的两项性质。

提示 1
把有限四响应任务能穷举的量与开放文本能力分开。
提示 2
各选一个分布量和一个梯度检查作可测性质,再检查哪些远超当前数据与模型范围。
对照参考解答
可穷举四响应概率并计算正确/简短质量;可对八个参数的解析梯度做逐项有限差分。不能证明开放文本对齐,也不能证明经过大规模预训练或具备语言能力。任务只有数值符号与四候选,模型base随机,所有结论必须带上这些限制。

CHECK YOUR UNDERSTANDING

检验理解

先作答,再决定是否展开解析。选择题用于发现理解缺口;独立实现与迁移任务仍需另行检验。

1. 本项目一次动作代表什么?

查看解析有限候选策略只有一次分类决策;多token机制须另行定义。
2. 示范比例2:1意味着什么?

查看解析这是监督经验频率,不是比较胜率;模型约束和有限优化还会影响拟合。
3. 期望效用由什么精确计算?

查看解析有限空间可以穷举,不必用采样估计。
4. reference在DPO阶段应怎样?

查看解析DPO的参考比率定义依赖固定条件分布。

自行标记用于记录学习进度,不代表通过项目验收。