动态分层剪枝:让大型语言模型"减肥"更聪明
北京邮电大学和 香港科技大学联合研究团队的重大突破!减肥也要讲究方法,大型语言模型也是如此
你是否曾想过,那些能够与人类对话、写作和解决问题的人工智能大模型,背后隐藏着怎样庞大的"身躯"?今天要介绍的这项研究,就像是为这些"体型臃肿"的AI模型量身定制了一套科学的"减肥计划"。这项由北京邮电大学的陈宇立、程波、张莹莹、李颖婷、张树豪和香港科技大学的韩家乐共同完成的研究成果,以论文《DLP: Dynamic Layerwise Pruning in Large Language Models》的形式发表在2025年的第42届国际机器学习会议(ICML 2025)上。研究代码已在GitHub上开源,有兴趣的读者可通过https://github.com/ironartisan/DLP获取。
想象一下,如果我们把大型语言模型(LLM)比作一本厚重的百科全书,传统的"减重"方法就像是对每一页都均匀地删减内容。这样做虽然减轻了重量,但可能会让某些重要章节信息不足,而一些不那么重要的章节却保留了过多内容。北京邮电大学和香港科技大学的研究团队提出了一种更聪明的方法——动态分层剪枝(Dynamic Layerwise Pruning,简称DLP),就好比他们发明了一种能够识别每个章节重要性的智能工具,对重要章节轻度删减,对次要章节大刀阔斧地精简。
这项研究的意义不仅在于理论创新,更在于它能够让那些需要数十亿甚至数千亿参数的庞大AI模型变得更加"苗条",同时保持其强大的能力。这就像是帮助一位体重超标的运动员减掉多余脂肪,但保留甚至强化了肌肉,使其性能更加出色。对普通用户来说,这意味着未来我们可能能在个人电脑甚至手机上运行强大的AI助手,而不必依赖云服务器的强大算力。
一、大模型减肥的困境与突破
大型语言模型就像现代社会中的"知识巨人",它们通过学习海量文本数据,获得了令人惊叹的语言理解和生成能力。然而,这些"巨人"也面临着一个明显的问题——它们太"胖"了。以OpenAI的GPT模型或Meta的LLaMA模型为例,它们拥有数十亿甚至数千亿的参数,这些参数就像是构成巨人肌肉和骨骼的基本单元。如此庞大的"体型"带来了巨大的计算资源消耗,使得普通设备难以运行这些模型。
面对这一挑战,研究人员提出了"剪枝"(Pruning)技术作为解决方案。所谓剪枝,就像园丁修剪花木一样,去除模型中那些对最终结果贡献较小的参数,从而减小模型体积并提高推理效率。传统的剪枝方法主要有两类:一种是结构化剪枝(Structured Pruning),它会删除模型中整块的参数,就像从一本书中删除整个章节;另一种是非结构化剪枝(Unstructured Pruning),它会选择性地删除分散的单个参数,就像从一本书中零星地删除一些不那么重要的句子。
在非结构化剪枝领域,已有多种方法被提出。比如,基于参数大小的剪枝(Magnitude)会保留那些绝对值较大的参数;SparseGPT会采用逐层、逐行的贪婪剪枝策略;而Wanda则会同时考虑权重值和对应输入激活的范数来评估参数重要性。这些方法虽然取得了不错的效果,但它们都忽视了一个关键问题:模型中不同层的重要性是不同的。它们对所有层都使用相同的剪枝率,就好比对一本书的每一章都删减相同比例的内容,而不考虑章节的重要性差异。
针对这一问题,近期有研究提出了非均匀层剪枝的概念。例如,OWL(Outlier Weighed Layerwise Sparsity)方法认为,含有更多"异常值"(即特别重要的参数)的层更为关键,应该被赋予更低的剪枝率。这种方法取得了比均匀层剪枝更好的效果,但它也存在局限性:它依赖于预定义的标准来选择异常值,这不仅限制了其适应模型动态需求的能力,也妨碍了实现最佳性能。
二、DLP:动态评估层重要性的新方法
面对上述挑战,陈宇立等研究者提出了动态分层剪枝(DLP)方法。这种方法就像是一位经验丰富的编辑,能够自动判断书中每一章的重要性,并据此决定应该删减多少内容。DLP的核心理念是从反向角度计算每一层的"不重要性",然后转化为层与层之间的相对重要性。基于"重要层应该有更低剪枝率"的原则,DLP为每一层分配适当的剪枝率。
那么,DLP是如何确定层的重要性的呢?研究团队采用了一种巧妙的方法——中位数(Median)。一些早期研究表明,在模型中,中位数附近的元素通常是冗余的,可以被同一层中的其他元素替代。研究团队通过三项实证研究证明了中位数在大型语言模型中的有效性。
中位数的一个重要特性是它对异常值不敏感。想象一下,如果一个班级有29名学生的身高都在170厘米左右,但有一名学生身高达到了210厘米,计算平均身高会受到这个异常值的显著影响,但中位数则几乎不受影响。这使得中位数能够更准确地反映一个层中大多数参数的中心趋势,特别是当该层包含异常值时。
DLP算法的工作流程如下:首先,它计算每个Transformer块的"不重要性",这是基于模型权重和输入激活值的中位数;然后,它评估层与层之间的相对"不重要性",进而确定模型的相对重要性;最后,它根据"重要层应有更低剪枝率"的原则为每一层分配剪枝率。
三、实验结果:证明DLP的有效性
为了验证DLP的有效性,研究团队在多种主流大型语言模型上进行了全面的实验评估,这些模型参数规模从7B到30B不等,架构包括LLaMA、Vicuna、Mistral等。实验结果令人振奋:DLP方法始终优于现有的最先进的大型语言模型剪枝技术,特别是在高稀疏度(即高剪枝率)水平下。
举个例子,当剪枝率达到70%时,DLP将LLaMA2-7B的困惑度(perplexity,这是衡量语言模型性能的指标,越低越好)降低了7.79,并将平均准确率提高了2.7%,相比于现有最先进的方法。这就像是通过更科学的减肥方法,不仅让运动员减轻了体重,还提高了他的运动表现。
在实际推理加速方面,DLP也表现出色。当在CPU上使用DeepSparse推理引擎时,在70%-90%的稀疏度下,DLP实现了2.8x-3.7x的端到端加速。这意味着,原本可能需要一秒钟处理的任务,现在只需不到半秒就能完成,大大提高了效率。
此外,研究人员还发现,经过短暂的微调,高稀疏度剪枝后的模型性能可以恢复到合理范围。这就像是运动员在减重后通过适当的训练,很快就能恢复甚至提升运动能力。
四、DLP的广泛兼容性:不只是一种剪枝方法
作为一种通用方法,DLP不仅适用于非结构化剪枝,还可应用于N:M稀疏度(其中N指的是非零权重的数量,M是总权重数量)和结构化剪枝,并且始终优于分层方法。更重要的是,DLP与量化技术正交,也可以扩展到奇异值分解(SVD)和参数高效微调(PEFT)等方法,实现显著的性能提升。
例如,研究团队将DLP应用于结构化剪枝方法LLM-Pruner,结果表明,非均匀分层稀疏度允许LLM-Pruner在不同稀疏度水平下更好地保持性能。在N:M稀疏度配置中,DLP也取得了优于均匀N:M稀疏度的性能。特别是在1:4和2:8的高稀疏度场景下,DLP方法分别将困惑度降低了240倍和41倍。
此外,研究人员还将DLP与量化技术结合,评估剪枝后模型在量化前后的性能。结果表明,使用DLP剪枝的模型在量化后始终优于使用均匀稀疏度剪枝的模型。值得注意的是,4位量化模型的性能几乎与16位量化模型相同,这表明应用DLP可以在保持性能的同时实现4倍的模型大小减少。
五、实际应用价值与未来展望
DLP方法的提出不仅是学术上的突破,更具有重要的实际应用价值。随着人工智能技术的普及,大型语言模型正在越来越多地融入我们的日常生活。然而,这些模型的庞大规模限制了它们在资源受限设备上的应用,如个人电脑、智能手机等。DLP通过显著减少模型参数量并提高推理效率,为大型语言模型在边缘设备上的部署铺平了道路。
想象一下,在不久的将来,我们可能能够在个人设备上运行经过DLP优化的大型语言模型,无需依赖云服务器,这将大大提高用户体验,减少延迟,并增强隐私保护。例如,一个经过DLP优化的助手可以在你的智能手机上本地运行,即使在没有网络连接的情况下也能帮助你撰写邮件、回答问题或提供建议。
此外,DLP方法的通用性和灵活性使其能够与其他模型压缩和优化技术相结合,进一步提升性能和效率。这为未来的研究和应用打开了广阔的空间。例如,将DLP与其他创新的剪枝、量化或知识蒸馏方法结合,可能会产生更加高效和强大的大型语言模型。
总的来说,陈宇立等研究者提出的DLP方法为大型语言模型的优化提供了一种新的、更加有效的方法。通过动态评估层重要性并据此分配剪枝率,DLP能够在保持模型性能的同时显著减少参数量,提高推理效率。这项研究不仅推动了学术领域的进步,也为大型语言模型的实际应用带来了新的可能性。
当然,尽管DLP取得了显著的成果,但大型语言模型的优化仍然是一个充满挑战的研究领域。未来的研究可能会探索更加精细和高效的层重要性评估方法,或者将DLP与其他创新技术相结合,进一步提升大型语言模型的性能和效率。但无论如何,DLP已经为我们提供了一种更加智能和高效的大型语言模型"减肥"方法,让这些"知识巨人"变得更加"苗条"而不失其强大能力。