欢迎光临
我们一直在努力

大模型面试必备12-熵坍塌现象?如何解决熵坍塌?


拒绝“早熟”:大模型强化学习中的“熵坍塌”现象及破局之道

在大模型(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πθ(yty<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π[tCov(θlogπθ(yty<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 惩罚,强行刹车。

    赞(0)
    未经允许不得转载:171主机测评 » 大模型面试必备12-熵坍塌现象?如何解决熵坍塌?
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址