标签 信息熵 下的文章

编者按: 为什么在强化学习(RL)中,模型往往需要消耗比有监督学习多出数个数量级的计算资源,却只能换来看似微薄的性能提升,且常常陷入训练不稳定的泥潭?

本文从信息论角度出发,对比了有监督学习与强化学习在单位样本中可获取信息量的根本差异:前者通过明确的正确标签直接提供高信息密度的学习信号,而后者仅依赖二元的成功/失败反馈,其信息熵在通过率极低或极高时趋近于零。作者进一步指出,只有当模型的“通过率”处于约 50% 的“金发姑娘区”时,RL 才能高效学习,而这通常只出现在训练末期。此外,文章还剖析了 RL 中梯度估计方差巨大、容易被简单启发式策略主导、难以培养通用推理能力等深层问题,并反思了人类学习机制与当前 model-free RL 的本质差距。

这篇文章提醒我们:若想让强化学习真正释放其潜力,不能仅靠堆算力,而必须重新思考如何设计更密集、更结构化的反馈机制 —— 否则,我们可能只是在用极其昂贵的方式,重复确认一个早已写在预训练权重里的答案。

作者 | Dwarkesh Patel

编译 | 岳扬

最近,人们[1]一直在讨论[2]:在强化学习(RL)中生成单个样本所需的计算量(FLOPs)远高于有监督学习(supervised learning)。在预训练阶段,模型对每一个用于训练的 token 都能立即获得一个学习信号;而在 RL 中,必须展开一整条长达数万 tokens 的推理思维链,才能在最后得到一个奖励信号(例如,我写的代码单元测试是否通过?这道数学题的答案是否正确?等等)。

但这只是问题的一半。这里有一种简单的方法可以比较强化学习与有监督学习的学习效率:

Bits/FLOP = Samples/Flop × Bits/Sample

我还没听到有人讨论我们公式中的这一项:Bits/Sample(每个样本包含多少有用信息)。而且在训练的大部分阶段,强化学习的每一个样本所包含的“有效学习信息量”比有监督学习要低得多。

01 用大白话来说

在有监督学习(也就是预训练)中,模型只是在疯狂吸收信息(bits)。每一个 token 都像是一条线索,它不仅能帮你理解语言本身的构造,还能让你窥见创造这段语言的思维过程,以及那个思维所感知的现实世界。在训练初期,当你用一个完全随机初始化的模型时,你对这些内容都处于最大程度的不确定状态。因此,每个 token 都会让你“恍然大悟”。而且你会立刻得到一个精确的信号,知道自己对正确答案的预测错得多离谱,以及需要调整哪些参数来减少错误。

假设你从一个随机初始化的模型开始,并启动训练。如果你使用有监督学习对 “The sky is” 这个短语做 next-token-prediction,那么训练循环会这样工作:“正确答案其实是 ‘blue’。你预测 ‘blue’ 的概率只有 0.001%。现在,请大幅加强那些本该指向 ‘blue’ 的连接权重。好了,下一个 token。”

而在使用策略梯度(policy gradient)的强化学习中,你会增加所有回答正确的轨迹的权重,并降低所有回答错误的轨迹的权重。但问题是,一个还没怎么学会东西的模型,几乎不可能凭运气就答对。

如果你用 RL 来做“The sky is”的 next-token-prediction,训练循环大概会是这样:“好吧,‘halcyon’ 是错的,别再做导致输出‘halcyon’的操作了…… 好吧,‘serendipity’ 也是错的……” 然后就这样反复试错,猜错的次数差不多得有词汇表总量那么多(约 10 万次)。

02 详细分析

让我们思考一下:随着通过率(p)的变化,每个样本所能获得的最大信息量(bits/sample)会如何变化。这里的“通过率”指的是你给出正确答案的概率。 为简化起见,我们假设答案长度只有一个词元。那么,对于一个完全未经训练的模型,其通过率仅仅是 1/(词汇表大小)。

在有监督学习中,每个样本都会明确告诉你正确标签是什么。你学到的新信息量,取决于你看到正确答案时有多“惊讶” —— 你的通过率越低(即正确答案的先验概率越小),你从这个标签中学到的东西就越多。信息熵的基本公式告诉我们:在有监督学习中,你从每个样本中最多可以学到 -log(p) bits 的信息。

而在强化学习中,你只会被告知答案是否正确。你能从中提取的信息量,受限于你对这个二元结果(对/错)的不确定性。如果你几乎总是通过(p ≈ 1)或几乎总是失败(p ≈ 0),那么每次试验都很难让你感到意外。当通过的概率像抛硬币一样时(p ≈ 0.5),你学到的东西最多。 对于一个二元随机变量,其信息量的上限由熵公式给出:在 RL 中,你从每个样本中最多能学到 Entropy(p) = -p log(p) - (1-p) log(1-p)1 bits 的信息。

好,我们来画图。

看起来还不算太糟。是的,在通过率前 50% 的范围内,预训练明显更好,但在后 50% 的范围内,强化学习表现更佳。然而,这张图极具误导性。根据缩放定律(scaling laws)中的幂律关系,每当你想把“通过率”(pass rate)提升一个数量级,你都需要投入大致相同量级的计算资源。 如果你花了 X FLOPs 将通过率从 1/100,000 提升到 1/10,000,那么你也需要 X FLOPs 才能将通过率从 1/10,000 提升到 1/1,000。因此,我们应该使用对数刻度来表示通过率 —— 以便使 X 轴的每一单位增量对应于相同数量的计算开销(FLOPs)。

这张图看起来真令人沮丧。强化学习在样本信息密度上与预训练相当的区域,仅仅是训练末期的一小段,而且此时模型本身已经相当不错了。

再次强调,这一问题完全独立于另一个观点:即从强化学习中获取单个样本(也就是在得到任何信号前必须完整展开一整条推理轨迹)可能需要耗费高出数百万倍的计算量。

03 方差(variance)让实际情况甚至比这更糟

训练初期的强化学习,实际情况其实比上面描述的更为严峻。当通过率很低时,对梯度的估计会变得极其混乱且难以预测。 要么在当前 batch 生成的样本中,根本就没有采样到正确答案,在这种情况下,几乎得不到任何有用的学习信号。要么碰巧采样到了一次,然后就会得到一个巨大的梯度峰值。模型的训练过程会被剧烈地、不规则地“拉扯”(梯度忽大忽小、方向混乱),如果要追求高效、稳定的训练,这样是非常糟糕的。2

有趣的是,预训练的问题恰好相反,方差(variance)在训练末期会变得非常高。随着预训练的推进,你会逐渐耗尽那些可约损失(reducible loss,即模型实际能从数据中学到的东西)。剩下的主要都是不可约损失(irreducible loss),不可约损失指的是网络文本数据固有的不可预测性。

提示词 “Bob’s favorite color is” 应该怎么结尾?这完全取决于 Bob 是谁。对于这种问题,并不存在什么标准正确答案能让你的超级智能模型通过训练达到很高的预测准确率。但是,模型仍然会根据某人在网上留下的随机答案,获得梯度更新(gradient update)。而这种噪音,会淹没当前 batch 中少数几个真正可学习的词元为我们提供的真实信号。我不知道这是否准确,但预训练阶段末期出现的这种方差激增,似乎与为什么在预训练过程中需要增大 batch sizes 有关。

04 进入 RL 的“金发姑娘区”(Goldilocks zone)

如果 RL 在通过率远高于 1% 时效果最佳,那么这就引出了一个问题:我们该如何设计 RL 训练过程,才能让模型进入并维持在这个高效学习的状态中?

例如,在进行强化学习(RL)时,我们可以通过“预训练更多的数据”和“增加推理时的计算量(比如让模型想得更久)”这两种方式,来让模型变得更聪明、回答得更准确,提高模型的“通过率”,从而让每个样本带来更多的有效信息(bits)。

有观点指出,课程学习(curriculum learning)在预训练中作用不大[3],但在 RL 中却常常不可或缺[4]。这完全说得通 —— 因为 RL 只有在通过率处于这个“金发姑娘区”时,每个样本才能带来有意义的信息量。因此,为了训练效果好,你必须精心安排学习内容的顺序,要保证问题的难度是随着模型能力的提升而同步加难的,不要一下子给太难的题,也不要一直做太简单的题。

作者提出的“通过率”理论可以很好地解释为什么“自我对弈”(像 AlphaGo 那样自己跟自己下棋)在强化学习历史上特别管用。因为当你跟一个水平旗鼓相当的对手比赛时,你赢的概率大约就是 50%。在这个理论中,50%是一个最佳状态,意味着每次比赛结果(输或赢)带给你的信息量是最大的,能让你学得最快。

但自我对弈并不是唯一能让训练过程中保持高通过率的方法。我们还可以设计出一种“proxy evaluation”机制,这种机制能提供更密集的反馈信息。这里的“密集”具体指以下两种情况之一:

1)Samples/FLOP 密度:通过“proxy evaluation”方法,我们可以在一个强化学习回合刚开始不久时就估算出最终的奖励,而不必真的把整个过程跑完,从而省去了后续的大量计算消耗。这种机制其实就是所谓的“价值函数”。

2)Bits/Sample 密度:我们可以设计一个比最终目标更易达成的 proxy objectives 来指导模型。我能想到的最简单例子是过程奖励模型(process-reward model),它会这样说:“嘿,这次生成的答案虽然错了,但我看得出来,它一开始的推理方向是对的。那我们就给这些早期的 token 增加一点权重。”

Deepseek R1[5] 论文的 4.2 节讨论并解释了,为什么直到现在,要为大语言模型开发出像这样好用的 proxy objectives 依然是一件很难的事情。

05 信息量虽少,但价值高

虽然在强化学习中,每单位计算量(FLOP)学到的 bits 确实少得多,但这些 bits 却非常重要,它们与预训练中获得的 bits 信息不能简单地相提并论。 这其中主要有两个关键原因:

  • 预训练就像是让模型把互联网上现有的数据全记下来,但这种知识与“如何完成具有经济价值的任务”只有部分且间接的关联;而强化学习则是直接教模型怎么去解决那些真正有用、能产生价值的实际问题。
  • 即使预训练语料中包含了完成某项任务的“操作说明”(比如教程、具体步骤或答案),它也缺少一种关键的东西 —— “思维轨迹”(thinking trace)。也就是说,数据里没有展示模型犯错时是怎么自我纠正的,也没有展示如何利用模型独特的、非人类的方式去组合技能来解决问题。而这些深层的思考痕迹,正是强化学习能提供的东西。

反驳的观点认为,虽然这些信息很有价值,但它们只在一个非常窄的通过率范围内(比如模型已经挺聪明了,但还没完全学会的时候)才能被获取。之所以要强调这一点,是因为在训练的大部分时间里,模型的通过率都极低(接近0),在对数尺度上看,这些低通过率的阶段占据了很大的比重,这意味着真正能高效学习的窗口期其实很短。

现在我们就能理解那些关于 RLHF/RL 仅能激发预训练模型中已有的潜在能力的说法了[6]。事实当然如此。如果预训练模型初始的通过率不够高,那么强化学习的 bits/sample 就会低得可怜,从而根本无法进行有效学习。 围棋对战中的“第 37 手”是一个非常著名的案例,它证明了强化学习确实能教给模型一种全新的、前所未有的策略。值得注意的是,AlphaGo 是通过自我对弈训练出来的(见上文关于自我对弈如何提高通过率的论述),而且以当时的标准来看[7],其计算消耗之巨令人吃惊。

06 强化学习的不均衡

人们指出,从经验上看,RLVR(强化学习 + 可验证奖励)实际上只是让模型将某种思维模式与特定问题类型关联起来,而并未真正培养出一种更通用的策略 —— 比如先退一步,再仔细思考最佳解法。

仔细想想。怎么会有模型在国际编程竞赛中达到世界顶尖水平,却同时在代码库中留下了大量本可预见的 Bug 和技术债务?

这种奇怪的不均衡该如何解释?也许 RLVR 无法区分一条成功的推理轨迹到底是模型通过某种通用的推理能力(举一反三)做出来的,还是仅仅靠死记硬背某种特定的解题模板(“看到这个形状就用这个套路”)做出来的。因为它没法区分这两种过程,所以模型可能学会了后者(简单的套路),而不是前者(通用的能力)。

当你使用策略梯度(policy gradient)进行 rollout(即让模型生成完整的行为序列)时,那种更复杂、更具泛化能力的策略几乎不可能被采样到;而简单的启发式策略却很容易被采样到,并随着训练不断被强化,出现频率越来越高,最终完全主导模型的行为(即达到“固定”状态)。与此同时,真正的通用策略则越来越难以被观察到,逐渐从训练过程中消失。

那么问题来了,我们该如何搭建一座“短桥”,把简单的启发式解法,和那种更复杂、更具泛化能力的通用策略连接起来?而且,这座桥会不会随着任务时间跨度(time horizons)自然拉长而自动出现 —— 从而迫使模型发展出真正的泛化能力?

我担心的是,那种“先退一步、基于对世界的理解做出明智判断”的通用策略,即使在更长周期的任务中,也依然很难通过“可验证的奖励”(verifiable rewards)被有效识别和强化。因此,要解决这种不均衡问题,不能只靠扩大 RLVR 的规模,而必须设计更鲁棒的训练方法。

07 人类的学习方式

本节我们讨论的只是 model-free RL —— 也就是仅从一个强化学习周期结束时的二元结果(成功/失败)中获得的信息量(bits/sample)。但显然,人类的学习效率远高于此。想想假如有一位连续创业者,我们会说她拥有大量来之不易的智慧和经验。而这些学习成果中,极少部分真正来自上一次创业的“one bit”结果(即创业成功与否)。

目前还不清楚,在机器学习中,人类这种从经验中学习的方式对应的是什么机制。 显然,我们的观察与反思会不断更新我们的世界模型(world model) —— 而且这种更新并不依赖于最终结果是成功还是失败。这在人类学习过程中起着非常重要的作用。

也许我们不该只是想着“如何把 model-free RL 的通过率调到 50% 左右,因为这样做仅仅是试图从一个单一的“成功/失败”结果中,挤出那么一点点微薄的信息。也许我们应该转换思路,去研究人类是如何从环境中获取海量信息的。人类并不像现在的机器那样,只盯着最终的结果(成功或失败),而是能从过程、观察和反思中吸收大量的经验和教训。

1 这个公式的意思是:从一个二元结果中学到的信息量 =p(样本正确) × (样本正确时获得的信息量) +p(样本错误) × (样本错误时获得的信息量)。

2 感谢 Lukas Berglund 指出我此前在这一点上的阐述有误。

END

本期互动内容 🍻

❓人类从失败中能学到远不止“0/1”的反馈——你觉得 AI 系统要如何模拟这种过程性反思能力?

文中链接

[1]https://www.tobyord.com/writing/inefficiency-of-reinforcement...

[2]https://thinkingmachines.ai/blog/lora/#how-much-capacity-is-n...

[3]https://arxiv.org/pdf/2012.03107

[4]https://arxiv.org/pdf/1707.05300

[5]https://arxiv.org/abs/2501.12948

[6]https://arxiv.org/abs/2510.07364v3

[7]https://epoch.ai/data/ai-models

原文链接:

https://www.dwarkesh.com/p/bits-per-sample

在大语言模型(LLM)快速发展的今天,庞大的参数规模带来高昂的推理存储成本和回复时延,已成为实际应用中的关键挑战。特别是在面向人机对话的应用场景,模型推理效率直接影响到对话体验。在推理优化方法中,参数剪枝作为一项经典的模型压缩技术,旨在通过剔除模型中“不重要”的权重来实现参数量的显著降低与计算效率的提升。然而,传统的“剪枝-微调”范式或直接的后训练剪枝方法,往往带来明显的模型性能损失,特别是在硬件友好的半结构化稀疏(如 2:4 稀疏)场景下,该问题尤为突出。这使得应用中的模型效果和推理效率,呈现一个“鱼和熊掌”的两难局面。

面对这项挑战,美团 LongCat Interaction 团队联合上海交通大学听觉认知与计算声学实验室,以及香港科技大学的研究者,共同完成了大模型剪枝方法的创新研究,提出了名为 DenoiseRotator 的新技术。通过首先对参数矩阵进行变换,“浓缩”对结果有影响力的参数,再对重要性最低的参数进行剪枝,实现了大模型剪枝的新范式。DenoiseRotator 能够与现有的剪枝算法快速集成,有效缓解模型压缩带来的性能损失。这一研究成果已在 2025 年的 NeurIPS 会议上发表。

01 动机:传统剪枝的局限性——密集训练与稀疏推理的隐式冲突

传统后训练剪枝的一般流程可概括为:对一个已训练好的 稠密模型,基于某种启发式准则(如权重幅值或 Wanda、SparseGPT 等算法)为每个参数赋予“重要性分数”,随后根据预设的稀疏度阈值,移除分数较低的一部分权重。 尽管流程清晰,该方法存在一个本质局限:其整个剪枝过程建立在 固定不变的参数空间 上,本质上是一种 被动的筛选机制。这进一步凸显了以下深层冲突:

  • 密集训练 的本质是隐式地激励模型 充分利用每一个参数。每个参数都承载了一定的知识或推理能力,并通过参数间的协同工作共同支撑模型的整体表达能力。

  • 稀疏推理 则要求模型仅基于 被保留的部分参数 完成推理任务,并保持高性能。

这种训练目标与推理机制之间的内在不一致,意味着 直接裁剪必然会导致部分知识或推理能力的丢失,从而破坏原有参数间协同工作的平衡,引发性能下降。

02 技术方案:DenoiseRotator——从“被动筛选”到“主动优化”的范式转变

针对上述挑战,我们重新思考剪枝范式:能否在剪枝前先对模型进行 稀疏性引导的优化,使其 自身结构更易于被剪枝?基于此,我们提出了“重要性浓缩”的全新思路,并开发了 DenoiseRotator 框架予以实现。

2.1 核心思想:重要性浓缩

我们的核心目标是在执行剪枝 之前,将原本分散在众多参数上的重要性,尽可能地 集中到一个较小的参数子集中。这样,在后续剪枝过程中,被移除权重所包含的关键信息将大幅减少,从而显著增强剪枝的鲁棒性。
为量化并优化“浓缩”效果,我们引入了 信息熵 作为衡量指标。通过将参数重要性分数归一化为概率分布,其熵值直接反映了重要性的集中程度:熵越低,表明重要性越集中于少数参数。因此,我们的优化目标明确为 最小化归一化重要性分布的熵

2.2 实现机制:可学习的正交变换

DenoiseRotator 通过向 Transformer 层中引入 可学习的正交矩阵,实现重要性分布的熵减与浓缩。

如上图所示,我们在 Transformer 层的特定位置(例如 Attention 模块的 Value 和 Output 投影层前后)插入正交矩阵。这些矩阵对原始权重进行“旋转”变换,在 保持模型输出完全不变(得益于正交变换的计算不变性)的前提下,重新分配参数的重要性。

2.3 关键优势

训练与剪枝解耦:DenoiseRotator 采用 模块化设计,正交矩阵的优化与具体剪枝方法完全独立。我们首先利用校准数据,以最小化重要性熵为目标训练这些正交矩阵;训练完成后,将其合并回原始权重。此时,我们获得了一个“易于剪枝”的优化版稠密模型,可 无缝对接 任何现有剪枝工具(如 SparseGPT、Wanda)进行后续操作。

优化过程稳定:正交变换具有保范数特性,确保在重新分布重要性时,既不会人为引入也不会丢失总重要性量,从而保证了优化过程的稳定性,不影响原始模型性能。

下图直观展示了 DenoiseRotator 的有效性。以 LLaMA-3-8B 模型首层输出投影层为例,经我们的方法变换后,参数重要性分布从分散趋于高度集中,为后续剪枝奠定了坚实基础。

03 实验验证

在前文中,我们介绍了 DenoiseRotator 的核心思想——通过重要性浓缩提升剪枝鲁棒性。那么,这一方法在实际效果上表现如何?我们针对多个主流开源大模型进行了全面评测,涵盖语言建模和零样本推理任务,并与现有剪枝方法进行了对比。

3.1 实验设置:覆盖多模型、多任务、多剪枝方法

为全面评估 DenoiseRotator 的有效性,我们在多样化的实验设置下进行了系统性验证。实验覆盖了从 Mistral-7B、LLaMA3(8B/70B)到 Qwen2.5(7B/14B/32B/72B)等多个主流开源大模型,评测任务包括语言建模(使用 WikiText-2 验证集的困惑度 PPL 作为指标)和零样本推理(在 PIQA、WinoGrande、HellaSwag、ARC-e 和 ARC-c 五个基准任务上评估平均准确率)。在基线方法方面,我们将 DenoiseRotator 与三类剪枝方法结合:经典方法 Magnitude,以及先进方法 Wanda 和 SparseGPT,并在非结构化(50%稀疏)和半结构化(2:4 稀疏)两种稀疏模式下进行对比评测。

3.2 主要结果:语言建模与零样本推理全面提升

下表展示了不同模型在剪枝前后的困惑度(衡量语言建模能力)与零样本任务表现。DenoiseRotator 在所有模型和稀疏模式下均显著降低剪枝造成的性能下降,尤其在 2:4 稀疏下提升更为明显。

3.3 深入分析:熵减如何驱动剪枝鲁棒性?

我们通过消融实验验证了 重要性熵与剪枝效果的直接关联。以 LLaMA3-8B 为例,记录不同训练步数下的熵值变化与模型性能:

熵减少 13%(步数 100)即可带来零样本任务准确率提升 3.66%(66.88%➡70.54%),困惑度降低 19.5%(9.567➡7.701)。进一步优化可继续降低困惑度,验证了 重要性集中度与剪枝鲁棒性的正相关

3.4 部署效率:轻量开销,显著收益

  • 参数增量:每层新增一个(hidden_size, hidden_size)正交矩阵。以 LLaMA3-8B 为例,总参数量增加约 0.5B(占原模型 6.7%)。通过分块对角矩阵(见论文附录)可进一步降低开销,适合资源受限场景。

  • 推理耗时:单层 Transformer 的 2:4 稀疏计算耗时 4.37ms,加入正交矩阵后仅增加 0.32ms(1.24× 加速比 vs 稠密层)。

04 总结

DenoiseRotator 提出了一种创新的剪枝视角:将模型准备(重要性浓缩)与模型压缩(剪枝)两个阶段解耦。通过可学习的正交变换,主动实现参数重要性的浓缩,从而显著提升后续剪枝的鲁棒性。该方法具备 即插即用 的特性,为大规模语言模型的高效、高性能压缩提供了新的技术路径。

项目地址https://github.com/Axel-gu/DenoiseRotator

希望跟大家一起学习交流。如果大家对这项工作感兴趣,欢迎在 GitHub 上 Star、Fork 并参与讨论!

在大语言模型(LLM)快速发展的今天,庞大的参数规模带来高昂的推理存储成本和回复时延,已成为实际应用中的关键挑战。特别是在面向人机对话的应用场景,模型推理效率直接影响到对话体验。在推理优化方法中,参数剪枝作为一项经典的模型压缩技术,旨在通过剔除模型中“不重要”的权重来实现参数量的显著降低与计算效率的提升。然而,传统的“剪枝-微调”范式或直接的后训练剪枝方法,往往带来明显的模型性能损失,特别是在硬件友好的半结构化稀疏(如 2:4 稀疏)场景下,该问题尤为突出。这使得应用中的模型效果和推理效率,呈现一个“鱼和熊掌”的两难局面。

面对这项挑战,美团 LongCat Interaction 团队联合上海交通大学听觉认知与计算声学实验室,以及香港科技大学的研究者,共同完成了大模型剪枝方法的创新研究,提出了名为 DenoiseRotator 的新技术。通过首先对参数矩阵进行变换,“浓缩”对结果有影响力的参数,再对重要性最低的参数进行剪枝,实现了大模型剪枝的新范式。DenoiseRotator 能够与现有的剪枝算法快速集成,有效缓解模型压缩带来的性能损失。这一研究成果已在 2025 年的 NeurIPS 会议上发表。

01 动机:传统剪枝的局限性——密集训练与稀疏推理的隐式冲突

传统后训练剪枝的一般流程可概括为:对一个已训练好的 稠密模型,基于某种启发式准则(如权重幅值或 Wanda、SparseGPT 等算法)为每个参数赋予“重要性分数”,随后根据预设的稀疏度阈值,移除分数较低的一部分权重。 尽管流程清晰,该方法存在一个本质局限:其整个剪枝过程建立在 固定不变的参数空间 上,本质上是一种 被动的筛选机制。这进一步凸显了以下深层冲突:

  • 密集训练 的本质是隐式地激励模型 充分利用每一个参数。每个参数都承载了一定的知识或推理能力,并通过参数间的协同工作共同支撑模型的整体表达能力。

  • 稀疏推理 则要求模型仅基于 被保留的部分参数 完成推理任务,并保持高性能。

这种训练目标与推理机制之间的内在不一致,意味着 直接裁剪必然会导致部分知识或推理能力的丢失,从而破坏原有参数间协同工作的平衡,引发性能下降。

02 技术方案:DenoiseRotator——从“被动筛选”到“主动优化”的范式转变

针对上述挑战,我们重新思考剪枝范式:能否在剪枝前先对模型进行 稀疏性引导的优化,使其 自身结构更易于被剪枝?基于此,我们提出了“重要性浓缩”的全新思路,并开发了 DenoiseRotator 框架予以实现。

2.1 核心思想:重要性浓缩

我们的核心目标是在执行剪枝 之前,将原本分散在众多参数上的重要性,尽可能地 集中到一个较小的参数子集中。这样,在后续剪枝过程中,被移除权重所包含的关键信息将大幅减少,从而显著增强剪枝的鲁棒性。
为量化并优化“浓缩”效果,我们引入了 信息熵 作为衡量指标。通过将参数重要性分数归一化为概率分布,其熵值直接反映了重要性的集中程度:熵越低,表明重要性越集中于少数参数。因此,我们的优化目标明确为 最小化归一化重要性分布的熵

2.2 实现机制:可学习的正交变换

DenoiseRotator 通过向 Transformer 层中引入 可学习的正交矩阵,实现重要性分布的熵减与浓缩。

如上图所示,我们在 Transformer 层的特定位置(例如 Attention 模块的 Value 和 Output 投影层前后)插入正交矩阵。这些矩阵对原始权重进行“旋转”变换,在 保持模型输出完全不变(得益于正交变换的计算不变性)的前提下,重新分配参数的重要性。

2.3 关键优势

训练与剪枝解耦:DenoiseRotator 采用 模块化设计,正交矩阵的优化与具体剪枝方法完全独立。我们首先利用校准数据,以最小化重要性熵为目标训练这些正交矩阵;训练完成后,将其合并回原始权重。此时,我们获得了一个“易于剪枝”的优化版稠密模型,可 无缝对接 任何现有剪枝工具(如 SparseGPT、Wanda)进行后续操作。

优化过程稳定:正交变换具有保范数特性,确保在重新分布重要性时,既不会人为引入也不会丢失总重要性量,从而保证了优化过程的稳定性,不影响原始模型性能。

下图直观展示了 DenoiseRotator 的有效性。以 LLaMA-3-8B 模型首层输出投影层为例,经我们的方法变换后,参数重要性分布从分散趋于高度集中,为后续剪枝奠定了坚实基础。

03 实验验证

在前文中,我们介绍了 DenoiseRotator 的核心思想——通过重要性浓缩提升剪枝鲁棒性。那么,这一方法在实际效果上表现如何?我们针对多个主流开源大模型进行了全面评测,涵盖语言建模和零样本推理任务,并与现有剪枝方法进行了对比。

3.1 实验设置:覆盖多模型、多任务、多剪枝方法

为全面评估 DenoiseRotator 的有效性,我们在多样化的实验设置下进行了系统性验证。实验覆盖了从 Mistral-7B、LLaMA3(8B/70B)到 Qwen2.5(7B/14B/32B/72B)等多个主流开源大模型,评测任务包括语言建模(使用 WikiText-2 验证集的困惑度 PPL 作为指标)和零样本推理(在 PIQA、WinoGrande、HellaSwag、ARC-e 和 ARC-c 五个基准任务上评估平均准确率)。在基线方法方面,我们将 DenoiseRotator 与三类剪枝方法结合:经典方法 Magnitude,以及先进方法 Wanda 和 SparseGPT,并在非结构化(50%稀疏)和半结构化(2:4 稀疏)两种稀疏模式下进行对比评测。

3.2 主要结果:语言建模与零样本推理全面提升

下表展示了不同模型在剪枝前后的困惑度(衡量语言建模能力)与零样本任务表现。DenoiseRotator 在所有模型和稀疏模式下均显著降低剪枝造成的性能下降,尤其在 2:4 稀疏下提升更为明显。

3.3 深入分析:熵减如何驱动剪枝鲁棒性?

我们通过消融实验验证了 重要性熵与剪枝效果的直接关联。以 LLaMA3-8B 为例,记录不同训练步数下的熵值变化与模型性能:

熵减少 13%(步数 100)即可带来零样本任务准确率提升 3.66%(66.88%➡70.54%),困惑度降低 19.5%(9.567➡7.701)。进一步优化可继续降低困惑度,验证了 重要性集中度与剪枝鲁棒性的正相关

3.4 部署效率:轻量开销,显著收益

  • 参数增量:每层新增一个(hidden_size, hidden_size)正交矩阵。以 LLaMA3-8B 为例,总参数量增加约 0.5B(占原模型 6.7%)。通过分块对角矩阵(见论文附录)可进一步降低开销,适合资源受限场景。

  • 推理耗时:单层 Transformer 的 2:4 稀疏计算耗时 4.37ms,加入正交矩阵后仅增加 0.32ms(1.24× 加速比 vs 稠密层)。

04 总结

DenoiseRotator 提出了一种创新的剪枝视角:将模型准备(重要性浓缩)与模型压缩(剪枝)两个阶段解耦。通过可学习的正交变换,主动实现参数重要性的浓缩,从而显著提升后续剪枝的鲁棒性。该方法具备 即插即用 的特性,为大规模语言模型的高效、高性能压缩提供了新的技术路径。

项目地址https://github.com/Axel-gu/DenoiseRotator

希望跟大家一起学习交流。如果大家对这项工作感兴趣,欢迎在 GitHub 上 Star、Fork 并参与讨论!