首篇大模型压缩论文综述

news2024/12/21 19:17:28

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

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

Abstract

大型语言模型(LLMs)已经彻底改变了自然语言处理任务,并取得了巨大成功。然而,它们庞大的规模和计算需求给实际部署带来了巨大挑战,尤其是在资源有限的环境中。随着这些挑战变得日益相关,模型压缩领域已成为缓解这些限制的关键研究领域。本文对专为 LLM 量身定制的模型压缩技术进行了全面调查。为了满足高效部署的迫切需要,我们深入探讨了各种方法,包括量化、剪枝、知识提炼等。在每种技术中,我们都重点介绍了最近的进展和创新方法,它们为 LLM 研究的不断发展做出了贡献。此外,我们还探讨了对评估压缩 LLM 的有效性至关重要的基准策略和评估指标。通过提供对最新发展和实际影响的见解,本调查报告成为研究人员和从业人员的宝贵资源。随着 LLM 的不断发展,本调查旨在提高效率和实际应用性,为该领域未来的进步奠定基础。

1 Introduction

大型语言模型(LLMs)[Zhao 等人,2023 年;Huang 和 Chang,2023 年;Chang 等人,2023 年]在各种任务中始终表现出卓越的性能。然而,由于其庞大的体积和计算要求,其卓越的性能也带来了巨大的挑战。例如,GPT-175B 模型[Brown 等人,2020]拥有令人印象深刻的 1750 亿个参数,需要至少 320GB (使用 1024 的倍数)的半精度(FP16)格式存储空间。此外,部署该模型进行推理需要至少 5 个 A100 GPU(每个具有 80GB 内存),以便有效管理操作。为了解决这些问题,一种被称为模型压缩的流行方法[Deng 等人,2020;He 等人,2018]提供了一种解决方案。模型压缩包括将大型、资源密集型模型转化为适合在受限移动设备上存储的紧凑版本。此外,它还可能涉及优化模型,使其执行速度更快,延迟最小,或在这些目标之间实现平衡。

除了技术方面,LLM 还引发了有关环境和伦理问题的讨论。这些模型给发展中国家的工程师和研究人员带来了巨大挑战,因为那里资源有限,无法获得执行模型所需的基本硬件[Lin 等人,2023]。此外,LLMs 的大量能源消耗也会造成碳排放,这凸显了可持续实践在人工智能研究中的重要性。利用模型压缩技术是应对这些挑战的一个很有前景的解决方案,该技术已经展示了在不大幅影响性能的情况下减少排放的潜力[Luccioni 等人,2022]。通过实施模型压缩,我们可以解决环境问题,提高可访问性,并促进 LLM 部署的包容性。

在本文中,我们的主要目标是阐明最近在专为 LLM 量身定制的模型压缩技术领域取得的进展。我们的工作包括对方法论、度量标准和基准进行详尽的调查,并将其精心整理成创新的分类法。如图 1 所示,我们提出的分类法为了解 LLM 的模型压缩方法提供了一个结构化框架。这种探索包括对成熟技术的彻底检查,包括但不限于剪枝、知识提炼、量化和低秩分解。此外,我们的研究还揭示了当前面临的挑战,并为这一不断发展的领域提供了潜在的未来研究轨迹。我们倡导社区内的合作努力,为具有生态意识、包罗万象和可持续发展的未来 LLM 铺平道路。值得注意的是,我们的工作是专门针对LLMs模型压缩领域的首次调查。
在这里插入图片描述

2 Methods

2.1 Pruning

剪枝是一种强大的技术,通过去除不必要或冗余的成分来减小模型的大小或复杂度[LeCun 等,1989;Han 等,2015;Li 等,2017]。我们知道,有很多冗余参数对模型的性能影响很小甚至没有影响,因此,直接剪枝这些冗余参数后,模型的性能下降会最小。同时,剪枝可以使模型存储友好[Ardakani 等,2019]、内存效率高[Han 等,2015;Yang 等,2017]、计算效率高[Li 等,2017]。剪枝可分为非结构化剪枝 [Zhang 等人,2018;Gordon 等人,2020] 和结构化剪枝 [Anwar 等人,2017;Fang 等人,2023]。结构化修剪与非结构化修剪的主要区别在于修剪目标和由此产生的网络结构。结构化剪枝根据特定规则删除连接或层次结构,同时保留整体网络结构。另一方面,非结构化修剪会删除单个参数,从而形成不规则的稀疏结构。近期的研究致力于将 LLM 与剪枝技术相结合,以解决 LLM 的巨大规模和计算成本问题。在本节中,我们将根据这些研究是否采用了结构化或非结构化剪枝策略对其进行系统分类。

Unstructured Pruning

非结构化修剪是在不考虑 LLM 内部结构的情况下,通过删除特定参数来简化 LLM。这种方法的目标是 LLM 中的单个权重或神经元,通常是通过应用一个阈值将低于该阈值的参数清零。然而,这种方法忽略了 LLM 的整体结构,导致模型组成不规则稀疏。这种不规则性要求采用专门的压缩技术来高效存储和计算剪枝模型。非结构化修剪通常需要对 LLM 进行大量的重新训练,以重新获得准确性,这对 LLM 来说尤其昂贵。SparseGPT [Frantar and Alistarh, 2023]是这一领域的一种创新方法。它引入了一种无需重新训练的单次剪枝策略。该方法将剪枝作为一个广泛的稀疏回归问题,并使用近似稀疏回归求解器进行求解。SparseGPT 实现了显著的非结构稀疏性,在最大的 GPT 模型(如 OPT-175B 和 BLOOM-176B)上甚至达到了 60%,而复杂度的增加却微乎其微。与此相反,Syed 等人提出了一种迭代剪枝技术,在剪枝过程中以最少的训练步骤对模型进行微调。另一个进步是 LoRAPrune [Zhang 等人,2023a],它将参数高效调整(PEFT)方法与剪枝相结合,以提高下游任务的性能。它引入了一种独特的参数重要性标准,使用低强度自适应(Low-Rank Adaption,LoRA)[Hu 等人,2022] 的值和梯度。针对 SparseGPT 仍然需要的资源密集型权重更新过程,Wanda [Sun 等人,2023] 提出了一种新的剪枝指标。Wanda 根据每个权重的大小与相应输入激活的常模的乘积来评估每个权重,并使用小型校准数据集进行近似。该指标可用于线性层输出的局部比较,从而从 LLM 中去除优先级较低的权重。

Structured Pruning

结构化剪枝通过删除神经元、通道或层等整个结构组件来简化 LLM。这种方法一次性针对整组权重,在保持 LLM 整体结构不变的同时,还具有降低模型复杂度和内存使用量的优势。LLM-Pruner [Ma等人,2023]就是这方面的一个例子,它采用多功能方法压缩 LLM,同时保护其多任务求解和语言生成能力。LLM-Pruner 还能解决因 LLM 使用大量训练数据而带来的挑战,这些数据会导致大量的数据传输和训练后模型的大小。为了克服这些挑战,LLM-Pruner 采用了一种依赖性检测算法,以确定模型中相互依存的结构。它还实施了一种高效的重要性估计方法,该方法同时考虑了一阶信息和近似Hessian 信息。这种策略有助于选择最佳分组进行剪枝,从而改进压缩过程。

2.2 Knowledge Distillation

知识蒸馏(KD)[Hinton等人,2015;Kim和Rush,2016;Tung和Mori,2019]是一种宝贵的机器学习技术,旨在提高模型性能和泛化能力。它通过将复杂模型(称为教师模型)中的知识转移到较简单的对应模型(称为学生模型)中来实现这一目标。KD 背后的核心思想是将教师模型的综合知识转化为更精简、更有效的表示。在本节中,我们将概述采用 LLM 作为教师的提炼方法。我们对这些方法进行分类的依据是,它们是否侧重于将 LLM 的新兴能力 (EA) 提炼为小语言模型 (SLM)。因此,我们将这些方法分为两个不同的类别: Standard KD 和 EA-base KD 。为便于直观表达,图 2 提供了 LLM 知识提炼的简要分类。
在这里插入图片描述

Standard KD

Standard KD 的重点是让学生模型学习 LLM 所拥有的常识,如输出分布和特征信息。这种方法类似于 vanilla KD [Gou 等人,2021;Park 等人,2019;Zhao 等人,2022;Liu 等人,2021a],但区别在于教师模型是 LLM。MINILLM [Gu 等人,2023] 就是一个很好的例子,它深入研究了从白盒生成式 LLMs 中提炼的问题。它观察到了最小化前向 Kullback-Leibler divergence(KLD)的挑战–这会导致教师分布中不可能区域的概率过高,从而在自由运行生成过程中造成不可能的样本。为了解决这个问题,MINILLM 选择最小化反向 KLD。这种方法可以防止学生高估教师分布中的低概率区域,从而提高生成样本的质量。相比之下,GKD [Agarwal 等人,2023] 探索了从自动回归模型中提炼,其中白盒生成 LLM 是一个子集。这种方法能发现两个关键问题:一是训练期间的输出序列与学生在部署期间生成的输出序列之间的分布不匹配;二是模型规范不足,即学生模型可能缺乏与教师分布相匹配的表现力。GKD 通过在训练期间对学生的输出序列进行采样,来处理分布不匹配问题。它还通过优化反向 KL 等其他发散来解决模型规格不足的问题。

EA-based KD

EA-based KD 不只是从 LLM 中转移常识,还包括提炼其独特的新兴能力。最近的研究[Wei 等人,2022a;Schaeffer 等人,2023;Zhao 等人,2023]强调,尽管强调扩大模型规模,但与 BERT(3.3 亿个参数)和 GPT-2(1.5 亿个参数)等较小模型相比,GPT-3(175B 参数)和 PaLM(540B 参数)等 LLM 展示了独特的行为。这些 LLM 在处理复杂任务时表现出惊人的能力,被称为 “新兴能力”(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]。图 3 是 EA-based 的 "知识蒸馏 "概念的简明概括。
在这里插入图片描述

ICL 采用结构化的自然语言提示,其中包含任务描述和一些任务示例。通过这些任务示例,LLM 可以掌握并执行新任务,而无需进行明确的梯度更新。Huang 等人的工作介绍了 ICL 提炼,它将语境中的少量学习和语言建模能力从 LLMs 转移到 SLMs,这是通过将语境中的学习目标与传统的语言建模目标相结合来实现的。为实现这一目标,他们探索了两种少量学习范式下的 ICL 蒸馏法: 元语境调整Meta In-context Tuning(Meta-ICT)和多任务语境调整Multitask In-context(Multitask-ICT)。在 Meta-ICT 中,语言模型利用上下文学习目标在不同任务中进行元训练。这使它能够通过语境内学习适应未知任务,从而扩展其解决问题的能力。另一方面,Multitask-ICT 使用 ICL 目标和目标任务中的少量示例对模型进行微调。随后,它利用上下文学习对这些任务进行预测。比较这两种范式,Multitask-ICT 的性能优于 Meta-ICT。不过,在任务适应过程中,它确实需要更多的计算资源,因此计算量更大。

与 ICL 相比,CoT 采用了一种不同的方法,即在提示中加入中间推理步骤,而不是使用简单的输入-输出对,这样做可以导致最终输出。MT-COT[Li等人,2022]旨在利用LLM产生的解释来加强对小型推理机的训练。它利用多任务学习框架,使较小的模型具有强大的推理能力和生成解释的能力。Fine-tune-CoT[Ho等人,2023]则更进一步,通过随机抽样从LLM中生成多种推理方案。这种训练数据的扩充有助于学生模型的学习过程。Fu 等人的研究发现了语言模型多维能力之间的权衡问题,并建议对指令调整模型进行微调。他们从大型教师模型中提炼出 CoT 推理路径,以改进分布外泛化。Hsieh 等人采用 LLM 推理作为额外的指导,在多任务框架内训练较小的模型。SOCRATIC CoT [Shridhar et al., 2023]训练了两个提炼的模型:一个问题分解器和一个子问题求解器。分解器将原始问题分解为一系列子问题,而子问题求解器则负责解决这些子问题。DISCO [Chen 等人,2023] 基于 LLMs 引入了一种全自动的反事实知识提炼方法。该方法利用 LLMs 设计提示以生成短语扰动,然后通过特定任务的教师模型对这些扰动进行过滤,以提取高质量的反事实数据。对于理由的忠实性,SCOTT [Wang 等人,2023a] 采用了对比解码,将每个理由与答案联系起来。它鼓励教师提供相关理由。此外,还引导学生进行反事实推理,并根据导致不同答案的理由进行预测。

IF 致力于提高语言模型在执行新任务时的能力,这种能力完全基于对任务描述的阅读,而不依赖于少量的示例。通过使用一系列以指令形式表达的任务进行微调,语言模型展示了准确执行以前未见过的指令中描述的任务的能力。例如,Lion [Jiang 等人,2023] 利用 LLM 的适应性来提高学生模型的性能。它促使 LLM 识别并生成 "困难 "指令,然后利用这些指令提高学生模型的能力。这种方法利用了 LLM 的多功能性,指导学生模型在处理复杂指令和任务时的学习。

2.3 Quantization

在模型压缩领域,量化已成为一种广受欢迎的技术,可减轻深度学习模型的存储和计算开销[Liu 等人,2021b;Gholami 等人,2022;Guo 等人,2020]。传统表示法采用浮点数,而量化则将其转换为整数或其他离散形式。这种转换大大降低了存储要求和计算复杂度。虽然会有一些固有的精度损失,但仔细的量化技术可以在实现大量模型压缩的同时,将精度降低到最低程度。量化可分为三种主要方法:量化感知训练quantization-aware training(QAT)[Tailor 等人,2021;Kim 等人,2022;Ding 等人,2022]、量化感知微调quantization-aware fine-tuning(QAF)[Cai 等人,2019;Dong 等人,2019]和训练后量化post-training quantization(PTQ)[Liu 等人,2021b;Nagel 等人,2020;Fang 等人,2020]。这些方法的主要区别在于何时应用量化来压缩模型。QAT 在模型训练过程中采用量化,QAF 在预训练模型的微调过程中采用量化,而 PTQ 则在模型完成训练后对其进行量化。近期的研究利用量化技术压缩 LLM,取得了令人瞩目的成果。这些研究分为上述三种方法: 量化感知训练(Quantization-Aware Training)、量化感知微调(Quantization-Aware Finetuning)和训练后量化(Post-Training Quantization)。此外,表 1 综述了应用于 LLM 的量化方法。该表根据 LLM 权重的位数(精度),将这些作品分为 8 位量化和低位量化。
在这里插入图片描述

Quantization-Aware Training

在 QAT 中,量化目标被无缝集成到模型的训练过程中。这种方法能让 LLM 在训练过程中适应低精度表示,增强其处理量化造成的精度损失的能力。这种适应性旨在即使在量化过程之后也能保持更高的性能。例如,LLM-QAT [Liu 等人,2023] 深入研究了为 LLM 获取训练数据所面临的挑战。鉴于为 LLMs 收集训练数据要求很高,LLM-QAT 提出了一种创新的解决方案。它利用预训练模型产生的世代来实现无数据蒸馏。这种方法大大有助于规避数据收集难题。此外,LLM-QAT 更进一步,不仅量化了权重和激活,还量化了键值 (KV) 缓存。这一策略旨在提高吞吐量并支持更长的序列依赖性。LLM-QAT 的一个显著成就是,它能将带有量化权重和 KV 缓存的大型 LLaMA 模型压缩到仅 4 位。这一突破性成果证明了生成精确的 4 位量化 LLM 的可行性。

Quantization-Aware Fine-tuning

QAF 包括在微调过程中量化 LLM。其主要目标是确保经过微调的 LLM 在量化到较低位宽后仍能保持其性能。通过将量化意识融入微调,LLM 可以在模型压缩和保持性能之间取得平衡。PEQA [Kim 等人,2023] 和 QLORA [Dettmers 等人,2023a] 都属于量化感知参数高效微调(PEFT)技术[Liu 等人,2022a;Ding 等人,2023;Fu 等人,2023b]。这些技术的重点是促进模型压缩和加速推理。PEQA 采用双阶段过程。在第一阶段,每个全连接层的参数矩阵被量化为一个低位整数矩阵和一个标量向量。在第二阶段,针对每个特定的下游任务对标量向量进行微调。QLORA 引入了新的数据类型、双量化和分页优化器等创新概念。这些理念旨在节省内存,同时不影响性能。QLORA 能让大型模型在单个 GPU 上进行微调,同时在 Vicuna 基准上取得最先进的结果[Chiang 等人,2023]。

Post-Training Quantization

PTQ 是指在 LLM 的训练阶段结束后,对 LLM 的参数进行量化。PTQ 的主要目的是降低 LLM 的存储和计算复杂度,而无需修改 LLM 架构或重新训练。PTQ 的主要优势在于实现模型压缩的简单性和高效性。不过,值得注意的是,由于量化过程,PTQ 可能会带来一定程度的精度损失。这种方法可以直接提高 LLM 的效率,而无需进行重大改动或大量训练工作。

在 PTQ 中,某些方法侧重于仅量化 LLM 的权重,以提高效率并降低计算需求。具体来说,LUT-GEMM [Park 等人,2022] 使用仅权重量化和 BCQ 格式[Rastegari 等人,2016]优化了 LLM 内的矩阵乘法,通过提高计算效率减少了延迟并增强了性能。LLM.int8()[Dettmers等人,2022]在LLM transfomers 中采用8位量化进行矩阵乘法,在保持性能精度的同时,有效地将推理过程中的GPU内存使用量减半。这种方法采用向量量化和混合精度分解来处理异常值,从而实现高效推理。值得注意的是,LLM.int8()能在不影响性能的情况下推断多达1750亿个参数的模型。ZeroQuant[Yao等人,2022]集成了硬件友好的量化方案、逐层知识提炼和优化的量化支持,将基于Transformer的模型的权重和激活精度降低到INT8,同时将精度影响降到最低。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 比特。

除了上述只量化 LLM 权重的研究之外,PTQ 领域的很多研究都尝试量化 LLM 的权重和激活度。具体来说,SmoothQuant [Xiao 等人,2022] 解决了激活度量化的难题,由于异常值的存在,激活度量化往往更为复杂。SmoothQuant 观察到不同的标记在其通道中表现出相似的变化,因此引入了一种按通道的缩放变换,有效地平滑了幅度,使模型更适于量化。RPTQ [Yuan 等人,2023] 认识到量化 LLM 中激活的复杂性,揭示了不同通道范围不均以及异常值的存在所带来的挑战。为了解决这个问题,RPTQ 有策略地将信道排列成簇进行量化,有效地减少了信道范围的差异。此外,它还将信道重新排序整合到层规范操作和线性层权重中,以最大限度地减少相关开销。OliVe [Guo 等人,2023] 进一步采用离群值-受害者对(OVP)量化,并在本地处理离群值,硬件开销低,性能提升高,因为它发现离群值很重要,而其旁边的正常值却不重要。RPTQ [Yuan 等人,2023] 认识到量化 LLM 中激活的复杂性,揭示了不同通道范围不均以及异常值的存在所带来的挑战。为了解决这个问题,RPTQ 有策略地将信道排列成簇进行量化,有效地减少了信道范围的差异。此外,它还将信道重新排序整合到层规范操作和线性层权重中,以最大限度地减少相关开销。OliVe [Guo 等人,2023] 进一步采用离群值-受害者对(OVP)量化,并在本地处理离群值,硬件开销低,性能提升高,因为它发现离群值很重要,而其旁边的正常值却不重要。离群值抑制 [Wei et al、 2023] 通过证实激活中的有害离群值呈现非对称分布,主要集中在特定通道中,扩展了这一认识,并引入了一种新颖的策略,涉及通道移动和缩放操作,以纠正离群值的非对称呈现,减轻有问题通道的影响,并定量分析了移动和缩放的最佳值,同时考虑到离群值的非对称性质和下一层权重产生的量化误差。ZeroQuant-FP [Wu 等人,2023] 探索了浮点(FP)量化的适用性,特别侧重于 FP8 和 FP4 格式。研究发现,对于 LLMs,FP8 激活的性能一直优于其整数对应格式(INT8),而在权重量化方面,FP4 与 INT4 相比,即使没有优势,也表现出了相当的性能。为了应对权重和激活度之间的差异所带来的挑战,ZeroQuant-FP 规定所有缩放因子都是 2 的幂次,并将缩放因子限制在单个计算组内。值得注意的是,ZeroQuant-FP 还集成了低秩补偿(LoRC)策略,以进一步提高其量化方法的有效性。

2.4 Low-Rank Factorization

低阶因式分解[Cheng 等人,2017 年;Povey 等人,2018 年;Idelbayev 和 Carreira-Perpi ̃ n ́ an,2020 年]是一种模型压缩技术,旨在通过将给定权重矩阵分解为两个或两个以上维数更小的矩阵来逼近该矩阵。低秩因式分解的核心思想包括将一个大权矩阵 W W W分解成两个矩阵 U U U V V V,使得 W ≈ U × V W\approx U\times V WU×V,其中 U U U m × k m\times k m×k矩阵, V V V k × n k\times n k×n矩阵, k k k m m m n n n小得多。 U U U V V V的乘积逼近原始权重矩阵,导致参数数量和计算开销的显著减少。在 LLM 研究领域,低阶因式分解已被广泛用于高效微调 LLM,例如 LORA [Hu 等人,2022] 及其变体 [Valipour 等人,2023;Zhang 等人,2023b;Chavan 等人,2023]。与上述工作不同的是,我们关注的是这些使用低阶因式分解来压缩 LLM 的工作。在 LLM 的模型压缩研究领域,研究者通常会将多种技术与低阶因式分解相结合,包括剪枝、量化等,如 LoRAPrune [Zhang 等,2023a] 和 ZeroQuantFP [Wu 等,2023],以在保持性能的同时实现更有效的压缩。随着该领域研究的不断深入,应用低阶因式分解来压缩 LLM 可能会有进一步的发展,但要充分发挥低阶因式分解在 LLM 中的潜力,似乎还需要不断的探索和实验。

3 Metrics and Benchmarks

3.1 Metrics

LLM 的推理效率可以使用各种指标来衡量,这些指标捕捉了性能的不同方面。这些指标通常与准确度和zero-shot能力一起提出,以全面评估 LLM。

Number of Parameters

LLM 中的参数数[Ma 等人,2023 年;Dasgupta 等人,2023 年]是指 LLM 在训练过程中需要优化的可学习权重或变量的总数。在 LLM 中,参数代表神经元或注意层之间连接的权重。一般来说,LLM 的参数越多,其表现力就越强,但同时也需要更多的计算资源和内存来进行训练和推理。

Model Size

模型大小 [Shridhar 等人,2023;Li 等人,2022;Magister 等人,2023] 通常是指存储整个 LLM(包括权重、偏置和其他必要组件)所需的磁盘空间或内存空间。模型大小与参数数量密切相关,因为参数越多,模型越大。不过,用于表示参数的数据类型和模型架构等其他因素也会影响整体大小。

Compression Ratio

压缩比[Frantar 和 Alistarh,2023 年;Tao 等人,2023 年]表示未压缩 LLM 原始大小与压缩 LLM 大小之间的比率。压缩比越高,说明压缩效率越高,因为 LLM 在保留其功能和性能的同时,体积已大幅缩小。

Inference time

推理时间(即延迟)[Kurtic 等人,2023 年;Frantar 等人,2022 年] 衡量 LLM 在推理或预测过程中处理输入数据并生成响应所需的时间。推理时间对于 LLM 需要实时响应用户查询或处理大量数据的实际应用尤为重要。

Floating point operations (FLOPs)

FLOPs [Dettmers 和 Zettlemoyer,2022;Yuan 等人,2023;Wei 等人,2023] 衡量 LLM 在处理输入数据时执行的涉及浮点数(通常为 32 位或 16 位)的算术运算次数。FLOPs 是估算 LLM 计算要求和比较不同 LLM 或压缩技术效率的有效方法。

3.2 Benchmarks

这些基准的主要目标是测量压缩 LLM 与非压缩 LLM 相比的有效性、效率和准确性。这些基准通常由不同的任务和数据集组成,涵盖了一系列自然语言处理挑战。

Common Benchmarks

大多数研究都是在成熟的 NLP 基准上评估压缩 LLM。例如,GLUE [Wang 等人,2019b] 和 SuperGLUE [Wang 等人,2019a] 旨在评估语言模型在各种自然语言理解(NLU)任务中的性能。LAMBADA [Paperno 等人,2016] 设计用于评估语言模型的上下文相关理解。LAMA [Petroni 等人,2019] 和 StrategyQA [Geva 等人,2021] 都旨在评估语言模型的推理能力。SQuAD [Rajpurkar 等人,2016] 是为机器阅读理解(MRC)任务设计的。

HULK

HULK 基准[Zhou 等人,2021]全面评估了预训练语言模型(PLM)的能效。它采用了研究界广泛使用的经典数据集,评估了 MNLI [Williams 等人,2018]、SST-2 [Socher 等人,2013] 和 CoNLL-2003 [Sang 和 Meulder,2003] 等任务的能效。这种多任务方法量化了预训练、微调和推理阶段的能效,考虑了达到特定性能水平所需的时间和成本。HULK 揭示了预训练模型中的能耗,增强了对实际部署的理解。

ELUE

ELUE 框架[Liu 等人,2022b]可通过性能-效率权衡分析对方法进行全面比较。ELUE 整合了六个 NLP 数据集,涵盖情感分析、自然语言推理、相似性和仿写任务。ELUE 有四个基于参数数量的评估轨道(40M、55M、70M 和 110M),采用 ELUE 分数来衡量模型在不同 FLOPs 设置下相对于 ElasticBERT 的性能优势。这种方法提供了模型性能和效率的多维视角。ELUE 有助于进行深入评估和方法评估。

4 Challenges and Future Directions

Specialized Benchmarks

尽管前面介绍了用于评估模型压缩的基准,但这些基准仍然存在几个缺点。首先,对模型压缩的评估缺乏公认的标准设置。不同的研究通常会产生速度提升率、参数数量和准确度水平各不相同的模型。因此,在这些研究之间进行直接比较具有挑战性,而硬件的差异又使这种比较更加复杂。其次,常见的基准,如 LAMA [Petroni 等人,2019] 和 StrategyQA [Geva 等人,2021],可能并不是移动设备上典型任务的最合适代表。第三,为预训练模型设计的基准可能也不太适合 LLM。一般来说,为 LLM 设计专门的基准非常重要。

Performance-Size Trade-offs

先前的研究[Magister 等人,2023 年;Dettmers 和 Zettlemoyer,2022 年]强调了大型语言模型(LLM)性能与模型大小之间的微妙平衡。通过分析这种平衡,可以在硬件限制条件下实现最佳性能。然而,目前的工作缺乏对这种权衡的理论和经验见解。未来的 LLM 压缩研究应进行全面分析,为先进技术提供指导。了解性能和大小之间的关系,有助于研究人员开发量身定制的压缩方法,有效地浏览设计空间,以获得高效的解决方案。

Dynamic LLM Compression

尽管当前的压缩方法取得了进步,但它们仍然依赖人工设计来确定 LLM 的压缩大小和结构。这通常需要根据输入数据或任务要求进行反复试验。在知识提炼等情况下,这一过程尤其具有挑战性,因为在这种情况下,需要进行多次试验才能在计算限制条件下找到合适的学生模型。这种手工操作带来了实际障碍。将神经架构搜索(NAS)技术[Elsken等人,2019;Zoph和Le,2016;Zhu等人,2021;Zhu等人,2023]整合到压缩LLM领域,是一种很有前景的解决方案。NAS 有可能减少对人类设计架构的依赖,从而彻底改变 LLM 压缩,提高效率和效果。
Explainability

早先的研究[Stanton 等人,2021;Xu 等人,2021]对应用于预训练语言模型(PLMs)的压缩技术的可解释性提出了极大的担忧。值得注意的是,这些挑战同样适用于 LLM 压缩方法。因此,整合可解释的压缩方法对 LLM 压缩应用的发展至关重要。此外,采用可解释压缩不仅能解决可解释性问题,还能简化压缩模型的评估程序。这反过来又提高了模型在整个生产阶段的可靠性和可预测性。

5 Conclusion

技术的可解释性提出了极大的担忧。值得注意的是,这些挑战同样适用于 LLM 压缩方法。因此,整合可解释的压缩方法对 LLM 压缩应用的发展至关重要。此外,采用可解释压缩不仅能解决可解释性问题,还能简化压缩模型的评估程序。这反过来又提高了模型在整个生产阶段的可靠性和可预测性。

5 Conclusion

在这份详尽的调查报告中,我们探讨了大型语言模型(LLM)的模型压缩技术。我们的研究涵盖了压缩方法、评估指标和基准数据集。通过深入研究 LLM 压缩技术,我们强调了其面临的挑战和机遇。随着 LLM 压缩技术的发展,人们明确要求研究专门针对 LLM 的先进方法,以挖掘其在各种应用中的潜力。本调查旨在提供有价值的参考,让我们深入了解当前的状况,并促进对这一关键主题的持续探索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1121306.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文件操作 IO

文件(File) 狭义的文件: 指的是硬盘上的文件和目录 广义的文件: 泛指计算机中很多软硬件资源(操作系统中把很多硬件和软件资源抽象成了文件, 按照文件的方式同意管理) 本章内容只讨论狭义的文件 路径 绝对路径: 以c: , d: 盘符开头的路径相对路径: 以当前所在的目录为基准(…

【问题思考总结】如何求椭圆的切线?【过椭圆外一点】

问题 今天做2009年数一的真题,发现第17题求切线十分难顶,我用的方法是切线和椭圆方程联立,还有切线斜率和椭圆上一点和远点斜率相乘等于-1的方法。 思考 经过思考后,我认为之前的那个属于是高中方法(还不完全是&…

Prometheus接入AlterManager配置邮件告警(基于K8S环境部署)

文章目录 一、配置AlterManager告警发送至邮箱二、Prometheus接入AlterManager配置三、部署PrometheusAlterManager(放到一个Pod中)四、测试告警 注意:请基于 PrometheusGrafana监控K8S集群(基于K8S环境部署)文章之上做本次实验。 一、配置AlterManager告警发送至邮…

手把手入门Node框架Egg.js

0.介绍 Egg.js 是一个面向企业级应用开发的 Node.js 框架,它建立在 Koa.js 之上,提供了一种更简单、灵活的开发方式。Egg.js 提供了一些默认约定和最佳实践,可以帮助开发者快速构建可靠、可扩展的应用程序。 基于 Koa.js:Egg.js …

spacy.load(“en_core_web_trf“)报错TypeError: issubclass() arg 1 must be a class

使用spacy时遇到的问题 写在最前面: 安装spacy和en_core_web_trf时需要保证二者版本一致 安装及查看对应spacy版本 安装 pip install spacy查看版本 import spacy spacy.__version__安装en_core_web_trf 直接安装(如果可以的话) pytho…

【论文阅读】以及部署BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework

BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework BEVFusion:一个简单而强大的LiDAR-相机融合框架 NeurIPS 2022 多模态传感器融合意味着信息互补、稳定,是自动驾驶感知的重要一环,本文注重工业落地,实际应用 融…

反转链表review

反转链表 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ class …

Rust逆向学习 (2)

文章目录 Guess a number0x01. Guess a number .part 1line 1loopline 3~7match 0x02. Reverse for enum0x03. Reverse for Tuple0x04. Guess a number .part 20x05. 总结 在上一篇文章中,我们比较完美地完成了第一次Rust ELF的逆向工作,但第一次编写的R…

JVM(Java Virtual Machine)垃圾收集器篇

前言 本文参考《深入理解Java虚拟机》一书,本文主要介绍几个经典的垃圾收集器:Serial、ParNew、parallelScavenge、CMS、Serial Old、Parallel Old、G1 本系列其他文章链接: JVM(Java Virtual Machine)内存模型篇 JV…

2434: 【区赛】[慈溪2013]统计方格

题目描述 给出一张 n 行 m 列仅由黑白方格组成的黑白图片(行从上到下 1 到 n 编号,列从左到右 1 到 m 编号)。如下图是一张由 17 行 18 列方格构成的黑白图片,图片中的任意一个方格要么是白色,要么是黑色。 仔细观察这…

介绍Sigmoid函数的平移、平滑和翻转【基于Python可视化分析】

文章目录 简介Sigmoid函数Sigmoid函数曲线调控参数设置python可视化参考 简介 本篇博客介绍了具有S型曲线的Sigmoid函数,以及如何设置、调整Sigmoid函数的参数实现S曲线的平滑、平移和翻转操作。博客给出了Python代码示例,更加深刻形象。😆&…

hdlbits系列verilog解答(两输入与门)-06

文章目录 wire线网类型介绍一、问题描述二、verilog源码三、仿真结果 wire线网类型介绍 wire线网类型是verilog的一种数据类型,它是一种单向的物理连线。它可以是输入也可以是输出,它与reg寄存器数据类型不同,它不能存储数据,只能…

数据结构与算法 | 第二章:线性表

本文参考网课为 数据结构与算法 1 第二章线性表,主讲人 张铭 、王腾蛟 、赵海燕 、宋国杰 、邹磊 、黄群。 本文使用IDE为 Clion,开发环境 C14。 更新:2023 / 10 / 22 数据结构与算法 | 第二章:线性表 线性表总览线性结构概念特…

大数据技术学习笔记(三)—— Hadoop 的运行模式

目录 1 本地模式2 伪分布式模式3 完全分布式模式3.1 准备3台客户机3.2 同步分发内容3.2.1 分发命令3.2.2 执行分发操作 3.3 集群配置3.3.1 集群部署规划3.3.2 配置文件说明3.3.3 修改配置文件3.3.4 分发配置信息 3.4 SSH无密登录配置3.4.1 配置ssh3.4.2 无密钥配置 3.5 单点启动…

人工智能(6):机器学习基础环境安装与使用

1 库的安装 整个机器学习基础阶段会用到Matplotlib、Numpy、Pandas等库,为了统一版本号在环境中使用,将所有的库及其版本放到了文件requirements.txt当中,然后统一安装 新建一个用于人工智能环境的虚拟环境 mkvirtualenv ai matplotlib3.8…

Mybatis应用场景之动态传参、两字段查询、用户存在性的判断

目录 一、动态传参 1、场景描述 2、实现过程 3、代码测试 二、两字段查询 1、场景描述 2、实现过程 3、代码测试 4、注意点 三、用户存在性的判断 1、场景描述 2、实现过程 3、代码测试 一、动态传参 1、场景描述 在进行数据库查询的时候,需要动态传入…

【源码解析】Spring源码解读-bean的加载

Spring的整体流程其实就是通过配置 xml、注解将自定义bean类信息进行配置,然后通过BeanDefinitionReader读取配置信息,由Dom转换成xml解析成Docment。在通过加载的配置信息进行初始化Bean对象,然后在对象的前后进行处理,也就是不同…

2023-10-22

一、总线通信协议简介 总线是计算机系统中负责连接各个硬件的通信线路,它可以传输数据、地址和控制信号。通信协议是指双方实体完成通信所遵循的规则。总线通信协议是一种规定总线设备之间数据通信方式和方法的规则,它包括数据的通信方式、速率、格式、…

python爬虫之js逆向入门:常用加密算法的逆向和实践

一、强大的Chrome DevTools Chrome DevTools是一组内置于Google Chrome浏览器中的开发者工具,用于帮助开发人员调试、分析和优化Web应用程序。它提供了一系列功能强大的工具,用于检查和编辑HTML、CSS和JavaScript代码,监视网络请求、性能分析…

redis怎么设计一个高性能hash表

问题 redis 怎么解决的hash冲突问题 ?redis 对于扩容rehash有什么优秀的设计? hash 目标是解决hash冲突,那什么是hash冲突呢? 实际上,一个最简单的 Hash 表就是一个数组,数组里的每个元素是一个哈希桶&…