佛山制作网站公司吗长春净月潭建设投资集团网站
- 作者: 五速梦信息网
- 时间: 2026年03月21日 11:17
当前位置: 首页 > news >正文
佛山制作网站公司吗,长春净月潭建设投资集团网站,优化网站 主题,阿里巴巴企业网站建设作者#xff1a; 地点#xff1a;hby 来源#xff1a;https://arxiv.org/pdf/2106.09685 工具#xff1a;文心 LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 摘要 自然语言处理的一个重要范式包括在通用领域数据上进行大规模预训练#xff0c;并适应特定任务或…作者 地点hby 来源https://arxiv.org/pdf/2106.09685 工具文心 LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 摘要 自然语言处理的一个重要范式包括在通用领域数据上进行大规模预训练并适应特定任务或领域。随着我们预训练更大的模型重新训练所有模型参数的全面微调变得不太可行。以GPT-3 175B为例——部署具有1750亿参数的独立微调模型实例成本极高。我们提出了低秩适应Low-Rank Adaptation简称LoRA该方法冻结了预训练模型的权重并在Transformer架构的每一层中注入可训练的低秩分解矩阵从而大大减少了下游任务的可训练参数数量。与使用Adam算法对GPT-3 175B进行微调相比LoRA可以将可训练参数数量减少10,000倍GPU内存需求减少3倍。 尽管LoRA低秩适应具有更少的可训练参数、更高的训练吞吐量并且与适配器不同它不会增加额外的推理延迟但在RoBERTa、DeBERTa、GPT-2和GPT-3等模型上LoRA在模型质量方面与微调相当或更优。此外我们还对语言模型适应中的秩缺陷进行了实证研究这揭示了LoRA的有效性。我们发布了一个软件包该软件包促进了LoRA与PyTorch模型的集成并提供了RoBERTa、DeBERTa和GPT-2的实现和模型检查点。 引言 自然语言处理中的许多应用都依赖于将一个大规模的预训练语言模型适应到多个下游应用中。这种适应通常通过微调来实现即更新预训练模型的所有参数。微调的主要缺点是新模型包含的参数与原始模型一样多。随着每隔几个月就会训练出更大的模型这从GPT-2Radford等人b或RoBERTa largeLiu等人2019的“不便”转变为GPT-3Brown等人2020的关键部署挑战GPT-3拥有1750亿个可训练参数。 评难、难、难训练代价十分之大。 为了缓解这个问题许多人尝试仅调整部分参数或学习新任务的外部模块。这样我们除了预训练模型外只需存储和加载每个任务的少量特定任务参数从而大大提高部署时的操作效率。然而现有技术通常通过扩展模型深度来增加推理延迟Houlsby等人2019Rebuffi等人2017或缩短模型可用的序列长度Li Liang2021Lester等人2021Hambardzumyan等人2020Liu等人2021第3节。更重要的是这些方法往往无法与微调基线相匹敌从而在效率和模型质量之间形成了权衡。 评虽然调节模型的部分参数或者学习新的模块能够将需要的训练的参数减少但是效果比较差而且使用外部模块会增加推理的时延。 我们从Li等人2018a和Aghajanyan等人2020的研究中获得灵感他们表明学习到的过参数化模型实际上位于一个低本征维度上。我们假设在模型适应过程中权重的变化也具有较低的“本征秩”这促使我们提出了低秩适应LoRA方法。LoRA允许我们通过优化适应过程中密集层变化的秩分解矩阵来间接训练神经网络中的某些密集层同时保持预训练权重不变如图1所示。以GPT-3 175B为例我们表明即使全秩即d高达12,288一个非常低的秩即图1中的r可以是一或二也足够了这使得LoRA在存储和计算上都非常高效。 评根据模型的参数矩阵的秩并不是满秩都位于一个低的本质维度上。这说明压根就不用那么多的参数来表示信息。能够达到它的本质维度的就能满足信息的要求。 LoRA possesses several key advantages. 一个预训练模型可以被共享并用于构建许多针对不同任务的小型LoRA模块。我们可以冻结共享的模型并通过替换图1中的矩阵A和B来高效地切换任务从而显著降低存储需求和任务切换的开销 • LoRA低秩自适应微调使得训练更加高效并在使用自适应优化器时降低了硬件门槛高达3倍因为我们不需要为大多数参数计算梯度或维护优化器状态。相反我们只需优化注入的、更小的低秩矩阵。 • 我们简单的线性设计允许我们在部署时将可训练矩阵与冻结的权重合并从而在结构上与完全微调模型相比不引入任何推理延迟。 • LoRA与许多先前的方法是正交的并可以与其中许多方法结合使用如前缀调谐。我们在附录E中提供了一个例子。 评将内容写得详细异常重要。让别人懂得你的论文。 术语和约定 我们在文中频繁提及Transformer架构并采用了其维度方面的常规术语。我们将Transformer层的输入和输出维度大小称为dmodel。在自注意力模块中我们使用Wq、Wk、Wv和Wo来分别指代查询query、键key、值value和输出投影矩阵。W或W0代表预训练的权重矩阵而∆W则表示在适应过程中累积的梯度更新。我们用r来表示LoRALow-Rank Adaptation模块的秩。 我们遵循了Vaswani et al., 2017; Brown et al., 2020设定的约定并使用Adam优化器Loshchilov Hutter, 2019; Kingma Ba, 2017进行模型优化。在Transformer的多层感知机MLP前馈网络中我们使用df_fn 4 × dmodel来表示其维度其中df_fn是前馈网络的维度这一设置是Transformer架构中的常见配置。 评价定义好词表达的是什么意思防止文章指代不清。 问题陈述 尽管我们的方法对各种任务都适应但我们以语言建模作为驱动用例来展开讨论。下面是对语言建模问题特别是给定特定任务提示下条件概率最大化的简要描述。 语言建模是自然语言处理中的一个核心任务其目标是让模型学习语言的统计规律从而能够预测给定文本序列中下一个词或字符的概率。在更广泛的任务背景下语言建模可以看作是为文本生成任务提供基础如机器翻译、文本摘要、对话系统等。 在给定特定任务提示task-specific prompt的情况下条件概率最大化指的是模型根据这个提示来预测接下来文本序列的概率分布并尝试选择最可能的序列作为输出。这里的“任务特定提示”可以是一个简短的文本描述、一个查询问题、或者任何能够引导模型生成特定类型文本的信息。 通过最大化条件概率模型能够学会根据上下文包括任务提示来生成更加相关和有意义的文本。这种能力对于实现高效、准确的自然语言处理系统至关重要。 假设我们有一个使用参数Φ进行参数化的预训练自回归语言模型PΦ(y|x)。这个模型可以是一个基于Transformer架构Vaswani et al., 2017的通用多任务学习器比如GPTRadford et al., b; Brown et al., 2020等。现在我们考虑将这个预训练模型适应到下游的条件文本生成任务中比如摘要生成、机器阅读理解MRC和自然语言到SQLNL2SQL的转换。 每个下游任务都由一组包含上下文-目标对的训练数据集Z来表示Z {(xi, yi)}i1,…,N其中xi和yi都是标记token序列。具体来说 在NL2SQL任务中xi是一个自然语言查询而yi是其对应的SQL命令。这个任务的目标是让模型能够理解自然语言查询并生成能够执行该查询的SQL语句。 对于摘要生成任务xi是一篇文章的内容而yi是这篇文章的摘要。该任务的目标是训练模型从长文本中提取关键信息并生成简洁的摘要。 评两个已经做了好久的任务了。 在完全微调full fine-tuning过程中模型首先被初始化为预训练权重Φ0然后通过反复沿着梯度更新这些权重来最大化条件语言建模目标从而更新到Φ0 ∆Φ。这个过程的目标函数可以表示为 评这是一个交叉熵损失-log句子的概率 本文的使用lora微调后的公式形式 评这个公式还是不错的 现存的解决方案不够好吗 我们着手解决的问题绝非新鲜事物。自迁移学习诞生以来数十项工作都致力于使模型适应更加参数化和计算高效。关于一些知名工作的概览请参见第6节。以语言建模为例在高效适应方面存在两种主要策略添加适配器层Houlsby 等人2019Rebuffi 等人2017Pfeiffer 等人2021Rucklé 等人2020或优化输入层激活的某些形式Li Liang2021Lester 等人2021Hambardzumyan 等人2020Liu 等人2021。然而这两种策略都有其局限性尤其是在大规模和延迟敏感的生产场景中。 评找出二者之间的gap 适配器层引入推理延迟 适配器有多种变体。我们主要关注Houlsby等人2019的原始设计该设计在每个Transformer块中引入了两个适配器层以及Lin等人2020的较新设计后者在每个块中仅引入了一个适配器层但增加了一个LayerNorm层Ba等人2016。尽管人们可以通过修剪层或利用多任务设置来减少总体延迟Rucklé等人2020Pfeiffer等人2021但适配器层中的额外计算量无法直接绕过。这看似不是问题因为适配器层通过小的瓶颈维度被设计成仅包含少量参数有时少于原始模型的1%从而限制了它们可以添加的浮点运算次数FLOPs。然而大型神经网络依赖硬件并行性来保持低延迟而适配器层必须按顺序处理。这在在线推理设置中有所区别其中批处理大小通常小至一个。在没有模型并行性的通用场景中例如在单个GPU上运行GPT-2Radford等人中型模型进行推理时即使使用非常小的瓶颈维度我们也能在使用适配器时看到明显的延迟增加表1。 评原始的适配器如同增加了一些神经网络 增加了计算 问这里的顺序计算表示的是什么意思 当我们需要像Shoeybi等人2020和Lepikhin等人2020所做的那样对模型进行分片时这个问题会变得更加严重因为额外的深度需要更多的同步GPU操作如AllReduce和Broadcast除非我们多次冗余地存储适配器参数。这进一步增加了计算和通信成本从而可能显著增加整体推理延迟。因此在模型分片的情况下如何有效地处理适配器层成为了一个需要仔细考虑的问题。 问什么额外的深度 直接优化提示是困难的 另一个方向以前缀调优Prefix Tuning, Li Liang, 2021为例面临着不同的挑战。我们观察到前缀调优的优化难度较大并且其性能在可训练参数中呈现非单调性变化这与原论文中的类似观察结果一致。更根本的是为适应而保留一部分序列长度必然会减少处理下游任务时可用的序列长度我们怀疑这会使得调整提示的性能相比其他方法有所下降。关于任务性能的研究我们将在第5节中详细讨论。 问何为前缀调优 我们描述了LoRALow-Rank Adaptation的简单设计及其实际优势。这里概述的原则适用于深度学习模型中的任何密集层尽管在我们的实验中我们仅关注Transformer语言模型中的某些权重以作为驱动用例。LoRA的核心思想是通过低秩矩阵来参数化模型更新从而减少参数数量和计算成本同时保持较高的适应性和性能。这种设计特别适用于需要快速适应新任务或数据分布的场景如自然语言处理中的迁移学习和持续学习。 神经网络包含许多执行矩阵乘法的密集层。这些层中的权重矩阵通常是满秩的。在适应特定任务时Aghajanyan等人2020表明预训练的语言模型具有较低的“本征维度”并且尽管随机投影到较小的子空间它们仍然可以高效地学习。受此启发我们假设在适应过程中权重的更新也具有较低的“本征秩”。对于预训练的 评使用这样的方式使用BA来代替要更新的参数参数量变小。训练数度加快推理数度不变。 我们在图1中展示了我们的重新参数化方法。我们对矩阵A使用随机高斯初始化对矩阵B使用零初始化因此在训练开始时∆W BA 为零。然后我们将 ∆W 以 α/r来进行缩放其中 α 是与秩 r 相关的一个常数。在使用Adam优化器时如果我们适当地缩放初始化值那么调整 α 就大致相当于调整学习率。因此我们简单地将** α 设置为我们尝试的第一个 r 值**并且不对其进行调整。这种缩放有助于减少在改变 r 时重新调整超参数的需要Yang Hu, 2021。这样我们可以通过简单地改变 r 的值来探索不同的低秩近似空间而无需过多地担心超参数的调整。 评a是一个常数为1也行吧不如学习率。 全微调的一种泛化。微调的一种更一般的形式允许训练预训练参数的一个子集。LoRA更进一步它在适应过程中不要求权重矩阵的累积梯度更新具有满秩。这意味着当我们将LoRA应用于所有权重矩阵并训练所有偏置项时通过将LoRA的秩r设置为预训练权重矩阵的秩我们大致可以恢复全微调的表达能力。换句话说随着可训练参数数量的增加训练LoRA大致会收敛到训练原始模型而基于适配器的方法会收敛到一个多层感知机MLP而基于前缀的方法则会收敛到一个无法处理长输入序列的模型。 评作者任务使用这个lora微调能够与全微调的效果相同。但是使用适配器的方法就是收敛于一个多层感知机。 无额外的推理延迟。而且方便切换 评方法简单但是效果比较好。 原理上我们可以将LoRA应用于神经网络中任何权重矩阵的子集以减少可训练参数的数量。在Transformer架构中自注意力模块有四个权重矩阵Wq, Wk, Wv, Wo而MLP模块有两个。尽管输出维度通常被划分为注意力头但我们仍将Wq或Wk, Wv视为一个维度为dmodel × dmodel的单一矩阵。为了简化和提高参数效率我们的研究仅限于针对下游任务调整注意力权重并冻结MLP模块即在下游任务中不训练它们。在7.1节中我们将进一步研究在Transformer中调整不同类型注意力权重矩阵的影响。对于调整MLP层、LayerNorm层和偏置项的实证研究我们将其留待未来工作。 问现在hf中的peft是否会更新mlp模块 实际益处与限制。最显著的益处来自于内存和存储使用的减少。对于一个使用Adam优化器训练的大型Transformer模型如果r远小于dmodel即LoRA的秩远小于模型的维度我们最多可以减少2/3的VRAM使用量因为我们不需要为冻结的参数存储优化器状态。在GPT-3 175B模型中我们将训练期间的VRAM消耗从1.2TB减少到350GB。当r4且仅调整查询和值投影矩阵时检查点大小减少了大约10,000倍从350GB减少到35MB。这使得我们能够使用显著更少的GPU进行训练并避免I/O瓶颈。 另一个益处是在部署时我们可以以更低的成本在不同任务之间切换只需交换LoRA权重而无需交换所有参数。这允许在存储预训练权重的机器上快速替换和插入许多定制模型。此外在GPT-3 175B上与全微调相比我们观察到训练速度提高了25%因为我们不需要为绝大多数参数计算梯度。 评这可以这样真的好棒。 LoRA的局限性。例如如果选择将A和B合并到W中以消除额外的推理延迟那么在一个前向传递中对于具有不同A和B的不同任务直接批量处理输入并不直接可行。尽管在延迟不是关键因素的场景中可以不合并权重并动态选择用于批量样本的LoRA模块但这增加了实现的复杂性。 这种局限性意味着在需要快速响应或实时处理的场景中LoRA可能不是最佳选择因为它需要额外的步骤来根据任务动态选择LoRA模块。然而在训练或推理过程中可以容忍一定延迟的场景中LoRA仍然是一种非常有效的参数调整方法可以显著减少计算成本和内存使用。 评这个问题还是一个比较小的问题 实验 我们在RoBERTaLiu et al., 2019、DeBERTaHe et al., 2021和GPT-2Radford et al., b上评估了LoRA在下游任务中的性能并扩展到了GPT-3 175BBrown et al., 2020。我们的实验涵盖了从自然语言理解NLU到生成NLG的广泛任务。具体来说我们在RoBERTa和DeBERTa上评估了GLUEWang et al., 2019基准测试的性能。为了进行直接比较我们遵循了Li Liang2021在GPT-2上的设置并在GPT-3的大规模实验中添加了WikiSQLZhong et al., 2017自然语言到SQL查询和SAMSumGliwa et al., 2019对话摘要任务。有关我们使用的数据集的更多详细信息请参阅附录C。所有实验均使用NVIDIA Tesla V100进行。 评四个模型实验还是比较广泛的。 为了与其他基线进行广泛比较我们复制了先前工作使用的设置并尽可能重用他们报告的数字。然而这意味着某些基线可能仅出现在某些实验中。 微调Fine-Tuning, FT是一种常见的自适应方法。在微调过程中模型被初始化为预训练的权重和偏置并且所有模型参数都会经历梯度更新。一个简单的变体是只更新某些层而冻结其他层。我们在GPT-2上包含了一个这样的基线来自先前工作Li Liang, 2021它仅调整最后两层FTTop2。这种方法允许我们在保持模型大部分结构不变的情况下针对特定任务对模型进行快速调整。然而与LoRA相比微调可能需要更多的计算资源和时间因为它需要更新模型中的所有参数。 评这对我之后的实验设计有很大的启示。 Bias-only或BitFit是一个基线方法其中我们仅训练偏置向量同时冻结模型的其他所有部分。这种方法最近也被BitFitZaken et al., 2021等研究探讨过。 前缀嵌入调整Prefix-embedding Tuning, PreEmbed是在输入标记中插入特殊标记的方法。这些特殊标记具有可训练的词嵌入并且通常不在模型的词汇表中。这些特殊标记的放置位置可能会对性能产生影响。我们关注“前缀”和“中缀”两种方式前者是在提示前添加这些特殊标记后者是在提示中插入这些标记这两种方式都在Li Liang2021中有所讨论。我们使用lpresp. li来表示前缀resp. 中缀标记的数量。可训练参数的数量为|Θ| dmodel × (lp li)。 前缀层调整Prefix-layer Tuning, PreLayer是前缀嵌入调整的一种扩展。它不仅仅学习某些特殊标记的词嵌入或等效地嵌入层之后的激活而是学习Transformer每一层之后的激活。简单地用可训练的激活替换之前层计算的激活。结果可训练参数的数量为|Θ| L × dmodel × (lp li)其中L是Transformer层的数量。这种方法允许模型在每个层上都进行微调从而可能获得更好的任务性能但相应地也会增加更多的可训练参数。 评只要找好自己要做的点直接去做就可以了。第二个是增加特殊的token 来学习他们的参数 **问这里为什么参数量回事L * d * ** 在Houlsby等人2019提出的适配器调整Adapter tuning方法中适配器层被插入到自注意力模块和多层感知机MLP模块与随后的残差连接之间。适配器层包含两个带有偏置的全连接层并在两者之间有一个非线性层。我们将这种原始设计称为AdapterH。 最近Lin等人2020提出了一种更高效的设计即适配器层仅应用于MLP模块之后和LayerNorm之后。我们称之为AdapterL。这与Pfeiffer等人2021提出的另一种设计非常相似我们称之为AdapterP。 此外我们还包括了一个名为AdapterDropRucklé等人2020的基线方法该方法通过丢弃一些适配器层来提高效率我们称之为AdapterD。 为了最大化我们比较的基线数量我们尽可能引用先前工作中的数字这些数字在表格的第一列中用星号*标记的行中给出。 在所有情况下模型参数的总数|Θ|由以下公式给出 |Θ| LˆAdpt × (2×dmodel × r r dmodel) 2×LˆLN × dmodel 其中LˆAdpt是适配器层的数量LˆLN是可训练的LayerNorm层的数量例如在AdapterL中。这个公式考虑了适配器层中的参数包括两个全连接层的参数和非线性层的参数以及LayerNorm层的参数。通过这种方式我们可以计算出不同适配器设计对模型大小的影响。 评直接加入一些层来进行微调 RoBERTaLiu等人2019优化了BERTDevlin等人2019a最初提出的预训练配方并在不引入更多可训练参数的情况下提升了后者的任务性能。尽管近年来在NLP排行榜如GLUE基准测试Wang等人2019上RoBERTa已被更大规模的模型超越但由于其大小适中它仍然是实践者中一个具有竞争力和受欢迎的预训练模型。我们从HuggingFace Transformers库Wolf等人2020中获取了预训练的RoBERTa基础版1.25亿参数和RoBERTa大型版3.55亿参数并在GLUE基准测试的任务上评估了不同高效适应方法的性能。我们还根据Houlsby等人2019和Pfeiffer等人2021的设置进行了实验复现。 为了确保比较的公平性在与适配器进行比较时我们对LoRA的评估方式做了两个关键性的改动。首先我们对所有任务使用相同的批量大小并使用序列长度为128来匹配适配器基线。其次对于MRPC、RTE和STS-B任务我们将模型初始化为预训练模型而不是像微调基线那样已经适应于MNLI任务的模型。遵循Houlsby等人2019中这种更受限的设置进行的运行我们在表格中标以†标记。结果展示在表2的前三节中。有关使用的超参数详情请参阅D.1节。 评实验参数必须要保持一致才能具有可比性。实验复现也非常中哟啊。 很多大模型大而无当。没有太多的必要。还不如一些小模型呢 DeBERTaHe等人2021是BERT的一个较新变体它在更大规模的数据集上进行了训练并在诸如GLUEWang等人2019和SuperGLUEWang等人2020等基准测试中表现出非常强的竞争力。我们评估了LoRA是否能够在 GLUE基准测试上仍然匹配完全微调过的 DeBERTa XXL15亿参数的性能。结果展示在表2的底部部分。有关使用的超参数的详细信息请参阅D.2节。 在已经证明LoRA可以成为自然语言理解NLU任务中全微调的一个有竞争力的替代方案后我们希望探讨LoRA在自然语言生成NLG模型上是否仍然占据优势比如GPT-2中等规模和大规模模型Radford等人b。为了进行直接比较我们尽量保持我们的设置与Li Liang2021的设置一致。由于空间限制我们仅在本节中展示在E2E NLG Challenge表3上的结果。有关WebNLGGardent等人2017和DARTNan等人2020的结果请参阅F.1节。在D.3节中我们列出了所使用的超参数列表。 作为LoRA的最终压力测试我们将其扩展到了拥有1750亿参数的GPT-3。由于训练成本高昂我们仅报告了给定任务在不同随机种子下的典型标准差而不是为每一项都提供一个标准差。有关使用的超参数的详细信息请参阅D.4节。如表4所示LoRA在所有三个数据集上都达到了或超过了微调基线。请注意并非所有方法都能从更多可训练参数中单调受益如图2所示。我们观察到当使用超过256个特殊标记进行前缀嵌入调优或使用超过32个特殊标记进行前缀层调优时性能会显著下降。这证实了Li Liang2021中的类似观察结果。虽然对这一现象进行彻底调查超出了本文的范围但我们怀疑拥有更多特殊标记会使输入分布进一步偏离预训练数据的分布。另外我们在F.3节中研究了不同适应方法在低数据情况下的性能。 评这里我感觉也是一样。因为这里增加新的标记无论说是特殊token还是非特殊token可以将模型的其他token所不能明确区分的迁移过去。所以这还是蛮有意思的。 相关的工作 Transformer语言模型。TransformerVaswani等人2017是一种序列到序列的架构大量使用了自注意力机制。Radford等人a通过使用一堆Transformer解码器将其应用于自回归语言建模。自此以后基于Transformer的语言模型在NLP领域占据主导地位在许多任务中都达到了最先进的水平。随着BERTDevlin等人2019b和GPT-2Radford等人b的出现一种新的范式应运而生——它们都是在大量文本上训练的大型Transformer语言模型——在通用领域数据上进行预训练后再在特定任务的数据上进行微调与直接在特定任务的数据上进行训练相比可以显著提高性能。训练更大的Transformer通常能带来更好的性能这仍然是一个活跃的研究方向。GPT-3Brown等人2020是目前为止训练过的最大的单个Transformer语言模型拥有1750亿个参数。 注论文发表是2021年 提示工程Prompt Engineering和微调Fine-Tuning。虽然GPT-3 175B仅通过几个额外的训练示例就可以调整其行为但结果在很大程度上取决于输入提示Brown等人2020。这需要通过实证的方式通过编写和格式化提示来最大化模型在所需任务上的性能这被称为提示工程或提示黑客技术。微调是对在通用领域上预训练的模型进行重新训练以适应特定任务Devlin等人2019bRadford等人a。微调的变体包括仅学习参数的一个子集Devlin等人2019bCollobert Weston2008但从业者通常会重新训练所有参数以最大化下游性能。然而GPT-3 175B的庞大规模使得以常规方式进行微调变得具有挑战性因为它会产生大量的检查点并且由于它与预训练时具有相同的内存占用因此硬件门槛也很高。 思虽然知道提示词工程就是设计好提示词模板。然后给使用这个模板来对模型进行询问。但是仍旧了解的不够仔细。这篇论文可以看一下。思维链的方式其实也是一种提示词工程。 参数高效的自适应。许多人提出在神经网络的现有层之间插入适配器层Houlsby等人2019Rebuffi等人2017Lin等人2020。我们的方法使用类似的瓶颈结构来对权重更新施加低秩约束。关键的功能性差异在于我们的学习权重可以在推理过程中与主权重合并从而不会引入任何延迟而适配器层则不然第3节。适配器的一个当代扩展是COMPACTERMahabadi等人2021它基本上是通过使用具有某些预定权重共享方案的克罗内克积来参数化适配器层。类似地将LoRA与其他基于张量积的方法相结合可能会提高其参数效率这留待未来的工作来完成。最近许多人提出优化输入词嵌入来代替微调这类似于对提示工程的一种连续且可微的泛化Li Liang2021Lester等人2021Hambardzumyan等人2020Liu等人2021。我们在实验部分中包含了与Li Liang2021的比较。然而这一类工作只能通过在提示中使用更多的特殊标记来扩展当学习位置嵌入时这些特殊标记会占用任务标记的可用序列长度。 解为什么会占用序列的长度呢嗯。因为生成的时候还是正常生成一个句子的。 深度学习中的低秩结构。低秩结构在机器学习中非常常见。许多机器学习问题都具有某种固有的低秩结构Li等人2016Cai等人2010Li等人2018bGrasedyck等人2013。此外众所周知对于许多深度学习任务特别是那些具有大量超参数化神经网络的任务训练后的神经网络将具有低秩特性Oymak等人2019。一些先前的工作甚至在训练原始神经网络时明确施加了低秩约束Sainath等人2013Povey等人2018Zhang等人2014Jaderberg等人2014Zhao等人2016Khodak等人2021Denil等人2014然而据我们所知这些工作都没有考虑对冻结模型进行低秩更新以适应下游任务。在理论文献中,已知当底层概念类具有某种低秩结构时神经网络的表现优于其他经典学习方法包括相应的有限宽度神经正切核Allen-Zhu等人2019Li Liang2018Ghorbani等人2020Allen-Zhu Li2019Allen-Zhu Li2020a。Allen-Zhu Li2020b中的另一个理论结果表明低秩适应对于对抗性训练是有用的。总之我们相信我们提出的低秩适应更新方法是有文献依据的。 评论文功底很足大丈夫当如是也。 理解低秩更新 鉴于LoRALow-Rank Adaptation低秩适应的经验优势我们希望能够进一步解释从下游任务中学习的低秩适应的特性。值得注意的是低秩结构不仅降低了硬件的入门门槛使我们能够并行运行多个实验还提高了更新权重与预训练权重之间相关性的可解释性。我们的研究专注于GPT-3 175B模型在这个模型中我们实现了可训练参数的最大减少高达10,000倍同时并未对任务性能产生不利影响。 我们进行了一系列实证研究来回答以下问题1)** 在给定的参数预算约束下我们应该调整预训练Transformer中的哪个权重矩阵子集以最大化下游任务的性能2) “最优”适应矩阵∆W真的是秩不足的吗如果是那么在实际应用中应该使用什么好的秩3) ∆W和W之间有什么联系∆W与W之间是否存在高度相关性∆W与W相比有多大** 评哪个权重子集能是得最大化任务的性能 思这里是需要我借鉴的 我们相信我们对问题2和3的回答揭示了使用预训练语言模型进行下游任务的基本原理这是自然语言处理NLP中的一个关键主题。 在给定有限的参数预算下我们应该使用LoRALow-Rank Adaptation低秩适应来调整哪种类型的权重以便在下游任务中获得最佳性能如第4.2节所述我们只考虑自注意力模块中的权重矩阵。我们在GPT-3 175B上设置了18M的参数预算如果以FP16格式存储则大约为35MB这对应于如果我们调整一种类型的注意力权重则r8如果我们调整两种类型的注意力权重则对于所有96层r4。结果如表5所示。 表5在给定相同数量的可训练参数下将LoRA应用于GPT-3中不同类型的注意力权重后WikiSQL和MultiNLI上的验证准确率。同时调整Wq和Wv总体上给出了最佳性能。我们发现对于给定的数据集不同随机种子的标准差是一致的我们在第一列中报告了这一点。 请注意如果将所有参数都放在∆Wq或∆Wk中会导致性能显著降低而同时调整Wq和Wv则能获得最佳结果。这表明即使在∆W中使用四阶秩也足以捕获足够的信息因此与使用更大秩来调整单一类型的权重相比调整更多的权重矩阵是更优的选择。 评在同样的参数量的基础上将参数分散到不同的权重矩阵中hi更好。 接下来我们关注秩r对模型性能的影响。我们分别调整{Wq, Wv}、{Wq, Wk, Wv, Wc}和仅调整Wq进行比较。 表6不同秩r下WikiSQL和MultiNLI的验证准确率。令人惊讶的是在这些数据集上同时调整Wq和Wv时秩r即使小到1也足够了而单独训练Wq则需要更大的r。我们在第H.2节中对GPT-2进行了类似的实验。 注需要对这个实验在进行初步验证 表6显示令人惊讶的是LoRA在r非常小的情况下特别是对于{Wq, Wv}而不是仅Wq已经表现出具有竞争力的性能。这表明更新矩阵∆W可能具有非常小的“本征秩”。为了进一步支持这一发现我们检查了由不同r值选择和不同随机种子学习的子空间的重叠情况。我们认为增加r并不会覆盖更有意义的子空间这表明低秩适应矩阵就足够了。 不同秩r之间的子空间相似性。给定Ar8和Ar64这是使用相同的预训练模型学习得到的适应矩阵秩分别为r8和64我们进行奇异值分解并获得右奇异酉矩阵UAr8和UAr64。我们希望回答UAr8中由前i个奇异向量对于1≤i≤8张成的子空间有多大比例被包含在UAr64中由前j个奇异向量对于1≤j≤64张成的子空间中我们使用基于格拉斯曼距离Grassmann distance的归一化子空间相似性来度量这个量更多正式讨论见附录G 其中U_i^{Ar8}表示UAr8中对应于前i个奇异向量的列。φ(·)的取值范围是[0, 1]其中1表示子空间完全重叠0表示完全分离。如图3所示φ随着i和j的变化而变化。由于空间限制我们只看第48层共96层但如第H.1节所示该结论也适用于其他层。 我们从图3中得出一个重要观察结果。Ar8和Ar64中对应于前奇异向量的方向存在显著重叠而其他方向则不存在。具体来说Ar8的∆Wv或∆Wq和Ar64的∆Wv或∆Wq共享一个归一化相似性大于0.5的1维子空间这解释了为什么在我们的GPT-3下游任务中r1表现相当好。由于Ar8和Ar64都是使用相同的预训练模型学习的图3表明Ar8和Ar64的前奇异向量方向是最有用的而其他方向可能主要包含了训练过程中积累的随机噪声。因此适应矩阵确实可以具有非常低的秩。 评累计噪声就是流氓罪什么不可解释的罪都能用这个罪来套。作者认为低秩情况大家的子空间更加相似。这样效果能与之前媲美。 不同随机种子之间的子空间相似性。我们通过绘制两个随机种子运行r64之间的归一化子空间相似性如图4所示来进一步确认这一点。∆Wq似乎具有比∆Wv更高的“本征秩”因为两个运行都为∆Wq学习了更多的共同奇异值方向这与我们在表6中的经验观察结果一致。作为对比我们还绘制了两个随机高斯矩阵它们之间没有任何共同的奇异值方向。 我们进一步研究了∆W和W之间的关系。特别是∆W是否与W高度相关或者从数学上讲∆W是否主要包含在W的顶部奇异值方向中另外 与W中相应的方向相比∆W的“大小”如何这可以揭示出适应预训练语言模型的潜在机制。 为了回答这些问题我们将W投影到∆W的r维子空间上通过计算U^T * W * V其中U/V是∆W的左/右奇异向量矩阵。然后我们比较U^T * W * V的Frobenius范数与W的Frobenius范数。作为比较我们还通过用W的前r个奇异向量或随机矩阵替换U、V来计算U^T * W * V的Frobenius范数。 表7U^T * Wq * V的Frobenius范数其中U和V分别是1∆Wq、2Wq或3一个随机矩阵的左/右前r个奇异向量方向。权重矩阵取自GPT-3的第48层。 从表7中我们可以得出几个结论。首先与随机矩阵相比∆W与W具有更强的相关性这表明∆W放大了W中已经存在的一些特征。其次∆W并没有重复W的顶部奇异方向而是放大了W中没有强调的方向。第三放大因子相当大当r4时放大因子约为21.5即6.91⁄0.32。关于为什么r64时放大因子较小请参见H.4节。此外在H.3节中我们还提供了可视化展示了当我们从Wq中包括更多的顶部奇异方向时相关性如何变化。这表明低秩适应矩阵可能会放大在一般预训练模型中已学习但未强调的、对特定下游任务重要的特征。 评这里表示的放大因子是什么意思 结论与未来的工作 对庞大的语言模型进行微调在硬件要求和为不同任务托管独立实例的存储/切换成本方面都是极其昂贵的。我们提出了LoRA这是一种高效的适应策略它在保持模型高质量的同时既不引入推理延迟也不减少输入序列的长度。重要的是当作为服务部署时它允许通过共享绝大多数模型参数来快速切换任务。虽然我们专注于Transformer语言模型但所提出的原则普遍适用于任何具有密集层的神经网络。 未来的工作有很多方向。1) LoRA可以与其他高效的适应方法相结合可能会提供正交的改进。2) 微调或LoRA背后的机制还远不清楚——在预训练期间学习的特征是如何转化为在下游任务中表现良好的我们相信与全面微调相比LoRA使得回答这个问题变得更加容易。3) 我们主要依赖启发式方法来选择应用LoRA的权重矩阵。是否有更原则性的方法来做这件事4) 最后∆W的秩缺陷表明W也可能是秩缺陷的这也可以为未来工作提供灵感来源。 评预训练的特征到下游任务有用这是困难的。 Lora权重矩阵的选择 低秩网络
- 上一篇: 佛山制作网站公司个人网站样式
- 下一篇: 佛山中小企业网站制作建设网站的提成是多少
相关文章
-
佛山制作网站公司个人网站样式
佛山制作网站公司个人网站样式
- 技术栈
- 2026年03月21日
-
佛山制作网站百度做的网站 后台管理怎么进入
佛山制作网站百度做的网站 后台管理怎么进入
- 技术栈
- 2026年03月21日
-
佛山新网站建设哪家好小公司网站维护
佛山新网站建设哪家好小公司网站维护
- 技术栈
- 2026年03月21日
-
佛山中小企业网站制作建设网站的提成是多少
佛山中小企业网站制作建设网站的提成是多少
- 技术栈
- 2026年03月21日
-
佛山专业建设网站深圳网站优化技巧
佛山专业建设网站深圳网站优化技巧
- 技术栈
- 2026年03月21日
-
佛山专业网站营销关闭未备案网站
佛山专业网站营销关闭未备案网站
- 技术栈
- 2026年03月21日






