大模型参数-高效微调方法的指导

116 篇文章 0 订阅
110 篇文章 1 订阅

23年3月来自美国麻省大学Lowell分校的论文“Scaling Down to Scale Up: A Guide to Parameter-Efficient Fine-Tuning“。

本文对2019年2月至2023年2月期间发表的参数-高效微调方面40多篇论文的方法系统概述和比较。这些方法旨在仅训练一小部分参数来重新解决原来不可操作和不切实际的大语言模型微调工作。该文提供一个涵盖广泛方法的分类法,并提出详细的方法比较,特别关注真事情况中的效率和数十亿规模的语言模型微调。

参数高效微调(PEFT)方法可以通过多种方式进行分类。可以通过其基础应用或概念框架来区分:是向模型引入新参数,还是微调现有参数的一小部分?或者,可以根据其主要目标进行分类:该方法的目的是最小化内存占用还是仅提高存储效率?如图描述了这种分类法和 30 种 PEFT 方法:给出三类定义,即基于添加(A)、基于选择(S)和基于重参数化的方法(R);在添加方法中,细分为两小类,即适配器类似的方法和软提示方法。

添加图片注释,不超过 140 字(可选)

参数效率包括多种因素,包括存储、内存、计算和性能。但是,仅实现参数效率并不一定能减少RAM的使用。例如,DiffPruning需要用与模型相同数量的参数来训练二进制掩码。因此,这种方法只能被认为是存储效率高的,同时在微调过程中仍然会产生相当大的RAM和时间成本。

为了比较PEFT方法,要考虑五个因素:存储效率、内存效率、计算效率、准确性和推理开销。虽然并非完全不可区分,但沿其中一轴的改进并不一定转化为其他轴的改进,如表所示。

添加图片注释,不超过 140 字(可选)

各种PEFT方法模型大小以及论文使用的典型可训练参数数可在下表找到。可训练参数的计数,特指由梯度优化算法更新的参数,而不是原始模型和最终模型之间的增量,即“更改的参数”。对于基于重参数化的方法,报告的是重参数化前后的参数。

添加图片注释,不超过 140 字(可选)

存在的挑战

参数计数不一致。主要挑战之一源于研究人员报告参数计数的方式不同。这些不一致不是不诚实的结果,而是由于问题固有的复杂性造成的。通常,参数计数可以分为三种类型:可训练参数的数量,原始模型和微调模型之间更改的参数数量,以及原始模型和微调模型之间的差别等级。这些区别可能具有重大含义。例如,IntrinsicSAID学习模型参数的低秩(∼100-1000)变换,但是会更改模型的所有参数;DiffPruning学习0.5%参数的更新,但实际上训练200%的参数:微调模型和学习二进制掩码;对于基于重新参数化的方法,内存要求可能会因设计实现的选择而异。在这三种类型中,可训练的参数数量是内存效率最可靠的预测指标。但是,仍然不完美。例如,Ladder-side Tuning用单独的side-network,其参数比 LoRa 或 BitFit 更多,但需要的 RAM 更少,因为反向传播不是通过主网络计算的。

模型大小。另一个挑战来自PEFT方法评估中模型大小的变化。几项研究(Aghajanyan2020 ;Hu 2021 )已经证明,较大的模型在微调过程中需要更新的参数更少,无论是在百分比方面,还是模型足够大时有时甚至是绝对项(Li &Liang2021 )。因此,在比较PEFT方法时,必须考虑模型大小,而不仅仅只有可训练参数的比率。

缺乏标准基准和指标。缺乏标准的基准和指标使比较进一步复杂化,新方法通常在不同的模型/数据集组合上进行评估,因此很难得出有意义的结论。一些论文在标准数据集上重新移植各种指标,简化与其他方法的比较。例如,KronA(Edalati 2022 )根据 GLUE 基准评估了 T5 基,并报告了准确性、训练时间和推理时间,同时保持相同数量的可训练参数。UniPELT(Mao 2021 )根据 GLUE 基准评估了 BERT,并报告了准确性、训练时间和推理延迟,尽管对各种方法使用了不同的参数计数。LST(Sung 2022 )在 GLUE 基准测试上评估了不同的 T5 大小,报告了准确性、训练时间、更新参数数量和内存使用情况等指标。MAM(He2022a)将多个模型应用于XSUM基准测试,并报告了一系列可训练参数的准确性,尽管没有提供内存比较。然而,即使这些论文也缺乏完全的可比较性,因为它们的评估设置存在差异,例如不同的参数计数或缺少某些指标,如内存比较。这些不一致之处突出表明,需要有一个标准化的基准和统一的指标,以促进对PEFT方法进行更准确的比较和评估。

已发布实现工作的问题。遇到的另一个问题是已发布实现工作的状态。许多代码库只是Transformer库(Wolf 2020 )或其他存储库的副本,只需稍作修改。这些副本通常不使用 git 分支,因此很难识别差异,除非在自述文件中突出显示。此外,即使很容易发现差异,代码也经常不可重用。用户通常需要安装Transformer库的修改版本,该版本与最新版本冲突,并且缺少有关如何在现有代码库之外重用该方法的文档或任何示例。

尽管存在这些挑战, 还是有一些具有可重用实现的方法值得强调, 例如 LoRa 和 Compacter。这些实现以其用户友好性和适应性而著称,为进一步的研究和开发奠定了坚实的基础。

最佳实践

为了解决参数高效微调文献中发现的不同问题,未来研究的最佳实践:

明确报告参数计数类型:明确指定所报告的参数计数,或者理想情况下报告所有三种类型的参数计数:可训练、已更改和排名。这将提高理解并允许更准确地比较方法。

使用不同的模型大小进行评估:使用不同的模型大小评估方法很重要,因为这可以更全面地了解每种方法的优势和局限性。考虑到即使是最近的论文也经常只关注 BERT(现在是GPT),这一点尤其重要。

标准化 PEFT 基准和竞赛:建议开发标准化的 PEFT 基准和竞赛,这将要求参与者在相同条件下竞争并促进直接比较结果。这些基准应提供不同规模的标准化数据和模型来评估训练效率。为了评估训练时间和内存效率,竞赛可以提供一个集中式服务器或指定一个全面的服务器配置,其中概述 CPU 类型、内存量以及 GPU 类型和数量。理想情况下,这可以采用实例模板的形式提供给主要云提供商之一。应以标准化方式评估 GPU 内存消耗。

强调代码清晰度和最少实现:作为一个社区,需要优先考虑易于理解且具有简单、可重用实现的代码。在某些情况下,这样的实现为论文提供了额外的见解,并且可以以简洁的方式编写。该提议也符合个人研究人员的利益,因为易于重复使用的方法可能会变得更受欢迎,从而获得更多的引用。

额外的讨论

大型语言模型的可访问性不断提高(Zhang,2022;Zeng,2022;Khrushchev,2022;Touvron,2023)以及通过低位量化实现其推理的民主化(Dettmers,2022;Dettmers & Zettlemoyer,2022)使研究界能够以相对适中的计算预算去研究、实验和解决新任务。参数高效的微调是下一步,不仅可以推理,还可以修改这些模型。

在已开发的方法中,一些方法已证明了其在规模上的实用性,例如 Adapters、Prompt Tuning、LoRa和 (IA)^3。然而,在实践中,匹配完全微调的性能仍然是一个挑战。原因之一是对超参数的高度敏感性,由于可训练参数的数量不同,最佳超参通常与完全微调中使用的超参有显著偏差。例如,参数高效微调的最佳学习率通常比完全微调的最佳学习率高得多。研究界应促进深入研究超参数对这些方法的影响并找到合理的默认值,因为参数高效微调或大型模型在 20-100B 规模下的成本可能明显高昂。此外,还应努力开发最小化超参数敏感性的方法,例如预训练新参数(Vu,2021;Su,2021)。

通过研究方法的分类和迄今为止取得的进展,可以发现低秩重参数化在提高参数效率方面取得了显著的成功。LoRa 风格和 Kronecker 积重参数化都减少了可训练参数的数量,同时只需要最少的额外计算。寻找新 PEFT 模型的一个可能的未来方向是探索具有良好可训练参数数-秩比的不同重参数化技术。

另一个可能的改进方向是利用对 Transformer 模型如何处理文本的了解(Rogers,2020)。大多数 PEFT 方法对模型的工作方式是统一的,但模型在不同的层处理输入的方式不同。利用这些知识或构建每层具有自适应参数数量的系统可以进一步提高参数效率和准确性。
在许多方面,其类似于边缘机器学习的挑战:始终面临内存、计算甚至能耗方面的限制。边缘机器学习中广泛使用的量化和修剪等技术(Gupta,2015;LeCun,1989)现在使大语言模型受益。随着该技术进步,这两个领域之间不仅有可能交换更多的想法,而且也很有可能交换更多的想法。跨学科合作可以进一步交流思想,加速参数高效微调的创新和进步。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值