大语言模型(LLM)在设备上部署道路上落下了一个令人生畏的障碍。本文关注于大语言模型的剪枝算法。
动态稀疏训练(Dynamic Sparse Training,DST)是一种近期收到广泛关注的剪枝算法。与之前大部分剪枝方法需要训练整个网络不同,DST选择性更新一部分网络参数并允许稀疏网络拓扑动态进化。然而先前研究显示其在小规模BERT级别语言模型上微调的失败。
本文方法
本文算法将剪枝视作为设计一个二进制掩码指示权重是否移除。在给定剪枝率 p p p 条件下的LLM剪枝问题可以描述为:
min M , W ∣ ∣ W ∗ A − ( M ⋅ W ) ∗ A ∣ ∣ 2 s . t . 1 − ∣ ∣ M ∣ ∣ 0 C o u t ⋅ C i n = p \min_{M,W}||W*A-(M\cdot W)*A||_{2}\quad s.t. \quad 1-\frac{||M||_{0}}{C_{out}\cdot C_{in}}=p M,Wmin∣∣W∗A−(M⋅W)∗A∣∣2s.t.1−Cout⋅Cin∣∣M∣∣0=p
该问题可以从两个互补角度求解,1. 设计标准来剪枝对模型影响最小的权重,2. 对于获得的稀疏网络,剩下的权重自然地进行微调以进一步减少重建误差。这些常规的求解方式需要大量训练资源,对于大容量的LLM模型并不适用。
本文关注如何高效减少给定剪枝稀疏网络与对应密集网络间重建损失。本文不使用全微调或部分更新的方法恢复性能,而是根据对重建损失贡献在见之后细化稀疏掩码。本文方法源于Rigging the lottery:
Making all tickets winners中动态稀疏训练使用的剪枝-生长操作。DST在稀疏网络训练中包含权重剪枝和权重生长过程。基于此方法,本文DSþT,一种稀疏LLM无训练微调方法,该方法剥离权重更新并通过将优化目标转化为每个全中行的重建误差保持剪枝和增长。剪枝-生长过程与网络独立进行,并使用迭代方式逐渐优化稀疏掩码
DSþT从一个稀疏的LLM网络开始,可以使用任何已有的评估标准剪枝。然后通过查看重建损失执行迭代剪枝与生长。
生长标准
给定稀疏权重行 M r ⊙ W r M_{r}\odot W_{r} Mr⊙W