ShortGPT: Layers in Large Language Models are More Redundant Than You Expect 解读

发布时间:2026/7/23 22:40:48
ShortGPT: Layers in Large Language Models are More Redundant Than You Expect 解读 一、论文基本信息论文题目ShortGPT: Layers in Large Language Models are More Redundant Than You Expect核心方法ShortGPT面向选择题、困惑度评估等场景的静态层剪枝ShortGPT-gen面向自回归生成任务的动态层跳过方法。论文最早于 2024 年发布 arXiv 版本后续扩展版本正式发表于Findings of ACL 2025。正式版本增加了生成任务分析和 ShortGPT-gen。官方实现位于icip-cas/ShortGPT包含 ShortGPT 和 ShortGPT-gen 两部分。(arXiv)一句话概括ShortGPT 发现很多 LLM 层对隐藏状态的改变非常小于是用输入输出余弦相似度构造 Block Influence 指标直接删除影响最小的完整 Transformer 层。它属于训练后、无梯度、层级结构化剪枝也就是深度剪枝。二、论文要解决什么问题前面看到的 LLM 剪枝方法大致有两类SparseGPT、Wanda删除单个权重属于非结构化剪枝模型层数、隐藏维度和注意力头数都不改变。LLM-Pruner、LoRAPrune、Compresso、Sheared LLaMA删除 head、FFN channel、hidden dimension 或 layer属于结构化剪枝但通常需要梯度、可学习 mask、LoRA 或继续预训练。ShortGPT 提出了一个非常直接的问题LLM 中的很多完整 Transformer 层是不是本来就没有发挥多大作用作者观察到在很多采用Pre-Norm结构的 LLM 中某一层的输出隐藏状态和输入隐藏状态非常相似。也就是说一个 token 经过完整的 Attention 和 FFN 后表示方向几乎没有变化。如果一层的输入和输出几乎相同那么这层可能接近一个恒等映射可以直接跳过。论文进一步通过逐层删除实验发现LLM 的冗余主要集中在中后部层前几层和最后一层通常更加重要。三、为什么 Pre-Norm LLM 容易出现层冗余当前很多 LLM 使用 Pre-Norm Transformer。一个简化的残差块可以理解为如果某一层学到的残差变化相对于很小那么这样该层输入与输出的余弦相似度就非常高。论文专门比较了 Pre-Norm 和 Post-Norm 模型的训练过程Pre-Norm 模型不同层的输入输出长期保持较高相似性而实验中的 Post-Norm 模型在训练约 26B tokens 后不再表现出同样趋势。作者据此认为Pre-Norm 的稳定性和残差路径可能也带来了更明显的深度冗余。不过要注意输入输出相似不等于该层毫无作用。某一层可能只对隐藏状态做了很小的方向调整但这个小调整仍可能对某些任务至关重要。因此 ShortGPT 不是严格证明某层冗余而是用表示变化大小作为一个简单的重要性代理。四、Block Influence层重要性如何计算ShortGPT 提出Block InfluenceBI衡量一个 Transformer 层对隐藏状态的影响。对第 (i) 层BI 定义为其中是第 (i) 层输入中第 (t) 个 token 的隐藏状态是经过这一层后的隐藏状态对校准文本和所有 token 求平均。其含义很直观余弦相似度高BI 小输入输出几乎相同该层改变很小余弦相似度低BI 大该层对表示进行了较大变换更应该保留。因此BI 越小层越优先被删除。作者选择余弦相似度而不是欧氏距离是因为 LayerNorm 会削弱隐藏状态绝对模长的重要性表示方向通常比数值尺度更值得关注。论文的逐层删除实验显示BI 与删除单层后产生的困惑度变化具有较好的正相关性。五、ShortGPT 的完整流程ShortGPT 的流程非常简单。第一步准备校准数据论文主要使用PG19文本作为校准集。校准数据只用于运行前向传播和统计隐藏状态不需要标签也不需要反向传播。第二步收集每层输入和输出把校准文本送入原始 LLM保存各层输入隐藏状态和输出隐藏状态。第三步计算 BI计算每一层输入输出的平均余弦相似度并转换成 BI 分数。第四步排序并删除完整层将所有层按照 BI 从小到大排序删除分数最低的若干层。第五步直接推理原始 ShortGPT 不需要微调、LoRA、蒸馏或权重补偿层删除后即可直接评估。所以它的成本主要是少量校准样本的一次前向传播。六、ShortGPT 剪的到底是什么ShortGPT 删除的是一个完整的 Transformer block包括Self-AttentionFFN对应归一化和残差分支中的计算。因此它是标准的Layer-level structured pruning或者Depth pruning剪枝后会发生真实结构变化模型层数减少参数量减少每个 token 经过的 Transformer block 数减少KV Cache 中对应层的 K/V 也不再需要保存不依赖非结构化稀疏 kernel。它不是单权重剪枝attention head pruningFFN neuron pruningtoken pruninghidden dimension pruning。七、论文发现哪些层最冗余论文正式版本在约 25% 层剪枝设置下得到的删除结果是模型被删除的层LLaMA2-7B21–29LLaMA2-13B26–35Baichuan2-7B22–30Baichuan2-13B26–35可以看到最终被删除的层几乎都是连续的中后部层。使用 PG19 和 MMLU 作为校准数据时LLaMA2 得到的删除层甚至完全相同说明 BI 的层排序对校准数据具有一定稳定性。这项观察比方法本身更值得注意当前 LLM 可能在中后部堆叠了多个功能高度相似的 Transformer 层。但最后一层通常不能随意删除。论文发现在 LLaMA2-7B 中原始困惑度7.60删除最后完整一层13.37只删除最后一层 Attention7.65只删除最后一层 FFN12.35。这说明最后一层的重要性主要来自FFN作者推测最后 FFN 已经接近输出分类器的一部分。八、选择题和判别任务结果正式版本在 LLaMA2和 Baichuan2 的多个选择题基准上进行了评估包括 HellaSwag、PIQA、BoolQ、RACE、MMLU、CMMLU 等。约删除四分之一层时模型Dense 平均分ShortGPT 平均分性能保留率LLaMA2-7B50.1743.9187.52%LLaMA2-13B58.4953.5791.59%Baichuan2-7B61.7253.4686.62%Baichuan2-13B66.8258.6687.79%在 LLaMA2-13B 上删除约 24.6% 的层后MMLU 从55.00仅下降到54.69但不同任务的敏感性差异很大例如 HellaSwag、PIQA 等下降更加明显。总体上论文认为 ShortGPT 在相近压缩率下优于 LLM-Pruner、SliceGPT 和 LaCo尤其在选择题任务上直接减深度有时比压缩 embedding dimension 或内部通道更稳。但这里需要谨慎理解ShortGPT 并不是每个任务都只下降一点。“保留约 90% 性能”是多个任务平均后的结论个别能力可能下降得更加明显。九、为什么普通 ShortGPT 在生成任务上失效ShortGPT 在多项选择题上表现较好但直接用于自回归生成时会严重退化。例如 LLaMA2-13B方法XSumGSM8KStrategyQA平均Dense22.1928.8963.5838.22ShortGPT17.592.3546.0021.98尤其 GSM8K 从28.89降到2.35。在 7B 模型上删除约四分之一层后GSM8K 也接近失效。原因在于选择题只需要对几个固定答案计算得分而自回归生成会把每一步产生的误差带入下一步。删层导致的微小表示误差在生成数十个 token 后会不断累积最终造成推理链断裂数值计算错误输出跑题重复或异常生成。这说明“单层影响小”不意味着“连续生成几十步后影响仍然小”。十、ShortGPT-gen如何改善生成任务为解决自回归误差累积正式版本提出ShortGPT-gen。它采用一种不对称执行策略输入提示词的 tokens跳过 BI 较低的冗余层模型新生成的 tokens仍然经过全部 Transformer 层。在被跳过的层中输入 tokens 没有新的输出隐藏状态因此解码时使用前一个未跳过层的隐藏状态生成相应的 K/V新生成 token 则完整经过该层。因此 ShortGPT-gen 主要压缩的是Prompt Prefill 阶段。而自回归 decoding 阶段仍执行完整网络从而避免生成误差逐步积累。LLaMA2-13B 的结果为方法XSumGSM8KStrategyQA平均保留率Dense22.1928.8963.58100%ShortGPT17.592.3546.0057.51%ShortGPT-gen21.7626.9162.7097.12%ShortGPT-gen 显著修复了生成性能但它有一个根本代价ShortGPT-gen 不会真正删除模型层也不减少模型权重大小。它保留完整模型只对部分 tokens 动态跳层因此属于动态计算而不是静态模型压缩。十一、BI 与其他层重要性指标相比如何论文比较了四种层排序方法Sequential先删浅层。Reverse-order / Norm优先删深层或者按照隐藏状态模长排序。Relative Magnitude衡量残差更新相对于输出的幅度。Block Influence使用输入输出余弦变化。结果显示BI 在困惑度和 MMLU 的综合表现上最好Relative Magnitude 也具有较强竞争力。单纯依据层序或隐藏状态范数虽然在部分任务上有效但困惑度表现不稳定。这说明 BI 的优势不是它有复杂理论而是它与 Pre-Norm 残差结构的行为较匹配一层究竟做了多少方向性变化可能比这一层输出有多大更值得关注。十二、真实加速是否等于层数减少比例并不等于。论文在 GPTQ 量化的 LLaMA2-7B 上报告剪枝比例剩余层数吞吐量提升9.4%291.06×15.6%271.10×25.0%241.16×27.1%231.19×删除约 27% 的层实际吞吐只提升约19%没有达到理想的 (1/(1-0.27)\approx1.37) 倍。原因包括Embedding、LM Head 和采样过程没有被压缩内存访问和框架调度存在固定开销小 batch 解码常常受显存带宽限制删除层不能消除所有非 Transformer 开销实际 kernel 利用率不会随层数线性变化。所以 ShortGPT 的部署结论应该表述为层剪枝能带来真实速度收益但加速通常明显低于理论层数缩减比例。十三、能否与量化结合可以。层删除和权重量化处理的是两个正交维度ShortGPT 减少模型深度GPTQ 减少每个权重的比特数。论文在 LLaMA2-7B 上得到原始MMLU 45.44-bit44.9ShortGPT44.0先 4-bit 再 ShortGPT42.4先 ShortGPT 再 4-bit41.2。这说明二者可以组合但“正交”并不代表组合后没有额外精度损失而且执行顺序也会产生一定差异。十四、它和其他 LLM 剪枝方法的区别与 SparseGPT、WandaSparseGPT 和 Wanda 删除单个权重模型深度和矩阵形状不变。ShortGPT 删除完整 Transformer 层得到更浅的 dense 模型。因此SparseGPT/Wanda 是权重级稀疏化。ShortGPT 是层级结构化剪枝。ShortGPT 不需要稀疏 kernel但粒度更粗删错一层带来的损伤也更大。与 LLM-Pruner、LoRAPruneLLM-Pruner 和 LoRAPrune 会剪 head、FFN channel 等结构并进行 LoRA 恢复。ShortGPT 只删除完整层原始版本不使用梯度或恢复训练。因此LLM-Pruner/LoRAPrune 更细粒度、更复杂。ShortGPT 更粗粒度但极其简单。与 Sheared LLaMASheared LLaMA 同时剪 layer、head、hidden dimension 和 FFN dimension再继续预训练 50B tokens。ShortGPT 只根据 BI 删层几乎没有训练成本。因此Sheared LLaMA 面向生产高质量小型 base model。ShortGPT 面向低成本、训练后快速深度压缩。与 LaCoLaCo 不是简单删除层而是逐渐合并相似层。ShortGPT 直接移除低 BI 层不做参数融合。前者试图保留被压缩层的信息后者更简单但可能产生更大的生成误差。十五、扩展到 Mamba 和 RWKV 的结果正式版本还将类似的 block influence 思想用于 Mamba-2.8B 和 RWKV-7B。删除约 25% blocks 后Mamba 保留约90.37%的平均性能RWKV 只保留约70.89%。这说明 block-level redundancy 不只存在于 Transformer但不同架构对深度删除的鲁棒性差异很大不能简单假设 ShortGPT 的结论适用于所有序列模型。十六、方法优点第一极其简单。只需少量文本前向传播、计算余弦相似度和删除层。第二无需梯度和训练。不需要反向传播、Hessian、LoRA、蒸馏或继续预训练。第三真正结构化。ShortGPT 静态版本会物理删除完整层普通 dense 推理框架即可运行。第四校准数据相对稳健。PG19 与 MMLU 得到了相同的 LLaMA2 删除层序列。第五揭示了重要架构现象。它说明大模型扩大深度后不同层未必都学习到了同等独特的变换。十七、方法局限1. BI 是局部指标忽略层间协同BI 分别衡量每一层的输入输出变化但同时删除多层时误差不一定等于各层误差之和。两个单独看都不重要的层可能承担互补功能连续删除多层后功能损失可能突然放大。论文也观察到剪枝率提升到某个阈值时MMLU 会出现断崖式下降说明网络中存在关键层和非线性交互。2. 高余弦相似不代表功能冗余某一层可能只对少数 token、少数知识或少数任务产生关键变化。平均余弦相似度容易掩盖这种长尾作用。3. 静态 ShortGPT 不适合复杂生成GSM8K 等任务上普通 ShortGPT 的性能可能接近失效。ShortGPT-gen 虽然修复生成能力却不减少模型体积。4. 实际加速有限删除约四分之一层实测吞吐提高约 16%–19%而不是理论上的 33%以上。5. 缺少现代模型的广泛验证核心实验集中在 LLaMA2 和 Baichuan2。对 GQA、MoE、长上下文、现代 instruction-tuned 模型以及推理模型层冗余分布可能不同。十八、整体评价ShortGPT 最重要的贡献并不是提出了多复杂的剪枝算法而是揭示了一个非常直接的现象LLM 的参数冗余不仅存在于权重、神经元和注意力头中也大量存在于模型深度上。它把 LLM 层剪枝简化成了看这一层是否真正改变了隐藏状态。如果没有明显改变就直接删除。这种思路的优点是简单、训练成本近乎为零、结构硬件友好缺点则是粒度太粗对生成任务和高压缩率尤其敏感。从方法脉络看SparseGPT剪权重二阶重构Wanda剪权重权重与激活联合评分LLM-Pruner剪耦合结构组LoRAPrune用 LoRA 梯度指导结构剪枝Sheared LLaMA剪成目标结构并继续预训练CompressoLoRA、L0 mask 与提示协同训练ShortGPT用 BI 直接删除变化最小的完整层。因此它最准确的定位是training-free, calibration-based, layer-level structured pruning for LLMs。十九、一句话总结《ShortGPT: Layers in Large Language Models are More Redundant Than You Expect》提出 Block Influence用一层输入与输出隐藏状态的平均余弦差异衡量层重要性输入输出越相似说明该层对表示改变越小越适合删除。ShortGPT 根据 BI 直接删除完整 Transformer 层不需要梯度或微调在 LLaMA2-13B 上删除约四分之一层后仍保留约 91.6% 的选择题平均性能但普通 ShortGPT 在自回归生成中会因误差累积严重退化因此正式版本又提出 ShortGPT-gen让提示词 tokens 跳过冗余层、生成 tokens 经过全部层。它证明了 LLM 存在显著的深度冗余但也表明“选择题可删层”并不等于“生成任务可无损删层”。