随着语言模型变得越来越大且越来越复杂,针对特定任务对它们进行微调可能既耗费资源又耗时。这就是PEFT(参数效率微调)方法派上用场的时候。它专注于调整少数几个关键参数,这使得它在自然语言处理中成为受欢迎的选择。PEFT优点在于它在理解语言方面实现了最先进的性能结果,但却不涉及通常所需的繁重计算负担。
RoSA是PEFT中的一种新方法。它已经在各种实验中进行了测试,并且已经证明其性能优于旧方法,如低秩适应(LoRA)和稀疏微调,即使使用相同数量的参数也是如此。本文将探讨RoSA的工作原理、它使用的方法以及它所取得的结果。我们还将解释为什么RoSA在该领域是一个显著的进步。如果你对以更高效的方式微调大型语言模型感兴趣,RoSA相比过去的技术提供了一个更好的选择。
我们为什么需要PEFT?
在自然语言处理(NLP)中,高效地调整参数正变得越来越重要。这一领域见证了基于Transformer大型语言模型的使用激增,如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的灵感来自于稳健主成分分析(稳健PCA),这是一种统计过程,使用鲁棒方法来估计数据集的主成分,使其相比经典PCA对异常值不太敏感。
在稳健PCA中,数据矩阵被分成一个干净的低秩组成部分(L)和一个被污染或损坏的稀疏分量(S)。
RoSA采用了一个类似的概念来微调语言模型。它将过程分成两个部分:
根据论文,它开始于掩码生成,这是一个设计出来的过程,用于在大型语言模型(LLM)中识别最重要的参数以进行微调。这通过将权重梯度初始化为零,并通过特别选定的子数据集进行迭代,来完成用于掩码生成的任务。对于每一个样本,它计算梯度并累积梯度的平方,这是对Fisher信息矩阵的经验估计,在自然语言处理中通常用来估计模型参数的重要性。这个过程有助于确定全连接权重中的关键参数(top-k个元素)和LLM参数中对下游任务影响最大的其余参数。
然后,RoSA建立在前面生成的掩码之上。它首先选择下游数据集的一个随机子集,并应用先前生成的掩码来识别用于微调的最重要参数。算法决定全连接权重的数量,并同时初始化低秩适应(LoRA)和稀疏(SpA)参数。然后它开始训练适配器,包括对LLM的低秩和稀疏参数进行微调。该过程优化了LLM参数的一小部分,提高了模型在各种自然语言理解任务上的性能,同时保持了可管理的计算成本。该方法旨在通过只调整模型参数的一小部分来保持效率,从而保留了大部分预训练模型结构和知识。
这种方法使得RoSA比仅使用LoRA能够获得更高的准确度。RoSA通过将模型的头矩阵分解成低秩形式来构建L矩阵,这有助于编码对各种任务有用的语义表示。然后,它对每层中最关键的参数进行微调至S矩阵,捕捉那些不适合低秩拟合的残差信号。
RoSA使用的微调参数远少于LoRA,保持了高效率。它还包括其他优化,例如:
这些设计选择赋予了RoSA类似全微调的灵活性,同时保持了优化和推理的参数效率高。结合了稳健的低秩适应和高度稀疏残差的RoSA,代表了在PEFT技术中精确性和效率之间新水平的平衡。
实验和结果
研究人员在一系列自然语言理解(NLU)任务上测试了RoSA这种新的微调方法。这些任务包括文本检测、情感分析、自然语言推理和稳健性测试。他们用具有12亿参数模型的人工智能助手LLM进行了这些实验。
RoSA在每个任务中的表现都超过了LoRA(另一种微调方法),尽管两者使用了相同数量的参数,大约是模型总数的0.3%。这相当于RoSA和LoRA都有大约450万微调参数。
此外,RoSA的表现要么与仅使用稀疏参数进行微调的模型相当,要么更好。例如:
在全部12个数据集中,当参数数量相同时,RoSA始终表现出比LoRA更优越的性能。
RoSA的一个主要亮点在于它实现这些结果不需要对每个任务进行任何特定的调整或定制。这使得RoSA在参数高效微调(PEFT)领域成为一个多功能的和通用的解决方案。
总结
语言模型正变得越来越庞大,这使得它们更难且更昂贵地进行更新或微调。像LoRA(低秩适应)这样的技术很有用,因为它们只更改模型的少部分,但并非完美,因为它们会漏掉一些重要细节。
RoSA是一种微调这些大型模型的新方法。它巧妙地结合了两种策略:它简化了模型的部分内容,同时也专注于通常被忽视的非常具体的细节。这种方法已经过测试,并且比像LoRA这样的旧技术表现更好。它在捕捉帮助模型理解语言任务的细微差别方面做得更好。
RoSA的方法直接而有效。它是在不需要大量计算能力的情况下使这些庞大模型更聪明的一大步。这对于希望使语言模型随着时间变得更聪明且更高效的研究人员来说是个好消息。