大模型增量微调的各种方法

本文概述了大模型增量微调的发展,主要介绍了添加式(如适配器和提示微调)、指定式(如仅优化特定层)和重参数化(如LoRA)三种方法。这些方法通过高效地调整部分参数,实现了在保持模型结构不变的情况下提升性能。
摘要由CSDN通过智能技术生成

大模型增量微调发展至今,已经涌现出一系列方法,尽管这些方法可能有不同的模型结构和训练策略,但它们都秉承参数高效的基本原则。根据具体的训练策略,可以将增量微调分为三大类:添加式方法、指定式方法和重参数化方法。

添加式方法会在模型中引入本身不存在的参数,并且只训练额外引入的这部分参数而保持其他参数不变;指定式方法则是指定模型中一部分特定的参数可训练,而保持其他参数不变;重参数化方法稍有不同,它是将模型的适配过程(或者是参数的变化)重新转化为一个参数高效的形式,如低维或者低秩的形式。

一、添加式方法

添加式增量微调方法是在大模型中添加额外的参数,但这些参数的位置和结构可能会有所不同。

1、适配器微调

适配器微调(adapter-tuning)是增量微调的开创性工作。这种方法的核心思想是在大模型中插入轻量级的神经网络模块,即适配器。在下游适配的过程中,仅对这些适配器的参数进行优化,其他参数保持不变。具体而言,一个适配器包括一个下投影线性层、一个非线性激活层和一个上投影线性层。适配器微调首次证明了仅调整0.5%~8%的参数即可达到与全参数微调相当的效果。在此基础上,适配器微调又衍生出了一系列的变体,如将适配器的参数复杂度从O(kr)降低到O(d+r)的Compacter方法,以及将适配器移出模型本身在模型之外进行单独优化的梯侧调整(LadderSideTuning,LST)方法等。

2、基于“提示”的方法

基于提示的重要开创性方法是前缀微调[6](prefix-tuning),它将可训练的“软提示”(也叫前缀)插入到模型的输入和隐状态表示层之前,并且在适配过程中只训练这些软提示。一个更加简化的方法是提示微调(prompttuning),即只在输入层插入软提示,这些提示和前缀微调类似,都是额外进行参数化的。提示微调在百亿级别的模型上可以在仅修改输入层的情况下达到与全参数微调相当的效果,但是当模型参数量达不到时,其性能会打折扣,并且可能会存在收敛速度变慢等问题。

二、指定式方法

指定式方法在模型适配过程中用于优化一些内在参数,同时保持大部分参数不变。这种方法不试图改变模型的内部结构,而是指定优化少量已经存在的参数来解决特定问题。一般来说,这种指定可以通过启发式方法或训练监督实现。在早期,有研究表明仅仅优化BERT和RoBERTa模型的最后四层中的一层,就可以获得全参数微调90%以上的性能。而偏置微调(BitFit)通过实验证明,仅仅通过优化模型内部的偏置项并冻结其他所有参数,在适配过程中仍然可以在多个数据集中获得超过95%的全参数微调性能。除了这类人为地直接指定之外,还可以“学习哪些参数需要更新”,例如,差分剪枝(diffpruning)方法定义了一个差分向量,并且尽可能地使这个向量稀疏。另外,也可以直接学习一个掩码矩阵,在适配的过程中对大模型进行选择性地掩码,即哪些参数被“遮掩”从而不参与更新。

三、重参数化方法

重参数化方法的核心是将优化过程转化为参数高效的形式。这类方法通常由这样的假设启发:大规模预训练语言模型对大多数下游任务的适配本身是一个简单的过程,因此可以转化为一种低维或者低秩的方式。先前的研究表明,预训练模型的全参数精调过程可以重参数化为低维子空间内的优化过程,即只更新具有较低的“本征维度”,这个维度的大小可以衡量每个任务的“难易程度”。实验表明,相对较低的维度(例如数千个参数)的重参数化可以复现超过85%的精调性能。从这个意义上说,预训练语言模型可以作为通用压缩框架,将优化复杂度从高维降到低维。此方法还证明了,较大的预训练语言模型通常具有较小的本征维度,而预训练过程隐含地减小了预训练语言模型的本征维度。

类似地,一种针对自注意力模块中原始权重矩阵的低秩适配方法(Low-RankAdaptation,LoRA)被提出。在训练时,低秩适配仅对两个低秩的权重矩阵进行优化,部署时这两个矩阵相乘即可代表权重矩阵的增量。相比添加式方法,低秩适配不需要额外插入神经网络模块,具有更好的推理性能和收敛速度;相比指定式方法,低秩适配的性能更加出色。由于这些优势的存在,LoRA也成为了目前最流行的增量微调方法之一。

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值