赞
踩
受此启发,微软提出了低秩适配(LoRA)方法,设计了特定结构,在涉及矩阵乘法的模块
中引入两个低秩矩阵A和B,以模拟完全微调过程。这相当于只对语言模型中起关键作用
的低秩本质维度进行更新。
根据论文《LoRA: Low-Rank Adaptation of Large Languge Models》可知,为了使微调更加高效,LoRA的方法是通过低秩分解将权重更新表示为两个较小的矩阵(称为更新矩阵)。这些新矩阵可以在适应新数据的同时保持整体变化数量较少进行训练。
原始权重矩阵保持冻结状态,并且不再接受任何进一步的调整。最终结果是通过将原始权重和适应后的权重进行组合得到。
上图为LoRA核心结构。由图可得LoRA采用了自下而上的结构思想。最下的x代表局部输入。中间部分的左侧为预训练模型的模型权重,Pretrained Weights,其结构为D*D的高维空间。右侧为通过多个小矩阵,如图中的矩阵A和矩阵B,模拟左侧的大矩阵并进行计算。h为模型局部的输出值,再作为输入进行传输至大模型的其它结构。
在LoRA方法中,实际上是在原始预训练语言模型(PLM)旁增加一个附加的网络通路,这可以视作一种“外挂”结构。这个外挂结构的目的是通过两个矩阵A和B的相乘来模拟本征秩(intrinsic rank),计算式为:
相比于原始数据量, LoRA 的每个小矩阵数据量会小很多,这样不仅可以实现减少计算资源,降低现存存储量,还可以提高模型微调的效果。
那么为什么大模型训练需要这么大的数据量呢?一方面当模型参数特别小,维度很低时,而训练的数据量比较大时,会导致欠拟合。因为当模型的复杂度较高而数据量较少时,在模型训练的过程中不支持需要训练的模型参数。
通过这样的低秩适配,LoRA能够有效地在保持预训练模型的复杂性和表达能力的同时,减少所需的计算资源,并提高微调的效率。这种结构使得只有一小部分参数(A和B矩阵)需要在特定任务上进行训练,而不是整个模型,从而提高了微调的效率和实用性。
• LoRA通过修改模型的权重矩阵,直接影响模型的内部表示和处理机制,而不仅仅是输入层级。
• 这意味着LoRA能够在模型的更深层次上产生影响,可能导致更有效的学习和适应性。
• Soft prompts通常需要占用模型的输入空间,这在有限的序列长度下可能限制了其他实际输入内容的长度。
• LoRA不依赖于Prompt调整方法,避免了相关的限制,因此不会影响模型能处理的输入长度。
采用两个基准实验进行对比,左右为WikiSQL,右边为MultiNLI,横坐标均为要训练的模型参数,可以理解为需要的成本。训练的参数越多,则需要GPU显存越多,计算量越大,训练时间越长。纵轴为验证集的准确率。
由上图可得,LoRA 显示出更好的可扩展性和任务性能。从GPT3的大语言模型使用LoRA后,训练的参数总量有十倍的提升,但是在特定的测试集上面表现效果更差了。这就涉及到大语言模型一些超参数的调整。
上表展示了不同适应方法在GPT-3 175B上的性能。 WikiSOL上的逻辑形式验证准确率、MultiNLI-matched上的验证准确率以及Rouge-1/2/L onSAMSum 上的验证准确率。LoRA 的表现优于之前的方法,甚至包括完全微调。在三个指标上,WikiSOL的结果波动在 +0.5% 左右,NLI-m的结果波动在+0.1%左右,SAMSum的结果波动在+0.2/+0.2/+0.1左右。
在WebNLG上使用不同适配方法的GPT-2。在所有实验中,MET和TER的方差都小于0.01。"U"表示未见过的类别,"S "表示已见的类别,"A "表示WebNLG测试集中的所有类别。
由表可得weight type及权重种类,影响较大,r即为矩阵的秩。LoRA使用 GPT-2 Medium 在 E2E NLG上实现的验证损失和测试集指标,与 GPT-3不同的是,GPT-2 Medium的r=1适合许多任务,而这里的性能峰值是验证损失r=16和BLEU r= 4、这表明,与 GPT-3 175B相比,GPT-2Medium在适应性方面内在具有相似的等级。请注意,一些超参数是在 r= 4 的基础上调整的,这与另一个基线的参数数相匹配,因此对于其它r的选择来说可能不是最佳的。
LoRA 核心思想:
对下游任务增量训练小模型,针对性地对下游任务增量训练小模型(W=W0+△W)。实质上,就是寻找小矩阵B、A等,使得整体的训练效果最好。
LoRA 问题:
AdaLoRA 解决思路:
左侧是Adapter tuning的网络结构图,右侧是AdaLoRA的结构图。
需要对哪些变量进行关注?
AdaLoRA的理念就是通过SVD的三元组替代了LoRA的二元组。
1.定义:
2.数学表示:
3.应用:
敏感性:有不同下有任务,任务有特定的训练集,为了更好地训练模型寻找可以较好反馈模型的那一批训练集。
任意参数的敏感性:
AdaLoRA使用SVD的三元组替代了LoRA的二元组。
AdaLoRA根据重要性评分剪枝和自适应调整本征秩r,算出很多值以后,筛选哪些需要更新以及不需要更新。通过Sk,i(t)确定更新哪些模型参数,总预算是超参数,AdaLoRA有这个超参数,但是LoRA没有超参数 。
重要性评分:
目标函数:
第t步 参数更新:
第t步 模型剪枝:
b(t)为预算(奇异值数量)。
预算计算方式:
上图为不同预算水平下的微调性能对比,具体将 AdaLoRA 与适用于每个权重矩阵的LoRA 进行了比较。
用AdaLoRA微调基于 MNLI的DeBERTaV3时每个增量矩阵的秩。这里的a轴是层指数,y轴代表不同类型的适配权重矩阵。
论文《QLoRA:Efficient Finetuning of Quantized LLMs》提出了一种QLoRA训练微调方法,通过这种方式可以在单个48G的GPU显卡上微调65B的参数模型,采用这种方式训练的模型可以保持16字节微调任务的性能。QLoRA通过冻结的int 4量化预训练语言模型反向传播梯度到低秩适配器LoRA来实现微调。
QLoRA提出新数据类型4-bit NormalFloat(NF4),NF4就是将所有的权重转化到特定的分布上,并通过缩放因子还原初始值,并以正态因子的形式存储下来。
一旦权重范围和数据类型范围匹配,我们就可以像往常一样量化。3.相当于重新缩放权重张量的标准差以匹配k位数据类型的标准差。
双量化技术思想是通过分位数这个函数,将真实的数据存储到存储桶中。所存储的数据又可以通过解压缩的方式转化为初始数据。在存储过程中会产生量化常数,而量化常数需要进行解压缩,就必须乘上这些数字,这些数字也可以被量化存下来。
**核心思想:**为了防止系统崩溃,需要选择数据并加载进来以后,再进行前向和后向传播计算的过程。一旦数据没有选择正确,就有可能导致所存储一层显存崩溃掉。为了解决这个问题,英伟达会自动对所选数据存储到CPU,分页技术实现了CPU和GPU之间传输数据不会导致数据异常,又可以实现数据之间的相互传输。
QLoRA 将权重从存储数据类型反量化为计算数据类型,以执行前向和后向传播,但仅计算 16-bitBrainFloat 的 LoRA 参数的权重梯度。权重仅在需要时才解压缩,因此在训练和推理期间内存使用率都能保持较低水平。
存算分离:
针对参数的存储规模达到100GB,甚至上千GB的情况下,NF4通过极致压缩存储空间,并将计算和存储分离。需要计算的时候将压缩的数据进行解压缩,进行计算。计算完成以后再次将计算结果进行压缩存储。从而实现了“时间换空间”的策略。
1. 更高效的参数优化: 研究将继续寻找更高效的方法来微调大型模型,减少所需的参数量和计算资源。这可
能包括更先进的参数共享策略和更高效的 LoRA 等技术。
2. 适应性和灵活性的提升: 微调方法将更加灵活和适应性强,能够针对不同类型的任务和数据集进行优化。
3. 跨模态和多任务学习: PEFT可能会扩展到跨模态(如结合文本、图像和声音的模型)和多任务学习领域,
以增强模型处理不同类型数据和执行多种任务的能力。
4. 模型压缩和加速: 随着对边缘设备和移动设备部署AI模型的需求增加,PEFT技术可能会重点关注模型压缩
和推理速度的提升。
5. 低资源语言和任务的支持: 将PEFT技术应用于低资源语言和特定领域任务,提供更广泛的语言和任务覆盖。
UIUC 和 Meta AI 研究人员发表的 UniPELT 提出将不同的 PEFT 方法模块化。通过门控机制学习激活最适合当前数据或任务的方法,尤其是最常见的3大类 PEFT 技术:
• Adapters
• Soft Prompts
• Reparametrization-based
将已经被广泛证明有效的技术,整合为一个统一的微调框架。针对不同的下游任务,可以学习和配置不同的微调模块。门控机制的核心是:将百家之长加以关联并控制,可以对其进行直连,也可以直接跳过。
关于组合3类主流PEFT技术的探讨:
Adapter:
• 接入位置(如:FFN)
• 接入方式(串行 or 并行)
• MLP 设计(△h)
Soft Prompts:
• 嵌入方式(Prompt-tuning, Prefix-Tuning, P-Tuning)
• Prompt 微调方法(手工生成 or 连续可微优化)
Reparametrization-based:
• 缩放因子(Scale: Rank r)
• 模型参数/模块类型(如:WQ, WV)
为了使微调更加高效,北卡罗来纳教堂山分校的研究人员提出新的增量训练方法(IA)3( 通过学习向量来对激活层加权进行缩放)。本文基于作者团队之前的工作T0大模型,修改了损失函数以适应小样本学习,无需针对特定任务进行调整或修改即可应用于新任务,命名为 T-Few,并在RAFT基准测试上取得了全新的SOTA结果,超过了人类基准水平。
IA3通过大幅减少可训练参数的数量使微调更加高效。(对于T0,一个使用IA3模型仅有大约0.01%的可训练参数,而即使是LoRA也有大于0.1%的可训练参数)
• 原始的预训练权重保持冻结状态,这意味着您可以构建多个轻量且便携的IA3模型,用于各种基于它们构建的下游任务。
• 使用IA3进行微调的模型的性能与完全微调模型的性能相媲美。
• IA3不会增加推理延迟,因为适配器权重可以与基础模型合并。
• 原则上,IA3可以应用于神经网络中的任何权重矩阵子集,以减少可训练参数的数量。根据作者的实现,IA3权重被添加到Transformer模型的关键、值和前馈层中。具体来说,对于Transformer模型,IA3权重被添加到关键和值层的输出,以及每个Transformer块中第二个前馈层的输入。
鉴于注入IA3参数的目标层,可根据权重矩阵的大小确定可训练参数的数量。
原则上,IA3可以应用于神经网络中的任何权重矩阵子集,以减少可训练参数的数量。根据作者的实现,IA3权重被添加到Transformer模型的K、V和FFN中。具体来说,对于Transformer模型,IA3权重被添加到关键和值层的输出,以及每个Transformer块中第二个前馈层的输入。根据注入IA3参数的目标层,可以根据权重矩阵的大小确定可训练参数的数量。
RAFT 上排名前五的最佳方法。T-Few 是第一个超越人类基准线的方法,其准确率比次佳方法高出 6% 以上。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。