新的参数高效微调方法——RoSA

随着语言模型变得越来越庞大和复杂,为特定任务进行微调可能会耗费大量时间和资源。这就是PEFT(参数高效微调)方法的用武之地。它专注于调整只有少数关键参数,成为自然语言处理中备受青睐的选择。PEFT的优势在于在理解语言方面取得了最先进的性能结果,但避免了通常涉及的高计算负荷。

RoSA是PEFT中的一种新方法。它已经在各种实验中进行了测试,并表现出比较旧的方法如低秩适应(LoRA)和稀疏微调更好的性能,即使使用相同数量的参数。本文将探讨RoSA的工作原理、使用的方法和取得的结果。我们还将解释为什么RoSA在这个领域是一个重大改进。如果您对以更高效的方式微调大型语言模型感兴趣,RoSA相比过去的技术提供了更好的选择。

为什么我们需要PEFT?

高效调整参数在自然语言处理(NLP)中变得越来越重要。这个领域在使用大型基于变压器的语言模型(如GPT-4)方面经历了激增。这些模型在大量文本上进行训练,以帮助它们学习和应用复杂的语言模式到各种任务中。

然而,随着这些模型变得越来越庞大,从数十亿到数万亿个参数,微调它们的成本变得极高。例如,微调GPT-4的全部1.76万亿个参数可能会花费数百万美元,使得它几乎不可能在实际情况中使用。

这就是参数高效微调(PEFT)发挥作用的地方。这种方法侧重于为每个特定任务调整仅有的一小部分参数。这种方法不仅更加具有成本效益,而且也更加实用。最近的研究引入了各种各样的PEFT技术,每种技术以不同的方式平衡效率和准确性。

LoRA是什么?

低秩自适应(LoRA)是PEFT(参数高效微调)中的一种众所周知的方法,由Meta和MIT的研究人员于2021年引入。他们注意到变换器模型在其头部矩阵中具有低秩结构。

LoRA通过仅对每个变压器头中的前k个奇异向量进行微调,保持其余参数(n)不变来工作。与对模型中的所有参数(O(n))进行微调相比,此方法只需要微调较少的参数(O(k))。

该方法利用低秩结构以高效地捕捉不同任务所需的基本信息。它专注于仅调整顶部奇异向量,使得优化和推断都更加高效。

在测试中,LoRA已经显示出它可以在GLUE等基准测试上达到与完全微调相似的结果,但参数数量减少了100多倍。然而,随着模型变得更大,LoRA需要增加排名k来保持强大的性能,这可能会降低其相对于完全微调的计算优势。

在RoSA引入之前,LoRA被认为是PEFT技术中最好的之一。它只通过不同的矩阵因式分解或添加一些更多的微调参数来进行了一些小的改进。也许你听说过它的一些变体,如Tied-LoRA、广义LoRA(GLoRA)和QLoRA。

强大适应性 (RoSA)

强健自适应(RoSA)是一种在语言模型中高效微调参数的新方法。与主要依赖低秩结构的其他方法不同,RoSA灵感来自于强健主成分分析(robust PCA)。强健主成分分析是一种统计过程,使用鲁棒方法估计数据集的主成分,相比传统的主成分分析,它对异常值的敏感性更低。

在鲁棒PCA中,数据矩阵被分成一个干净的低秩部分(L)和一个受污染或损坏的稀疏部分(S)。

RoSA对语言模型进行微调的概念类似。它将该过程分为两个部分:

  1. 一个类似于LoRA的低秩自适应(L)矩阵进行微调,以捕捉与主要任务相关的信号。
  2. 使用高度稀疏的微调(S)矩阵来调整一小部分重要参数。这些参数编码了L矩阵未能捕捉到的剩余信号。

根据该论文,它始于掩码生成,这是一个过程,旨在识别大型语言模型(LLM)中最重要的参数以进行微调。通过将权重梯度初始化为零并迭代一个专门选择用于掩码生成的数据子集,实现此目标。对于每个样本,它计算梯度并累积梯度平方,这是对费舍尔信息矩阵的经验估计,常用于自然语言处理中估计模型参数的重要性。该过程有助于确定全连接权重中的关键参数(前k个元素)以及对下游任务最有影响力的其余LLM参数。

接下来,Robust Adaptation (RoSA) 在之前生成的掩码的基础上进行构建。它首先选择下游数据集的一个随机子集,并将之前生成的掩码应用于识别微调中最重要的参数。该算法确定全连接权重的数量,并初始化低秩适应 (LoRA) 和稀疏 (SpA) 参数。然后,它开始训练适配器,这涉及对LLM的低秩和稀疏参数进行微调。这个过程优化了LLM中的一小部分参数,提高了模型在各种自然语言理解任务上的性能,同时保持了可管理的计算成本。该方法旨在通过仅调整模型参数的一小部分来保持效率,从而保留了预训练模型的大部分结构和知识。

这种方法使得RoSA能够比仅使用LoRA更高的准确性。RoSA通过将模型的头矩阵分解为低秩形式来构建L矩阵,从而有助于编码对各种任务有用的语义表示。然后,它对每一层中最关键的参数进行微调,以S矩阵捕捉不适合低秩拟合的剩余信号。

RoSA使用的微调参数比LoRA要少得多,保持高效。它还包含其他优化,如:

  • 残余稀疏连接,在每个变换器块的输出中直接添加S个残差。这有助于捕捉L矩阵遗漏的信号。
  • 每个Transformer层独立稀疏掩码,确保在S矩阵的微调中选择的参数被分别生成。
  • 在所有层之间共享低秩结构,类似于LoRA,始终捕捉语义概念。

这些设计选择使RoSA在保持参数效率高的同时,具有类似于完全微调的灵活性,可用于优化和推理。RoSA将鲁棒的低秩适应性与高度稀疏的残差相结合,代表了在PEFT技术中准确性和效率之间的新平衡水平。

实验和结果

研究人员对RoSA进行了广泛的自然语言理解(NLU)任务测试。这些任务包括文本检测、情感分析、自然语言推理和稳健性测试。他们在这些实验中使用了一个拥有120亿参数模型的人工智能助手LLM。

RoSA 在每个任务中都表现优于 LoRA(另一种微调方法),尽管它们都使用了相同数量的参数,即总模型的大约0.3%。这相当于 RoSA 和 LoRA 都拥有大约450万个微调参数。

此外,RoSA的性能要么与仅使用稀疏参数微调的模型相当,要么更好。例如:

  • 在ANLI基准测试中,RoSA得分55.6,而LoRA得分为52.7。这显示出RoSA更好的泛化和校准能力。
  • 在情感分析任务中,例如SST-2和IMDB,RoSA分别达到了91.2%和96.9%的准确率,而LoRA分别获得了90.1%和95.3%的准确率。
  • 在WIC词义消岐测试中,RoSA获得了93.5的F1分数,击败了LoRA的91.7。

在所有12个数据集中,当他们具有相同数量的参数时,RoSA始终表现出优于LoRA的性能。

RoSA的一个关键亮点是,在不需要为每个任务进行专门调整或定制的情况下,就能实现这些结果。这使得RoSA成为参数高效微调(PEFT)领域中多功能且普适性的解决方案。

总结

语言模型变得越来越庞大,使得更新或微调它们变得更加困难和昂贵。像 LoRA 这样的技术很有帮助,因为它们只改变了模型的一小部分,但它们并不完美,因为它们会忽略一些重要的细节。

RoSA是对这些大型模型进行微调的一种新方式。它巧妙地结合了两种策略:在简化模型的同时,专注于通常被忽视的非常具体的细节。这种方法经过测试比LoRA等旧技术效果更好。它更好地捕捉了有助于模型理解语言任务的微妙之处。

RoSA的方法直接而且有效。这是在不需要大量计算能力的情况下使得这些巨大模型更加智能化的一步进。对于希望使语言模型变得更加智能和高效的研究人员来说,这是一个好消息。

2024-01-17 04:42:31 AI中文站翻译自原文