大语言模型的深度裁剪法

本文探讨了如何通过深度剪枝技术优化大语言模型,特别是在内存受限条件下,深度剪枝与宽度剪枝方法相比,展示了在零样本任务中的竞争力和推理速度的显著提升。研究者提出了一种简单的深度剪枝方法,结合LoRA重训练,与最先进的宽度剪枝方法相当,促进了大语言模型在资源受限环境下的部署和应用。
摘要由CSDN通过智能技术生成

在人工智能领域,大语言模型(LLMs)已经成为推动语言理解和生成任务进步的重要力量。随着模型规模的不断扩大,如何优化这些模型的计算效率成为了一个迫切需要解决的问题。大型语言模型通常包含数十亿甚至数千亿的参数,这使得它们在部署和运行时需要巨大的计算资源。为了使这些模型更加易于访问并且在实际应用中更加高效,研究者们积极探索各种优化策略。

在众多优化策略中,结构化剪枝(structured pruning)方法被证明是一种有效的减少大型语言模型计算需求的手段。结构化剪枝通过移除模型中不必要的权重组,既可以减少模型的大小,又能够在不依赖特定硬件的情况下加速模型的运行。具体来说,宽度剪枝(width pruning)通过减少投影权重矩阵的大小(例如,移除注意力头)来缩小模型规模,同时保持层数不变。与之相对的深度剪枝(depth pruning)则是移除整个层或模块,但保持剩余权重的大小不变。

尽管当前的研究主要集中在宽度剪枝或宽度和深度剪枝的混合方法上,但对于这两种剪枝单元(宽度与深度)对于大型语言模型推理效率的影响,尚缺乏详细的比较分析。在本文中,我们将展示一个简单的深度剪枝方法如何在零样本任务性能上与最新的宽度剪枝方法相竞争。我们的剪枝方法特别适用于在内存受限的条件下运行大型语言模型,这些条件要求使用有限的批量大小,而在这种情况下宽度剪枝方法往往无效。研究者希望这项工作能够将大语言模型部署到本地和边缘设备上。

论文标题:Shortened LLaMA: A Simple Depth Pruning for Large Language Models

公众号「夕小瑶科技说」后台回复“Shortened ”获取论文pdf。
 

深度剪枝与宽度剪枝:概念与对比

1. 宽度剪枝的定义与实践

宽度剪枝是一种减少大型语言模型(LLMs)计算需求的结构化剪枝方法。它通过减少投影权重矩阵的大小(例如,移除注意力头)来缩小网络宽度,同时保持层数不变。在实践中,如LLM-Pruner和FLAP所展示的,宽度剪枝通过剪除耦合结构(例如,注意力头及其相关的权重连接)来缩小网络宽度。然而,这种方法在受限批处理大小的条件下,对于提高LLMs的自回归生成速度并不有效。

2. 深度剪枝的概念及其在LLM中的应用

与宽度剪枝相对,深度剪枝移除整个层或块,同时保持剩余权重的大小不变。深度剪枝通常被认为与宽度剪枝相比,在性能上不那么有效,因为它涉及到更大和更粗糙的单元的消除。该研究展示了一个简单的深度剪枝方法,结合LoRA重训练阶段,可以与最近的宽度剪枝方法相媲美,特别是在硬件限制下需要运行小批量LLMs的情况下,深度剪枝显著提高了推理速度。

图片

简化的深度剪枝方法:有效的加速策略

1. 选择剪枝单元:Transformer块的重要性评估

在选择剪枝单元时,该研究选择Transformer块作为可剪枝单元,以优先减少推理延迟。通过使用简单的度量标准(如Taylor+和PPL)来识别不重要的块,然后进行一次性剪枝和轻量级重训练。例如,PPL度量标准通过监控每个块的移除对PPL的影响来反映模型的行为,而不需要计算反向传播梯度。

2. 一步剪枝与轻量级重训练

在对块级重要性评分进行排序后,研究者一次性剪除不太重要的块。由于每个块的配置相同,可以轻松决定应该移除多少块以达到目标模型大小。

3. LoRA重训练阶段的实现与效率

该研究使用低秩适应(LoRA)方法有效地对剪枝模型进行重训练。LoRA重训练可以在单个GPU上仅用几小时完成。例如,对7B参数模型剪枝20%大约需要2小时和22GB VRAM,而对13B参数模型剪枝21%大约需要3小时和35GB VRAM。这表明LoRA重训练阶段在实现上效率高,且对资源的要求相对较低。

图片

实验设置与基线比较

1. 模型选择与基线方法介绍

在本研究中,我们关注的是大型语言模型(LLMs)的结构化剪枝,这是一种减少计算需求的方法。研究比较了宽度剪枝和深度剪枝对于LLMs推理效率的影响。宽度剪枝通过减少投影权重矩阵的大小(例如,移除注意力头)来缩小网络宽度,而保持层数不变。相比之下,深度剪枝则是移除整个层或块,同时保持剩余权重的大小不变。

实验使用了LLaMA-7B和Vicuna-{7B, 13B}-v1.3这两个著名的开源LLMs作为测试床。基线方法包括LLM-Pruner、FLAP和Wanda-sp,这些方法通过剪枝来缩小网络宽度。通过移除Transformer块来减少网络深度。使用LLM-Pruner的模块级剪枝比例(25%,35%,45%)作为参考,并相应地调整研究方法和其他基线方法,以便在参数数量上进行比较。

2. 数据集、评估标准与实验环境

在剪枝阶段,研究者使用了包含10个样本的小型校准集(来自BookCorpus,序列长度为128)来评估Transformer块的重要性。还使用了这个校准数据集来确保与基线方法的公平比较。在LoRA重训练阶段,凭借精炼的Alpaca数据集中的50K样本。

评估方面,通过lm-evaluation-harness包来测量七个常识推理数据集的零样本准确性,并报告了WikiText2和PTB上的零样本困惑度(PPL)。在推理阶段,保持默认配置,不使用xFormers优化的注意力或其他高级选项。

实验使用了Hugging Face的Transformers库,并在NVIDIA A100 GPU上进行。所有涉及7B参数模型的实验可以在单个NVIDIA RTX 3090上进行。

实验结果与分析

1. 剪枝后模型的零样本任务性能

深度剪枝方法与最近的宽度剪枝研究相比,在零样本任务性能方面具有竞争力。例如,LLaMA-7B模型在剪枝后在七个常识推理任务上的平均准确性表现与未剪枝的模型相当。此外,该研究方法在WikiText2和PTB数据集上的零样本PPL表现也与基线方法相当。

2. 剪枝对推理速度的影响

深度剪枝显著提高了推理速度,尤其是在硬件限制下需要使用有限批量大小运行LLMs的情况下。例如,在NVIDIA H100 GPU上,深度剪枝方法在不同输入和输出序列长度的情况下,都实现了更好的延迟-吞吐量权衡。与此相反,FLAP和LLM-Pruner的宽度剪枝方法由于GPU不友好的权重尺寸而降低了效率。

3. 不同剪枝粒度的效果对比

该研究还比较了不同剪枝粒度的效果。移除整个Transformer块而不是单独的MHA和FFN模块通常会带来更好的结果。例如,在LLaMA-7B模型上,块级剪枝与模块级剪枝相比,在保持性能的同时减少了更多的计算成本和内存占用。

深度剪枝的相关分析与讨论

1. 剪枝准则的比较:Taylor+与PPL方法

在深度剪枝的实践中,选择合适的剪枝准则至关重要,因为它直接影响到模型的性能和效率。在本研究中,我们比较了两种剪枝准则:Taylor+和PPL(Perplexity)。

Taylor+方法侧重于评估权重参数移除对训练损失的影响,通过计算输出神经元级别的权重重要性分数,并将这些分数相加以评估块级别的重要性。这种方法在常识推理任务的准确性方面表现出色,但它需要计算反向传播梯度,这可能会增加计算成本。

另一方面,PPL方法通过物理地移除每个块并监控其对PPL的影响来评估块的重要性。PPL反映了模型的行为,因为它是从下一个令牌预测损失中得出的,只需要前向传递,避免了计算反向传播梯度和Hessian逆的需要。PPL方法在生成性能方面表现更好,而且不依赖于启发式选择剪枝候选。

图片

2. 一步剪枝与迭代剪枝的性能差异

在深度剪枝的过程中,可以选择一步剪枝或迭代剪枝。一步剪枝是在单个步骤中剪掉不太重要的块,而迭代剪枝则是重复进行单块移除和随后的重训练。

研究表明,一步剪枝在重训练阶段能够有效地弥补与迭代剪枝之间的性能差距。尽管一步剪枝可能会在初期导致性能损失,但通过LoRA(Low-Rank Adaptation)方法的有效重训练,我们能够恢复深度剪枝模型的性能。这表明,尽管一步剪枝的方法更为简单和快速,但它仍然能够达到与迭代剪枝相似的性能水平。

从知识蒸馏到系统级推理加速

在追求高效的大型语言模型(LLMs)方面,除了网络剪枝之外,还开发了许多技术,包括知识蒸馏、量化和系统级推理加速。知识蒸馏是一种模型压缩技术,它通过训练一个较小的模型来模仿一个较大模型的行为。量化则是减少模型权重的位数以减少模型大小和计算需求的技术。

系统级推理加速涉及到在系统级别进行优化,以提高模型的推理速度。这些优化可能包括内存管理、计算调度和硬件加速等方面。本研究专注于网络剪枝,这是模型压缩领域的一个长期存在的方法。与仅使用零掩码的剪枝模型相比,结构化剪枝通过移除有组织的模式(例如整个层或模块)来提高硬件无关的推理效率。

这项研究探索了深度剪枝在多亿参数LLMs中的应用,这是一个相对未被充分研究的领域。通过移除Transformer块来显著加速推理延迟,同时在竞争性能方面取得了与宽度剪枝方法相媲美的结果。

结论与展望

1. 深度剪枝方法总结与贡献

本研究通过对大型语言模型(LLMs)的深度剪枝进行了系统的分析,提出了一种简单而有效的深度剪枝方法。与传统的宽度剪枝方法相比,深度剪枝方法在小批量处理条件下,特别是在内存受限的硬件上运行LLMs时,能够显著提高推理速度。该方法通过一次性移除整个Transformer块,并结合LoRA重训练阶段,展现了与最新宽度剪枝技术相匹敌的零样本任务性能。

主要贡献有以下几点:

  • 在受限批量大小的场景中,深度剪枝方法能够有效提升LLMs的自回归生成速度,这一点在以往的研究中鲜有探讨。

  • 该研究提出了一种简单且有效的LLMs深度剪枝策略,并探索了多种设计因素,包括可剪枝单元的选择、重要性评估标准以及重训练频率。

  • 通过排除若干Transformer块获得的紧凑型LLMs,在零样本任务中的表现与精细宽度剪枝模型相当,同时实现了推理加速。

2. 未来研究方向

尽管深度剪枝方法已经取得了显著的成果,但未来的研究可以在以下几个方向进行深入探索:

  • 研究更强大的重训练方法,包括全参数更新和知识蒸馏,以进一步提升剪枝后模型的性能。

  • 对校准数据进行更深入的研究,以更好地理解其对剪枝效果的影响,并优化剪枝过程中的数据选择。

  • 探索深度剪枝与其他模型压缩技术(如量化、知识蒸馏)的结合,以实现更高效的LLMs部署。

  • 考虑不同硬件平台的特性,优化剪枝方法以适应更广泛的部署场景,包括边缘设备和移动平台。

通过这些未来的研究工作,期望能够进一步推动大语言模型在资源受限环境中的应用,使其更加普及和高效。

公众号「夕小瑶科技说」后台回复“Shortened ”获取论文pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值