SparseLLM 是什么?分解成子问题来做大模型全局剪枝
SparseLLM 是一个对预训练大模型进行全局剪枝的框架,由埃默里大学和美国阿贡国家实验室的研究人员在 2024 年共同提出,论文标题是《SparseLLM:迈向预训练语言模型的全局剪枝》,被 NeurIPS 2024 接收。它旨在提高大模型的运行效率。
什么是剪枝
剪枝是一种压缩模型的技术:神经网络中有大量参数的作用很小,把它们去掉(设为零)对效果影响不大,却能减少模型的计算量和存储量,让模型跑得更快、占用更少的内存。被去掉的参数比例叫稀疏度,比如 70% 的稀疏度意味着只保留 30% 的参数。
局部剪枝和全局剪枝
剪枝有两种思路。全局剪枝从整个模型的角度出发,统一考虑去掉哪些参数对最终效果影响最小,理论上效果最好。但对于有几十亿、上百亿参数的大模型,全局剪枝需要同时考虑所有层之间的相互影响,计算量和内存需求巨大,几乎无法实现。因此,SparseGPT、Wanda 等主流的大模型剪枝方法采用局部剪枝:一层一层地剪,每一层只考虑怎么让自己这一层的输出变化最小,不顾及对整个模型的影响。局部剪枝高效可行,但在稀疏度较高时,各层的误差会层层累积,导致模型效果明显下降。
SparseLLM 的做法
SparseLLM 试图兼得两者的优点:既考虑全局的影响,又保持可行的计算成本。它的关键是把全局剪枝问题重新表述,引入一些辅助变量,把原本相互纠缠、难以直接求解的全局问题,分解成多个更容易处理的子问题,每个子问题只涉及模型的一小部分。然后通过交替优化的方式依次求解这些子问题,子问题之间通过辅助变量协调,使得整体上逼近全局最优的剪枝结果。这样,每次只需要处理一小部分参数,内存开销可控,同时又能考虑层与层之间的关联。
效果
论文报告,SparseLLM 可以和现有的局部剪枝方法配合使用,在高稀疏度下明显优于只用局部剪枝的方法,模型的困惑度更低、下游任务的表现更好。这让大模型在保持较好性能的前提下被压缩得更小,有助于降低部署成本。