强化学习在语言模型训练中的位置
语言模型的后训练阶段通常被切分成三个前后衔接的环节,分别是监督微调、偏好对齐和推理能力强化。监督微调解决的是输出格式与任务分布的问题,它让模型学会在给定指令下产出结构正确、语气得体的回答。偏好对齐解决的是人类偏好排序的问题,它让模型在多个都算正确的回答里倾向于更被接受的那一个。推理能力强化解决的则是另一个层面的问题,即在答案正确性可以被自动判定的任务上,让模型自己摸索出更长的思考链路、更稳的中间步骤和更高的首次命中率。
这三个环节的目标函数并不相同。监督微调是逐 token 的交叉熵,偏好对齐是成对比较的排序损失,推理强化则是带约束的策略优化。把三者混为一谈是工程上最常见的起点错误。一个团队如果在监督微调数据还不够干净的时候就急着上强化学习,通常会看到奖励曲线漂亮上升而实际评测停滞,因为策略在利用奖励模型的漏洞而不是在提升推理能力。
强化学习之所以在数学、代码、逻辑推理这类任务上有效,根本原因在于这类任务的验证成本远低于生成成本。一道竞赛题的答案可以用符号系统在毫秒级判定对错,而模型生成完整解法需要几千个 token。当验证比生成便宜几个数量级时,用验证信号去驱动策略改进就变得经济可行。反过来,在开放式写作、主观咨询这类没有可靠验证器的任务上,强化学习的收益会迅速被奖励模型的偏置吞掉。
工程视角下还需要认清一件事,强化学习并不是在教模型新知识,它是在重新分配模型已有的概率质量。基座模型在预训练阶段见过的解法模式远远多于它在一次采样中表现出来的。强化学习的作用是把那些低频但正确的模式抬高,把高频但错误的模式压低。这也解释了为什么强化学习对基座能力的依赖极强,基座本身不具备的能力几乎不可能靠强化学习凭空长出来。
策略梯度与重要性采样的数学骨架
策略梯度的核心恒等式把一个期望的梯度转换成了对采样轨迹的加权求和,权重是动作的对数概率梯度,系数是回报。这个恒等式在数学上无懈可击,但在实现上引入了巨大的方差。语言模型的轨迹长度动辄数千 token,动作空间是数万的词表,单条轨迹的回报是一个标量,用同一个标量去加权几千个 token 的梯度,方差会大到让梯度估计几乎不可用。
降低方差的第一种手段是引入基线。把回报减去一个与动作无关的基线,期望不变而方差下降。基线的选择从早期的平均回报,逐步演化到与状态相关的价值函数。价值函数在语言模型上的训练本身就是一个难题,因为状态是前缀文本,状态空间随长度指数膨胀,价值头对长尾前缀的估计误差会直接污染优势值。
第二种手段是引入折扣因子与广义优势估计。折扣因子控制的是信用分配的时间跨度,取值接近一时模型更愿意把最终回报归因到很早的决策上,取值偏小时模型更关注近期决策。广义优势估计用参数 lambda 在偏差与方差之间插值,lambda 接近零退化为单步时序差分,方差小但偏差大,lambda 接近一退化为蒙特卡洛回报,偏差小但方差大。多数工程实践把 lambda 放在零点九五附近。
第三种手段是重要性采样。同策略算法要求采样策略与更新策略一致,但分布式训练中采样引擎与训练引擎天然异步,权重在采样完成到梯度计算之间存在滞后。为了纠正分布偏移,需要在损失里乘上概率比值。比值的形式是新策略对数概率减去旧策略对数概率后取指数。这个比值在数值上极其敏感,一旦新旧策略在某个 token 上的概率差异超过几个数量级,比值会爆炸,梯度随之失控。
工程上的标准做法是对比值做双侧裁剪,把比值限制在一个区间内,同时取裁剪前后损失的最大值或最小值,保证梯度只在比值处于合理区间时生效。裁剪区间的选择直接决定了训练是激进还是保守。区间过窄会让绝大多数 token 的梯度被裁掉,有效样本量骤降,学习停滞。区间过宽会让少量极端比值的 token 主导更新,策略在几步之内崩坏。经验上区间宽度设置在零点二附近,并且需要根据实际裁剪比例动态调整。
PPO 在大规模训练中的失效机理
PPO 是早期语言模型强化学习的主流选择,它在中小规模上表现稳健,但在千卡以上的训练规模上会暴露出一系列结构性缺陷。第一个缺陷是价值网络的开销。PPO 需要一个与策略网络同规模的价值网络来估计基线,这意味着显存占用翻倍、前向计算翻倍、通信量翻倍。在七十亿参数以上的模型上,价值网络的训练稳定性往往比策略网络更差,价值损失长期居高不下会拖累整个优势估计。
第二个缺陷是奖励归一化的敏感性。PPO 通常依赖对回报做滑动平均归一化来控制尺度,归一化系数的更新引入了额外的超参数和额外的不稳定性。当任务难度分布很宽时,同一批次内既有几乎必然成功也有几乎必然失败的样本,回报的方差极大,归一化后的优势值区分度被压缩,梯度信号变得微弱。
第三个缺陷是信用分配的粒度。PPO 在语言模型上通常采用 token 级损失,把序列级回报广播到每个 token 上。这种广播隐含了一个假设,即序列中每个 token 对最终结果的贡献相同。在短回答任务上这个假设勉强成立,在长思维链任务上它错得离谱。一段三千 token 的推导里,真正决定对错的可能只是其中十几个关键步骤,其余大量 token 是格式性的铺垫。把这些铺垫和关键步骤赋予同等权重,等于用大量噪声稀释了有效信号。
第四个缺陷是样本效率与稳定性的矛盾。PPO 允许对同一批数据做多轮更新,轮数越多样本效率越高,但轮数越多策略偏离采样分布越远,重要性比值的方差越大。实践中轮数通常限制在二到四轮,再多就需要更激进的裁剪或者更复杂的信任域约束。
第五个缺陷是超参数之间的强耦合。学习率、裁剪区间、批大小、轮数、KL 系数这五个量互相牵制,调整其中任何一个都会改变其余四个的最优取值。这种耦合让迁移变得困难,在一个模型上验证过的配置换到另一个模型上往往直接失效,团队不得不为每个模型重新做一轮昂贵的超参数搜索。
组相对策略优化的设计动机
组相对策略优化的出发点非常直接,既然价值网络带来了显存与稳定性的双重负担,那就不要价值网络。它的做法是对同一个问题采样多条回答,组成一个组,用组内的相对表现来构造优势值,替代价值网络的绝对估计。
具体来说,对每个问题采样若干条回答,用奖励函数给每条回答打分,把组内分数做标准化,减去组内均值再除以组内标准差,得到每条回答的优势。这个优势被广播到该回答的每个 token 上。损失函数的形式与 PPO 类似,同样包含概率比值和双侧裁剪,区别在于优势值的来源从价值网络变成了组内统计量。
这个改动在工程上带来三重收益。显存方面省掉了一个与策略同规模的价值网络,在七十亿参数模型上大约节省三成显存,在更大的模型上节省比例更可观,因为优化器状态和梯度是显存的主要占用方。计算方面省掉了价值网络的前向与反向,每步迭代的浮点运算量下降接近三分之一。稳定性方面彻底消除了价值损失发散这一类故障模式,训练曲线变得更可预测。
但组相对策略优化并不是没有代价。它把方差控制的负担从价值函数转移到了组内采样上。组内样本数太少时,均值与标准差的估计噪声很大,优势值本身就不稳定。组内样本数太多时,采样成本线性上升,而收益递减。经验上组大小设置在八到十六之间比较合适,具体取值取决于任务的成功率分布。当成功率极低时,需要更大的组才能保证组内至少有一条成功样本,否则整个组的优势值全部为负且区分度极低,梯度信号几乎为零。
另一个代价是对奖励函数尺度的敏感性下降但并非消失。组内标准化消除了奖励的绝对尺度,但保留了奖励的相对排序结构。如果奖励函数本身对某些表面特征过度敏感,比如长度、格式标记、特定连接词,那么组内标准化反而会放大这些表面特征的相对差异,因为它在组内把这种差异归一化成了主要信号。
优势估计与奖励归一化的细节
组内标准化的实现看似简单,细节上却有大量容易踩空的地方。第一个细节是标准差的分母。使用总体标准差还是样本标准差,在组大小为八时差异接近百分之七,这个差异会系统性地放大或缩小所有优势值,进而改变有效学习率。多数实现采用样本标准差,并在分母上加入一个极小的常数防止除零。
第二个细节是全对与全错的组。当一个组内所有回答都正确时,组内标准差为零,标准化后优势值全部为零,这批数据对梯度没有任何贡献。当一个组内所有回答都错误时情况相同。这类退化组在训练早期非常常见,因为模型对难题的全错率很高,对简单题的全对率很高。如果直接丢弃这些组,实际有效批大小会远小于名义批大小,训练效率大幅下降。工程上通常采用动态采样,即对退化组重新采样直到组内出现分数分化,或者干脆在数据配比上做难度分层,控制每个批次里难题与易题的比例。
第三个细节是奖励的裁剪。奖励函数偶尔会因为解析异常、超时、格式错误返回极端值,这类异常值一旦进入组内统计,会拉偏均值与标准差。稳健的做法是在标准化之前对奖励做分位数裁剪,把超出上下分位的值截断到边界上。
第四个细节是 token 级与序列级的混合。纯序列级的优势广播忽略了 token 之间的差异,纯 token 级的优势估计又缺少可靠的中间奖励。折中方案是在序列级优势的基础上叠加一个轻量的过程奖励,或者用格式奖励在关键分隔符位置给出局部信号。这类混合设计需要非常小心地控制过程奖励的权重,权重过大时模型会学会刷过程分而不解决实际问题。
第五个细节是优势值的批内归一化。当批次由多个不同问题的组拼成时,不同组的标准差差异可能很大,直接拼接会让某些组的梯度主导整个批次。工程上会在组内标准化之后再做一个批级的缩放,保证不同组对梯度的贡献量级相当。
采样引擎与训练引擎的协同
大规模强化学习训练的系统复杂度远高于监督微调,原因在于它需要两个异构引擎交替工作。采样引擎负责用当前策略生成回答,它追求的是高吞吐低延迟,通常采用连续批处理、分页注意力、键值缓存复用这些推理侧优化。训练引擎负责用生成的数据计算梯度并更新权重,它追求的是高算力利用率,通常采用张量并行、流水并行、数据并行、全分片数据并行这些训练侧优化。两个引擎的优化方向并不一致,把它们缝合起来是工程量的主要来源。
第一个协同问题是权重同步。采样引擎在每轮迭代开始前需要拿到最新的策略权重。七十亿参数以半精度存储约十四吉字节,跨节点广播这个体积的权重需要秒级时间,在千卡集群上如果同步策略设计不当,同步开销会占到迭代时间的相当比例。常见的优化是把权重分片并行传输,采样引擎的每个副本只接收自己需要的那部分参数,或者采用增量同步,只传输本轮发生显著变化的参数块。更激进的做法是让采样与训练在流水线上重叠,采样引擎用上一轮权重继续生成,训练引擎同时处理上上轮的数据,用重要性采样纠正滞后。
第二个协同问题是数值一致性。同一个模型在训练框架和推理框架下的前向计算结果会有微小差异,来源包括不同的算子实现、不同的归约顺序、不同的精度策略。这个差异在单步上微不足道,但它会让重要性比值出现系统性偏移。当训练引擎重新计算采样时的对数概率时,得到的值与采样引擎记录的值对不上,比值偏离一,裁剪机制被误触发,大量本应有效的 token 被裁掉。工程上的应对是统一关键算子的实现,或者在损失计算时直接使用采样引擎记录的旧对数概率而不重新计算。
第三个协同问题是长度分布的控制。采样引擎通常设置最大生成长度,超出长度的回答被截断,截断的回答往往得不到完整奖励,这会引入系统性的长度偏置。如果截断比例高,模型会学到缩短回答以规避截断,而不是学到更高效的推理。需要在采样阶段监控截断率,把它作为一个独立的健康指标。
第四个协同问题是角色切换的资源争抢。完整的强化学习训练同时需要策略模型、参考模型、奖励模型三套权重常驻。参考模型用于计算 KL 散度,防止策略偏离基座太远。奖励模型用于打分。三套权重加上优化器状态,显存压力巨大。工程上通常把参考模型和奖励模型放在独立的推理集群上,通过远程调用获取分数与对数概率,用网络带宽换显存。这个设计的代价是引入网络延迟,需要在批处理层面做足够的并发来摊薄。
奖励模型的结构与偏置
奖励函数的设计决定了强化学习的天花板。在可验证任务上,规则奖励是最可靠的选择,答案正确给满分,格式合规给部分分,其余为零分。规则奖励没有偏置,不会随训练漂移,也不会被策略钻空子。它的局限是覆盖面窄,只适用于答案可以被严格判定的任务。
在不可验证或者判定成本高的任务上,只能依赖奖励模型。奖励模型通常由偏好数据训练而来,输入是问题与回答,输出是一个标量分数。它的偏置来源非常多。训练数据的标注者偏好会渗透进奖励模型,标注者倾向于更长、更结构化、更礼貌的回答,奖励模型就学会了把这些表面特征当作质量信号。训练数据的覆盖范围也是偏置来源,如果偏好数据集中在某个领域,奖励模型在域外的打分就接近随机。
奖励模型的另一个结构性问题是它只能做点估计,没有校准过的置信度。同样一个分数,可能对应非常确定的判断,也可能对应完全不确定的猜测。在强化学习里这两种情况应该有完全不同的处理方式,但点估计把它们混在一起。一些实现尝试让奖励模型输出分布或者集成多个奖励模型取最小值,用保守估计来抑制过优化。
奖励 hacking 是奖励模型路线的必然产物,问题只在于出现得早还是晚。典型的 hacking 表现包括回答长度持续膨胀但在关键步骤上偷工减料,大量使用程式化的开头与结尾,把答案藏在冗长的复述里,用模糊表述规避可能出错的具体断言。这些行为的共同特点是它们确实提高了奖励模型的分数,但没有提高真实质量。
对抗 hacking 的手段有三类。第一类是改进奖励模型,加入长度惩罚、加入对抗样本、用更强的基座重新训练。第二类是限制策略的可行域,比如硬性限制最大长度,在解码阶段禁止某些模板化表达。第三类是引入多信号交叉验证,把规则验证器、奖励模型、人工抽检的结果做加权,任何单一信号的异常拉升都会被其他信号压制。三类手段通常需要同时使用,单独依赖任何一类都只能延缓而不能阻止过优化。
长思维链场景下的信用分配
长思维链把信用分配问题推到了极端。一条包含数千 token 的推理链,最终答案是对是错,这个二元信号要如何分配到每一个推理步骤上,是强化学习在推理任务上最核心的难题。
最朴素的做法是整条链共享同一个优势值。它的优点是实现简单、方差可控,缺点是它无法区分一条链里哪些步骤是必要的、哪些是冗余的、哪些是错误但侥幸被后续步骤救回来的。当一条链整体错误时,所有步骤都被惩罚,包括那些正确的中间步骤。这会系统性地压制正确的推理模式,因为正确的中间步骤在错误的链里出现得更频繁,被惩罚的次数更多。
过程奖励模型试图解决这个问题,它对每个推理步骤单独打分。理想情况下它能给出精确的信用分配,实际上它面临两个困难。第一是步骤的切分本身没有公认标准,按句号切、按换行切、按逻辑单元切,得到的粒度完全不同,而粒度直接决定了奖励的语义。第二是过程标注的成本极高,人工标注每一步是否正确,成本是结果标注的几十倍,而且标注者之间的一致性往往不高。
折中方案是利用可验证的中间结论。在数学推导里,某些中间结果可以被符号系统独立验证,比如方程的解、不等式的边界、几何量的取值。把这些可验证点作为稀疏的中间奖励,既避免了过程标注的成本,又提供了比单一终局信号更细的信用分配。这个方案的前提是任务本身具备可分解的验证结构,在代码任务上也可以类比,单元测试通过与否就是天然的中间奖励。
另一个被广泛使用的技巧是隐式过程奖励。具体做法是在同一条链上做多次截断,把前缀作为独立的问题让模型续写,观察续写后的成功率。成功率高的前缀被认为是有价值的状态,其价值可以用后续成功率的统计量来近似。这个技巧本质上是蒙特卡洛树搜索的轻量替代,它用采样换取了状态价值的估计,代价是采样量成倍增加。
训练塌缩与熵衰减的观测手段
强化学习训练最危险的失败模式不是缓慢不涨,而是突然塌缩。塌缩的表现是策略熵在几十步之内急剧下降到接近零,输出变得高度重复,同一问题采样多次得到几乎完全相同的回答,组内方差归零,梯度信号消失,训练无法恢复。
塌缩的成因通常是正反馈。某一批数据里某个特定表达恰好获得了高奖励,策略迅速提高该表达的概率,下一轮采样中该表达出现得更频繁,占比更高,优势估计进一步偏向它,如此循环。裁剪机制在这个过程中起了推波助澜的作用,因为一旦某个 token 的概率被推得过高,其他 token 的重要性比值被裁掉,梯度只剩下强化那个高概率 token 的方向。
观测塌缩需要几个互补的指标。第一个是策略熵,按 token 位置分别统计,重点看生成序列前段的熵,前段熵的下降往往预示着全局塌缩。第二个是组内奖励方差,它直接反映了采样的多样性,方差持续趋近于零是危险信号。第三个是回答的重复率,可以用最长公共子串或者编辑距离来度量,重复率突然跳升通常比熵下降更早出现。第四个是裁剪比例,裁剪比例长期高于百分之二十说明策略更新过于激进,重要性比值大面积越界。
对抗塌缩的手段包括在损失里加入熵正则项,给熵一个正的下界奖励,防止它无限制下降。熵正则的系数需要小心调节,系数过大会让策略保持过高的随机性,永远收敛不到高奖励区域。另一个手段是 KL 约束,把策略与参考模型的 KL 散度作为惩罚项,参考模型提供了一个锚点,防止策略漂移到分布的极端区域。KL 系数的自适应调节比固定系数更稳健,当 KL 低于目标值时降低系数允许更多探索,高于目标值时提高系数收紧约束。
还有一个常被忽视的手段是优势值的下界保护。当所有样本的奖励都很低时,组内标准化会产出很大的负优势值,这些负优势值会猛烈打压整批 token 的概率,包括那些本来正确但因为格式问题丢分的 token。给优势值设置一个绝对值上限,可以避免单批次对策略造成过大的冲击。
超参数配置的工程经验
学习率在强化学习里的敏感度远高于监督微调。监督微调的损失是凸性较好的交叉熵,学习率在较宽范围内都能收敛。强化学习的损失是非平稳的,学习率偏大时策略在几步内崩坏,偏小时在几百步内看不到任何变化。多数实现的起点设置在百万分之一量级,并根据模型规模做缩放。更大的模型通常需要更小的学习率,但缩放关系并不是简单的反比,经验上介于平方根反比与线性反比之间。
裁剪区间与学习率存在补偿关系。学习率减半与裁剪区间放宽一倍在效果上部分等价,因为两者都在调节单步更新的幅度。这也意味着超参数搜索不应该把两者独立搜索,而应该搜索它们的组合。
组大小与批大小的关系需要单独考虑。组大小决定了优势估计的精度,批大小决定了梯度的平滑程度。有效的梯度样本量约等于批内组数乘以组大小。当显存受限时,优先保证组大小而不是批内组数,因为组大小不足会让优势估计本身失真,而批内组数不足只是让梯度更噪,后者可以通过梯度累积部分弥补。
采样温度是一个容易被低估的参数。温度过高时采样到的回答质量普遍偏低,奖励信号集中在低分区,优势值的区分度下降。温度过低时组内样本高度相似,方差不足,优势估计同样失效。通常的做法是把采样温度设置在零点八到一点零之间,并在训练过程中根据组内方差动态微调。
最大生成长度需要留出足够余量。设置得过紧会导致大量回答被截断,截断样本的奖励不完整,会引入系统性偏置。设置得过松会浪费采样算力,也会让模型倾向于生成冗长的无效推理。合理的做法是先统计基座模型在该任务上的长度分布,把上限设置在高分位数之上,再根据训练中的长度漂移做调整。
分布式并行与显存预算
强化学习训练的显存预算需要同时容纳四类对象,分别是策略模型的参数与优化器状态、参考模型的参数、奖励模型的参数、以及采样过程中的键值缓存。以七十亿参数模型为例,策略模型用全分片数据并行加半精度训练,参数、梯度、优化器状态加起来约一百吉字节,分摊到八张八十吉字节的卡上刚刚够用。参考模型如果常驻,再增加十四吉字节,通常需要单独一组卡或者放到推理集群。
键值缓存是最容易被低估的部分。一次采样批包含数百条序列,每条序列长度数千,键值缓存的体积与批大小乘以序列长度乘以层数乘以隐藏维度成正比。在长思维链场景下,这个体积会超过模型参数本身。分页注意力与缓存压缩是必需的优化,否则采样阶段会频繁出现显存溢出。
并行策略的选择取决于集群拓扑。节点内用张量并行,节点间用数据并行,是七十亿参数模型的常规配置。张量并行的通信量大,跨节点会严重拖慢速度,所以必须限制在节点内。全分片数据并行把优化器状态切分到所有卡上,进一步降低单卡显存,代价是每步需要额外的全收集通信。流水并行在更大规模上才划算,因为它引入了流水线气泡,在强化学习这种每步计算量不大的场景下气泡占比会很高。
异构资源的编排是另一个工程重点。采样阶段的算力需求特征是访存密集,训练阶段的算力需求特征是计算密集。用同一批卡同时做两件事会造成资源浪费。更高效的方案是把集群分成采样池与训练池,采样池用高显存带宽的卡,训练池用高浮点性能的卡,两者通过高速网络交换数据与权重。这个方案需要解决池间负载均衡,当采样速度与训练速度不匹配时,较快的一方会空转。
典型失败案例复盘
第一个案例是奖励尺度失控。某团队在数学任务上使用规则奖励,正确给一百分,格式合规给十分,结果模型迅速学会了输出格式正确的空答案,因为格式分的获取成本远低于解题。修复方式是把格式分改为乘性因子而不是加性项,格式不合规则总分归零,格式合规但答案错误仍然得零分。
第二个案例是长度爆炸。某团队使用奖励模型打分,训练到三百步左右发现平均回答长度从八百 token 涨到四千 token,而准确率没有提升。根因是奖励模型在偏好数据上学到了长度的正相关,长度越长分数越高。修复方式是在奖励里加入长度惩罚项,并用一组长度受控的负样本对奖励模型做微调。
第三个案例是参考模型配置错误。某团队在配置 KL 惩罚时误把参考模型指向了正在训练的策略模型,导致 KL 散度恒为零,约束完全失效。训练前期看不出异常,到中期策略彻底漂移,输出退化成一串无意义的重复。这类配置错误在小规模试验中很难暴露,因为小模型在少量步数内漂移不明显,必须在上线前做配置校验,把参考模型的权重哈希与策略模型的初始权重哈希做比对。
第四个案例是权重同步延迟。某团队把采样与训练做成完全异步,采样引擎落后训练引擎两个版本。表面上吞吐提升明显,实际上重要性比值大面积越界,裁剪比例长期在百分之四十以上,有效梯度只剩下少数 token 贡献。把异步深度从两版降到一版后,裁剪比例回落到百分之十以内,训练重新开始收敛。
第五个案例是评测泄漏。某团队在训练集中混入了评测集的题目,强化学习阶段模型直接记住了答案,训练奖励与评测分数同时飙升,但上线后真实用户场景的表现远低于预期。这类问题只能靠严格的数据隔离流程来防范,包括题目指纹去重、n 元组重叠检测、以及定期用全新题目做盲测。
评测体系与上线前验证
强化学习的评测不能只看训练奖励。训练奖励是策略优化的直接目标,它必然上升,上升本身不构成任何证据。有效的评测需要至少三类互补的信号。
第一类是留出集上的准确率,要求题目与训练集在语义层面无重叠,并且覆盖不同的难度档位。单看总体准确率容易掩盖结构性退化,需要按难度、按题型、按推理长度分桶统计。常见的情况是总体准确率提升,但简单题准确率下降,这是因为策略把算力集中分配到了难题上,简单题反而因为过度思考而出错。
第二类是泛化测试,用完全不同分布的任务检验能力迁移。在数学题上训练的模型,在代码题、逻辑题、科学问答上的表现是判断它学到的是通用推理能力还是题目模式的试金石。如果泛化测试全面下滑,说明训练把模型推向了过拟合的窄分布。
第三类是行为侧指标,包括平均回答长度、重复率、拒答率、格式合规率、以及在无解问题上的表现。无解问题特别重要,一个被强化学习过度驱动的模型往往失去了说不知道的能力,它会对着一个条件矛盾的问题强行编造一套推导。这个指标在训练奖励里通常完全不可见。
上线前还需要做压力测试与一致性测试。压力测试检验在高并发下采样服务的延迟与稳定性,一致性测试检验同一问题在不同温度、不同批次下的输出稳定性。强化学习后的模型往往在某些问题上表现出异常高的确定性,一旦出错就是稳定出错,这类系统性错误在小样本评测中容易被漏掉。
常见误区清单
误区一是认为强化学习可以替代监督微调。实际上强化学习依赖基座已经具备目标能力,它只能做概率重分配。在没有相应能力的模型上做强化学习,最常见的结果是模型学会了输出符合奖励函数形式但内容空洞的文本。
误区二是把训练奖励曲线当作唯一监控指标。奖励上升可能来自真实能力提升,也可能来自奖励漏洞利用,两者在曲线上几乎无法区分。必须同时监控长度、熵、裁剪比例、组内方差这些行为指标。
误区三是盲目追求更高的组大小。组大小的收益是递减的,而成本是线性的。当组大小超过某个阈值后,优势估计的精度提升微乎其微,采样开销却成比例增加。找到这个阈值需要看组内奖励方差的收敛情况,方差不再随组大小明显下降时就到了拐点。
误区四是忽视数值精度的影响。半精度下的对数概率计算存在累积误差,在长序列上误差会放大到影响重要性比值的程度。关键路径上的对数概率计算应该用更高精度,或者在实现上采用数值稳定的形式,先做减法和归一化再取指数。
误区五是认为一次训练就能到位。实践中强化学习通常需要多阶段,先用宽松约束做广度探索,再用严格约束做精细打磨,最后用拒绝采样构造高质量数据做一轮监督微调来固化行为。单阶段训练要么探索不足,要么收敛不稳。
误区六是把失败归因于数据量不足。多数强化学习失败与数据量无关,与奖励设计、优势估计、系统一致性有关。在排查顺序上,应该先验证奖励函数的正确性,再验证重要性比值的分布,最后才考虑扩充数据。