AdaLoRA论文概述

AdaLoRA论文概述

前言

预训练语言模型(PLMs)在各种自然语言处理任务中表现出了优越的性能。为了适应下游任务,最常见的方法是对预训练模型的所有参数进行微调(全微调)。然而,预训练模型通常需要大量内存。例如,BERT模型包含多达3亿参数,T5模型包含多达110亿参数,GPT-3模型包含多达1750亿参数。在构建基于这些预训练模型的NLP系统时,通常需要同时处理多个任务。在有大量下游任务的情况下,全微调需要每个任务维护一个大型模型的单独副本,这导致了禁止性的内存消耗。

研究人员提出了两条主要的研究路线,以减少微调参数,同时保持甚至提高plm的性能。具体来说,一条研究路线侧重于在plm中添加小型神经模块,并针对每个任务仅对这些模块进行微调,基本模型保持冻结并在任务之间共享。

另一条路线,在不修改模型架构的情况下,以参数有效的方式对预训练权重的增量更新进行建模,如lora。

摘要

在下游任务上对大型预训练语言模型进行微调已经成为自然语言处理的一个重要范例。然而,通常的做法是对预训练模型中的所有参数进行微调,当存在大量下游任务时,这变得令人望而却步。

因此,提出了许多微调方法,以参数有效的方式学习预训练权值的增量更新,例如低秩增量。这些方法通常在所有预训练的权重矩阵上均匀地分配增量更新预算,而忽略了不同权重参数的不同重要性。

因此,调优性能不是最优的。为了弥补这一差距,我们提出了AdaLoRA算法,该算法根据权重矩阵的重要性评分自适应地在权重矩阵之间分配参数预算。特别是,AdaLoRA以奇异值分解的形式将增量更新参数化。这种新颖的方法使我们能够有效地修剪不重要更新的奇异值,这本质上是为了减少它们的参数预算,但避免了密集的精确SVD计算。

我们在自然语言处理问答自然语言生成方面对几个预训练模型进行了大量实验,以验证AdaLoRA的有效性。结果表明,AdaLoRA在基线上表现出显着的改善,特别是在低预算设置下。

论文十问

  1. 论文试图解决什么问题?

论文试图解决预训练语言模型微调时如何高效分配参数预算的问题。

  1. 这是否是一个新的问题?

这是一个新的问题。论文指出现有方法没有考虑不同模块和层的重要性差异,导致参数分配不当。

  1. 这篇文章要验证一个什么科学假设?

论文要验证“动态根据模块重要性分配参数预算可以提高模型性能”的假设。

  1. 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?

相关研究包括全微调、BitFit、Adapter 微调、LoRA等。其中 LoRA 是当前领域内值得关注的研究员提出的状态研究。

  1. 论文中提到的解决方案之关键是什么?

论文关键解决方案是:基于奇异值分解的参数化方式和根据新设计的重要性指标进行适应性预算分配

  1. 论文中的实验是如何设计的?

实验设计包括在多个数据集和模型上比较 AdaLoRA 与多个 baseline 的性能。

  1. 用于定量评估的数据集是什么?代码有没有开源?

用于评估的数据集有 GLUE、SQuAD 和文本摘要数据集。代码已开源。

  1. 论文中的实验及结果有没有很好地支持需要验证的科学假设?

实验结果很好地支持了 AdaLoRA 在不同预算水平下性能优于其他方法的假设。

  1. 这篇论文到底有什么贡献?

论文的主要贡献是提出 AdaLoRA 方法实现参数高效微调。

  1. 下一步呢?有什么工作可以继续深入?

下一步的工作可以继续探索其他方式动态分配参数预算,或在更多任务上验证 AdaLoRA 的有效性。

奇异值分解

SVD(奇异值分解)是一种矩阵分解方法,用于将矩阵分解为三个部分:左奇异向量矩阵、对角矩阵(包含奇异值)和右奇异向量矩阵。这种方法可以有效地减少矩阵的秩,从而降低计算复杂度和存储需求。在上下文中,SVD被用于调整预训练权重矩阵的增量更新,以便在保持性能的同时降低参数开销。

实验

方法比较

研究方法
  • Full fine-tuning
  • Bitfit
  • Adapter tuning
  • LoRA
  • AdaLoRA
数据集和模型

DeBERTaV3-base

GLUE

在这里插入图片描述

自然语言处理

模型和数据集

DeBERTaV3-base

GLUE

实验结论

daLoRA在所有预算水平下的所有数据集上取得了更好或同等的性能。例如,当参数预算为0.3M时,AdaLoRA在RTE上的准确率达到87.36%,比性能最好的基线提高1.8%。此外,极低预算的AdaLoRA通常比高预算的基线性能更好。

问答

模型和数据集

DeBERTaV3-base

SQuAD v1.1

实验结论

主要的结果。下图总结了我们在四种不同的预算设置下对DeBERTaV3-base进行微调的实验结果:0.08%,0.16%,0.32%和0.65%的预训练参数。从结果来看,我们看到AdaLoRA在所有预算水平下,在两个评估指标(精确匹配(EM)和F1)方面始终优于现有方法。注意,当我们减少参数预算时,Houlsby适配器和Pfeiffer适配器的性能明显下降。相比之下,我们的方法在不同的预算水平下表现出一致的性能。例如,AdaLoRA在SQuADv2.0上实现了88.7%的F1,而最小的预算为0.08%。它接近其在高预算下的表现,也比最佳表现基线高出1.2%。
在这里插入图片描述

自然语言生成

模型和数据集

BART-large

XSum 、 CNN/DailyMail

实验结论

主要的结果。实验结果下图所示,我们比较了四种预算水平下的微调性能:可训练参数的数量分别为预训练参数总数的0.13%、0.26%、1.10%和2.20%。我们看到,在所有预算水平下,AdaLoRA在两个数据集(XSum和CNN/DailyMail)上实现了更好或与基线相当的性能。例如,当预算水平为1.10%时,AdaLoRA的R-2得分为21.13,而LoRA的R-2得分为19.89
在这里插入图片描述

结论

提出了一种参数高效的微调方法:AdaLoRA,根据重要性评分自适应分配参数预算。

在AdaLoRA中,我们以奇异值分解的形式参数化权矩阵的增量更新。

然后,我们根据一个新的重要度量,通过操纵奇异值,在增量矩阵之间动态分配参数预算。该方法有效地提高了模型性能和参数效率。

我们在自然语言处理、问答和自然语言生成任务方面进行了广泛的实验。结果表明,AdaLoRA优于现有的方法

相关推荐

  1. [论文笔记] Open-Sora 1、sora复现方案概览

    2023-12-07 09:30:03       47 阅读
  2. Hadoop 概述

    2023-12-07 09:30:03       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-07 09:30:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-07 09:30:03       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-07 09:30:03       87 阅读
  4. Python语言-面向对象

    2023-12-07 09:30:03       96 阅读

热门阅读

  1. Jtti:网站服务器如何预防CC攻击?

    2023-12-07 09:30:03       61 阅读
  2. [C++] new和delete

    2023-12-07 09:30:03       59 阅读
  3. SpringBoot实现PDF添加水印

    2023-12-07 09:30:03       48 阅读
  4. vue2框架简易版响应式设计(观察者模式)

    2023-12-07 09:30:03       58 阅读
  5. libevent库中的http相关函数举例

    2023-12-07 09:30:03       53 阅读
  6. 如何设置不同的网页标题(react)

    2023-12-07 09:30:03       55 阅读
  7. mvn site 命令

    2023-12-07 09:30:03       58 阅读
  8. L0、Linux常用命令

    2023-12-07 09:30:03       59 阅读
  9. 【LeeCode】350.两个数组的交集 II

    2023-12-07 09:30:03       55 阅读
  10. ElasticSearch之Index stats API

    2023-12-07 09:30:03       55 阅读
  11. 后端返回数据前端保留两位小数

    2023-12-07 09:30:03       62 阅读