热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai资讯 >AI大模型高效推理的技术综述!

AI大模型高效推理的技术综述!

来源:互联网 更新时间:2026-08-23 14:03

1 介绍

大型语言模型在人工智能领域的潜力毋庸置疑,但推理时那惊人的内存占用和计算预算,实实在在地拖了后腿。于是,一系列专门针对LLM的压缩方法应运而生,包括

剪枝、知识蒸馏、量化、紧凑架构设计以及动态网络

等。这些技术各显神通,目的只有一个:降低模型推理过程中的内存和计算成本,让模型能在各种资源受限的设备上跑起来。

2 预备基本知识

2.1 Transformer

Transformer最初是给机器翻译用的,它的基本结构如图1所示。

图1 Transformer 基本结构

注意力。

注意力机制会把输入序列里的每个token映射成查询和/或键值对向量,然后通过查询与一组键值对的兼容性函数,算出加权和作为输出。最常见的注意力模块就是归一化点积函数:

权重通过Q和K的点积来计算,√dk是一个常量缩放因子。

多头注意力。

Transformer还不满足于单打独斗,搞了个多头注意力机制(如图1)。它用不同的线性层把输入token映射成h组不同的查询(Qi)、键(Ki)和值(Vi | i ∈ [1, h])。最终输出变成:

其中Wo是线性投影矩阵。

编码器和解码器。

Transformer是编码器-解码器的结构,专门用来做神经机器翻译。编码器先独立处理输入序列,解码器则拿编码器的输出当输入,再预测最终输出。两者有两个核心区别:编码器用全注意力,解码器用单向注意力;编码器用自注意力模块,解码器用跨注意力。后来技术发展了,除了编码器-解码器模型,还出现了纯编码器结构和纯解码器结构的语言模型。

2.2 中/大型语言模型

Transformer火了之后,基于纯Transformer架构的NLP模型层出不穷,参数也越堆越多。一般认为,真正意义上的"大"语言模型得从BERT和GPT-1算起,它们的参数规模都到了数亿级别。之后又冒出来不少中等规模模型和大型模型,这些模型靠大规模自我监督预训练,拥有了许多小模型所不具备的能力。中等规模模型参数在一亿或以下,大型模型则超过一亿。

2.3 参数高效的微调(PEFT)

很多模型压缩算法(比如知识蒸馏和剪枝)压缩完后还得微调甚至重新训练才能恢复精度,但大型模型全参数微调成本太高了。于是参数高效的微调(PEFT)算法被提了出来,目标很明确:减少微调参数或迭代次数,降低微调成本。

3 量化

量化方法在降低内存成本和提高推理速度方面优势明显,尤其是在支持低比特数据类型的硬件上。相比其他压缩方法,量化有高压缩比、低成本和高灵活性等好处。下面我们先介绍标准量化方法和一些基本概念,再重点讲讲近年来LLM推理方面的量化方法,包括不需要重新训练的和需要重新训练的。最后聊几个高级主题,这些方向对未来研究挺有潜力的。

3.1 基础概念

1)均匀量化。

均匀量化是最基本的量化方法,它把实数值范围均匀切成有限区间,比如b位整数对应2b个区间。同一区间里的实数值被映射到同一个整数。

2)非均匀量化。

非均匀量化精度更高、量化误差更小,但可能因为要花时间做查找操作而效率低下。神经网络的权重通常不是均匀分布的,所以非均匀量化行得通。

3)剪切范围和校准。

剪切范围和校均匀匀量化里很关键,选对了剪切范围可以减少异常值数量,但也会导致尺度系数变大、量化误差变大。常见的校准选择包括用最小/最大值、绝对最大值或者最小化信息损失。

4)对称/非对称量化。

对称/非对称量化处理的是截断范围[α,β]。如果范围在0处对称,就叫对称量化;否则是非对称量化。非对称量化的剪枝范围更紧凑,对激活可能严重失衡的神经网络中的激活特别有用。不过解量化步骤中,对称量化的计算效率更高。

5)量化粒度。

量化粒度决定了哪些权重/激活一起量化并共享量化参数。常见粒度包括层级量化、通道量化、行/列量化、token量化、组量化等。一般来说,更细的粒度可以减少量化误差,但需要存储更多量化参数,计算开销也更大。

6)训练后量化/量化感知训练。

训练后量化(PTQ)和量化感知训练(QAT)都能有效减少量化误差。PTQ不用重新训练,QAT则需要。QAT通过模拟量化过程或微调量化模型来找到更好的性能点,但重新训练对大多数研究人员来说成本太高了。

7)静态/动态量化。

静态量化是在推理前预先算好量化参数,通过校准输入找到典型的激活统计信息。动态量化是在运行时动态计算量化参数,通常更准确,但计算开销也更高。

8)模拟/仅整数量化。

模拟量化可以减少神经网络的内存成本和数据移动时间,对LLM推理这种内存密集型任务挺有帮助。仅整数量化则能利用特定硬件支持的高效低位操作来加速。

9)仅权重/权重+激活量化。

看量化目标是只量化权重,还是把权重和激活一起量化。有研究[21]发现激活量化通常更容易受权重量化影响,所以仅权重量化可以达到更低位宽。但量化后的权重在乘以激活之前必须反量化,所以仅权重量化不能做仅整数量化,推理时会引入额外计算开销。根据这些基本概念,我们把LLM的主要量化方法分类整理在表1里。

表1 LLMs几种强基线量化方法的详细分类。✓表示一种量化方法属于特定类别,×反之,◦表示一种量化方法可以在两种情况下使用。对于在不同位宽下工作的方法,我们报告最低的有效位宽。

3.2 中型语言模型的量化方法

中等规模的语言模型主要用QAT方法,而不是PTQ,因为QAT重新训练带来的评估指标改进很明显,特别是在极端低比特设置下。我们先讲QAT方法,再讲PTQ方法。QAT的成本相对可以接受,重新训练变得可行。

中等规模语言模型中的QAT

主要致力于把BERT类模型中的权重和激活量化到更低位宽。有些工作用了更复杂的方法实现了低于8位的量化宽度,还用了知识蒸馏来克服性能下降。同时,也有工作通过可微神经架构搜索,自动平衡模型性能退化和量化位宽,自动分配参数的精度。这些技术有助于提升模型性能和效率。

中等规模语言模型中的PTQ

经过精心设计,通常不需要额外微调和重新训练来补偿量化误差。像GOBO和I-BERT这样的方法为特定的非线性函数设计了仅整数近似方法,从而实现了端到端仅整数BERT推断,完全不用浮点运算。另外,用更细的粒度(如组量化)来减少量化误差,可以把权重和激活量化到4位,再用校准集确定每个组的缩放因子。精心定制的PTQ方法得到的量化参数,还可以作为QAT方法重新训练的良好初始化点。

量化生成的中型语言模型。

虽然对BERT类模型量化的方法很成功,但在生成语言模型(如GPT、BART)出现之前,对生成式LLM做量化的尝试很少。关键区别在于:量化误差在逐token生成过程中会逐个累积,所以量化生成式语言模型通常更复杂。Tao等人的研究发现,直接把专为BERT类模型设计的量化方法用到生成语言模型上,会受到同质词嵌入和权重分布差异的阻碍。为了应对这些挑战,他们提出了两个解决方案:token级别的对比性引导和模块依赖的动态缩放。DQ-BART则用了QAT框架和一个针对序列到序列模型的量化和去噪训练目标(即BART),进行去噪训练。DQ-BART采用标准对称均匀量化,训练目标是最小化量化后的低精度学生模型和全精度教师模型之间的输出logits、注意力以及隐藏状态之间的差异。

3.3 LLM的PTQ

针对LLM的PTQ工作大致分两类:仅权重量化和权重+激活量化。

仅权重量化方法

能减少模型大小和内存使用,但享受不到低比特运算的加速。这种方法在优化数据传输方面很有意义,但需要更多比特宽度来存储权重。主要挑战包括LLM推理依赖内存以及激活模式会阻碍量化过程。

权重+激活量化的方法

通过同时量化权重和激活,减少模型的内存使用和计算量。但挑战也不小:量化误差对权重和激活的影响不同,对模型性能的影响也不同。有些方法采用量化误差最小化,有些则搞量化误差和模型性能之间的权衡。

3.4 对LLM的量化感知训练(QAT)

量化感知训练是一种恢复量化模型性能的方法,通常需要整个模型重新训练。对LLM来说,这种方法成本太高,于是一些尝试把量化与参数高效的训练方法结合起来。当前针对LLM的QAT方法分两类:全参数重新训练和参数高效再训练。

全参数重新训练

就是在量化LLM时,对LLM进行完整的参数重新训练。通过边缘蒸馏方法、数据生成方法以及QAT和蒸馏技术,可以保留原始模型的涌现能力,同时减少内存使用和计算量。这种方法还会用数据生成方法生成数据,再用原始LLM对生成的数据进行训练,让量化LLM的输出分布与原始模型匹配。

参数高效再训练

是指采用参数高效的方法重新训练LLM。其中,QLoRA和QA-LoRA提出把组量化集成到QLoRA中,缓解量化与低秩适应之间的不平衡问题。还有其他工作,比如冻结量化指数只微调量化参数、使用二进制量化等。这些方法在相对可以接受的计算预算下,用低秩适应来重新训练量化LLM,有助于提升性能和效率。

3.5 关于LLM量化的其他主题

量化相关工作还包括设计高效的内核、量化方法以及把量化方法集成到实际应用中。一种有效内核LUT-GEMM用在扩展版本的BCQ方法上,可以表示均匀和非均匀量化,把OPT-175B模型的延迟加速了2.1倍,实现了3位量化。有些工作还专门研究LLM中间出现异常值的原因,并寻找从源头抑制异常值的方法。可量化Transformer认为激活中的异常值源于注意力头部的行为,于是设计了截断softmax和门控注意力,让模型有能力产生最小幅度(甚至完全零)的激活。这些工作为LLM的量化提供了重要的理论和实践指导。

4 剪枝

神经网络剪枝是一种压缩和加速技术,通过消除不必要的权重或结构来保持网络性能。在LLM中,剪枝效果不太稳定,受限于微调过程。因为模型参数太多,微调成本高昂,很难实现剪枝的全部效果。为了增强和改进剪枝效果,需要进一步探索,在LLM中获得更好的结果。剪枝对模型压缩至关重要。

4.1 基本概念

1) 剪枝单元:

剪枝单元在剪枝过程中起关键作用,包括权重、神经元、注意力头、层等。非结构化剪枝关注单个权重,可以获得更高的稀疏度比并保持更好的性能,但计算效率较低。结构化剪枝可以轻松实现推理速度提升,但稀疏度比低于非结构化剪枝模型。在结构化剪枝中,需要避免集成结构删除导致模型性能下降。

2) 剪枝度量:

剪枝度量是用于确定是否剪枝或保留元素的准则,包括基于幅度、基于损失和基于正则化的方法。这些方法可以单独用,也可以组合用。GBLM-Pruner就结合了三种剪枝方法,通过比较权重的绝对值、梯度和L1或L2范数来确定剪枝单元的重要性,有助于提高模型性能和泛化能力。

3) 动态/静态剪枝:

动态剪枝在训练过程中实时调整模型结构,适应数据分布的变化,但计算复杂度较高;静态剪枝则在训练结束后一次性剪枝,计算复杂度较低,但可能无法充分利用数据分布的信息。

4) 迭代/一次性剪枝:

迭代式方法在训练、微调过程中多次迭代,保持模型性能,适用于剪枝较小的模型,计算时间较长,但效果较好;一次性方法只进行一次剪枝,不涉及迭代和微调,适用于剪枝较大的模型,计算时间较短,但可能无法保持模型性能。

5) 全局/局部剪枝:

全局剪枝方法通过比较所有剪枝单元来识别并消除不那么重要的单元,可能导致特定区域过度剪枝。局部剪枝方法对每个区域的稀疏性施加约束,以避免模型崩溃的风险。

6) 数据驱动和免数据裁剪:

数据驱动裁剪依赖可用数据推导出裁剪决策,表现更优;免数据裁剪独立于数据输入执行网络裁剪,简单易实现,在复杂方法中也能取得有竞争力的结果。免数据裁剪解决了在某些场景下数据集可能不可用的挑战。

7) 上/下游剪枝:

语言模型训练分为预训练和微调两个阶段。上游修剪在微调前对模型进行修剪,保留其多功能性;下游修剪在微调过程中进行,指导模型专注于特定任务。上游修剪有助于提高模型的泛化能力,下游修剪则有助于提高精度和效率。

4.2 中型语言模型的剪枝方法

针对语言模型的专业剪枝方法专门针对其独特特性,不同于传统剪枝方法。其中包括专门针对基于Transformer的模型的方法,以及适用于多种不同架构模型的通用方法。剪枝方法分为无结构和结构化方法。

4.2.1 针对中型语言模型的非结构化剪枝

非结构剪枝方法在不考虑任何特定约束的情况下,把非必要的权重置为零。我们按修剪标准顺序介绍三种修剪方法:基于规模的剪枝、基于损失的剪枝和正则化。这些技术有助于减少模型参数数量,提高模型性能和效率。

基于规模的剪枝。

基于规模的剪枝简单有效,它考虑了权重和激活值的规模。在中型语言模型中,剪枝方法主要关注权重的规模。幅度修剪是常用的剪枝方法,研究发现约30-40%的权重可以丢弃而不影响BERT的性能。一次性修剪所有任务在微调前对所有任务进行一次性修剪,无需为每个任务单独修剪,同时保持性能完整性。与幅度修剪相比,渐变幅度修剪引入了稀疏度比例计划,在整个修剪过程中逐渐降低稀疏度比例。一次性修剪和GMP⋆都是专门应用于语言模型修剪的GMP的实现。GMP⋆还引入了一个初始的实质性修剪步骤,以更好地适应高目标稀疏度,最终导致性能改善。

基于损失的剪枝。

基于损失的剪枝更准确,通过分析权重对损失函数的贡献来确定哪些权重可以被剪枝。它包括基于梯度和基于Hessian矩阵两种主要方法。在语言模型剪枝中,基于损失的剪枝取得了很好的效果,例如SparseGPT和LLM Surgeon方法。这些方法把OBD和OBS方法应用于GPT-family模型和非结构化和结构化剪枝中,实现了高效的大规模语言模型剪枝。

正则化。

正则化方法包括L1、L2和Lo正则化,其中Lo正则化在模型压缩中更常用。Lo正则化把权重的Lo范数纳入损失函数,以实现非零权重的稀疏化。然而,离散的Lo范数在梯度下降优化中有挑战,因此使用硬混凝土分布作为二进制掩码的近似,如图4。

图4 使用蒙特卡洛模拟对硬混凝土分布的近似概率密度直方图。该硬混凝土分布的参数为对数α=0,β=0.5,γ=−0.1,和ζ=1.1。在该规格下,硬混凝土分布大致将其质量的一半分配到{0,1}中,其余分配到(0,1)中。

其他。

非结构剪枝方法在高稀疏度下保持模型性能,但面临推理加速挑战。N:M稀疏性原则通过要求连续的M组权重中不超过N个权重具有非零值,实现有效的推理加速。这种压缩依赖于硬件的独特架构,如稀疏张量核心。N:M稀疏性与非结构化修剪方法无缝集成,提供推理速度提升。例如,稀疏模式可以基于权重的幅度进行初步确定,2:4稀疏性在没有牺牲性能的情况下,展示了计算速度的两倍显著加速。

4.2.2 针对中型语言模型的结构化剪枝

结构化剪枝在应用于中型语言模型时,选择适当的剪枝单位与度量同样重要。通常考虑的剪枝单元包括注意力头、全连接层神经元、隐层维度等。使用与架构相关的结构作为剪枝单元能产生更理想的结果,因为这可以保留模型构造中固有的基本原则。接下来深入探讨结构化剪枝的领域,包括基于权重的剪枝、基于损失的剪枝和正则化技术。

基于权重的剪枝。

修剪单元权重的加权和可以作为有意义的表示,这可以广泛应用于CNN中的卷积核。同样地,也可以将其扩展到中型语言模型。例如,可以把权重大小与L2范数进行加权和,以表示注意力头、FFN神经元和权重块中的相应重要性。然后,根据其重要性得分的顺序去除不重要的结构。

基于损失的剪枝。

基于损失的剪枝方法在注意力头部得到了关注,Michiel等人提出了一种迭代剪枝方法,剪枝注意力头部的20-40%不会显著损害目标任务上的测试准确性。然而,可区分子集剪枝表明,Michiel等人对可剪枝的Transformer头数量做出了显著低估。此外,块移动修剪方法通过考虑任意大小的块并集成到运动修剪中来扩展结构方法。同时,也有许多方法同时修剪FFN中的神经元和注意力头。一些结构化剪枝方法可以泛化,因为其中的剪枝单元是神经元,例如稀疏与低秩逼近在神经元级别剪枝权重矩阵。

正则化。

除了基于损失的剪枝方法,正则化方法也是适用于中型语言模型的有结构剪枝技术中的一类。其中,L0正则化因其广泛的应用而脱颖而出。这些L0正则化方法主要应用于剪枝注意力头和FFN神经元,并使用低秩剪枝和增广拉格朗日方法来调节稀疏度比率。此外,L1正则化也得到了相关研究,通过稀疏性诱导的目标学习可压缩组件的掩码,得到不同大小的剪枝模型。这些剪枝后的模型随后可以通过因果传递目标进行微调以提高性能。

其他。

结构化剪枝还有层修剪、token修剪等方法。层修剪的特点是规模相对较小,需要更详细的修剪方案来确定哪些应该被修剪。token修剪则涉及在推理过程中从序列中删除不重要的token,以减少计算需求。学习token剪枝(LTP)是一种直接有效的方法,根据输入序列穿过Transformer层的情况来适当地删除不重要token。每个token的剪枝度量由Transformer块中归一化注意力概率的总和确定。除了这些,结构化剪枝还包括许多不同的单元,例如谱归一化身份先验(SNIP),它采取了一种策略来剪枝注意力层和FFN子层,即将残差连接转化为严格的身份映射。

4.3 LLM的修剪方法

在这一部分,我们介绍针对LLM的剪枝方法,反映中等规模语言模型剪枝方法部分中建立的顺序。针对LLM的剪枝方法采用与中等规模语言模型所使用的并行方法相同的方法,某些方法中的一些区别主要在于省略微调过程。为了便于对这些方法进行更全面的比较,我们把各剪枝方法的特性整合在表3里。

表3 对LLM的各种修剪方法的总结

4.3.2 LLM的非结构化剪枝

非结构剪枝方法回避微调过程,采用回避微调过程的方法(如表3),可以在模型性能相对折衷的情况下达到50%的稀疏度比率。后续的非结构化剪枝方法在各种NLP任务中超越SparseGPT和Wanda,获得优越结果。这些非结构化的剪枝方法需要最少的校准数据,可分为基于规模的剪枝和基于损失的剪枝。

基于规模的剪枝。

基于规模的剪枝是一种基于权重大小的剪枝方法,通过剪枝权重较小的神经元来减少模型的大小。在LLM中,这种方法通常结合激活值来评估神经元的重要性。Wanda和RIA等方法使用权重和激活值的乘积作为剪枝指标,而E-Sparse方法还引入了信息熵作为剪枝指标。

基于损失的剪枝。

基于损失的剪枝方法包括一阶和二阶方法。其中,二阶剪枝方法包括OBD和OBS,而SparseGPT把OBS应用于GPT家族模型,无需微调过程且不会损失太多精度。此外,还介绍了LLM外科医生对无结构和结构剪枝的通用性,以及基于梯度的一阶剪枝方法。Shao等人引入了新型剪枝度量,为剪枝过程提供全面和精细的评估,并提出了稀疏性比率分配给每个矩阵的方法。

4.3.3 LLM的结构化剪枝

LLM的结构剪枝方法不受硬件限制,能够在剪枝过程后实现推理加速,但需要微调过程来恢复性能。这种方法的开创性方法有LLM-Pruner,作为后续方法的基准,促进了有意义的比较。微调在非结构剪枝中已被废弃,但在LLM中广泛采用。LLM的结构化剪枝包括基于规模的剪枝、基于损失的剪枝和正则化。

基于规模的剪枝。

基于规模的剪枝方法把行或列作为剪枝单位。例如,FLAP方法以列为剪枝单位,通过"波动度量"来测量每个列的重要性得分。波动度量是输入特征的样本方差,与权重矩阵相应列的平方范数相关联。此外,FLAP还引入了偏差补偿机制,以消除组件删除所带来的负面影响,从而避免了微调的必要性。

基于损失的剪枝。

在应用于LLM的基于损失的结构化剪枝方法领域中,梯度信息至关重要。现有方法以不同方式利用梯度信息,如定义剪枝结构、选择剪枝目标等。与传统方法相比,这些方法避免了预定义的剪枝单元,能够动态识别和指定剪枝单元。例如,LLM-Pruner在修剪过程中移除非关键耦合结构,通过结构依赖性的定义自动识别和提取。LoRAShear在依赖图中发现最小删除结构,专门针对LoRA模块构建依赖图,利用知识分布分析来识别关键结构。Ji等人提出了一种新颖的方法,使用非神经模型——梯度提升决策树(GBDT)作为精度预测器,进一步优化搜索空间和搜索过程,以自动识别最佳修剪模型。

正则化。

剪枝LLaMA和Compresso都是应用于LLM的正则化方法。剪枝LLaMA通过联合修剪粗粒度和细粒度模块,引入了目标结构剪枝和动态批量加载两个新颖组件,实现了紧凑替代方案并优于从头开始训练的模型。而Compresso把LoRA集成到L0正则化中,通过协作剪枝范式提高LLM在剪枝过程中的理解和合作,从而提高性能并适应修改后的模型结构。两者都利用了剪枝技术来优化模型结构并加速训练过程。

4.4 关于LLM剪枝的其他主题

4.4.1 提高LLM的剪枝效率

为了增强LLM定制修剪方法的效果,已经开发出多种辅助技术,包括定制稀疏性比率、后修剪微调方法和硬件优化。这些技术可以与现有方法集成,增强整体修剪效果。其中,一种定制稀疏比率的方法是"离群加权分层稀疏"(OWL),它根据每一层观察到的离群比率定制非均匀分层稀疏比率。另一种后修剪微调方法是"动态稀疏无训练"(Dynamic Sparse No Training),它引入了无需训练的微调方法,可进行轻微更新并最小化重建误差。实验表明,这些技术能够显著提高现有剪枝方法(如Wanda和SparseGPT)的性能,说明剪枝性能的潜在提升可以通过与剪枝方法核心无关的手段实现。

4.4.2 LLM剪枝的未来工作

尽管LLM领域在修剪方面取得了一定成果,但仍面临两大挑战。首先,把修剪与其他方法(如量化和知识蒸馏)相结合,对于实现竞争力强的性能至关重要。当前LLM修剪的成果相对不太令人满意,因此增强修剪方法的内在有效性,确保其独立使用时的熟练程度是关键。其次,LLM修剪中的微调成本是一个重大挑战。许多方法采用一次性修剪而无需微调来最小化计算负担,但这会损害修剪模型的性能。科研人员和从业人员必须应对无法执行完整微调的挑战,特别是当处理旨在增强修剪性能的LLM时。解决这些挑战对于提高修剪技术的有效性和实用性至关重要。

5 知识蒸馏(KD)

知识蒸馏是一种把教师模型的知识转移给学生模型的技术,通过简化学生模型,使其能够以更简洁和更有效的方式表示教师模型的知识。

5.1 基本概念

知识蒸馏主要分为以下四类:基于逻辑的知识蒸馏(logit-based KD)、基于特征的知识蒸馏(feature-based KD)、基于关系的知识蒸馏(relation-based KD)和黑箱知识蒸馏(black-box KD)。前三种蒸馏方法属于白盒蒸馏,需要访问教师模型内部数据。而黑盒知识蒸馏则是通过教师模型的预测结果来传递知识,不需要访问模型内部数据。当代封闭源大型模型内部信息不可获取,只能得到预测结果。黑盒知识蒸馏是一种有效的知识传递方式。在图5中,我们简要概述了这些知识蒸馏方法及其之间的关系。

图5 知识蒸馏分类

5.2 中等规模语言模型的知识蒸馏方法

中等规模的语言模型通过预训练和微调两个阶段进行训练,其中预训练阶段使用大规模的无标签数据集学习语言的通用特征和结构,微调阶段使用带标签的数据使其适应特定任务。模型蒸馏可分为微调蒸馏和预训练蒸馏两类。微调蒸馏是在微调阶段使用知识蒸馏的方法,而预训练蒸馏是在预训练阶段使用知识蒸馏的方法。表4展示了各种中等规模模型蒸馏方法的训练阶段、知识来源和损失函数。这些方法有助于提高模型性能和泛化能力。

5.3 大语言模型的知识蒸馏方法

大型语言模型数量增长,但许多闭源,限制了学生模型的知识获取。知识蒸馏通过利用教师模型的响应——即知识剩余来源,将信息传递给学生模型。根据学生模型的知识来源,大型语言模型的知识蒸馏可分为黑盒蒸馏和白盒蒸馏。黑盒蒸馏适用于学生模型可以从教师模型响应之外的其他来源获取知识的场景,而白盒蒸馏适用于学生模型只能从教师模型响应中获取知识的场景。

6 紧凑架构设计

紧凑架构设计是一种提高效率和精简的理念,通过优化网络结构和算法,显著提高模型效率,同时减少计算资源和内存的使用。它可分为微观和宏观两个层次进行研究,重点优化注意力计算和Transformer架构设计。

6.1 高效注意力

Transformer中的标准自注意力机制时空复杂度为O(N²),阻碍了处理长序列问题的能力。为了解决这个问题,出现了高效注意力工作,包括稀疏注意力、线性近似注意力和闪存注意力等。

6.2 神经架构搜索(NAS)

神经架构搜索(NAS)是一种有前途的解决方案,用于自动设计神经网络模型的结构和参数。为了解决硬件设备部署和资源有限硬件设备上的低延迟推理问题,提出了HAT方法,通过离线训练延迟预测器来加速搜索速度。HAT还观察到关注多个编码层对解码层是有益的,不同的硬件对模型有不同的偏好,这为不同硬件条件和延迟要求下的Transformer模型提供了一种高效的NAS方案。同时,它可以很好地与其他压缩加速方法相结合。

7 动态网络(DyNN)

扩大语言模型的规模可以提升其在自然语言处理任务上的性能,但会带来巨大的计算成本和内存需求。动态神经网络(DyNN)仅使用网络的一部分来处理每个输入,使得整个模型在资源受限的环境下更灵活、更有效地满足计算需求。目前对DyNN的研究主要包括早期退出、级联推理和专家混合(MoE)。早期退出是为了在深度神经网络(DNN)的早期层中动态终止推理过程,从而降低计算成本并提高响应时间。级联推理利用一系列不同规模的语义模型来处理不同复杂程度的请求。MoE在多个子网络上横向扩展前馈网络(FFN),其中只有一个或少数几个子网络在单个前向传递过程中被激活。MoE被广泛纳入当今LLM的架构中,以提供高效而强大的服务。表5中总结了一些具有代表性的MoE方法。

表5 各种MoE方法总结

7.1 将MoE与其他高效技术结合使用

在稀疏MoE模型领域,研究人员探索了把传统模型压缩技术引入MoE模型的几种方法。其中,Switch Transformer把大型稀疏模型转化为小型密集模型,DeepSpeed-MoE把大型教师MoE模型转化为具有较浅专家网络的小型学生MoE模型,并采用阶段式KD训练策略。MoE模型的剪枝旨在去除冗余或影响较小的组件,而Z-code尝试了两种专家选择方法:随机选择和基于验证集利用率的选择。这些方法在保留MoE模型质量的同时,减少了内存消耗和资源消耗。实验结果表明这些方法的有效性。

8 加速框架

随着Transformer模型的发展,各种模型层出不穷,但由于应用场景不同,对延迟、吞吐量、内存等有额外要求,导致模型难以部署。本文介绍了一些针对LLM的推理加速框架,这些框架在不同场景下有效提高了模型的效率。我们将框架分为一般框架和专用框架,并根据泛化性进行了分类。

表6 各种加速框架的总结

关于宇宙的好的网名有哪些
关于宇宙的好的网名有哪些

类型:角色扮演

大小:1

语言:简体中文

平台:互联网

游戏下载

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc