模型剪枝是深度学习中的一种技术,涉及从现有的人工神经网络中移除参数。其主要目标是在尽可能保持准确率的同时,减小网络的规模(以参数数量衡量)以及运行所需的计算资源。这一过程常被比作生物神经突触修剪,后者发生在哺乳动物大脑发育期间,通过消除未使用的神经连接来提高效率。
剪枝是部署大型模型的重要工具,例如将大型语言模型部署到内存或计算能力有限的设备上,如智能手机或边缘设备。这些方法在人工智能开发的许多领域受到关注,涉及主要云服务提供商和消费级硬件。
剪枝类型:结构化与非结构化
最常见的剪枝类型是结构化和非结构化剪枝。非结构化剪枝,也称为边缘剪枝或权重剪枝,侧重于将单个权重设为零。决定删除哪些权重通常基于某种重要性指标;更常见的是使用权重幅值,或结合权重与梯度信息。基本算法通常从评估每个参数的重要性开始,对其进行排序,然后移除最不重要的参数。这可以在局部(针对单个层)或全局(针对整个网络)范围内进行。相比之下,结构化剪枝移除的是更大的组件,例如神经网络中的节点(神经元)。类似的过程会确定哪些神经元是重要的或无关紧要的,然后将后者整体移除。
剪枝时机
剪枝可以在模型生命周期的不同阶段进行:训练前、训练中或训练后。如果在训练后进行剪枝,通常需要对模型进行额外的微调(即重新训练若干周期),以恢复因剪枝而损失的部分性能。训练前剪枝,有时被称为稀疏初始化,旨在找到一个可以从头开始高效训练的子网络结构,这有时能意外地减少训练时间。训练中剪枝则采用动态机制,在模型学习过程中不断调整网络拓扑结构。每种方法都在最终准确率、重新训练的计算成本以及剪枝后立即获得的加速效果之间进行权衡。
重要性指标
如何识别需要剪枝的参数或神经元是一个关键问题。常见的方法包括衡量权重的幅值,其假设是幅值较小的权重对模型输出的贡献较小。另一种方法是将权重值和训练过程中的梯度信息结合起来,以近似损失函数的变化。结合权重和梯度的方式衍生出一些著名的二阶方法,这些方法可能会使用海森矩阵的近似。其他方法则衡量特定神经元在给定数据集上的激活程度,或者评估将该神经元的输出设为零(即剪除它)对网络输出的影响。
与其他压缩技术的关系
剪枝通常与其他模型压缩方法结合使用。剪枝减少的是非零参数的数量,而量化则减少每个参数所需的比特数,,例如,将一个权重从32位浮点数存储为8位整数。这些技术是互补的,目的都是为了提高推理效率。另一种相关的模型压缩方法是知识蒸馏,即训练一个较小的、紧凑的模型来模仿原始大模型的输出,从而在不一定移除参数的情况下获得高质量的小模型。剪枝通常针对给定的网络架构进行操作,并保持该架构结构不变,而知识蒸馏则有效地创建了一个新的(通常更小的)模型结构。
现代剪枝研究与实践
当前关于剪枝的研究非常活跃,不仅关注提高计算吞吐量,还致力于解释剪枝对模型能力的影响,特别是对于剪枝后的大型语言模型。非结构化剪枝在实践中很难利用标准的GPU和CPU优化线性代数库来加速,因为稀疏张量运算的效率通常低于密集矩阵乘法。相反,结构化剪枝在理论上可以带来更大的加速效果,因为它移除了完整的矩阵行或列等结构单元,这些单元可以直接从矩阵乘法运算中剔除,同时保持权重布局的规则性(密集性)。当前实践也涉及专用硬件,例如一些AI加速器。近期研究,尤其是来自斯坦福AI实验室、麻省理工学院等学术机构的工作,经常发表关于如何在保持模型质量基本不下降的前提下,将大型语言模型转变为稀疏模型,以及如何融合底层内存访问模式以优化性能的研究成果。
硬件与软件支持
剪枝不仅仅是一种实验性技术,它已被广泛应用于消费级硬件。鉴于大型模型在运行时消耗大量内存和能量,主要的芯片制造商和公司已经积极地将稀疏性支持集成到硬件和软件栈中。例如,NVIDIA设计的GPU以及AMD的特定产品线,都引入了利用权重稀疏性来跳过计算中零值的方法,从而加速稀疏矩阵乘法。云服务提供商也提供专门的AI加速器,如AWS Trainium,这是一种定制芯片,旨在帮助训练和部署模型。不同的硬件平台可能支持不同类型的稀疏模式,例如,某些硬件要求将零值按结构化块(如2:4稀疏模式)进行排列才能获得实际性能提升。像三星、苹果和高通等消费设备公司也在其系统级芯片中采用类似方法,以提高设备端推理引擎的效率。此外,包括微软Azure和谷歌云在内的主要软件和服务提供商,也集成了剪枝技术,以加速大型语言模型的推理服务,从而降低运营成本。
历史与研究背景
神经网络剪枝的概念已存在数十年,其根源可追溯到20世纪80年代,当时像Yann LeCun等研究人员提出了“最优脑损伤”等方法。这一名称借鉴了神经生物学中的突触修剪现象,即人脑在发育过程中会清除未使用的神经连接。如今,现代深度学习从业者普遍认识到,训练好的模型往往高度参数化,存在大量冗余。例如,一个标准的Transformer模型可能包含数百万甚至数十亿的参数,但其中许多参数在推理时对最终输出的贡献很小。研究发现,可以移除大量冗余参数(有时超过90%)而几乎不影响模型性能。这一现象催生了“彩票假说”等理论,认为在随机初始化的网络中,存在一个稀疏的子网络,如果单独训练,可以达到与原始网络相当甚至更好的性能。相关研究还探讨了剪枝与持续学习的关系,即如何在模型学习新任务的同时进行剪枝,以避免灾难性遗忘。
相关条目
- 知识蒸馏
- 神经达尔文主义