奖励是学出来的
先拟合 reward model,再用策略优化。可以处理采样生成的序列,但会新增奖励投机与稳定性问题。
DEEP 03 / POST-TRAINING OBJECTIVES
对比学习在改距离,SFT 在改条件 token 分布,DPO 在改相对偏好,RLHF 在奖励与 KL 约束之间优化策略。 这一页把公式、数据形状、可训练参数和失败模式对齐。
每种目标分别列出输入单位、优化的分布,以及 reference 的作用。
输入是 query、正文档与候选文档。梯度直接改变编码后向量的距离,目标是让正文档在候选中概率最高。
对象:句 / 块几何这里选 response-only SFT:输入 prompt 与示范 response,只对回答 token 计损失。全序列 SFT 也是一种目标设置,mask 必须明确。
对象:条件 token 分布输入是同一 prompt 下的 chosen / rejected。Δ 是策略的 chosen/rejected 对数概率差减去 reference 的同一差值,下文给出完整展开。
对象:回答相对排序先学奖励模型 rφ,再优化策略。奖励负责“往哪边好”,KL 约束负责“别离原模型太远”。
对象:采样策略与奖励切换训练范围。浅色块冻结,亮色块可训练;图中按模块概括训练范围,具体层数由模型配置决定。
UPDATED PARAMETERS
图中列出常见的可选模块:检索常走 pooling → projection,语言模型通常从逐 token hidden state 直接进入 LM head。mean pooling、EOS readout 自身无参数;可训练模块必须实际连接到 loss 才有梯度。
FULL FINE-TUNE
可训练自由度最大,优化器状态通常也最多。效果与遗忘风险仍取决于数据、学习率和目标;reference 是否需要由算法决定。
为什么“只训练输出头”可能仍然改变 embedding API? 如果 API 输出的是 Transformer 的状态后接 projection,那么 projection 是接口的一部分。即使 backbone 冻结,投影矩阵改变也会改变最终坐标与排序;如果 API 在投影之前就截断,又是另一回事。必须按实际 forward 路径判断。
DPO 关注策略相对 reference 的偏好变化。拖动 β 与策略 margin,看 sigmoid 目标怎样改变。
这是去掉 prompt 相关常数后的隐式 reward;该常数在同 prompt 的偏好差中抵消。回答概率是 response token 条件概率的乘积,对数概率是相应的和。
用 chosen 与 rejected 的隐式奖励差表示偏好 margin。
pairwise logistic loss。margin 越大、已经满足偏好时,loss 越小。
m = βΔ。对 Δ 的梯度是 −βσ(−m),对 m 的梯度才是 −σ(−m)。局部梯度与训练后的策略偏移是不同问题,需结合 KL 与任务指标判断。
标准 DPO 需要固定 reference 概率。静态数据可预计算 reference log-prob,节省每步参考模型的前向;偏好对直接用于优化策略。reference-free 变体改变了假设,需要分别讨论。
先拟合 reward model,再用策略优化。可以处理采样生成的序列,但会新增奖励投机与稳定性问题。
在 preference pair 上做 pairwise logistic 目标,省掉显式 reward 与 rollout;依赖偏好数据覆盖度。
reference 和 KL 用来控制策略偏移。调整约束强度时,应同时观察偏好收益、基础能力和输出多样性。
哪些 token 计入 loss,会改变 SFT 的监督分布。模板和 mask 应随数据一起检查。
response-only 把直接监督集中在 assistant 输出,prompt 标签用 ignore_index;全序列 loss 会额外学习 prompt 的分布,两种设置给 prompt 分布的权重不同。被 mask 的 prompt 仍作为上下文参与回答预测,仍可通过注意力得到梯度。多轮对话还需明确监督所有 assistant 轮次还是仅末轮。
先对每条回答的 token 求平均、再平均样本,会使样本等权;把所有有效 token 的损失求和再除以总 token 数,则长回答权重更大。不同长度 microbatch 需要按有效 token 数加权,才能得到全局 token 平均。
先定义目标:独立对话 packing 应隔离跨样本 attention 与标签边界;预训练的连续文档拼接也可能有意允许跨文档上下文。EOS 只标记边界,不会自动阻断 attention;重置 position_ids 也不能替代块对角 attention mask。可在样本打包计算实验中比较完整 logits 与参数梯度。
对话角色通过模板中的 token 表达。少一个边界 token、角色字段不一致或 EOS 未训练,都可能让推理时的停止行为与训练分布错位。
LoRA 限制增量矩阵的秩,不保证行为不变。数据分布、学习率、覆盖层数和训练时长仍会让模型漂移;适配后仍需检查原有能力和行为变化。A/B 的局部梯度、冻结和合并计算见LoRA 梯度与合并。
检索训练需要一致的 query/doc 构造、难负样本标准和评估任务,让优化目标直接作用于检索排序。
先定义“一个 chunk 能否独立回答”。这决定正样本和编码长度。
用真实用户问法、短问法与领域术语,避免训练只认长模板。
从当前模型 top-N 里挖掘,再用强模型/规则/人工鉴别 false negatives。
InfoNCE + 适当的对称/非对称目标;按语言、领域和文档长度拆指标。
为什么难负样本要刷新?新模型会召回不同的候选。昨天“很难”的负样本今天可能一眼可分,昨天没被召回的假近邻又可能进入 top-N。表示训练与检索系统要一起迭代。
至少同时测目标内、邻近任务和系统性代价,否则非常容易把局部提升当成整体进步。
候选排序有没有提升;top-k 的 k 要跟实际上下文预算一致。
回答是否更有用、更遵循格式;要抽样人工复核,避免只相信单一 judge。
微调集之外的损失是否可接受;是否能处理没有见过的问法。
输出分布和不确定性是否异常;是否过度拒绝或放大某类偏好。
收益能否在索引和服务预算内兑现;是否需要双阶段重排。
端到端版本必须一起记录;其中一个改变,旧索引就可能失效。
DPO 面板计算固定参考校正差下的单对样本损失;训练后的 KL 需另行测量。参数范围图列出可选模块,实际连接方式由各模型的前向路径决定。