能够延续文本的基座模型,不一定按照请求组织答案,也不一定遵循角色、格式与结束协议。后训练通过指令示范、偏好比较、环境反馈或可验证奖励调整这些条件下的生成分布。相应的数据不再只是文档集合,还包括指令与回答、偏好对、策略提示、采样轨迹和推理过程;它们共享数据治理原则,却具有不同的结构约束与质量标准。
本章先建立后训练数据的类型与生产接口,再研究指令示范如何成为精确定义的监督微调目标。第18章《训练数据工程基础》给出版本、血缘、划分、去重和污染控制的共同原则,第23章《预训练原理》解释一般语言建模与训练预算;本章集中讨论回答区域、多轮对话、指令数据质量和能力保持。第21章《参数高效微调》将讨论减少可训练参数的方法,第24章《强化学习基础》建立策略优化基础,第25章《人类反馈学习》与第26章《可验证推理训练》分别展开偏好数据和可验证推理数据。更新哪些参数、生产哪类数据与采用哪一种监督信号,是三个相互关联但不能混为一谈的设计维度。
20.1监督微调的学习对象
条件生成
监督微调(Supervised Fine-Tuning,SFT)以已有模型为起点,利用输入与目标输出的配对数据更新参数。语言模型中的指令微调(Instruction Tuning)是其中一类:输入说明任务要求,目标回答展示如何完成任务。分类、翻译等任务同样可以写成文本条件与文本回答,但条件字段的转换必须保留原任务含义。
设提示或历史为 \(x\),示范回答为 \(y=(y_1,\ldots,y_n)\),策略模型为 \(\pi_\theta\)。在起始条件和结束标记明确时,回答的条件概率为
这里 \(\theta\) 包含本次可更新的参数;固定参数仍参与前向计算。最大化示范回答的条件似然,等价于最小化
训练中使用真实的先前回答词元作为条件,而生成时使用已经生成的前缀。这一差别使似然评估和自由生成评估各自不可替代。
InstructGPT 的研究将人工示范上的监督训练与后续偏好及奖励阶段区分开来(Ouyang 等 2022)。SFT 本身不要求奖励模型,也不要求成对比较。给一个正确示范提高概率,并不等于直接学习“它为何优于某个错误回答”;若任务需要这种比较,必须另外定义偏好数据与目标。
条件目标及联合目标的区别
若将提示与回答整体作为语言建模目标,链式法则给出
只监督回答保留第二项;全序列监督还拟合提示分布。后者不是数学错误,也不必然造成复述,但会把有限梯度预算分配给用户文本、系统描述和模板。对于长提示、短答案任务,这种额外目标可能占据多数词元。
更一般地,可以给提示目标与回答目标分别设置权重。选择回答专用损失,是为了直接拟合请求条件下的示范行为,而不是因为提示没有信息。目标选择应由任务确定,不应由数据列名称或训练库默认值决定。
符号及前提
| 符号 | 含义 |
|---|---|
| \(x_i,y_i\) | 第 \(i\) 个样本的提示条件与示范回答。 |
| \(c_{i,t}\) | 目标词元 \(t\) 实际可见的序列前缀。 |
| \(z_{i,t,v}\) | 第 \(i\) 条序列位置 \(t\) 对词表项 \(v\) 的预测分数。 |
| \(T_i,V,M\) | 序列长度、词表大小与样本数量。 |
| \(r_{i,j}\) | 序列位置 \(j\) 是否作为监督目标的标记。 |
| \(m_{i,t}\) | 预测位置 \(t\) 对后继目标的监督标记,\(m_{i,t}=r_{i,t+1}\)。 |
| \(n_i,S\) | 样本 \(i\) 的有效目标数与聚合范围内总有效目标数。 |
| \(w_i\) | 样本的非负权重;与回答长度的作用需分别定义。 |
| \(\theta_0,\theta\) | 初始模型参数与微调后参数。 |
条件监督的共同前提
本章采用因果语言模型和固定分词器。角色、消息顺序、目标轮次与停止标记由结构化数据及模板定义。监督目标对应的前缀不得包含该目标或其未来答案;填充不提供有效语义条件。所有损失比较固定目标区域与归一化方式,数值例为构造算例。
20.2回答掩码及移位的精确定义
监督位置映射
将结构化消息经过模板编码,得到序列 \(u_0,\ldots,u_{T-1}\)。位置 \(t\) 的输出预测 \(u_{t+1}\)。先在目标词元所在位置建立 \(r_j\),再定义
若标签数组与输入数组等长,提示和填充位置的标签为忽略值,回答位置保留对应词元编号,那么计算损失时应配对输出的前 \(T-1\) 位与标签的后 \(T-1\) 位。不能先按输出位置建立回答掩码,再不加调整地复用到目标位置。
另一种接口显式准备输入与目标,其中输入相对于目标右移。两种接口等价的条件是每个预测位置与后继目标恰好配对一次;“标签右移”这一含糊表述容易混淆数组操作与语言建模关系,应直接标注下标。
停止标记监督
回答正文之外,模型往往还需要学习轮次结束或序列结束标记。两者可能不是同一词元:轮次结束允许对话继续,整个序列结束表示当前生成终止。应根据制品模板决定哪些控制标记由模型预测,不能无条件把所有特殊词元屏蔽。
若始终删除结束标记的监督,模型就缺少在目标位置停止的直接示范。若把人工截断的回答末尾强行补成结束标记,又会示范提前结束。停止协议的有效性取决于语义完整性与实际生成接口共同一致。
例18.1
考虑单轮样本,使用教学符号 \(U\)、\(A\) 表示用户与助手角色标记。序列为
\(q\) 是用户问题,回答为两个词元 \(a,b\),\(\mathrm{EOT}\) 为回答终止词元。这里助手角色标记是预先提供的生成前缀,不作为本例目标,故
有效预测配对是位置3预测 \(a\)、位置4预测 \(b\)、位置5预测 \(\mathrm{EOT}\)。注意第一个回答词元的损失来自最后一个提示位置的输出。
| 输出位置 \(t\) | 当前词元 | 后继目标 | \(m_t\) | 正确目标概率 |
|---|---|---|---|---|
| 0 | BOS | \(U\) | 0 | 不计 |
| 1 | \(U\) | \(q\) | 0 | 不计 |
| 2 | \(q\) | \(A\) | 0 | 不计 |
| 3 | \(A\) | \(a\) | 1 | \(\frac{1}{2}\) |
| 4 | \(a\) | \(b\) | 1 | \(\frac{1}{4}\) |
| 5 | \(b\) | EOT | 1 | \(\frac{1}{8}\) |
| 6 | EOT | PAD | 0 | 不计 |
于是
若误把输出位置4、5、6作为回答损失范围,就会漏掉 \(a\),并错误监督 PAD。即使张量形状完全正确,也已经优化另一个目标。
对有效输出位置,softmax 交叉熵的分数梯度为
因此三个正确词元分数的导数分别为 \(-\frac{1}{6},-\frac{1}{4},-\frac{7}{24}\)。这说明损失对低概率正确目标施加较大的局部修正;整网参数梯度还需乘对应分数对参数的雅可比,不能仅凭这三个数判断参数更新范数。
提示词元的梯度影响
回答位置的隐状态通过注意力读取提示的键和值。用单个注意力输出 \(o_t=\sum_{j\le t}a_{t,j}v_j\) 说明,在暂时固定权重 \(a_{t,j}\) 的条件下,提示位置 \(j\) 的值向量具有梯度通路
实际网络还存在经注意力权重、键和查询传播的梯度。故标签被忽略不等于提示嵌入或处理提示的参数被冻结。提示需要参与前向,也可能通过回答误差参与参数学习。
三个掩码的职责
填充掩码决定哪些输入位置有效;因果及样本掩码决定哪些位置之间可见;回答掩码决定哪些后继词元产生直接监督。回答掩码不能代替注意力隔离,也不能作为“哪些输入不需要计算”的依据。
20.3样本权重及长度归一化
三种常见目标
设第 \(i\) 个样本有 \(n_i>0\) 个目标,目标损失和为 \(\ell_i\),平均损失为 \(\bar\ell_i=\frac{\ell_i}{n_i}\)。至少有三种不同目标:
第一种词元等权,第二种样本内先平均再对样本等权,第三种平均序列负对数似然。固定数据集上,第一与第三仅相差整体常数;在长度变化的微批次中,逐批动态归一化则可能改变步间梯度尺度。第二种改变相对样本权重,对短回答中的每个词元赋予更大影响。
例如两条回答长度分别为2与8,平均损失分别为1与3,则 \(L_{\mathrm{token}}=2.6\),\(L_{\mathrm{sample}}=2\),\(L_{\mathrm{sequence}}=13\)。样本等权时,短回答中一个词元的权重为 \(\frac{1}{4}\),长回答中一个词元为 \(\frac{1}{16}\),前者是后者四倍。两种归一化都可以用于明确的目标,但不能在实验比较中静默切换。
带权目标及任务配比
给定非负样本权重 \(w_i\),回答词元加权目标为
而样本平均加权目标为 \(\frac{\sum_iw_i\bar\ell_i}{\sum_iw_i}\)。前者中长回答获得更大的样本总权重;后者中总权重由 \(w_i\) 决定。所谓“任务各占一半”必须说明按样本、回答词元还是梯度贡献计量。
长度本身不是质量。把所有长答案降权可能削弱完整论证;按词元等权也可能让重复冗长模板占据大量预算。合理做法是在数据阶段改进答案质量,再根据任务价值和覆盖选择统计单位,避免用权重修补错误答案。
梯度累积及评估归约
如果一次更新包含多个微批次,设第 \(k\) 批平均损失为 \(L_k\),有效目标数为 \(S_k\),词元等权更新应使用 \(\frac{\sum_kS_kL_k}{\sum_kS_k}\)。动态填充、多轮掩码和截断使 \(S_k\) 不固定,简单除以累积批次数通常不足以保持该目标。
评估也应分别累积总负对数似然与目标数。若报告样本等权指标,则保留各样本平均损失后再聚合。对极大损失仅裁剪困惑度展示值时,必须保留未裁剪的负对数似然,并标明显示上限,不能把显示处理伪装成真实指标改善。
20.4多轮对话及模板协议
结构化消息协议
会话模板(Chat Template)把消息角色、内容、调用关系和边界转换成模型识别的词元序列。它不是可随意替换的装饰格式。数据中的系统、用户、助手和工具角色,必须映射为与基座训练协议兼容的结构;普通文本中出现“assistant”一词,不应被解释为真实角色边界。
模板应提供可追溯的消息或生成跨度,使标签掩码来自结构而不是搜索回答字符串。回答可能在问题中被引用,也可能多次出现;依赖第一个子串匹配会标错区域。1
编码整个会话后再根据可靠跨度映射到词元,或者使用能够返回生成区掩码的模板机制,都需要明确边界对齐规则。跨文本跨度的单个词元如果无法按协议唯一归属,应修正模板或编码方法,不能依靠猜测赋予监督。
多轮监督范围
设一段对话为 \((u_1,a_1,u_2,a_2)\)。全部助手监督对应
最后一轮监督只保留第二项。最后一轮训练仍读取前面的 \(a_1\),但不直接把它当作本条样本的输出目标。因此,历史中的错误答案虽然可以不受直接模仿,仍会改变第二轮的条件分布。
若把每个会话前缀都展开为一个样本,又在每个前缀中监督全部助手轮次,前面的回答会重复计权。上述对话展开为 \((u_1,a_1)\) 和完整四轮时,\(a_1\) 被监督两次,\(a_2\) 一次。若希望每个助手轮次只计一次,可在前缀样本中仅监督最后一轮,或直接使用整段对话监督全部轮次,并避免重复展开。
控制标记及训练—生成一致性
训练时可能包含完整助手回答及结束标记,生成时则应在助手内容开始前结束提示,并由模型继续输出。若生成提示多加一个结束标记,或者缺少助手起始前缀,条件已经改变。模板升级、额外特殊词元和词表扩展必须与权重绑定;新增词元的嵌入及输出参数需要适当训练,不能仅修改分词器文件。
对工具交互,助手产生调用,工具返回结果,两者属于不同来源。通常不能把工具原始返回文本当作助手应生成的答案;如果训练助手输出调用结构,则应监督调用参数与边界,并保留调用与结果关联。详细工具协议将在应用章节展开,本章只强调消息身份决定监督含义。
会话截断
长度超限时,删除最早消息可能丢失任务约束或问题指代;截断回答尾部可能留下不完整解答;从中间切断工具调用会破坏结构。截断不能仅凭“长度合法”判断成功,应确定保留的是哪个条件任务。
可按目标轮次组织窗口,优先保留系统约束、最近必要上下文与完整目标回答;对于无法在窗口内表达的任务,应隔离或转入长上下文训练。多轮切片仍以完整会话或问题家族进行训练—验证划分,避免不同前缀跨集合泄漏。
20.5指令数据的来源及质量
人工示范、任务转换及合成
人工示范适合明确复杂行为标准,但需要一致的标注规范、复核流程和任务覆盖设计。一个答案可以语言流畅却漏掉限制条件,也可以形式正确却包含错误事实。标注应分别判断任务正确性、指令遵循、完整性、可支持性与表达质量,不能只给一个模糊总体印象。
已有任务数据可以转换为指令格式。例如分类标签映射为类别名称,需要固定标签语义;翻译句对需要保留语言方向;抽取任务需要说明输出边界及无答案规则。模板不能泄漏标签,训练中的固定表述也不能被当作指令多样性的充分证据。
合成指令数据(Synthetic Instruction Data)由模型或程序生成。Self-Instruct 展示了从种子任务生成指令、输入与输出,并过滤无效或相似样本的流程(Wang 等 2023)。这一方法提供扩大候选池的途径,却不保证每条生成答案正确。教师模型、提示、采样配置和过滤版本都应保留,以区分真实任务扩展与同一错误的重复传播。
数据过滤偏差
设候选回答正确概率为 \(p\),过滤器对正确回答的接受概率为 \(r\),对错误回答的误接受概率为 \(f\)。由贝叶斯公式,保留集合的正确率为
例如 \(p=0.8,r=0.9,f=0.2\),候选通过率为 \(0.76\),通过后的正确率为 \(\frac{0.72}{0.76}\approx94.74\%\)。过滤提高了纯度,却同时删除部分正确样本;若错误集中在某个领域,其保留错误仍可能系统相关。该算例假设判据与真值已定义,不能以模型自评分直接声称获得这些 \(r,f\)。
程序可执行、答案可精确核对的任务能够使用验证器,但验证覆盖必须说明。代码通过有限测试不能证明所有输入正确;数学最终答案正确也不能证明每一步说明正确;引用存在不能证明引用支持结论。教师生成与同一教师自评的误差可能相关,因此复核应尽可能引入独立证据或不同的检验机制。
多样性及难度
指令多样性需要覆盖任务目标、输入分布、约束组合、语言、长度和交互结构。把同一道题改写十次,会增加文字形式而未必增加能力覆盖。按问题家族去重后,仍可保留有价值的表达变体,但其训练权重应受到控制。
难度也不能只由回答长度或教师置信度决定。短问题可能需要多步推理,长答案可能只是模板重复。应结合可验证的前提数量、步骤依赖、约束组合和错误类型定义难度层,再观察模型在哪一层真正受益。
LIMA 研究在其特定基座与人工整理数据条件下展示了少量高质量指令示范的作用(Zhou 等 2023)。它不能推导出任意模型只需固定数量样本,也不能证明额外领域知识无须训练。数据数量、覆盖和示范质量的收益必须结合基座已具备的能力判断。
多轮一致性及可信监督
多轮数据应检查实体、时间、单位和用户修正是否前后一致。若用户已经纠正条件,助手仍沿旧条件作答,该样本会训练错误的对话更新行为。包含澄清、修正与承认不确定性的示范,有助于表达正确交互模式;但不能用大量统一拒绝模板替代任务判断,否则可能导致过度拒答。
对于需要外部证据的任务,应保留证据来源与答案支持关系。对于信息不足的问题,示范应体现缺失信息的处理方式,而不是编造具体事实。错误样本经反复训练会被更有力地模仿,降低学习率不能把错误目标变成正确目标。
20.6训练批次及参数更新的接口
动态填充及独立会话装箱
动态填充(Dynamic Padding)按批内最长序列分配长度,减少相对于全局最大长度的空位。若 PAD 与 EOS 共用编号,不能仅按词元编号屏蔽所有该值的位置,否则真实结束目标也被删除;应根据真实长度或明确位置掩码判断填充身份。
多个会话装箱时,独立会话默认不应相互读取。令 \(d(t)\) 为会话编号,可见关系为 \(j\le t\) 且 \(d(j)=d(t)\),回答目标还须属于相同会话。高装箱率不证明标签正确,块对角注意力也不自动修正跨会话目标配对。对于标准批次,输入与标签形状为 \([B,T]\),预测分数形状为 \([B,T,V]\);掩码的语义比这些维度更重要。
全参数及受限参数更新
SFT 可以更新全部参数,也可以只更新部分模块或附加参数。参数高效微调(Parameter-Efficient Fine-Tuning,PEFT)改变可训练子空间,通常保留相同回答损失;其秩、模块选择与制品合并在第21章《参数高效微调》展开。不能把“使用适配器”当成一种新的监督目标,也不能仅凭可训练参数少推断不会遗忘。
训练过程应记录有效回答词元量、样本与任务配比、优化器更新数和实际消费的数据版本。训练损失窗口均值反映历史参数,不等于最终模型质量。完整恢复还需要优化器、调度器、随机状态和数据位置;只保存适配器或权重可用于加载模型,但不足以描述原训练轨迹。
算法20.1 由会话构造条件监督批次
输入为结构化会话、目标轮次规则、固定模板与分词器;输出为输入、可见性掩码、目标标签及有效目标计数。状态包含会话身份和截断记录。
校验角色顺序、必要字段及调用关联,确定允许监督的助手轮次与终止标记。
按完整会话语义选择窗口;无法保留必要条件或完整回答时隔离样本,不把截断答案伪装成完整示范。
用模板编码并保留消息和目标跨度,映射到词元级 \(r_j\);若边界不能可靠对齐则停止该样本的构造。
动态填充或按独立会话装箱,生成真实位置与会话可见性掩码;填充位置的目标标记为零。
将位置 \(t\) 的输出与位置 \(t+1\) 的目标配对,令 \(m_t=r_{t+1}\),同时排除跨会话配对。
汇总有效目标数;零目标样本不进入更新。输出计数、来源身份与掩码,供训练归一化使用。
不变量是每个被监督词元只由合法前缀预测,提示与填充不被误计为回答。长度为 \(T\) 的跨度处理通常可线性完成;显式构造稠密可见性矩阵需要 \(O(T^2)\) 空间,实际系统可采用等价的边界表示。
20.7评估及能力保持
条件似然及自由生成
条件验证损失使用示范前缀,衡量模型对参考回答的概率分配。自由生成评估只提供请求与历史,衡量模型在自身生成轨迹上的任务结果。一个问题可能有多个同样正确的答案,单条参考回答似然不能覆盖全部正确表达;相反,模板化答案高概率也不保证满足任务。
评估应至少区分内容正确、格式有效、约束遵循和停止行为。对代码、抽取、分类等任务可采用明确规则;对开放回答可采用预先定义的评分标准和盲评。模型评审器可能存在长度、风格与顺序偏差,应校准并保留人工或客观证据。采样温度、输出上限、模板和工具条件必须固定,否则比较的是多个变量的混合影响。
泄漏及重复选择
会话前缀、题目改写、同一来源答案应按问题家族分组。训练与验证文本哈希不同,只能排除精确重复;不能排除同一任务实例的轻微重写。合成数据的种子、教师提示和筛选过程也应避开封存测试题,不把测试失败题直接改写成训练样本后仍声称测试独立。
验证集用于选择训练步数与配方,测试集用于方案冻结后的估计。比较新旧模型时应在同一批题目上进行配对分析,并按任务、语言、长度和风险切片。总体均值可能掩盖某个关键领域退化;置信区间应按独立问题或会话聚合,而不是把高度相关的词元当作独立试验。
遗忘的局部机制
灾难性遗忘(Catastrophic Forgetting)指学习新分布时原有任务表现显著退化。设旧任务损失为 \(L_0(\theta)\),新任务梯度为 \(g_1\),一步更新 \(\theta'=\theta-\eta g_1\)。泰勒展开给出
\(H_0\) 为旧损失的局部 Hessian。若两任务梯度内积为负,一阶项就可能使旧损失上升;即使接近旧任务驻点,二阶曲率也会影响保持程度。这个局部近似解释更新冲突,不证明所有退化均由单一步骤造成。
例如 \(\nabla L_0=(1,0)\),\(g_1=(-1,1)\),\(\eta=0.1\),忽略二阶项,旧损失增加约0.1。新目标下降并不排除旧目标上升。模板变更、解码配置和评估失配也可能表现为能力下降,诊断时需要先区分参数变化与接口变化。
保持策略及其限制
混入代表旧能力的回放数据(Replay Data)可采用
它显式重新分配训练资源,但回放数据覆盖不足时仍可能遗忘。较小更新量、较短训练、正则化或受限参数更新可以减少变化范围,却没有跨任务的普遍保持保证。参数距离小也不意味着所有输出变化小,因为输入分布和网络敏感度不同。
应在微调前冻结基座基线,分别观察新任务收益和旧任务保持,并选择符合需求的折中。若领域知识主要缺失于基座,少量格式示范可能不足;若主要问题是输出协议,增加大量同质事实文本也未必有效。区分知识补充、任务迁移和行为格式,有助于选择继续预训练、SFT 或其他后训练阶段。
SFT 的证据边界
回答损失下降证明模型更贴近被选中的示范目标。能否遵循新指令、处理自己的生成错误、保持旧能力以及可靠停止,必须分别通过生成与回归评估判断。示范质量、目标掩码与评估分布共同决定结论范围。
算法20.2 监督微调与模型选择
输入为冻结基座、指令训练集、验证集、任务指标与预算;输出为所选模型及绑定的数据和模板版本。
在统一模板和生成条件下记录基座的任务与保持基线,冻结归一化规则和有效回答词元预算。
按指定配比构造合法批次,累计有效目标并形成相应的词元或样本加权梯度;执行参数更新并推进实际训练计数。
在预定检查点同时计算条件验证损失与独立自由生成指标,记录格式、长度、停止和任务切片。
若出现持续退化,判断来源是错误示范、模板边界、目标权重还是更新幅度,再据验证集选择下一轮方案。
达到预算或预定停止条件后,冻结候选并执行封存测试;保存完整权重或适配器、基座身份、分词器、模板、训练状态与评测证据。
全过程保持训练与测试问题家族隔离,禁止以训练损失最小替代多维质量选择。
20.8训练契约及后续方法
回答掩码、动态填充、移位交叉熵、有效回答词元聚合与训练循环共同实现监督目标。小型数据可用于逐位置检查监督关系;少量验证样本只能检验评估链路,不能支持通用指令能力结论。标准训练库承载同一目标时,仍需绑定模板、目标轮次、截断和保存语义,不能仅凭训练器名称推定其默认配置与本章一致。
偏好比较与组相对优化由后续章节展开:本章不把成对偏好公式混入条件示范目标,也不把在线奖励循环当成 SFT 的必要步骤。参数高效方法则与三类目标都可结合,其技术机制由第21章《参数高效微调》展开。
分词通常不满足“先分别编码再拼接”等于“拼接后编码”。边界空白和子词合并可能改变词元序列,因此提示编码长度不能无条件作为完整序列中的回答起点。↩︎