AIGC时代 | 揭秘大型语言模型微调:11种高效方法助力模型升级 ...

打印 上一主题 下一主题

主题 1837|帖子 1837|积分 5511


   导读:大型预训练模型是一种在大规模语料库上预先训练的深度学习模型,它们可以通过在大量无标注数据上举行训练来学习通用语言表现,并在各种下游任务中举行微调和迁移。随着模型参数规模的扩大,微调和推理阶段的资源消耗也在增加。针对这一挑战,可以通过优化模型结构和训练计谋来降低资源消耗。
  一样平常来说,研究者的优化方向从两个方面共同推进:


  • 一方面,针对训练参数过多导致资源消耗巨大的情况,可以思量通过固定根本大型语言模型的参数,引入部分特定参数举行模型训练,大大淘汰了算力资源的消耗,也加快了模型的训练速度。比较常用的方法包括前缀调优、提示调优等。
  • 另一方面,还可以通过固定根本大型语言模型的架构,通过增加一个“新的旁路”来针对特定任务或特定数据举行微调,当前非常热门的LoRA就是通过增加一个旁路来提升模型在多任务中的表现。
接下来,我们将详细介绍11种高效的大型语言模型参数调优的方法。

  

1 前缀调优

前缀调优(Prefix Tuning)是一种轻量级的微调替代方法,专门用于天然语言生成任务。前缀调优的灵感来自于语言模型提示,前缀就似乎是“虚拟标记”一样,这种方法可在特定任务的上下文中引导模型生成文本。
前缀调优的独特之处在于它不改变语言模型的参数,而是通过冻结LM参数,仅优化一系列一连的任务特定向量(即前缀)来实现优化任务。前缀调优的架构如图1所示。

                                         图                            1                            前缀调优的架构                                  图1 前缀调优的架构                     图1前缀调优的架构
由于在训练中只需要为每个任务存储前缀,前缀调优的轻量级设计避免了存储和计算资源的浪费,同时保持了模型的性能,具有模块化和高效利用空间的特点,有望在NLP任务中提供高效的解决方案。
2 提示调优

提示调优(Prompt Tuning)方法是由Brian Lester在论文“The Power of Scale for Parameter-Efficient Prompt Tuning”中提出的。
提示调优采用“软提示”(Soft Prompt)的方式,通过冻结整个预训练模型,只答应每个下游任务在输入文本前面添加k个可调的标记(Token)来优化模型参数,赋予语言模型可以或许执行特定的下游任务的能力。提示调优的架构如图2所示。

                                         图                            2                            提示调优的架构                                  图2 提示调优的架构                     图2提示调优的架构
在论文的实行对比中,对于T5-XXL模型,每个经过调整的模型副本需要110亿个参数,相较于为每个下游任务制作特定的预训练模型副本,提示调优需要的参数规模仅为20480个参数。该方法在少样本提示方面表现出色。
3 P-Tuning v2

只管提示调优在相应任务上取得了肯定的效果,但当底座模型规模较小,特别是小于1000亿个参数时,效果表现不佳。为了解决这个问题,清华大学的团队提出了针对深度提示调优的优化和顺应性实现——P-Tuning v2方法。
该方法最显著的改进是对预训练模型的每一层应用一连提示,而不但仅是输入层。这实际上是一种针对大型语言模型的软提示方法,主要是将大型语言模型的词嵌入层和每个Transformer网络层前都加上新的参数。深度提示调优增加了一连提示的功能,并缩小了在各种设置之间举行微调的差距,特别是对于小型模型和困难的任务。
实行表明,P-Tuning v2在30亿到100亿个参数的不同模型规模下,以及在提取性问题回答和命名实体辨认等NLP任务上,都能与传统微调的性能相匹敌,且训练本钱大大降低。
4 LoRA

微软公司在2021年提出了一种名为Low-Rank Adaptation(LoRA,低秩适配器)的方法。
LoRA的核心思想是通过冻结预训练模型的权重,并将可训练的秩分解矩阵注入Transformer架构的每一层,从而显著淘汰下游任务中可训练参数的数目。在训练过程中,只需要固定原始模型的参数,然后训练降维矩阵A和升维矩阵B。LoRA的架构如图3所示。

                                         图                            3                            L                            o                            R                            A                            的架构                                  图3 LoRA的架构                     图3LoRA的架构
具体来看,假设预训练的矩阵为
,它的更新可表现为
,其中:


与利用Adam微调的GPT-3 175B相比,LoRA可以将可训练参数的数目淘汰10000倍,并将GPU内存需求淘汰3倍。只管LoRA的可训练参数较少,训练吞吐量较高,但与RoBERTa、DeBERTa、GPT-2和GPT-3等模型相比,LoRA在模型质量性能方面与微调相称,甚至更好。
5 DyLoRA

但随着研究的深入,LoRA块存在两大核心问题:


  • 一旦训练完成后,LoRA块的大小便无法更改,若要调整LoRA块的秩,则需重新训练整个模型,这无疑增加了大量时间和计算本钱;
  • LoRA块的大小是在训练前设计的固定超参,优化秩的过程需要精细的搜索与调优操作,仅设计单一的超参可能无法有效提升模型效果。
为解决上述问题,研究者引入了一种全新的方法—DyLoRA(动态低秩顺应)。
研究者参考LoRA的根本架构,针对每个LoRA块设计了上投影(Wup)和下投影(Wdw)矩阵及当前LoRA块的规模范围R。为确保增加或淘汰秩不会显着拦阻模型的表现,在训练过程中通过对LoRA块对不同秩的信息内容举行排序,再结合预界说的随机分布中举行抽样,来对LoRA块镜像上投影矩阵和下投影矩阵截断,终极确认单个LoRA块的大小。DyLoRA的架构如图4所示。

                                         图                            4                            D                            y                            L                            o                            R                            A                            的架构                                  图4 DyLoRA的架构                     图4DyLoRA的架构
研究结果表明,与LoRA相比,利用DyLoRA训练出的模型速度可提升4~7倍,且性能几乎没有下降。别的,与LoRA相比,该模型在更广泛的秩范围内展现出了卓越的性能。
6 AdaLoRA

正如DyLoRA优化方法一样,提出AdaLoRA的研究者也发现,当前LoRA存在的改进方向:


  • 由于权重矩阵在不同LoRA块和模型层中的重要性存在差异,因此不能提前制定一个同一规模的秩来约束干系权重信息,需要设计可以支持动态更新的参数矩阵;
  • 需要设计有效的方法来评估当前参数矩阵的重要性,并根据重要性程度,为重要性高的矩阵分配更多参数目,以提升模型效果,对重要性低的矩阵举行裁剪,进一步降低计算量。
根据上述思想,研究者提出了AdaLoRA方法,可以根据权重矩阵的重要性得分,在权重矩阵之间自顺应地分配参数规模。在实际操作中,AdaLoRA采用奇特值分解(SVD)的方法来举行参数训练,根据重要性指标剪裁掉不重要的奇特值来进步计算服从,从而进一步提升模型在微调阶段的效果。
7 QLoRA

Tim Dettmers等研究者在论文“QLoRA: Efficient Finetuning of Quantized LLMs”中提出了一种高效的模型微调方法——QLoRA。
QLoRA的架构如图5所示。

                                         图                            5                            Q                            L                            o                            R                            A                            的架构                                  图5 QLoRA的架构                     图5QLoRA的架构
QLoRA的创新内容主要如下:


  • 4bit NormalFloat(NF4)。NF4是一种新型数据类型,它对正态分布的权重来说是信息理论上的最优选择。
  • 双重量化技术。双重量化技术淘汰了均匀内存的利用,它通过对已量化的常量举行再量化来实现。
  • 分页优化器。分页优化器有助于管理内存峰值,防止梯度查抄点时出现内存不足的错误。
实行表明,QLoRA技术使得研究者可以或许在单个48GB GPU上微调650亿个参数规模的模型,同时维持16bit精度任务的完整性能。例如,在训练Guanaco模型时,仅需在单个GPU上微调24h,即可达到与ChatGPT相称的99.3%性能水平。通过QLoRA微调技术,可以有效降低模型微调时的显存消耗。
8 QA-LoRA

大型语言模型取得了迅猛发展,只管在许多语言明白任务中表现强大,但由于巨大的计算负担,尤其是在需要将它们摆设到边缘设备时,应用受到了限定。具体而言,预训练权重矩阵的每一列只伴随一个缩放和零参数对,但有很多LoRA参数。这种不平衡不但导致了大量的量化偏差(对LLM的正确性造成侵害),而且使得将辅助权重整合到主模型中变得困难。
在论文“QA-LoRA: Quantization-aware Low-rank Adaptation of large language models”中,研究者提出了一种量化感知的低秩顺应(QA-LoRA)算法。该方法泉源于量化和顺应的自由度不平衡的思想。
研究者提出采用分组运算符的方式,旨在增加量化自由度的同时淘汰顺应自由度。
QA-LoRA的实现轻便,仅需几行代码,同时赋予原始的LoRA两倍的能力:


  • 在微调过程中,LLM的权重被量化(如INT4),以降低时间和内存的利用;
  • 微调后,LLM和辅助权重可以或许天然地集成到一个量化模型中,而不损失正确性。
通过在LLaMA和LLaMA2模型系列的实行中证实,QA-LoRA在不同的微调数据集和下游场景中验证了其有效性。
如图6所示,与之前的顺应方法LoRA和QLoRA相比,QA-LoRA在微调和推理阶段都具有更高的计算服从。更重要的是,由于不需要举行训练后量化,因此它不会导致正确性损失。在图6中展示了INT4的量化,但QA-LoRA可以推广到INT3和INT2。

                                         图                            6                            L                            o                            R                            A                            、                            Q                            L                            o                            R                            A                            、                            Q                            A                            −                            L                            o                            R                            A                            的架构对比                                  图6 LoRA、QLoRA、QA-LoRA的架构对比                     图6LoRA、QLoRA、QA−LoRA的架构对比
9 LongLoRA

通常情况下,用较长的上下文长度训练大型语言模型的计算本钱较高,需要大量的训练时间和GPU资源。
为了在有限的计算本钱下扩展预训练大型语言模型的上下文大小,研究者在论文“LongLoRA: Efficient Fine-tuning of Long-Context Large Language Models”中提出了LongLoRA的方法,整体架构如图7所示。

                                         图                            7                            L                            o                            n                            g                            L                            o                            R                            A                            的整体架构                                  图7 LongLoRA的整体架构                     图7LongLoRA的整体架构
LongLoRA在两个方面举行了改进:


  • 固然在推理过程中需要密集的全局留意力,但通过采用稀疏的局部留意力,可以有效地举行模型微调。在LongLoRA中,引入的转移短暂的留意力机制可以或许有效地实现上下文扩展,从而在性能上与利用香草留意力(Vanilla Attention)举行微调的效果相似;
  • 通过重新审视上下文扩展的参数高效微调机制,研究者发如今可训练嵌入和规范化的条件下,用于上下文扩展的LoRA表现良好。
LongLoRA在从70亿、130亿到700亿个参数的LLaMA2模型的各种任务上都取得了良好的结果。具体而言,LongLoRA采用LLaMA2-7B模型,将上下文长度从4000个Token扩展到10万个Token,展现了其在增加上下文长度的同时保持了高效计算的能力。这为大型语言模型的进一步优化和应用提供了有益的思路。
10 VeRA

LoRA是一种常用的大型语言模型微调方法,它在微调大型语言模型时可以或许淘汰可训练参数的数目。然而,随着模型规模的进一步扩大大概需要摆设大量顺应于每个用户或任务的模型时,存储问题仍旧是一个挑战。
研究者提出了一种基于向量的随机矩阵顺应(Vector-based Random matrix Adaptation,VeRA)的方法,VeRA的实现方法是通过利用一对低秩矩阵在所有层之间共享,并学习小的缩放向量来实现这一目标。
与LoRA相比,VeRA成功将可训练参数的数目淘汰了10倍,同时保持了雷同的性能水平。VeRA与LoRA的架构对好比图8所示,LoRA通过训练低秩矩阵和来更新权重矩阵,中心秩为。在VeRA中,这些矩阵被冻结,在所有层之间共享,并通过可训练向量和举行顺应,从而显著淘汰可训练参数的数目。在这种情况下,低秩矩阵和向量可以合并到原始权重矩阵中,不引入额外的延长。这种新颖的结构设计使得VeRA在淘汰存储开销的同时,还可以或许保持和LoRA相媲美的性能,为大型语言模型的优化和应用提供了更加灵活的解决方案。

                                         图                            8                            V                            e                            R                            A                            与                            L                            o                            R                            A                            的架构对比                                  图8 VeRA与LoRA的架构对比                     图8VeRA与LoRA的架构对比
实行证实,VeRA在GLUE和E2E基准测试中展现了其有效性,并在利用LLaMA2 7B模型时仅利用140万个参数的指令就取得了肯定的效果。这一方法为在大型语言模型微调中降低存储开销提供了一种新的思路,有望在实际应用中取得更为显著的效益。
11 S-LoRA

LoRA作为一种参数高效的大型语言模型微调方法,通常用于将根本模型顺应到多种任务中,从而形成了大量派生自根本模型的LoRA模型。由于多个采用LoRA形式训练的模型的底座模型都为同一个,因此可以参考批处置惩罚模式举行推理。
据此,研究者提出了一种S-LoRA(Serving thousands of con current LoRA adapters)方法,S-LoRA是一种专为可伸缩地服务多个LoRA适配器而设计的方法。
S-LoRA的设计理念是将所有适配器存储在主内存中,并在GPU内存中动态获取当前运行查询所需的适配器。为了高效利用GPU内存并淘汰碎片,S-LoRA引入了同一分页。同一分页采用同一的内存池来管理具有不同秩的动态适配器权重以及具有不同序列长度的KV缓存张量。别的,S-LoRA还采用了一种新颖的张量并行计谋和高度优化的自界说CUDA核心,用于异构批处置惩罚LoRA计算。这些特性使得S-LoRA可以或许在单个GPU或跨多个GPU上提供数千个LoRA适配器,而开销相对较小。
通过实行发现,S-LoRA的吞吐量进步了4倍多,而且提供的适配器数目增加了数个数目级。因此,S-LoRA在实现对许多任务特定微调模型的可伸缩服务方面取得了显著进展,并为大规模定制微调服务提供了潜伏的可能性。
12 总结

本文从配景、泉源、技术蹊径及性能等方面综述了11种在模型参数调优阶段举行的方法,其中前缀调优、提示调优和P-Tuning v2属于引入特定参数来淘汰算力消耗、提升训练速度;基于LoRA的各种方法的根本思想是添加新的旁路,对特定任务或特定数据举行微调。
开源社区Hugging Face将这11种方法归纳为高效参数调优方法(Parameter-Efficient Fine-Tuning,PEFT)。PEFT方法可以或许在不微调所有模型参数的情况下,有效地让预训练语言模型顺应各种下游应用。PEFT方法只微调了少量额外的模型参数,从而大幅降低了大模型训练和微调的计算与存储本钱。通过合理利用PEFT方法,不但能进步模型的训练服从,还能在特定任务上达到大型语言模型的效果。有关基于PEFT的微调实战案例,推荐您阅读刘聪、沈盛宇、李特丽和杜振东的新书《大型语言模型实战指南:应用实践与场景落地》。
   文章泉源:IT阅读排行榜
  
  本文摘编自《大型语言模型实战指南:应用实践与场景落地》,刘聪 沈盛宇 李特丽 杜振东 著,机械工业出书社出书,经出书方授权发布,转载请标明文章泉源。
                                          ▼                                  ▼                     ▼
                                         延伸阅读                                  延伸阅读                     延伸阅读

                                         《大型语言模型实战指南:应用实践与场景落地》                                  《大型语言模型实战指南:应用实践与场景落地》                     《大型语言模型实战指南:应用实践与场景落地》
                                         刘聪沈盛宇李特丽杜振东著                                  刘聪 沈盛宇 李特丽 杜振东 著                     刘聪沈盛宇李特丽杜振东著
                                         资深大模型技术专家撰写                                  资深大模型技术专家撰写                     资深大模型技术专家撰写
                                         零一万物、通义千问、面壁智能等                                  零一万物、通义千问、面壁智能等                     零一万物、通义千问、面壁智能等
                                         多个主流大模型的负责人力荐                                  多个主流大模型的负责人力荐                     多个主流大模型的负责人力荐
   获取方式:https://item.jd.com/14255849.html
  内容简介:
   这是一本体系梳理并深入剖析大模型的根本理论、算法实现、数据构造流程、模型微调方法、偏好对齐方法的著作,也是一本能手把手教你构建角色扮演、信息抽取、知识问答、AI Agent等各种强大的应用步调的著作。本书得到了零一万物、面壁智能、通义千问、百姓AI、澜舟科技等国内主流大模型团队的负责人的高度评价和大力推荐。
  13 直播预告

10月18日周五晚19:30 南京云问科技首席算法架构师刘聪、资深算法工程师沈盛宇、资深NLP技术专家和AI技术专家汪鹏、某头部大厂算法工程师谷净水四位高朋与您分享“如何让大模型应用真正落地:场景+解决方案+案例”
点击预约观看!直播间好礼不绝


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天空闲话

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表