Redian新闻
>
大模型压缩首篇综述来啦~~

大模型压缩首篇综述来啦~~

公众号新闻

来自:对白的算法屋

进NLP群—>加入NLP交流群
近来,LLM以惊人的推理效果惊艳全世界,这得益于它巨大的参数量与计算任务。GPT-175B模型为例,它拥有1750亿参数,至少需要320GB(以1024的倍数计算)的半精度(FP16)格式存储空间。此外,为了有效管理操作,部署该模型进行推理至少需要五个A100 GPU,每个GPU配备80GB内存。巨大的存储与计算代价让有效的模型压缩成为一个亟待解决的难题。

来自中国科学院和人民大学的研究者们深入探讨了基于LLM的模型压缩研究进展并发表了该领域的首篇综述《A Survey on Model Compression for Large Language Models》

论文链接:https://arxiv.org/pdf/2308.07633.pdf

模型压缩涉及将大型资源密集型模型转化为适合在受限移动设备上存储的紧凑版本。此外,它还可以优化模型以实现更快的执行速度和最小的延迟,或在这些目标之间取得平衡。

该综述主要围绕针对LLMs的模型压缩技术的方法、指标与基准展开,并将相关研究内容组成了一个新的分类,包括:

  • 剪枝(Pruning)
  • 知识蒸馏(Knowledge Distillation)
  • 量化(Quantization)
  • 低秩分解(Low-Rank Factorization)

图1:针对大型语言模型的模型压缩方法分类。

一、方法

剪枝(pruning)
剪枝指移除模型中不必要或多余的组件,比如参数,以使模型更加高效。通过对模型中贡献有限的冗余参数进行剪枝,在保证性能最低下降的同时,可以减小存储需求、提高内存和计算效率。论文将剪枝分为两种主要类型:非结构化剪枝和结构化剪枝
非结构化剪枝指移除个别参数,而不考虑整体网络结构。这种方法通过将低于阈值的参数置零的方式对个别权重或神经元进行处理。它会导致特定的参数被移除,模型出现不规则的稀疏结构。并且这种不规则性需要专门的压缩技术来存储和计算被剪枝的模型。此外,非结构化剪枝通常需要对LLM进行大量的再训练以恢复准确性,这对于LLM来说尤其昂贵。SparseGPT [Frantar and Alistarh, 2023] 引入了一种一次性剪枝策略,无需重新训练。该方法将剪枝视为一个广泛的稀疏回归问题,并使用近似稀疏回归求解器来解决,实现了显著的非结构化稀疏性。LoRAPrune [Zhang等, 2023a] 将参数高效调整(PEFT)方法与剪枝相结合,以提高下游任务的性能。它引入了一种独特的参数重要性标准,使用了来自Low-Rank Adaption(LoRA)的值和梯度。Wanda [Sun等, 2023]提出了一种新的剪枝度量。它根据每个权重的大小以及相应输入激活的范数的乘积进行评估,这个乘积是通过使用一个小型校准数据集来近似计算的。这个度量用于线性层输出内的局部比较,使得可以从LLM中移除优先级较低的权重。
结构化剪枝根据预定义规则移除连接或分层结构,同时保持整体网络结构。这种方法一次性地针对整组权重,优势在于降低模型复杂性和内存使用,同时保持整体的LLM结构完整。LLM-Pruner [Ma等, 2023] 采用了一种多功能的方法来压缩LLMs,同时保护它们的多任务解决和语言生成能力。它引入了一个依赖检测算法,以定位模型内部的相互依赖结构。它还实施了一种高效的重要性估计方法,考虑了一阶信息和近似Hessian信息。

知识蒸馏(Knowledge Distillation,KD)

KD通过从一个复杂的模型(称为教师模型)向一个简化的模型(称为学生模型)转移知识来实现。在这一部分中,我们概述了使用LLM作为教师的蒸馏方法,并根据这些方法是否强调将LLM的涌现能力(EA)蒸馏到小型语言模型(SLM)中来进行分类,包括:Standard KD和EA-based KD。

图2:对语言模型知识蒸馏的简要分类。
Standard KD旨在使学生模型学习LLM所拥有的常见知识,如输出分布和特征信息。这种方法类似于传统的KD,但区别在于教师模型是LLM。
MINILLM [Gu等,2023] 深入研究了从白盒生成LLMs进行蒸馏的方法,并选择最小化反向KLD,防止了学生过高估计教师分布中的低概率区域,从而提高了生成样本的质量。

GKD [Agarwal等,2023] 探索了从自回归模型进行蒸馏的方法,其中白盒生成LLMs作为其中一个子集。它通过在训练期间从学生模型中采样输出序列来处理分布不匹配问题,并通过优化替代的散度,如反向KL散度,来解决模型不足的问题。
相比之下,EA-based KD不仅仅是将LLM的常见知识转移到学生模型中,还涵盖了蒸馏它们独特的涌现能力。具体来说,EA-based KD又分为了上下文学习(ICL)思维链(CoT)指令跟随(IF)
ICL采用了一个结构化的自然语言提示,其中包含任务描述和可能的一些演示示例。通过这些任务示例,LLM可以在不需要显式梯度更新的情况下掌握和执行新任务。黄等人的工作引入了ICL蒸馏,将LLMs的上下文少样本学习和语言建模能力转移到SLMs中。它将上下文学习目标与传统的语言建模目标相结合,并在两种少样本学习范式下探索了ICL蒸馏,即Meta-ICT 和 Multitask-ICT。
CoT与ICL相比,在提示中加入了中间推理步骤,这些步骤可以导致最终的输出,而不是使用简单的输入-输出对。MT-COT [Li等, 2022]旨在利用LLMs产生的解释来增强较小的推理器的训练。它利用多任务学习框架,使较小的模型具备强大的推理能力以及生成解释的能力。Fine-tune-CoT [Ho等, 2023]通过随机采样从LLMs生成多个推理解决方案。这种训练数据的增加有助于学生模型的学习过程。傅等人发现了语言模型的多维能力之间的权衡,并提出了微调的指令调整模型。他们从大型教师模型中提取CoT推理路径以改进分布外泛化。谢等人在多任务框架内使用LLM原理作为额外的指导,训练较小的模型。SOCRATIC CoT [Shridhar等, 2023]训练了两个蒸馏模型:问题分解器和子问题解决器。分解器将原始问题分解为一系列子问题,而子问题解决器则处理解决这些子问题。DISCO [Chen等, 2023]引入了一种基于LLMs的完全自动反事实知识蒸馏方法。它通过工程化的提示生成短语扰动,然后通过任务特定的教师模型将这些扰动数据过滤,以提取高质量的反事实数据。SCOTT [Wang等, 2023a]采用对比解码,将每个原理与答案联系起来。它鼓励从教师那里提取相关的原理。此外,指导学生进行反事实推理并基于导致不同答案的原理进行预测。
IF仅依赖于任务描述而不依赖于少量示例。通过使用一系列以指令形式表达的任务进行微调,语言模型展现出能够准确执行以前未见过的指令描述的任务的能力。Lion等, 2023]利用LLMs的适应性来提升学生模型的性能。它促使LLM识别和生成“困难”指令,然后利用这些指令来增强学生模型的能力。

图3:EA-based KD概述。a)上下文学习蒸馏,(b)思维链式蒸馏,(c)指令跟随蒸馏。

量化(Quantization)

量化技术将传统的表示方法中的浮点数转换为整数或其他离散形式,以减轻深度学习模型的存储和计算负担。谨慎的量化技术,可以在仅有轻微精度降低的情况下实现大规模的模型压缩。依据应用量化压缩模型的阶段,可以分为以下三种方法:
化感知训练Quantization-Aware Training,QAT):在QAT中,量化目标无缝地集成到模型的训练过程中。这种方法使LLM在训练过程中适应低精度表示,增强其处理由量化引起的精度损失的能力。这种适应旨在保持在量化过程之后的更高性能。LLM-QAT [Liu等,2023] 利用预训练模型生成的结果来实现无数据蒸馏。此外,LLM-QAT不仅量化权重和激活,还量化关键-值(KV)缓存。这个策略旨在增强吞吐量并支持更长的序列依赖。LLM-QAT能够将带有量化权重和KV缓存的大型LLaMA模型蒸馏为仅有4位的模型。这一突破性的结果证明了制造准确的4位量化LLM的可行性。
量化感知微调(Quantization-Aware Fine-tuning,QAF)QAF涉及在微调过程中对LLM进行量化。主要目标是确保经过微调的LLM在量化为较低位宽后仍保持性能。通过将量化意识整合到微调中,LLM旨在在模型压缩和保持性能之间取得平衡。PEQA [Kim等,2023]和QLORA [Dettmers等,2023a]都属于量化感知参数高效微调(PEFT)技术的范畴。这些技术侧重于促进模型压缩和加速推理。PEQA采用了双阶段过程。在第一阶段,每个全连接层的参数矩阵被量化为低位整数矩阵和标量向量。在第二阶段,对每个特定下游任务的标量向量进行微调。QLORA引入了新的数据类型、双重量化和分页优化器等创新概念。这些想法旨在在不影响性能的情况下节省内存。QLORA使得大型模型可以在单个GPU上进行微调,同时在Vicuna基准测试上实现了最先进的结果。
训练后量化(Post-Training Quantization,PTQ)PTQ涉及在LLM的训练阶段完成后对其参数进行量化。PTQ的主要目标是减少LLM的存储和计算复杂性,而无需对LLM架构进行修改或进行重新训练。PTQ的主要优势在于其简单性和高效性。然而,值得注意的是,PTQ可能会在量化过程中引入一定程度的精度损失。在PTQ中,某些方法专注于仅对LLM的权重进行量化,以提高效率并减少计算需求。LUT-GEMM [Park等,2022]通过仅对权重进行量化以及使用BCQ格式在LLM中优化矩阵乘法,通过提高计算效率来增强延迟降低和性能。LLM.int8() [Dettmers等,2022]对LLM transformers中的矩阵乘法采用8位量化,在推理过程中有效地减少GPU内存使用量,同时保持性能精度。该方法采用矢量量化和混合精度分解来处理异常值,以实现高效的推理。ZeroQuant [Yao等,2022]将硬件友好的量化方案、逐层知识蒸馏和优化的量化支持整合在一起,将Transformer-based模型的权重和激活精度减少到最小的INT8,并且对准确性几乎没有影响。GPTQ [Frantar等,2022]提出了一种基于近似二阶信息的新型分层量化技术,使得每个权重的比特宽度减少到3或4位,与未压缩版本相比,几乎没有准确性损失。Dettmers和Zettlemoyer通过分析推理缩放定律,深入探讨了LLM中模型大小和位精度之间在零样本性能方面的权衡。他们在各种LLM家族之间进行了广泛的实验,发现4位精度几乎普遍是在总模型位数和零样本准确性之间实现正确平衡的最佳选择。AWQ [Lin等,2023]发现对于LLM的性能,权重并不是同等重要的,仅保护1%的显著权重可以大大减少量化误差。在此基础上,AWQ采用了激活感知方法,考虑与较大激活幅度对应的权重通道的重要性,这在处理重要特征时起着关键作用。该方法采用逐通道缩放技术来确定最佳缩放因子,从而在量化所有权重的同时最小化量化误差。OWQ [Lee等,2023]通过分析激活异常如何放大权重量化中的误差,引入了混合精度量化方案,将更高的精度应用于易受激活异常影响的权重。SpQR [Dettmers等,2023b]确定并隔离了异常权重,将其存储在更高的精度中,并将所有其他权重压缩为3-4位。此外,许多PTQ中的工作尝试对LLM的权重和激活进行量化。SmoothQuant [Xiao等,2022]解决了量化激活的挑战,这往往由于异常值的存在而变得更加复杂。SmoothQuant观察到不同的标记在它们的通道上展示出类似的变化,引入了逐通道缩放变换,有效地平滑了幅度,使得模型更易于量化。鉴于量化LLM中激活的复杂性,RPTQ [Yuan等,2023]揭示了不同通道之间不均匀范围的挑战,以及异常值的存在所带来的问题。为了解决这个问题,RPTQ将通道策略性地分组为簇进行量化,有效地减轻了通道范围的差异。此外,它将通道重排集成到层归一化操作和线性层权重中,以最小化相关的开销。OliVe [Guo等,2023]进一步采用了outlier-victim对(OVP)量化,并在低硬件开销和高性能增益的情况下局部处理异常值,因为它发现异常值很重要,而其旁边的正常值却不重要。Outlier Suppression+ [Wei等,2023]通过确认激活中的有害异常呈现出不对称分布,主要集中在特定通道中,引入了一种新的策略,涉及通道级的平移和缩放操作,以纠正异常的不对称呈现,并减轻问题通道的影响,并定量分析了平移和缩放的最佳值,同时考虑了异常的不对称性以及下一层权重引起的量化误差。ZeroQuant-FP [Wu等,2023]探索了浮点(FP)量化的适用性,特别关注FP8和FP4格式。研究揭示,对于LLM,FP8激活在性能上持续优于INT8,而在权重量化方面,FP4在性能上与INT4相比具有可比性,甚至更优越。为了解决由权重和激活之间的差异引起的挑战,ZeroQuant-FP要求所有缩放因子为2的幂,并将缩放因子限制在单个计算组内。值得注意的是,ZeroQuant-FP还集成了Low Rank Compensation (LoRC) 策略,以进一步增强其量化方法的有效性。
此外,将相关工作根据LLM权重中的位数(精度)进行分类,又可以分为8位量化和低位量化。

图4:对语言模型(LLM)的量化方法概述。我们将它们分为8位量化和低位量化两类,根据LLM权重中的位数(即精度)来进行划分。

低秩分解(Low-Rank Factorization)

低秩分解旨在通过将给定的权重矩阵分解成两个或多个较小维度的矩阵,从而对其进行近似。低秩分解背后的核心思想是找到一个大的权重矩阵W的分解,得到两个矩阵U和V,使得W≈U V,其中U是一个m×k矩阵,V是一个k×n矩阵,其中k远小于m和n。U和V的乘积近似于原始的权重矩阵,从而大幅减少了参数数量和计算开销。
在LLM研究的模型压缩领域,研究人员通常将多种技术与低秩分解相结合,包括修剪、量化等,例如LoRAPrune [Zhang等,2023a]和ZeroQuant-FP [Wu等,2023],以实现更有效的压缩同时保持性能。随着这一领域的研究继续进行,可能会在将低秩分解应用于压缩LLM方面出现进一步的发展,但仍需要持续的探索和实验来充分发挥其在LLM方面的潜力。

二、指标和基准

指标
Number of Parameters:LLM中可学习权重或变量的总数,LLM在训练期间需要优化这些权重。
Model Size:指存储整个LLM所需的磁盘空间或内存占用,包括权重、偏置和其他必要组件。
Compression Ratio:未压缩LLM的原始大小与压缩LLM的大小之间的比率。
Inference time:衡量LLM在推理或预测期间处理输入数据并生成响应所花费的时间。
Floating point operations (FLOPs):衡量LLM在处理输入数据时执行的涉及浮点数(通常是32位或16位)的算术操作数量。

基准

常见的NLP基准:GLUE、LAMBADA、LAMA、SQuAD;

HULK:全面评估了预训练语言模型(PLMs)的能效;

ELUE:整合了六个NLP数据集,涵盖了情感分析、自然语言推断、相似性和改写任务。

三、挑战和未来方向

专用的基准。首先,模型压缩的评估缺乏普遍接受的标准设置。其次,可能不是在移动设备上典型任务的最佳代表。并且,为预训练模型设计的基准也可能不适用在移动设备上的常见任务。

性能与大小的权衡。当前的工作仍缺乏对这种权衡理论和实证的洞见。

动态LLM压缩。目前压缩方法仍然依赖于手动设计来确定LLMs的压缩大小和结构,这种手动尝试会在实际工作带来阻碍。

可解释性。可解释性压缩方法的整合应成为LLM压缩应用进展的重要必要条件。采用可解释性压缩不仅针对解释性问题,还简化了压缩模型的评估过程。反过来也增强了模型在生产阶段的可靠性和可预测性。


进NLP群—>加入NLP交流群

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
免费《大模型应用实践》实训营第二周课程来啦!这次百度算法工程师团队手把手教你构建大模型应用,另有第一周干货回顾!8张3090,1天压缩万亿参数大模型!3.2TB骤降至160GB,压缩率高达20倍NUS、NTU团队发布医疗大模型综述,全面介绍大模型在医疗领域的最新研究进展他们用一生来治愈童年春游纽约- (上)Storm King Art center大模型在无损压缩方面超越PNG和FLAC历数5年89篇研究,这篇综述告诉我们深度学习中的代码数据增强怎么样了中科大提出:LLMs的个性化综述,详述大模型与个性化的挑战与机遇打破校史!211,首篇Science!小模型如何比肩大模型,北理工发布明德大模型MindLLM,小模型潜力巨大大模型落地最后一公里:111页全面综述大模型评测传OpenA正测试DALL·E 3模型;华为语音助手支持AI大模型;亚马逊组建AI大模型新团队丨AIGC大事日报李开复零一万物发布首款大模型;马斯克xAI发布首个大模型;360、美团、昆仑万维等最新消息;vivo发布蓝心AI大模型多模态大模型最全综述来了!7位微软研究员大力合作,5大主题,成文119页中国科学院团队首篇LLM模型压缩综述:细聊剪枝、知识蒸馏、量化技术AI海洋中的海妖之歌:腾讯AI Lab大模型幻觉问题综述综述 | 多模态大模型最全综述来了!给车年检调查分析两百余篇大模型论文,数十位研究者一文综述RLHF的挑战与局限日更综述5000字?这份文献综述速成攻略请收下!(免费领书)【周末综艺会9期】哭哭笑笑显眼包如何写出惊艳众人的文献综述,50页+Citespace详尽教程,一步搞定文献综述生成式AI时代的模型压缩与加速,韩松主讲MIT课程,资料全公开分析过688篇大模型论文,这篇论文综述了LLM的当前挑战和应用AVS感知无损压缩标准概述——视觉无损质量等级视频浅压缩免费大模型实战课|首周聚焦百度智能云千帆大模型平台使用,《大模型应用实践》实训营11月16日开讲!北京理工大学发布双语轻量级语言模型,明德大模型—MindLLM,看小模型如何比肩大模型科研上新 | 大模型推进科研边界;大模型的道德价值对齐;优化动态稀疏深度学习模型;十亿规模向量搜索的高效更新谷歌证实大模型能顿悟,特殊方法能让模型快速泛化,或将打破大模型黑箱苹果创新大模型压缩技术,大模型有机会塞进手机里了十亿参数,一键瘦身!「模型减重」神器让大模型狂掉3/4 | 最“in”大模型哈工大发布大模型思维链推理综述:200+文献全面解析大语言模型思维链推理最新进展回忆是人生的宝貴財富综述太长没空看?这一热门机制的重磅综述已拆解完,让你5分钟掌握!AIGC时代的视频扩散模型,复旦等团队发布领域首篇综述
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。