拒绝“早熟”:大模型强化学习中的“熵坍塌”现象及破局之道
在大模型(LLM)的强化学习(RL)阶段,研究人员经常会遇到一个令人头疼的瓶颈:模型在训练刚开始没多久,就突然变得“极其自信”,只会输出千篇一律的套路回答。无论后面再投入多少算力和时间,模型的推理能力都无法进一步提升。
这个现象在学术界被称为熵坍塌(Entropy Collapse)。今天,我们就来硬核拆解这个面试中的高频前沿考点。
一、 什么是“熵坍塌”现象?
简单来说,熵坍塌是指在大模型强化学习的早期,策略熵(Entropy)急剧下降的现象。
熵的下降意味着模型变得过度自信,采样输出的回答几乎相同,这严重限制了模型的探索空间与推理能力。
我们可以看一组极其夸张的数据对比(以总计 2500 步的训练为例):
-
前 200 步: 熵迅速下降了 73%,同时模型性能提升了 76%。
-
前 800 步: 熵下降了 94%,模型性能提升了 93%。
-
后 1600 步: 熵仅仅下降了 6%,模型性能也只获得了微不足道的 7% 的提升。
核心结论: 超过 95% 的熵消耗和性能增益都发生在训练的“极早期”阶段。模型在少量步数内就匆匆决定了最终性能,导致后续漫长的训练沦为无效的算力消耗。
二、 为什么会出现熵坍塌?(数学推导篇)
面试官最喜欢问的就是“为什么”。我们需要从策略梯度(Policy Gradient)的公式底层来寻找答案。
强化学习的策略梯度公式为:
∇θJ(θ)=Eπ[∑t∇θlogπθ(yt∣y<t)At]\\nabla_{\\theta}J(\\theta)=\\mathbb{E}_{\\pi}[\\sum_{t}\\nabla_{\\theta}\\log \\pi_{\\theta}(y_{t}|y_{<t})A_{t}]∇θJ(θ)=Eπ[t∑∇θlogπθ(yt∣y<t)At]
结合统计学中协方差的定义(Cov(X,Y)=E[XY]−E[X]E[Y]Cov(X,Y) = \\mathbb{E}[XY] – \\mathbb{E}[X]\\mathbb{E}[Y]Cov(X,Y)=E[XY]−E[X]E[Y]),由于策略梯度的期望 E[∇θlogπθ]=0\\mathbb{E}[\\nabla_{\\theta}\\log \\pi_{\\theta}]=0E[∇θlogπθ]=0,上述公式的核心项可以被简化为:
∇θJ(θ)=Eπ[∑tCov(∇θlogπθ(yt∣y<t),At)]\\nabla_{\\theta}J(\\theta)=\\mathbb{E}_{\\pi}[\\sum_{t}Cov(\\nabla_{\\theta}\\log \\pi_{\\theta}(y_{t}|y_{<t}), A_{t})]∇θJ(θ)=Eπ[t∑Cov(∇θlogπθ(yt∣y<t),At)]
这个公式告诉我们一个真相:策略梯度的方向和大小,是由“动作概率的对数梯度”与“优势函数(AtA_tAt)”的协方差直接决定的。
-
协方差为正(概率高 & 奖励高): 推动参数向增大该动作概率的方向更新。这会让原本概率就高的 Token 变得更高,其他 Token 的概率被严重压缩,导致策略分布变得异常尖锐,熵快速下降。
-
协方差为负(如概率低 & 奖励高): 理论上会促进模型去探索,增加熵。
大模型的先天“原罪”:
因为 LLM 作为一个经过预训练的强大模型,本身已经具备了极强的先验知识。对于很多问题,它天生倾向生成的高概率答案往往就是正确的,从而能获得高优势值(AtA_tAt)。这就导致在训练初期,Cov(logπ,A)Cov(\\log \\pi, A)Cov(logπ,A) 持续保持为正值,模型只是在盲目“确认和强化”已有的认知,而不去探索新解法,最终导致了熵的迅速坍塌。
三、 如何解决熵坍塌?(两大前沿对策)
既然找出了病因,目前的学术界和工业界(如字节跳动的 DAPO)是怎么开药方的呢?
方法一:Clip-Higher 策略(非对称裁剪)
传统的 PPO 算法会对更新幅度进行对称裁剪,而 Clip-Higher 策略通过解耦上下限裁剪,来平衡探索与利用。它使用了两个不同的裁剪参数:
-
ϵhigh\\epsilon_{high}ϵhigh(允许更大探索): 用于限制低概率 Token 的概率提升幅度。比如 ϵhigh=0.28\\epsilon_{high} = 0.28ϵhigh=0.28,如果一个 Token 原始概率是 0.01,更新后最大可达 0.0128(提升 28%)。这给了低概率 Token 更充分的探索空间。
-
ϵlow\\epsilon_{low}ϵlow(防止过度利用): 用于限制高概率 Token 的概率降低幅度。比如 ϵlow=0.2\\epsilon_{low} = 0.2ϵlow=0.2,如果高概率 Token 是 0.9,更新后必须达到 0.72。这迫使模型谨慎对待高分答案,防止过度压榨已知策略。
方法二:KL-Cov(高协方差惩罚)
这种方法的核心是利用 KL 散度,约束当前策略不要偏离参考策略(πref\\pi_{ref}πref)太远。损失函数变为:LKL=L+βDKL(πθ∣∣πref)L_{KL}=L+\\beta D_{KL}(\\pi_{\\theta}||\\pi_{ref})LKL=L+βDKL(πθ∣∣πref)。
具体操作步骤非常巧妙:
计算 Batch 中每个 Token 的协方差。
对协方差进行排序,选出协方差最高的前 Top-K 比例的 Token。
在计算损失时,只对这些被选中的“高协方差” Token 额外施加 KL 散度惩罚项。这迫使模型在更新这些最容易导致熵坍塌的 Token 时保持谨慎。
四、 面试高频总结 (Cheat Sheet)
如果在面试中被问到大模型强化学习的痛点,请务必抛出“熵坍塌”这个概念:
现象: RL 训练极早期,熵快速掉底,模型失去探索能力,导致 95% 以上的训练步数变成无用功。
本质原因: 预训练模型底子太好,导致高概率输出与高奖励强相关(协方差为正),模型陷入“舒适区”,不断强化已知的高概率 Token。

print('hello world')
-
使用 DAPO 的 Clip-Higher 非对称裁剪,给低概率词更多机会,限制高概率词的过度更新。
-
使用 KL-Cov 策略,专门揪出那些“高协方差”的 Token,给它们单独施加 KL 惩罚,强行刹车。



