Sheared LLaMA: Accelerating Language Model Pre-training via Structured Pruning 解读
一、论文基本信息
论文题目:Sheared LLaMA: Accelerating Language Model Pre-training via Structured Pruning
方法名称:LLM-Shearing
作者:Mengzhou Xia、Tianyu Gao、Zhiyuan Zeng、Danqi Chen
发表:ICLR 2024,官方代码仓库为 princeton-nlp/LLM-Shearing,仓库提供了 Sheared-LLaMA 的剪枝与 continued pre-training 代码,以及 1.3B、2.7B 模型权重。(GitHub)
一句话先概括:
Sheared LLaMA 不是像 SparseGPT / Wanda 那样做非结构化权重稀疏,也不是像 LLM-Pruner 那样剪完后用 LoRA 恢复,而是从一个强大的大模型 LLaMA2-7B 出发,通过“目标结构化剪枝 + 继续预训练”,低成本生产出强性能的小规模 base LLM。
它的核心目标不是简单让已有模型变稀疏,而是回答一个更大的问题:
能不能不从零训练 1B / 3B 小模型,而是直接从已有强大 7B 模型中“剪出”一个小模型,再用少量 token 继续预训练,使其超过同规模从头训练模型?
二、这篇论文要解决什么问题?
训练小规模 LLM 也很贵。比如 1B、3B 这种模型虽然比 7B、13B 小,但如果从零预训练,仍然需要几百 B 到 1T 级别 token。论文指出,训练每一个不同规模的开放 LLM 都要消耗大量计算资源,因此作者提出的问题是:能否利用已有大模型,以更少计算得到一个通用、强性能的小模型?传统 LLM 剪枝大多有两个方向:
第一,剪完直接用。
例如 SparseGPT、Wanda,主要做非结构化权重剪枝,剪完后尽量不训练。
第二,剪完用少量任务数据恢复。
例如 LLM-Pruner、LoRAPrune,更多是结构化剪枝 + LoRA 或轻量恢复。
Sheared LLaMA 的定位不同。它不是只想在已有大模型上“省一点推理成本”,而是想把剪枝变成一种 生产小型 base model 的预训练加速方法。
所以它的核心问题是:
与其从零训练一个 1.3B / 2.7B 模型,能不能先把 LLaMA2-7B 结构化剪成目标大小,再继续预训练少量 token,得到更强的小模型?
三、核心思想
Sheared LLaMA 的核心方法叫 LLM-Shearing,包含两个关键技术:
第一,Targeted Structured Pruning。
把大模型剪到一个预先指定的目标结构,例如指定层数、hidden dimension、attention head 数、FFN intermediate dimension。论文明确说,该方法会通过删除 layers、heads、intermediate dimensions、hidden dimensions,把大模型端到端剪到目标形状。(arXiv)
第二,Dynamic Batch Loading。
剪枝后继续预训练时,不再固定使用原始数据比例,而是根据不同数据域的 loss 恢复速度,动态调整 batch 中各个 domain 的采样比例。论文指出,剪枝模型在不同数据域中保留知识的程度不同,因此继续预训练时应该给恢复慢的 domain 更多数据。
也就是说,Sheared LLaMA 不是单纯“剪模型”,而是:
先剪出一个目标形状的小模型。
再用更聪明的数据采样方式继续预训练。
最终得到一个真正可用的小型 base LLM。
四、它剪的是什么?
Sheared LLaMA 是明确的 结构化剪枝。
它剪的包括:
Transformer layers。
Hidden dimensions。
Attention heads。
FFN intermediate dimensions。
论文方法部分说明,它为不同粒度引入 pruning masks,包括全局的 layers 和 hidden dimensions,以及局部的 attention heads 和 intermediate dimensions;每个 mask 控制对应子结构是保留还是删除。(ar5iv)
它不是:
非结构化权重剪枝。
N:M 半结构化稀疏。
token pruning。
KV cache pruning。
单纯 layer dropping。
所以如果放到 LLM 剪枝分类里,它属于:
targeted structured pruning + continued pre-training。
五、为什么叫 Targeted Structured Pruning?
很多结构化剪枝方法的问题是:剪完之后结构可能很不规则。
例如:
不同层 head 数不一样。
不同层 FFN 宽度不一样。
hidden dimension 可能不符合常见硬件友好配置。
这种不规则结构理论上参数少,但推理时可能不好部署,甚至带来额外 overhead。论文就指出,已有结构化剪枝方法可能产生偏离常见架构的不规则配置,从而影响推理效率。(ar5iv)
Sheared LLaMA 的做法是:不是只给一个稀疏率,而是给一个目标模型形状。
例如:
我要把 LLaMA2-7B 剪成类似 1.3B 模型的结构。
我要把 LLaMA2-7B 剪成类似 2.7B 模型的结构。
论文中,作者用 Pythia-1.4B 的结构作为 1.3B 目标结构,用 INCITE-Base-3B 的结构作为 2.7B 目标结构。
这就是 “targeted” 的含义:
目标不是任意剪小,而是剪成一个预先设定、推理友好、接近标准小模型配置的 dense architecture。
六、剪枝 mask 是怎么学的?
Sheared LLaMA 借鉴了 CoFiPruning / L0 regularization 这类方法。它给不同结构单元加上可学习 mask,并用 hard concrete distribution 让 mask 接近 0 或 1。论文明确说,这些 mask 通过 hard concrete distributions 参数化,可以集中到 0 或 1,从而对应离散的剪枝 / 保留决策。(ar5iv)
简单理解:
mask 接近 1:保留这个 layer/head/channel/neuron。
mask 接近 0:删除这个结构。
训练时同时优化:
语言模型 loss。
结构约束。
这里的结构约束不是“总体剪掉多少参数”,而是“最终结构要符合目标模型形状”。论文用 Lagrange multipliers 来约束目标层数、目标 hidden dimension、目标 head 数和目标 intermediate dimension。
所以它不是简单按重要性排序一次性删除,而是在一个 constrained optimization 里学习:
哪些层保留。
哪些 head 保留。
哪些 hidden dimensions 保留。
哪些 FFN intermediate dimensions 保留。
最后再把 mask 接近 0 的结构物理删除,得到目标小模型。
七、为什么还要 continued pre-training?
这是 Sheared LLaMA 和 LLM-Pruner / LoRAPrune 的重要区别。
很多剪枝论文的流程是:
剪枝 → 少量恢复训练 / LoRA 微调 → 评估。
Sheared LLaMA 认为,对于通用 base LLM,这远远不够。结构化剪枝一定会损失语言建模能力,如果想得到一个真正强的小模型,必须进行 continued pre-training。
论文明确把流程分成两阶段:
第一阶段:把 source model 剪成 target model。
第二阶段:继续用语言建模目标预训练剪枝模型。
作者还强调,后者对生产竞争力小模型至关重要。
所以它的目标不是“剪完尽量不掉”,而是:
用剪枝获得一个强初始化,再用少量继续预训练把能力恢复甚至提升。
这也解释了为什么论文标题说 Accelerating Language Model Pre-training:它把剪枝当成加速预训练的一种方式,而不是单纯推理压缩技巧。
八、Dynamic Batch Loading:为什么重要?
LLM 预训练数据通常来自多个 domain,例如:
CommonCrawl。
C4。
GitHub。
Wikipedia。
Books。
ArXiv。
StackExchange。
Sheared LLaMA 使用 RedPajama 数据,并将其划分为这些 domain;论文说明每个 domain 都构建了 held-out validation set。
作者观察到:剪枝模型在不同 domain 上恢复速度不一样。
例如,有些低熵、小规模 domain 中的知识可能在剪枝后保留得更多;而 C4 这种高熵、大规模 domain 上的能力恢复可能更慢。论文给出的解释是,剪枝模型在不同 domain 中保留的知识量不同,如果继续按原始预训练比例采样,就会浪费数据,恢复效率低。
因此 Dynamic Batch Loading 的思路是:
定期评估每个 domain 的 validation loss。
看它距离目标 reference loss 还有多远。
哪个 domain 恢复慢,就在后续 batch 中采样更多。
哪个 domain 已经恢复得好,就减少采样。
这比固定数据配比更适合剪枝后的模型,因为剪枝后的模型不是一个随机初始化小模型,它已经从大模型继承了一部分 domain knowledge。
九、它和“从头训练小模型”有什么区别?
从头训练 2.7B 模型的流程是:
随机初始化 2.7B 模型。
用几百 B 到 1T token 预训练。
慢慢学语言、知识、推理模式。
Sheared LLaMA 的流程是:
从 LLaMA2-7B 继承权重和知识。
结构化剪成 2.7B。
只用 50B tokens 继续预训练。
论文和项目页都强调,Sheared-LLaMA-1.3B 和 2.7B 是从 LLaMA2-7B 剪出来后,只训练了 50B tokens;项目页还称这相当于之前强开源 3B 模型训练预算的 5%。
这就是它的主要观点:
强大大模型本身就是一个很好的初始化。
剪枝后的模型虽然一开始掉性能,但它恢复得很快。
用少量 continued pre-training 就能超过很多从头训练的小模型。
十、主要实验设置
源模型是 LLaMA2-7B。作者将其剪成两个目标规模:
Sheared-LLaMA-1.3B。
Sheared-LLaMA-2.7B。
训练数据使用 RedPajama,因为 LLaMA2 的原始训练数据不可公开;论文中剪枝阶段使用约 0.4B tokens,continued pre-training 使用 50B tokens,序列长度保持 LLaMA2 风格的 4096。(ar5iv)
评估任务包括 commonsense、reading comprehension、world knowledge、MMLU、NQ 等。论文使用 lm-evaluation-harness,并报告 zero-shot / few-shot 指标。
十一、主要结果
Sheared-LLaMA-1.3B 的平均下游表现为 51.0,超过 OPT-1.3B 的 48.2 和 Pythia-1.4B 的 48.9。
Sheared-LLaMA-2.7B 的平均下游表现为 56.7,超过 OPT-2.7B、Pythia-2.8B、INCITE-Base-3B、OpenLLaMA-3B-v1 和 OpenLLaMA-3B-v2 等同规模模型。
项目页也总结说,Sheared-LLaMA-2.7B 在同规模开源模型中表现更好,并且只用了约 3% 的 compute 达到与 OpenLLaMA-3B-v2 相当或更强的效果。
这个结果非常关键。它说明:
结构化剪枝不是只能做任务特定压缩。
如果剪枝后继续预训练得当,它可以成为生产强小模型的路线。
十二、Sheared LLaMA 和 LLM-Pruner 的区别
两者都是结构化剪枝,但目标完全不同。
LLM-Pruner:
更像是把已有 LLM 压缩一下,用少量数据和 LoRA 恢复,目标是 task-agnostic compression。
Sheared LLaMA:
更像是“从大模型生产小模型”的预训练路线。它不满足于剪完后少量恢复,而是继续预训练 50B tokens,目标是得到强 base LLM。
可以这样理解:
LLM-Pruner 是压缩已有模型。
Sheared LLaMA 是加速小模型预训练。
LLM-Pruner 更适合资源有限、想快速得到一个稍小模型的场景;Sheared LLaMA 更适合有一定预训练预算、想生产高质量 1B/3B base model 的场景。
十三、和 LoRAPrune 的区别
LoRAPrune 把 LoRA 和结构化剪枝结合,用 LoRA 梯度指导剪枝,并通过 LoRA 微调恢复。它关注的是 PEFT-aware structured pruning。
Sheared LLaMA 不依赖 LoRA 作为核心恢复机制,而是继续用语言建模目标做 continued pre-training。它的目标更接近:
剪枝后的模型继续作为 base model 训练。
所以区别是:
LoRAPrune:剪枝 + LoRA 微调,强调低显存和推理结构变小。
Sheared LLaMA:剪枝 + continued pre-training,强调低成本产生强小型 base LLM。
如果你要做下游任务压缩,LoRAPrune 更直接;如果你要生产一个通用小语言模型,Sheared LLaMA 的路线更合适。
十四、和 SparseGPT / Wanda 的区别
SparseGPT 和 Wanda 默认是 非结构化剪枝。
它们主要是:
把权重矩阵里某些元素置零。
不改变 hidden size、层数、head 数。
剪完尽量不用训练。
Sheared LLaMA 是 结构化剪枝。
它会删除:
层。
head。
hidden dimensions。
FFN intermediate dimensions。
并且最终得到的是一个标准小 dense 模型,而不是稀疏大矩阵。论文也明确说 targeted structured pruning 会把模型剪成 specified target shape。
所以它和 SparseGPT / Wanda 的根本区别是:
SparseGPT / Wanda 主要是 post-training sparsification。
Sheared LLaMA 是 structural model resizing + continued pre-training。
十五、为什么 Sheared LLaMA 更像“模型生产方法”?
这篇论文最值得注意的是,它不把剪枝看作模型压缩的终点,而是把剪枝看作一个新的起点。
传统剪枝通常问:
剪完还能保留多少原模型性能?
Sheared LLaMA 问的是:
剪出来的小模型继续训练后,能不能比同规模从头训练模型更强?
这两个问题很不同。
它证明了一个很有价值的方向:
已有强大模型可以作为“小模型预训练”的母模型。
先剪成目标结构,再继续预训练,可能比从头训练更高效。
这对开源小模型生产很重要。因为很多机构可能没有预算从零训练 1T tokens,但如果能从已有 7B / 13B / 更大模型剪出目标规模,再用几十 B tokens 继续训练,就能更低成本得到强模型。
十六、它是不是剪枝?
是的,Sheared LLaMA 是 结构化剪枝。
但它不是普通意义上的“剪完就部署”的剪枝论文。
更准确地说,它是:
targeted structured pruning for LLM pre-training acceleration。
它既是剪枝方法,也是小模型生产路线。
分类上可以写成:
LLM structured pruning。
Model shearing / model resizing。
Prune-and-continue-pretrain。
Pretraining-efficient small LLM construction。
十七、方法优点
第一,剪完后是标准 dense 小模型。
它不是非结构化稀疏矩阵,因此更容易用普通推理框架部署。
第二,目标结构推理友好。
它不是随意剪成不规则结构,而是对齐预先指定的目标架构,避免不规则剪枝造成推理 overhead。
第三,性能强。
Sheared-LLaMA-2.7B 只用 50B tokens 继续训练,就超过多个同规模、训练 token 更多的开源模型。
第四,动态数据配比很有价值。
Dynamic Batch Loading 针对剪枝模型不同 domain 恢复速度不一致的问题,提升 continued pre-training 的数据效率。
第五,证明了剪枝可以服务于预训练。
它把剪枝从“压缩模型”推进到“高效生产小模型”。
十八、方法局限
第一,不是 training-free。
它需要继续预训练 50B tokens。虽然比从头训练少很多,但仍然不是普通实验室随便能跑的小成本。
第二,依赖强 source model。
如果源模型不够强,剪出来的小模型也未必有优势。项目页也总结,初始 base model 越强,得到的 pruned model 越强。
第三,主要实验从 LLaMA2-7B 剪到 1.3B / 2.7B。
论文说方法可以扩展到更大模型,但主实验仍集中在 7B 源模型。
第四,剪枝阶段本身较慢。
论文提到 pruning stage 比标准 LM training 慢很多,因此实际只给剪枝阶段较有限预算,然后再继续预训练。
第五,需要预训练数据和训练系统支持。
Dynamic Batch Loading、长序列 4096、RedPajama 多域数据、Composer / FlashAttention 等工程栈对复现有一定要求。
十九、整体评价
Sheared LLaMA 是 LLM 结构化剪枝方向中非常有代表性的一篇论文,因为它把剪枝的目标从“压缩已有模型”转向“低成本生产强小模型”。
它的核心观点可以概括为:
不要从零训练小模型。
先从强大模型中剪出目标结构。
再用少量 continued pre-training 恢复能力。
训练数据还要根据剪枝模型的 domain 恢复情况动态调整。
如果把它放到你最近看的 LLM 剪枝脉络中:
SparseGPT:非结构化,二阶重构,one-shot。
Wanda:非结构化,权重 × 激活,one-shot。
LLM-Pruner:结构化,dependency + Taylor,LoRA 恢复。
LoRAPrune:结构化,LoRA-guided criterion,PEFT-aware recovery。
Sheared LLaMA:结构化,target shape pruning + continued pre-training,用剪枝加速小型 base model 生产。
所以它最准确的位置是:
pretraining-oriented structured pruning for LLMs。
二十、一句话总结
《Sheared LLaMA: Accelerating Language Model Pre-training via Structured Pruning》提出 LLM-Shearing:先用 targeted structured pruning 将 LLaMA2-7B 剪成预先指定的 1.3B / 2.7B 目标结构,剪枝对象包括 layers、hidden dimensions、attention heads 和 FFN intermediate dimensions;再用 dynamic batch loading 进行 continued pre-training,根据不同数据域 loss 恢复速度动态调整采样比例。它不是 SparseGPT / Wanda 式非结构化 one-shot 剪枝,而是“结构化剪枝 + 继续预训练”的小模型生产路线;实验表明,Sheared-LLaMA-1.3B 和 2.7B 只用 50B tokens 就能超过多个同规模开源模型,说明从强大 LLM 中剪出小模型再继续训练,是比从零预训练更高效的一条路线。
更多推荐



所有评论(0)