趋近智
结构化剪枝是一种通过移除整个预定义的参数 (parameter)组来压缩机器学习 (machine learning)模型的技术。这种方法会产生更规则的稀疏模式,标准硬件(如GPU和TPU)通常能更高效地处理,从而直接减少计算和内存带宽需求,而无需专用内核。非结构化剪枝则通过移除单个权重 (weight)提供了最大灵活性,但其不规则的稀疏模式通常需要专用硬件或软件支持(如稀疏矩阵库)才能转化为实际的推理 (inference)速度提升。
其核心在于识别并移除对模型整体性能贡献最小的较大网络结构组件。对于基于Transformer的大型语言模型,有几种结构化剪枝技术尤为重要:
每个Transformer块中的前馈网络 (FFN) 子层通常由两次线性变换和一个激活函数 (activation function)构成。神经元剪枝针对该FFN的中间层,移除第一个权重 (weight)矩阵的整行以及第二个权重矩阵的对应列。这有效地移除了中间表示中的特定“神经元”或维度。
假设一个FFN定义为:
其中 是输入, 从维度 映射到 , 从 映射回 。剪枝中间层的一个神经元意味着减小维度 。如果我们移除第 个神经元,我们将移除 中权重矩阵的第 行和 中权重矩阵的第 列。
重要性判据: 我们如何决定剪枝哪些神经元?常见的判据包括:
剪枝神经元直接减小了FFN层的宽度 (),缩小了权重矩阵,并减少了推理 (inference)过程中所需的浮点运算 (FLOPs) 数量。
多头注意力 (multi-head attention) (MHA) 使模型能够联合关注来自不同表示子空间、不同位置的信息。注意力头剪枝涉及从MHA层中移除整个注意力头。
回想一下,在MHA中,输入查询 ()、键 () 和值 () 通过为每个头学习到的不同投影矩阵,进行 次(其中 是头的数量)线性投影。注意力机制 (attention mechanism)独立应用于每个头,结果被连接起来并投影回模型维度。
剪枝第 个注意力头意味着移除对应的投影矩阵 以及输出投影矩阵 的对应部分。
重要性判据: 选择要剪枝的头通常涉及比简单权重 (weight)范数更复杂的指标:
移除注意力头直接降低了注意力机制的计算成本,因为执行的独立注意力计算更少,并且随后的连接和输出投影涉及更小的矩阵。
比较非结构化剪枝产生的不规则稀疏性与结构化剪枝中移除整个神经元或注意力头产生的规则稀疏性。已剪枝的组件以灰色显示。
虽然神经元剪枝和注意力头剪枝是Transformer中最常见的方法,但还存在其他粒度级别:
结构化剪枝通常迭代进行:
微调是重要的一步。移除模型的大部分参数最初可能导致性能显著下降。微调使剩余参数能够适应并补偿被移除的组件。
结构化剪枝的主要优势在于其与硬件效率的直接对应。移除整个注意力头或FFN神经元会带来更小的密集矩阵乘法和更低的内存需求。标准深度学习 (deep learning)库和硬件加速器可以高效执行这些较小的密集操作,而无需专用稀疏计算支持。这通常意味着延迟和内存占用方面的可衡量减少,使其在资源受限环境中部署大型语言模型具有吸引力。
结构化剪枝强制在比非结构化剪枝更粗的粒度上进行选择。尽管它产生更硬件友好的模型,但它可能会移除非结构化剪枝会保留的一些参数 (parameter),可能导致在相同参数数量减少的情况下,准确性下降幅度略大。非结构化剪枝和结构化剪枝之间的选择通常取决于目标硬件、所需的压缩级别以及可接受的性能下降。将结构化剪枝与其他技术(如量化 (quantization))结合,可以进一步提高效率,下一节将对此进行讨论。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•