A Survey on Model Compression for Large Language Models

关于大型语言模型模型压缩的调研

迁移学习

A Survey on Model Compression for Large Language Models_第1张图片
A Survey on Model Compression for Large Language Models_第2张图片  在迁移学习中,子模型和父模型的网络架构可以是相同的,也可以是不同的。这取决于具体的迁移学习策略和任务需求。
  如果子模型和父模型的网络架构相同,通常是因为将父模型的权重直接复制到子模型中,然后在子模型中进行微调或进一步训练。这种情况下,子模型会继承父模型的参数和结构,以便更好地适应新的任务。例如,可以在ImageNet数据集上预训练一个卷积神经网络(如ResNet),然后通过微调在具体的图像分类任务上使用相同的ResNet网络架构。
  然而,子模型和父模型的网络架构也可以不同。在这种情况下,可以将父模型作为特征提取器,提取目标任务数据的高级特征,然后连接自定义的分类器或回归器进行训练。这种方法被称为特征提取或冻结某些层的迁移学习。例如,可以使用在自然语言处理任务上预训练的BERT模型作为父模型,将其后面的分类器替换为新任务的分类器,从而利用BERT的语义编码能力加速新任务的学习。
  因此,子模型和父模型的网络架构可以是相同的也可以是不同的,这取决于具体的任务和迁移学习的策略。选择合适的网络架构是迁移学习中重要的决策之一,需要根据任务需求和数据情况来进行选择。

区分子模型和父模型

  在迁移学习中,通常使用预训练的模型作为父模型,并从父模型中提取子模型。子模型是从父模型中截取的一部分,用于解决特定的任务。
  区分迁移学习中的子模型和父模型可以从以下几个方面考虑:
  1.模型结构:子模型通常是在父模型的基础上进行修改或裁剪得到的。父模型可能是一个完整的深度神经网络,而子模型可能是父模型的某些层或部分。子模型的结构可能与父模型有所不同,以适应特定的任务需求。
  2.参数:子模型通常只使用了父模型的部分参数。通过截取父模型的某些层,子模型只保留了与目标任务相关的参数,并重新初始化或微调这些参数。而父模型则包含了所有的预训练参数。
  3.功能:父模型是在一个大规模的源领域或源任务上进行预训练的,具有广泛的知识和抽象表示能力。而子模型是针对目标任务进行优化的,它更专注于目标任务相关的特征提取和分类任务。
需要注意的是,子模型和父模型之间存在着依赖关系。子模型通过继承父模型的参数和特征表示能力来加速目标任务的学习,父模型则提供了预先训练好的知识和经验。
  因此,子模型和父模型是相互关联的,子模型是基于父模型构建的,并根据具体任务需求进行了修改和优化。

知识蒸馏与迁移学习的不同

  (1)数据域不同. 知识蒸馏中的知识通常是在同一个目标数据集上进行迁移,而迁移学习中的知识往往是在不同目标的数据集上进行转移.
  (2)网络结构不同. 知识蒸馏的两个网络可以是同构或者异构的,而迁移学习通常是在单个网络上利用其它领域的数据知识.
  (3)学习方式不同. 迁移学习使用其它领域的丰富数据的权重来帮助目标数据的学习,而知识蒸馏不会直接使用学到的权重.
  (4)目的不同. 知识蒸馏通常是训练一个轻量级的网络来逼近复杂网络的性能,而迁移学习是将已经学习到相关任务模型的权重来解决目标数据集的样本不足问题.

Abstract

  大型语言模型 (LLM) 彻底改变了自然语言处理任务,取得了巨大的成功。 然而,它们巨大的规模和计算需求给实际部署带来了巨大的挑战,特别是在资源有限的环境中。 随着这些挑战变得越来越重要,模型压缩领域已成为缓解这些限制的关键研究领域。 本文提出了一项全面的调查,探讨了专为LLMs量身定制的模型压缩技术的前景。 为了满足高效部署的迫切需求,我们深入研究了各种方法,包括量化、修剪、知识蒸馏等。 在这些技术中,我们重点介绍了有助于LLMs研究不断发展的最新进展和创新方法。 此外,我们还探讨了对评估压缩LLMs有效性至关重要的基准测试策略和评估指标。 通过提供对最新发展和实际影响的见解,这项调查为研究人员和从业者提供了宝贵的资源。 随着LLMs的不断发展,这项调查旨在促进提高效率和现实世界的适用性,为该领域的未来发展奠定基础。

Introduction

  LLMs(大型语言模型)如GPT-175B由于其出色的性能,在各种任务上都表现出优异的结果。然而,它们庞大的尺寸和计算需求也带来了重要的挑战。例如,GPT-175B模型拥有1750亿个参数,至少需要320GB(以1024倍数计算)存储空间,并且在推理过程中至少需要5张A100 GPU,每张GPU具有80GB的内存才能高效运行。为了解决这些问题,一种常见的方法是模型压缩,通过将大型耗资源模型转化为适用于受限移动设备存储的紧凑版本来实现。此外,模型压缩还可以优化模型以实现更快的执行速度和最小的延迟,或在这些目标之间实现平衡。
除了技术方面,LLMs还引发了对环境和伦理问题的讨论。在资源有限的发展中国家,LLMs对工程师和研究人员提出了重大挑战,因为有限的资源可能会妨碍他们获取用于模型执行的关键硬件。此外,LLMs的巨大能源消耗导致碳排放量增加,突显了在AI研究中可持续实践的重要性。一种有希望的解决方案是利用模型压缩技术,其已经显示出在不严重影响性能的情况下可以减少排放。通过实施模型压缩,我们可以解决环境问题,提升可访问性,并促进LLM的普及。
  在我们的论文中,我们主要旨在阐明专门针对LLMs的模型压缩技术领域取得的最新进展。我们进行了详尽的调查,涵盖了方法、度量标准和基准策略,并将其有条理地组织成创新的分类体系。如图1所示,我们提出的分类体系为理解针对LLMs的模型压缩方法的整个领域提供了结构化的框架。这次探索包括对众多成熟技术的深入研究,包括但不限于修剪、知识蒸馏、量化和低秩分解等。此外,我们的研究还揭示了当前存在的挑战,并展望了这一不断发展领域的未来研究方向。我们倡导社区的协作努力,为LLMs的生态意识、全面性和可持续发展铺平道路。值得注意的是,我们的工作是针对LLMs模型压缩领域的首次综述。

Methods

Pruning修剪

  剪枝是一种强大的技术,可以通过删除不必要或冗余的组件来减少模型的大小或复杂性[LeCun et al., 1989; 韩等人,2015; Li et al., 2017]。众所周知,有很多冗余参数对模型的性能影响很小甚至没有影响,因此直接剪枝这些冗余参数后模型的性能下降最少。 同时,剪枝可以使模型存储友好[Ardakani et al., 2019]、内存效率[Han et al., 2015; Yang et al., 2017], 计算效率 [Li et al., 2017]。 剪枝可以分为非结构化剪枝 [Zhang et al., 2018; Gordon 等人,2020] 和结构化修剪 [Anwar 等人,2017; Fang 等人,2023]。 结构化剪枝和非结构化剪枝的主要区别在于剪枝目标和所得的网络结构。 结构化剪枝根据特定规则删除连接或层次结构,同时保留整体网络结构。 另一方面,非结构化剪枝会剪枝各个参数,从而产生不规则的稀疏结构。 最近的研究工作致力于将LLMs与修剪技术相结合,旨在解决与LLMs相关的巨大规模和计算成本。 在本节中,我们根据这些作品是否采用结构化或非结构化修剪策略对这些作品进行系统分类。
  非结构化修剪 非结构化修剪通过删除特定参数而不考虑其内部结构来简化 LLM。 这种方法针对的是LLMs中的个体权重或神经元,通常通过应用阈值将低于其的参数归零。 然而,该方法忽视了LLM的整体结构,导致模型组成不规则。 这种不规则性需要专门的压缩技术来有效存储和计算修剪后的模型。 非结构化修剪通常涉及对LLMs进行大量的再培训以重新获得准确性,这对于LLMs来说尤其昂贵。 该领域的一种创新方法是 SparseGPT [Frantar 和 Alistarh,2023]。它引入了一种不需要重新训练的一次性剪枝策略。 该方法将剪枝视为广泛的稀疏回归问题,并使用近似稀疏回归求解器对其进行求解。 SparseGPT 实现了显着的非结构化稀疏性,在 OPT-175B 和 BLOOM-176B 等最大的 GPT 模型上甚至高达 60%,而困惑度的增加最小。 与此相反,Syed 等人。 提出一种迭代剪枝技术,在剪枝过程中以最少的训练步骤微调模型。 另一项进步是 LoRAPrune [Zhang 等人,2023a],它将参数高效调整 (PEFT) 方法与剪枝相结合,以增强下游任务的性能。 它使用低秩适应 (LoRA) 的值和梯度引入了独特的参数重要性标准 [Hu et al., 2022]。 为了响应 SparseGPT 仍然需要的资源密集型权重更新过程,Wanda [Sun et al., 2023] 提出了一种新的剪枝指标。 Wanda 根据每个权重的大小和相应输入激活的范数的乘积来评估每个权重,并使用小型校准数据集进行近似。 该度量用于线性层输出内的局部比较,从而能够从 LLMS 中删除较低优先级的权重。
  结构化修剪 结构化修剪通过删除整个结构组件(例如神经元、通道或层)来简化LLMs。 这种方法同时针对整组权重,具有降低模型复杂性和内存使用量,同时保持整体 LLM 结构完整的优点。 这个领域的一个例子是 LLM-Pruner [Ma et al., 2023],它采用通用方法来压缩 LLM,同时保护其多任务解决和语言生成能力。 LLM-Pruner 还解决了LLMs使用的大量训练数据带来的挑战,这可能导致大量的数据传输和训练后模型大小。 为了克服这些挑战,LLM-Pruner 结合了依赖性检测算法来查明模型中相互依赖的结构。 它还实现了一种有效的重要性估计方法,该方法考虑一阶信息和近似的 Hessian 信息。 该策略有助于选择最佳的剪枝组,从而改进压缩过程。

知识蒸馏Knowledge Distillation

  知识蒸馏(KD)[Hinton 等人,2015; 金和拉什,2016; Tung 和 Mori,2019] 是一种有价值的机器学习技术,旨在提高模型性能和泛化能力。 它通过将知识从复杂的模型(称为教师模型)转移到更简单的模型(称为学生模型)来实现这一点。 KD背后的核心思想是将教师模型的综合知识转化为更精简、更有效的表示。在本节中,我们对使用大型语言模型(LLMs)作为教师的蒸馏方法进行概述。我们将这些方法分为两个不同的组别:黑盒蒸馏,只能访问教师的预测结果;白盒蒸馏,可以利用教师的参数信息。图2提供了一个关于LLMs知识蒸馏的简要分类可视化。
  White-box KD 在白盒蒸馏中,不仅可以访问教师LLM的预测结果,还可以访问和利用教师LLM的参数信息。这种方法使得学生LLM能够更深入地理解教师LLM的内部结构和知识表示,通常会带来更高水平的性能改进。白盒蒸馏通常用于帮助较小的学生LLM学习和复制更大、更强大的教师LLMs的知识和能力[Gou等人,2021年;Park等人,2019年;Zhao等人,2022年;Liu等人,2021年]。一个形象的例子是MINILLM[Gu等人,2023年],它深入研究了从白盒生成性LLMs进行蒸馏。它观察到通过最小化正向Kullback-Leibler散度(KLD)存在一个挑战 - 这可能导致教师分布中不太可能的区域产生过高的概率,从而在自由运行生成过程中产生不太可能的样本。为了解决这个问题,MINILLM选择最小化反向KLD。这种方法防止了学生对教师分布中低概率区域的过高估计,从而提高了生成样本的质量。相反,GKD[Agarwal等人,2023年]研究了从自回归模型进行蒸馏,其中白盒生成性LLMs是其子集。该方法确定了两个关键问题:训练期间输出序列与学生部署期间生成的序列之间的分布不匹配,以及模型欠约束,即学生模型可能缺乏与教师分布匹配的表达能力。GKD通过在训练过程中从学生中采样输出序列来处理分布不匹配。它还通过优化反向KL等替代散度来解决模型欠约束问题。为了实现对LLMs的任务无关的零-shot评估蒸馏,而无需访问端任务微调数据,TF-LLMD[Jha等人,2023年]使用一个从较大模型中选择的一部分层构成的被截断的模型进行初始化,并利用预训练数据使用语言建模目标对模型进行训练。
  黑盒知识蒸馏(Black-box KD)是指只有教师大型语言模型(LLM)生成的预测可供访问。最近,黑盒知识蒸馏已经展示了在使用LLM API生成的提示-响应对上微调小型模型的良好结果[Li等人,2022;Ho等人,2023;Hsieh等人,2023]。同时,最近的研究[Wei等人,2022a;Schaeffer等人,2023;Zhao等人,2023]强调,随着增加模型大小的重点,像GPT-3(175B参数)和PaLM(540B参数)这样的LLM与像BERT(330M参数)和GPT-2(1.5B参数)这样的小型模型相比,表现出了独特的行为。这些LLM在处理复杂任务时表现出令人惊讶的能力,称为Emergent Abilities。Emergent Abilities包含多个有趣的方面,包括In-Context Learning(ICL)[Dong等人,2023;Wang等人,2023b],Chain-of-Thought(CoT)[Wei等人,2022b;Wang等人,2023c;Shi等人,2023]和Instruction Following(IF)[Ouyang等人,2022;Brooks等人,2023]。在本文中,我们根据利用哪些Emergent Abilities进一步将黑盒知识蒸馏方法分类。因此,我们也将黑盒知识蒸馏称为EA-based KD。有关概述,请参见图3,该图提供了EA-based Knowledge Distillation概念的简明表述。
  ICL采用包含任务描述和可能包含少量任务示例作为演示的结构化自然语言提示。通过这些任务示例,LLM可以掌握和执行新任务,无需明确梯度更新。Huang等人的工作引入了ICL蒸馏,将in-context few-shot学习和语言建模能力从LLM传输到SLM。这是通过将in-context学习目标与传统的语言建模目标相结合来实现的。为了实现这一点,他们在两种few-shot学习范式下探索ICL蒸馏:元-上下文调整(Meta-ICT)和多任务上下文调整(Multitask-ICT)。在Meta-ICT中,语言模型使用in-context学习目标跨多个任务进行元训练。这使得它能够通过in-context学习适应未见过的任务,从而扩展其问题解决能力。另一方面,Multitask-ICT使用ICL目标对模型进行微调,并使用目标任务中的一些示例。随后,它采用了in-context学习来对这些任务进行预测。比较这两个范式,Multitask-ICT展现出了优于Meta-ICT的性能。但是,在任务适应期间它需要更多的计算资源,使得它在计算上更为密集。
与 ICL 相比,CoT 采用了不同的方法,它将中间推理步骤(可以导致最终输出)合并到提示中,而不是使用简单的输入输出对。 MT-COT [Li et al., 2022] 旨在利用LLMs产生的解释来加强小型推理机的训练。 它利用多任务学习框架使较小的模型具有强大的推理能力以及生成解释的能力。 Fine-tuneCoT [Ho et al., 20231] 更进一步,通过随机抽样从 LLM 生成多个推理解决方案。 训练数据的增强有助于学生模型的学习过程。 Fu 等人的研究人员。 确定语言模型的多维能力之间的权衡,并提出微调指令调整模型。 他们从大型教师模型中提取 CoT 推理路径,以提高分布外泛化能力。 谢等人。 使用LLMs原理作为在多任务框架内训练较小模型的额外指导。 SOCRATIC CoT [Shridhar et al., 2023] 训练两个精炼模型:问题分解器和子问题求解器。 分解器将原始问题分解为一系列子问题,而子问题求解器负责解决这些子问题。 DISCO [Chen 等人,2023] 介绍了一种基于 LLM 的全自动反事实知识蒸馏方法。 它的工程师提示使用LLMs生成短语扰动,然后通过特定于任务的教师模型过滤这些扰动,以提取高质量的反事实数据。 为了保证基本原理的准确性,SCOTT [Wang et al., 2023a] 采用对比解码,将每个基本原理与答案联系起来。 它鼓励老师提出相关的理由。 此外,引导学生进行反事实推理,并根据导致不同答案的理由进行预测。
  IF 致力于仅基于阅读任务描述来增强语言模型执行新任务的能力,而不依赖于少数样本。 通过使用一系列以指令表示的任务进行微调,语言模型展示了准确执行以前未见过的指令中描述的任务的能力。 例如,Lion [Jung et al., 2023] 利用LLMs的适应性来提高学生模型的表现。 它促使LLMs识别并生成“硬”指令,然后利用这些指令来增强学生模型的能力。 这种方法利用了LLMs的多功能性来指导学生模型的学习,以解决复杂的指令和任务。

Quantization量化

  在模型压缩领域,量化已成为一种广泛接受的技术,可减轻深度学习模型的存储和计算开销[Liu et al., 2021b; 古拉米等人,2022; Guo 等人,2020]。虽然传统表示采用浮点数,但量化会将它们转换为整数或其他离散形式。 这种转换显着降低了存储需求和计算复杂性。 尽管一些精度损失是固有的,但仔细的量化技术可以实现显着的模型压缩,而精度下降最小。 量化可以分为三种主要方法: 量化感知训练 (QAT) [Tailor et al., 2021; Kim 等人,2022; Ding et al., 2022],量化感知微调(QAF)[Cai et al., 2019; Dong et al., 2019] 和训练后量化 (PTQ) [Liu et al., 2021b; 内格尔等人,2020; Fang et al., 2020]。这些方法的主要区别在于何时应用量化来压缩模型。 QAT 在模型的训练过程中采用量化,QAF 在预训练模型的微调过程中应用量化,PTQ 在模型完成训练后对其进行量化。 最近的研究工作利用量化来压缩LLMs,取得了令人印象深刻的成果。 这些工作分为上述三种方法:量化感知训练、量化感知微调和训练后量化。 此外,表 1 总结了应用于 LLM 的量化方法。 该表根据 LLM 权重中的位数(精度)将这些工作分为 8 位量化和低位量化。
量化感知训练 在QAT(Quantization-Aware Training)中,量化目标被无缝地整合到模型的训练过程中。这种方法使得LLM在训练过程中适应低精度表示,增强了处理由量化引起的精度损失的能力。这种适应旨在保持量化过程后的更高性能。例如,LLM-QAT [Liu et al., 2023] 探讨了为LLM获取训练数据的挑战。考虑到为LLM收集训练数据可能是困难的,LLM-QAT提出了一种创新的解决方案。它利用预训练模型生成的产物来实现无需数据的蒸馏。这种方法在规避数据收集挑战方面有很大帮助。此外,LLM-QAT更进一步地量化了权重、激活和键值(KV)缓存。这个策略旨在提高吞吐量并支持更长的序列依赖性。LLM-QAT的一个值得注意的成就是它能够将具有量化权重和KV缓存的大型LLaMA模型蒸馏为仅4位。这一突破性成果证明了产生准确的4位量化LLM的可行性。
  另一方面,PEQA [Kim et al., 2023a] 和 QLORA [Dettmers et al., 2023a] 都属于量化感知的参数高效微调(PEFT)技术[Liu et al., 2022; Ding et al., 2023; Fu et al., 2023b]。这些技术专注于促进模型压缩和加速推理。PEQA采用双阶段过程。在第一阶段,每个全连接层的参数矩阵被量化为一个低位整数矩阵和一个标量向量。在第二阶段,对每个特定的下游任务进行标量向量的微调。QLORA引入了创新的概念,如新的数据类型、双重量化和分页优化器。这些想法旨在在不牺牲性能的情况下节省内存。QLORA使得大型模型可以在单个GPU上进行微调,并在Vicuna基准测试中取得了最先进的结果[Chiang et al., 2023]。
PTQ(Post-Training Quantization)是在LLM(大型语言模型)训练完成后对其参数进行量化的过程。PTQ的主要目标是在不修改LLM架构或需要重新训练的情况下,降低LLM的存储和计算复杂性。PTQ的主要优势在于其简单和高效地实现模型压缩。然而,需要注意的是,由于量化过程,PTQ可能会引入一定程度的精度损失。该方法为提高LLM的效率提供了一种直接的方式,无需进行重大改动或进行大量的训练工作。
  在PTQ中,某些方法专注于对LLM的权重进行量化,以提高效率并减少计算需求。具体而言,LUT-GEMM [Park等,2022] 使用仅限于权重的量化和BCQ格式 [Rastegari等,2016],通过改善计算效率,优化了LLM内的矩阵乘法,从而提高了延迟和性能。LLM.int8() [Dettmers等,2022] 对LLM transformers中的矩阵乘法使用8位量化,在推断过程中有效地减半了GPU内存使用量,同时保持了性能精度。该方法采用向量量化和混合精度分解来处理异常值,以实现高效的推断。值得注意的是,LLM.int8()实现了在具有高达1750亿个参数的模型中进行推断而几乎不损失性能。GPTQ [Frantar等,2022] 承认上述方法在8位权重等低压缩目标下运行良好,但在保持更高精度时面临挑战。为了解决这些挑战,GPTQ提出了一种基于近似二阶信息的新颖分层量化技术。其结果是将每个权重的位宽减少到3或4位,与未经压缩的版本相比,最小化了精度损失。
  Dettmers和Zettlemoyer在关于模型大小和LLM的位精度之间的权衡方面,通过分析推断缩放定律,对零样本性能进行了深入实验。他们在各种LLM系列之间进行广泛实验,发现4位精度几乎普遍最优,以实现总模型位数和零样本准确性之间的适当平衡。AWQ [Lin等,2023] 发现权重对LLM性能的影响不是均等的,仅保护1%的显著权重可以大大降低量化误差。基于这一洞察,AWQ采用了一种基于激活意义的方法,考虑到与较大激活幅度相对应的权重通道的重要性,这些通道在处理重要特征时起着关键作用。该方法采用了逐通道缩放技术,以识别最优缩放因子,从而最小化量化误差并对所有权重进行量化。OWQ [Lee等,2023] 对激活异常值如何放大权重量化误差进行了理论分析。根据这一分析的启示,OWQ引入了混合精度量化方案,对易受激活异常值引起的量化进行了更高精度的处理。为了将精确的LLM进一步压缩到每个参数的3-4位,同时保持几乎无损失,SpQR [Dettmers等,2023b] 识别和隔离异常权重,将其以更高精度存储,并将所有其他权重压缩到3-4位。SqueezeLLM [Kim等,2023b] 结合基于灵敏度的非均匀量化和稠密-稀疏分解,实现了对超低精度(高达3位)的无损压缩。具体而言,基于灵敏度的非均匀量化根据二阶信息搜索最优位精度分配,并且稠密-稀疏分解以高效的稀疏格式存储异常值和灵敏权重值。根据权重和Hessian矩阵不相关性对量化的好处的洞察,QuIP [Chee等,2023] 利用自适应舍入过程最小化二次代理目标,并通过随机正交矩阵的乘法实现了LLM的2位量化。为了以较低位数实现高精度而仍保持成本效益,Norm Tweaking [Li等,2023a] 通过修正量化激活分布以匹配其浮点对应物,帮助恢复LLMs的准确性。它包括校准数据生成和通道间距约束,以更新归一化层的权重,以获得更好的泛化性能。为了提高仅限于权重的量化的准确性,SignRound [Cheng等,2023] 引入了一种轻量级的块调整方法,使用有符号梯度下降进行调整。
  除了上述仅量化LLM权重的工作外,PTQ中的许多工作尝试量化LLM的权重和激活。ZeroQuant [Yao等,2022]整合了一种硬件友好的量化方案、逐层知识蒸馏和优化的量化支持,将基于Transformer的模型的权重和激活精度降低到INT8,同时最小化精度损失。SmoothQuant [Xiao等,2022]解决了量化激活的挑战,由于存在异常值,这通常更加复杂。通过观察到不同的标记在其通道上表现出类似的变化,SmoothQuant引入了一种逐通道缩放转换,有效地平滑了幅值,使模型更易于量化。通过对各种量化方案、模型系列和量化位精度进行系统的研究,ZeroQuant-V2 [Yao等,2023]发现:1)激活量化通常比权重量化更容易受到影响,较小的模型在激活量化方面通常优于较大的模型;2)目前的方法都不能实现使用INT4权重或INT4权重和INT8激活的原始模型质量。为了解决这些问题,ZeroQuant-V2引入了一种称为低秩补偿(LoRC)的技术,该技术利用量化误差矩阵上的低秩矩阵分解来增强模型的质量恢复,同时最小化模型大小的增加。针对LLM中激活的量化复杂性,RPTQ [Yuan等,2023]揭示了不同通道之间范围不均匀以及存在异常值所带来的挑战。为了解决这个问题,RPTQ将通道策略性地分组为簇,从而有效地减轻通道范围的差异。此外,它将通道重新排序集成到层归一化操作和线性层权重中,以最小化相关开销。OliVe [Guo等,2023]采用了异常值-受害者对(OVP)量化,并以较低的硬件开销和高性能增益处理局部异常值,因为它发现异常值很重要,而与其相邻的常规值则不重要。Outlier Suppression+ [Wei等,2023]通过证实激活中有害异常值呈异态分布、主要集中在特定通道中,引入了一种新的策略,涉及通道级的移位和缩放操作,以纠正异常值的不对称呈现,并减轻有问题通道的影响,并定量分析移位和缩放的最佳值,同时考虑了异常值的不对称性和来自下一层权重的量化误差。ZeroQuant-FP [Wu等,2023b]探索了浮点(FP)量化的适用性,特别关注FP8和FP4格式。研究发现,对于LLM,FP8激活始终优于其整数对应物(INT8),而在权重量化方面,FP4相比INT4表现出可比较甚至更好的性能。为了解决权重和激活之间的差异带来的挑战,ZeroQuant-FP要求所有缩放因子为2的幂,并将缩放因子限制在单个计算组内。值得注意的是,ZeroQuant-FP还将低秩补偿(LoRC)策略集成到其量化方法中以进一步增强效果。FPTQ [Li等,2023b]将两种量化方法W8A8和W4A16的优点结合起来,为可用的开源LLM设计了一种新颖的W4A8后训练量化方法,并将细粒度权重量化与逐层激活量化策略相结合,其中包括一种针对最棘手层的对数均衡。QuantEase [Behdin等,2023]是一个创新的逐层量化框架,为各个层提供了不同的量化过程。核心挑战被定义为一个离散结构的非凸优化问题,并通过应用坐标下降(CD)技术推导出有效的解决方案。OmniQuant [Shao等,2023]由两个突破性组件组成:可学习的权重剪裁(LWC)和可学习的等效变换(LET)。这些组件旨在有效地微调一系列量化参数。OmniQuant在可微分框架中运行,采用块级误差最小化,能够在各种量化配置中实现令人印象深刻的性能。

Low-Rank Factorization低秩分解

  低阶分解 [Cheng et al., 2017; 波维等人,2018; Idelbayev 和 Carreira-Perpinan,2020] 是一种模型压缩技术,旨在通过将给定的权重矩阵分解为两个或多个维度显着降低的较小矩阵来近似给定的权重矩阵。 低秩分解背后的核心思想涉及将大权重矩阵 W 分解为两个矩阵 U 和 V,使得 W ≈ UV,其中 U 是 m x k 矩阵,V 是 k x n 矩阵,其中 k 远小于 m 和 n. U和V的乘积近似于原始权重矩阵,从而导致参数数量和计算开销的大幅减少。 在LLM研究领域,低秩分解已被广泛采用来有效地微调LLM,例如LORA [Hu et al., 2022]及其变体[Valipour et al., 2023; 张等人,2023b; Chavan 等人,2023]。 与上述工作不同,我们重点关注这些使用低秩分解来压缩 LLM 的工作。 在LLM研究的模型压缩领域,研究人员经常将多种技术与低秩分解相结合,包括剪枝、量化等,例如LoRAPrune [Zhang et al., 2023a]和ZeroQuantFP [Wu et al., 2023] ,在保持性能的同时实现更有效的压缩。 随着该领域研究的继续,将低秩因式分解应用于压缩LLMs方面可能会取得进一步的进展,但似乎仍需要进行持续的探索和实验,以充分利用其对LLMs的潜力。

Metrics and Benchmarks

  LLMs的推理效率可以使用各种指标进行衡量,这些指标捕捉了性能的不同方面。这些指标通常与准确性和零样本能力一起呈现,以全面评估LLM。
Number of Parameters
  LLM中的参数数量[Ma等,2023;Dasgupta等,2023]是指LLM在训练过程中需要优化的可学习权重或变量的总数。在LLM中,参数表示神经元之间或注意力层之间的连接权重。一般来说,LLM的参数越多,它的表达能力就越强,但同时也需要更多的计算资源和内存用于训练和推理。
Model Size
  模型大小[Shridhar等,2023;Li等,2022;Magister等,2023]通常指存储整个LLM所需的磁盘空间或内存占用。模型大小与参数数量密切相关,因为更多的参数通常会导致更大的模型大小。然而,其他因素,如表示参数的数据类型和模型架构,也会影响整体大小。
Compression Ratio
  压缩比[Frantr and Alistarh,2023;Tao等,2023]表示未压缩LLM的原始大小与压缩LLM的大小之间的比率。较高的压缩比表明更有效的压缩,因为LLM在保持功能和性能的同时已经显著减小了大小。
Inference time
  推理时间(即延迟)[Kurtic等,2023;Frantr等,2022]衡量LLM在推理或预测过程中处理和生成输入数据的响应所花费的时间。推理时间对于实时应用程序尤为关键,其中LLM需要对用户查询进行响应或实时处理大量数据。
Floating point operations (FLOPs)
  FLOPs[Dettmers和Zettlemoyer,2022;Yuan等,2023;Wei等,2023]衡量LLM在处理输入数据时涉及的浮点运算(通常是32位或16位)的数量。FLOPs提供了一种估计LLMs的计算需求并比较不同LLMs或压缩技术效率的有用方式。

基准测试

  这些基准测试和数据集的主要目标是衡量压缩LLM在效果、效率和准确性方面与未压缩LLM的对比情况。这些基准测试和数据集通常包含各种任务和数据集,涵盖了自然语言处理的各种挑战。
  Common Benchmarks and Datasets
  GLUE和SuperGLUE:用于评估语言模型在广泛的自然语言理解任务上的性能。
  LAMBADA:用于评估语言模型对上下文依赖性理解的能力。
  LAMA和StrategyQA:用于评估语言模型的推理能力。
  SQuAD:用于机器阅读理解任务。
  另外,还有一些特定的基准测试和数据集:
  BIG-Bench(BBH):这是一个针对LM设计的基准测试套件,涵盖了200多个NLP任务,包括文本理解、推理和数学推理任务等。BBH的目标是评估LM在这些复杂任务上的性能。
  Unseen Instructions Datasets:
  这些数据集旨在评估LLM在面对任意任务时的性能。其中两个著名的数据集是Vicuna-Instructions和User-Oriented-Instructions。这些数据集旨在评估压缩LLM在面对未知指令时的能力,以评估它们处理和执行任意任务的能力。
  这些基准测试和数据集提供了对模型性能和效率的多维度评估,有助于深入了解模型在真实世界任务上的表现,并进行方法评估。

挑战和未来方向

More advanced Methods

  当前对于LLM(Large Language Model)的模型压缩技术的研究仍处于早期阶段。现有研究已经证明,相较于未压缩模型,这些压缩LLM仍存在显著的性能差距。通过进一步探索专为LLM定制的更先进的模型压缩方法,我们有望提升未压缩LLM的性能。
  性能与模型大小的权衡
  先前的研究已经强调了大语言模型(LLM)性能和模型大小之间的微妙平衡。分析这种权衡可以在硬件限制条件下实现最佳性能。然而,目前的工作缺乏对这种权衡的理论和经验洞察。未来的LLM压缩研究应进行全面的分析,以指导先进的技术。了解性能和大小之间的关系使研究人员能够开发定制的压缩方法,有效地在设计空间中寻找高效的解决方案。
  动态LLM压缩
  尽管当前的压缩方法取得了一定的进展,但它们仍然依赖手动设计来确定压缩LLM的大小和结构。这通常涉及基于输入数据或任务需求的试错方法。在诸如知识蒸馏之类的场景中,这个过程变得尤为困难,需要进行多次尝试以找到在计算限制下合适的学生模型。这种手动努力带来了实际上的阻碍。一个有希望的解决方案出现在将神经架构搜索(NAS)技术整合到压缩LLM领域中。NAS有潜力减少对人工设计架构的依赖,从而可能为LLM压缩提供改进的效率和效果。
  可解释性
  早期的研究已经对应用于预训练语言模型(PLM)的压缩技术的可解释性提出了重要的担忧。值得注意的是,这些挑战同样适用于LLM压缩方法。例如,在CoT-distillation中为何能够使SLM具备CoT能力并在推理任务中实现良好性能,目前没有明确的解释。因此,引入可解释的压缩方法成为LLM压缩应用推进的关键需求。此外,采用可解释的压缩方法不仅解决了可解释性问题,还简化了压缩模型的评估流程。这反过来增强了模型在生产阶段的可靠性和可预测性。

Conclusion

  在这份详尽的调查中,我们探索了针对大型语言模型(LLM)的模型压缩技术。我们的内容涵盖了压缩方法、评估指标和基准数据集。通过深入研究LLM压缩,我们强调了其中的挑战和机遇。随着LLM压缩的不断发展,迫切需要研究专门针对LLM的先进方法,以实现其在各个应用领域的潜力。这份调查旨在成为有价值的参考资料,提供对当前领域的见解,并推动对这一关键主题的持续探索。

你可能感兴趣的:(论文,语言模型,人工智能,自然语言处理)