The Unreasonable Ineffectiveness of the Deeper Layers

The Unreasonable Ineffectiveness of the Deeper Layers 这篇论文研究了一个非常直接的问题对于已经预训练好的大语言模型越靠后的Transformer层是否都不可替代能否直接删除一段完整的深层网络再通过少量微调恢复模型能力作者发现一些大模型在删除接近一半Transformer层后MMLU和BoolQ等问答任务仍能保持相对稳定但数学推理和部分常识推理任务会更早退化。因此“深层无效”并不是普遍结论更准确的说法是部分大模型的深层表示存在较高冗余尤其是在知识型问答任务上但这些层仍可能承担语言建模、复杂推理和跨层计算功能。一、论文基本信息项目内容论文题目The Unreasonable Ineffectiveness of the Deeper Layers常用方法称呼Similarity-Informed Layer Pruning、Layer Pruning作者Andrey Gromov、Kushal Tirumala、Hassan Shapourian、Paolo Glorioso、Daniel A. Roberts会议ICLR 2025首次公开2024年3月最新公开版本2025年3月主要模型LLaMA-2、Qwen、Mistral、Phi-2剪枝粒度完整Transformer层恢复方式4-bit QLoRA微调论文链接arXiv与OpenReview正式页面官方代码论文及OpenReview页面未提供作者维护的官方代码公开的PruneMe仓库明确标注为非官方实现论文标题中的“Unreasonable Ineffectiveness”带有一定夸张色彩主要强调部分深层网络在若干任务上表现出的可删除性而不是证明大语言模型所有深层都没有作用。二、论文要解决什么问题2.1 逐权重剪枝未必容易获得真实加速SparseGPT、Wanda、GBLM-Pruner等方法主要删除单独权重。剪枝后模型中的权重矩阵尺寸没有变化只是其中出现了大量零值。这类非结构化剪枝通常具有较高的自由度因此容易保持模型精度但要转化为实际加速需要稀疏矩阵存储格式专用稀疏计算内核推理框架支持硬件能够高效跳过零权重计算。否则普通密集矩阵乘法仍会处理完整尺寸的权重张量。层剪枝则不同。删除完整Transformer层后模型深度会直接下降。例如一个80层模型删除40层后每生成一个Token只需要经过40个Transformer块而不是80个。因此层剪枝具有一个明显优势它不依赖专用稀疏内核普通密集推理框架也可以直接执行更浅的网络。2.2 结构化剪枝的粒度又可能过大删除单个权重造成的扰动通常较小而删除完整Transformer层会同时移除自注意力模块Q、K、V和输出投影MLP或前馈网络归一化模块该层产生的非线性变换。因此层剪枝虽然部署友好却可能比权重剪枝更容易破坏模型性能。论文需要回答的关键问题是哪些层或连续层块对模型最终表示的影响较小可以被相对安全地删除2.3 为什么重点研究深层Transformer使用残差连接。每个网络层并不是完全重新生成一个表示而是在上一层表示的基础上增加一个更新量。当模型进入较深位置以后作者观察到相邻层隐藏状态的方向变化通常较小。也就是说某些深层的输入和输出非常相似。如果一段连续层的输入表示与输出表示几乎相同那么这段层可能只对隐藏状态进行了较小修正。论文由此提出通过比较一段连续层前后的隐藏表示可以判断这段层是否具有较高冗余。三、核心思想LayerPrune的核心思想可以概括为在模型中寻找一段“输入表示和输出表示最相似”的连续Transformer层将整段层删除然后使用少量QLoRA训练修复删除位置产生的接口不匹配。完整过程包括三步测量层块前后的表示变化 → 删除变化最小的连续层块 → 使用QLoRA进行Healing恢复这里的“Healing”可以理解为剪枝后的修复训练。需要注意方法不是逐层判断每一层的重要性然后把低分层分散删除。它寻找的是一个连续层块一次性删除这段网络。四、什么是层级剪枝假设一个模型原本包含32个Transformer层第1层 → 第2层 → …… → 第32层如果算法决定删除第20至第27层剪枝后模型将变成第1层 → …… → 第19层 → 第28层 → …… → 第32层第19层的输出会直接传给原来的第28层。模型的隐藏维度、注意力头数和MLP宽度都不发生变化只是纵向深度减少。因此层剪枝带来的收益主要包括参数量直接减少模型权重占用的显存减少前向传播经过的Transformer块减少KV Cache通常不会因层内维度变化而缩小但需要维护的层数会减少不需要改变矩阵乘法内核不需要保存非结构化稀疏索引。与删除注意力头或MLP通道相比删除完整层对模型实现的改动也更加简单。五、为什么表示相似意味着层可能可以删除作者的直觉是如果某个连续层块前后的隐藏表示几乎相同那么这些层并没有明显改变信息的整体方向。假设一段网络的输入是A经过若干Transformer层后得到B。如果A和B非常接近那么直接将A送入后续网络可能不会造成特别严重的表示偏移。但这里的“相似”并不意味着两个表示完全相等也不意味着被删除层没有执行任何计算。这些层可能仍然进行了局部特征修正置信度调整隐藏状态幅值变化对特定Token的细粒度处理对后续推理过程有价值的信息变换。所以表示相似只能作为一种可剪枝性近似指标不能直接等同于“这一层没有作用”。六、层重要性如何计算6.1 为每个候选连续层块计算表示变化假设目标是删除连续的8层。算法会依次测试删除第1至第8层删除第2至第9层删除第3至第10层……删除所有可能的连续8层区间。对于每一个候选区间算法比较进入该区间前的隐藏表示经过该区间后的隐藏表示。两者越相似说明这段层对表示方向的总体改变越小。最后选择表示差异最小的区间作为剪枝目标。6.2 使用角距离而不是普通数值差论文主要使用隐藏表示之间的角距离。它更关注两个向量的方向是否相同而不是绝对数值是否完全一致。例如两个隐藏向量的整体幅值不同但指向相似方向角距离仍可能较小。作者认为对Transformer隐藏表示而言方向相似性可以反映语义表示是否发生明显改变。不过论文也明确指出角距离本身未必是唯一或者最优选择普通余弦相似度等指标也可能得到类似结论。因此这项工作的贡献并不主要在于设计了一个复杂的新公式而在于提出使用跨层表示变化来选择可以整体删除的连续层块。6.3 为什么只比较最后一个Token在自回归语言模型中位置较后的Token可以通过因果注意力访问前面的全部上下文。因此论文使用序列中最后一个Token的隐藏状态来计算层前后的表示差异。作者认为最后一个Token包含了对整个输入序列的汇总信息更适合作为模型当前上下文表示的近似。为了降低单个文本带来的随机性论文在C4验证集的10000个样本上统计并平均层间距离。不过这种设计仍然存在局限。只观察最后一个Token可能忽略中间Token的局部语义变化不同位置的注意力模式长上下文中的位置依赖生成过程中不同时间步的隐藏状态变化。七、为什么删除连续层而不是分散删除论文选择删除一段连续层主要有两个原因。7.1 只产生一个新的网络接口假设删除第20至第27层模型只需要建立一个新的连接第19层输出 → 第28层输入这会产生一个主要的分布不匹配位置。如果分散删除第5、12、20、27层则会形成多个新的接口第4层连接第6层第11层连接第13层第19层连接第21层第26层连接第28层。每个接口都可能产生隐藏状态分布错位后续恢复训练需要同时修复多个位置。7.2 连续层剪枝更方便搜索如果允许从80层中任意选择40层删除组合数量极大无法逐一评估。限制为连续区间后只需要扫描所有可能的起点搜索成本明显降低。但这也意味着该方法可能错过更优的非连续子网络。模型中的冗余层未必恰好集中在同一段连续位置。八、为什么最后一层不能轻易删除论文发现较深位置的相邻层通常具有更高表示相似性但最后一个Transformer层是明显例外。包含最终Transformer层的候选区间输入与输出之间的表示差异通常很大。可能的原因包括最后一层负责将内部特征整理为适合语言模型头读取的表示它直接影响最终Token概率前面层产生的是通用隐藏状态最后一层可能承担输出对齐功能最后一层与最终归一化和语言模型头形成紧密配合。因此即使采用最简单的“删除最深层”策略也必须保留最后一个Transformer层。更准确的简单策略是从模型后部删除一段连续层但保留最末Transformer层及语言模型输出头。九、剪枝后的Healing做了什么9.1 为什么删除后需要修复即使候选层块前后的表示比较相似直接删除后仍然存在分布不匹配。原本后续层接收到的是经过多层处理的表示现在它会直接接收更早层的输出。两种表示可能方向相近但尺度、统计分布和细粒度特征仍然不同。Healing的目的就是让剩余网络适应新的连接关系。9.2 使用4-bit QLoRA降低训练成本论文不对全部模型参数进行完整微调而是使用4-bit QLoRA基础模型以4位形式加载主要权重保持冻结在前馈网络中插入可训练的低秩适配器只更新少量LoRA参数。实验使用C4训练数据训练5000步全局批大小为16并采用余弦学习率计划和100步预热。7B及更小模型使用2048序列长度总训练量约1.64亿Token13B及更大模型使用4096序列长度总训练量约3.28亿Token。作者报告每个实验可以在一张40GB NVIDIA A100上完成。9.3 Healing修复的主要是接口而不是重新学习全部知识QLoRA训练量远低于原始预训练因此它不太可能从头重新学习模型被删除的全部知识。它更可能完成以下工作重新校准剪枝接口两侧的表示分布调整剩余层对新输入特征的处理让语言模型头适应变化后的深层表示部分补偿删除层承担的功能将原有知识重新组织到剩余网络中。这也解释了为什么少量Healing可以显著改善性能但无法在所有任务上完全恢复模型。十、是否真的需要计算层相似度论文还测试了一种更简单的策略不计算所有层块的表示相似度直接删除靠后的连续层同时保留最后一个Transformer层。实验出现了一个很有意思的结果。在不进行Healing时简单删除深层的效果明显弱于相似度指导方法。这说明相似度确实能够帮助找到初始破坏较小的层块。但经过QLoRA Healing后两种方法之间的差距明显缩小简单深层剪枝的结果接近相似度剪枝。这说明对于最终性能而言剪枝后能否修复新的层间接口可能比精确选择删除哪一段层更加重要。换句话说层相似度主要帮助获得一个更好的剪枝起点而Healing承担了大量性能恢复工作。十一、实验设置论文测试了多个不同模型家族。模型家族模型规模Transformer层数LLaMA-27B、13B、70B32、40、80Qwen7B、14B32、40Mistral7B32Phi-22.7B32主要评估内容包括类别评估内容知识与综合能力MMLU二分类问答BoolQ语言建模C4验证损失数学推理GSM8K常识推理HellaSwag思维链知识问答CoT-MMLU恢复数据C4恢复方法4-bit QLoRA论文主要观察随着删除层比例增加模型性能如何变化而不是只测试一个固定剪枝率。十二、MMLU结果存在明显的“平台期”论文最重要的现象之一是MMLU准确率并不会随着删除层数量立即平滑下降。很多模型会经历两个阶段第一阶段相对稳定区间删除少量或中等比例的层时MMLU变化很小。第二阶段突然崩溃当删除比例超过某个阈值后准确率会迅速下降最终接近随机猜测。不同模型的大致崩溃位置如下模型家族MMLU明显崩溃前可删除层比例LLaMA-2约45%55%Mistral-7B约35%Phi-2约25%Qwen约20%这里的比例是根据论文曲线概括的近似区间不是作者给出的统一硬阈值。LLaMA-2-70B表现出最强的层冗余。在若干测试中它删除接近一半Transformer层后MMLU和BoolQ仍然保持在相对稳定区间。12.1 为什么大模型更容易删层实验总体显示规模更大、层数更多的模型通常能够承受更高比例的层删除。可能原因包括更大模型具有更多冗余计算同一种知识可能分布在多个层中更宽的隐藏维度使单层具有更强表示能力过参数化模型可以通过剩余层重新组织功能预训练过程中部分深层只进行了较小的表示修正。但论文并没有严格证明是哪一种机制起主导作用。12.2 Qwen为什么更敏感Qwen模型在删除较少层后就出现明显下降说明不同模型家族的层冗余程度差异很大。这可能与以下因素有关网络深宽比例预训练方法归一化结构激活函数训练数据层间功能分布模型是否已经充分压缩或高效利用每一层。因此不能将LLaMA-2-70B的结果直接推广到所有大语言模型。十三、BoolQ结果BoolQ上的总体趋势与MMLU相似部分模型可以删除较多深层而不立即退化超过临界比例后准确率迅速下降不同模型的稳定区间存在明显差异Healing带来的改善通常比MMLU更明显。论文观察到BoolQ的可删除比例大约分布在20%至55%之间具体取决于模型家族和是否执行Healing。这说明层剪枝并非只对MMLU有效但论文测试的任务数量仍然有限无法由此证明所有问答任务都会表现出类似平台期。十四、一个重要现象语言建模损失和问答能力并不同步论文在C4验证集上测量了下一Token预测损失。未经Healing时随着层数删除C4损失会明显上升并在某些位置出现快速恶化。经过Healing后情况发生变化C4损失明显恢复随着删除层比例增加损失相对平滑地上升即使MMLU或BoolQ已经突然崩溃C4损失仍可能看起来没有出现异常突变。这说明语言建模损失能够平滑恢复不代表知识问答和推理能力也已恢复。一个模型仍然可能生成语法流畅、局部概率合理的文本但已经失去部分事实知识调用能力多步推理能力复杂问题决策能力对任务格式的稳定遵循。因此在评估剪枝模型时只报告困惑度是不够的。十五、推理任务揭示了深层的另一种作用ICLR 2025版本进一步测试了GSM8K、HellaSwag和带思维链的MMLU。结果出现了明显差异15.1 CoT-MMLU仍存在稳定区间带思维链提示的MMLU仍然表现出与普通MMLU相似的平台期。这说明增加思维链提示后知识型选择题并没有立即变得对深层特别敏感。15.2 GSM8K几乎从一开始就下降在LLaMA-2-70B上删除少量层后GSM8K准确率就开始持续下降没有出现像MMLU那样长而平坦的稳定区间。数学推理需要模型执行连续的中间计算任何层深度减少都可能降低可用的计算步骤。15.3 HellaSwag也更敏感HellaSwag主要测试常识推理和句子续写判断其性能也会随着层删除较早下降。作者据此提出一种解释较浅或中间层可能已经存储了大量可直接调用的知识而更深层可能对复杂推理和多步计算更加重要。但这仍然只是根据有限实验得到的初步推断。论文没有直接追踪每一层执行了哪一步推理也不能据此确定“知识只存储在浅层推理只发生在深层”。十六、层剪枝真的能带来推理加速吗从模型结构上看答案是肯定的。删除完整Transformer层后模型深度直接减少每个Token经过的注意力和MLP模块数量减少参数读取量下降无需专用稀疏矩阵内核普通密集推理引擎也可以执行更浅模型。与非结构化剪枝相比这是一种更容易获得端到端收益的压缩方式。不过这篇论文存在一个重要缺失论文没有系统报告实际Token吞吐量、首Token延迟、逐Token延迟或端到端加速表。作者主要从模型层数和参数量推断内存占用与推理时间会随删除层数近似下降。因此可以得出的结论是LayerPrune在结构上具备真实加速条件不需要2:4或非结构化稀疏专用硬件但论文没有通过完整硬件实验验证具体加速倍数。实际速度不会严格等于“删除50%层就加速2倍”因为模型还包含Embedding最终归一化语言模型头Token采样KV Cache管理数据调度框架开销。十七、“深层无效”应该怎样理解论文题目容易让人得出一个过度简化的结论大语言模型的后半部分没有作用可以直接删除。这并不准确。实验实际上说明了四件事。第一在某些知识问答任务上部分模型的深层具有明显冗余。第二删除深层仍然会增加语言建模损失只是这种增加可以通过QLoRA部分修复。第三数学推理和部分常识推理对层深度更加敏感。第四一旦删除比例超过模型特定阈值问答能力会突然崩溃。因此更合理的结论是大语言模型的层并不是同等重要的一些深层对局部语言建模和知识问答的边际贡献较小但它们可能提供额外计算深度对复杂推理、稳定性和跨任务泛化仍然重要。十八、与前面几篇论文的区别方法剪枝对象是否改变模型深度是否需要特殊稀疏内核恢复方式GBLM-Pruner单个权重否通常需要不微调Prune and Tune单个权重否通常需要迭代普通微调Sparse Fine-tuning单个权重或N:M权重否需要稀疏运行时SquareHead蒸馏AST2:4局部权重否需要2:4硬件支持动态稀疏训练与蒸馏LayerPrune完整Transformer层是不需要QLoRA HealingAST和Sparse Fine-tuning保留了模型原始深度只是减少每个线性层中的有效权重。LayerPrune则保留每个剩余层的完整密集结构但减少层数。因此两类方法的部署路径不同权重稀疏方法主要减少每层计算量LayerPrune主要减少需要执行的层数。从硬件兼容性看LayerPrune更加直接从剪枝自由度和精度保持看逐权重方法通常更加灵活。十九、方法优点19.1 结构简单部署友好剪枝结果仍然是普通密集Transformer只是层数更少。现有推理框架通常不需要特殊修改。19.2 不需要复杂的重要性计算方法只需要前向传播收集隐藏状态并计算候选层块的表示相似度不需要Hessian逆矩阵也不需要逐权重梯度统计。19.3 能够明显降低模型深度LLaMA-2系列在MMLU等任务上可以承受较高比例的层删除尤其是LLaMA-2-70B表现出较强冗余。19.4 Healing成本低于完整微调使用4-bit QLoRA只训练少量低秩参数每个实验可以在单张40GB A100上执行。19.5 揭示了不同能力对深度的依赖差异MMLU、C4损失、GSM8K和HellaSwag呈现出不同退化模式说明不能只用单一任务判断层冗余。二十、方法局限20.1 没有报告真实端到端速度这是从部署角度看最明显的问题。删除整层理论上应该加速但论文没有给出不同硬件、Batch、输入长度和输出长度下的实际延迟或吞吐量。20.2 任务覆盖仍然有限实验主要集中在MMLU、BoolQ、GSM8K、HellaSwag和C4。没有系统测试代码生成长上下文理解多轮对话指令跟随工具调用多语言能力安全性和拒答能力。因此不能根据MMLU稳定就判断剪枝模型保留了完整通用能力。20.3 对推理能力影响较大GSM8K和HellaSwag从删除少量层开始就出现下降说明模型深度本身可能是一种计算资源。删除层不仅减少参数也减少了模型能够执行的连续非线性变换次数。20.4 层相似度指标较粗糙论文只比较最后一个Token隐藏表示的方向。这一指标没有直接考虑隐藏状态幅值所有Token的表示注意力分布下游任务敏感性删除层后后续网络的误差放大多轮生成过程中的状态变化。20.5 只搜索连续层块连续剪枝便于部署和Healing但可能不是最优层组合。某些模型可能在多个不连续位置存在冗余层而这些组合不会被当前方法发现。20.6 需要人工指定删除多少层算法解决的是在需要删除固定数量层时应该删除哪一段它没有自动决定最合适的剪枝层数可接受的性能损失目标硬件上的最佳延迟不同任务之间的折中。实际应用仍需要人为设定删除比例并进行多次评估。20.7 Healing并非零成本虽然QLoRA比完整微调便宜但论文仍使用5000个训练步骤约1.64亿或3.28亿Token一张40GB A100模型特定的LoRA秩设置。所以它不是严格的一次性、完全无需训练的压缩方法。20.8 不同模型的可剪枝性差异很大LLaMA-2可以删除较高比例层但Qwen在约20%附近就明显退化。这意味着LayerPrune不能直接使用统一剪枝比例必须对每个模型单独评估。20.9 论文评估设置存在一处不一致主文MMLU图注将评估描述为5-shot而附录评估配置写的是0个few-shot示例。这一处表述不一致会影响结果复现和与其他论文的严格比较。20.10 最优LoRA配置使用MMLU选择论文为不同模型测试并选择不同LoRA秩选择依据包括MMLU表现。这样可能使恢复超参数与主要评估指标发生一定耦合。更严格的实验应该在独立验证集上确定Healing超参数再报告最终测试结果。二十一、这篇论文真正有价值的地方这篇论文最重要的贡献不是简单地告诉我们“可以删除大模型后几层”而是揭示了三个值得继续研究的现象。第一大语言模型的能力对深度并不是均匀依赖部分知识型任务在删除较多深层后仍然稳定说明模型中存在明显的层级冗余。第二语言建模能力与高层任务能力可能解耦C4损失可以平滑变化而MMLU和BoolQ会突然崩溃。只看困惑度无法判断模型是否仍然具备完整知识能力。第三模型深度可能承担“计算步骤”的角色GSM8K等任务对层数减少更加敏感说明深层不一定存储更多事实知识但可能为多步推理提供必要的连续计算过程。从工程角度看LayerPrune也提供了一条很直接的压缩路线测量层间表示 → 删除连续深层 → 使用QLoRA修复 → 得到普通密集浅层模型它不需要稀疏硬件和定制矩阵内核因此比非结构化权重剪枝更容易进入现有推理系统。二十二、一句话总结LayerPrune通过比较连续Transformer层块前后的隐藏表示删除表示变化最小的一段完整层并使用少量4-bit QLoRA训练修复新的层间接口实验表明LLaMA-2等模型在MMLU和BoolQ上可以删除较高比例深层而暂时不崩溃但GSM8K和HellaSwag等推理任务会更早退化说明部分深层在知识问答上存在冗余却仍可能承担复杂推理所需的计算深度该方法结构上容易带来实际加速但原论文没有报告端到端硬件速度。