VeRA——更高效的大型语言模型微调方法

news2024/11/13 9:35:09

人工智能咨询培训老师叶梓 转载标明出处

大模型在特定任务上的高效适应性训练面临着巨大的挑战,尤其是在需要针对大量用户或任务进行个性化调整时,存储和计算资源的需求急剧增加。为了解决这一问题,来自阿姆斯特丹大学QUVA实验室的研究者团队提出了一种名为Vector-based Random Matrix Adaptation(VeRA)的新方法,旨在显著减少在微调大模型时所需的可训练参数数量,同时保持模型性能。

VeRA方法的核心在于通过重新参数化权重矩阵来最小化微调过程中引入的可训练参数数量。在不增加额外推理时间成本的前提下,以比LoRA方法更少的可训练参数数量,取得不错的结果。LoRA 方法见前面文章:LoRA - 大型语言模型的低秩适应方法_lora 可否 a 初始化为 0 ,b 随机初始化?-CSDN博客。

论文链接:https://arxiv.org/pdf/2310.11454

方法

VeRA方法在现有LoRA方法的基础上进行改进,主要创新点在于对低秩矩阵的重新参数化。VeRA方法通过冻结一对随机初始化的矩阵,并在所有适应层之间共享,引入可训练的缩放向量以实现逐层适应。与LoRA类似,训练后的缩放向量和低秩矩阵可以合并到原始权重中,从而消除额外的推理延迟。

图1为LoRA和VeRA方法的示意图。左侧是LoRA方法,它通过训练低秩矩阵A和B来更新权重矩阵W。右侧是VeRA方法,其中这些矩阵是固定的、在所有层之间共享的,并通过可训练的向量d和b进行调整,从而大幅减少了可训练参数的数量。

LoRA方法通过微调两个低秩矩阵的乘积来适应大型语言模型面对新任务的挑战。对于预训练权重矩阵,权重更新ΔW被限制为低秩分解,如公式(1)所示: 其中,参数通过梯度下降法更新。这种近似允许模型在优化新的低秩矩阵A和B时保持原始权重不变。由于其秩减性质,A和B的大小远小于原始矩阵。A的形状为m×r,B的形状为r×n,其中r≪min(m,n)作为瓶颈维度。

相比之下,VeRA方法表达为(公式2): 在这个方案中,B和A是固定的、随机的,并且在各层之间共享,而缩放向量b和d是可训练的,分别由对角矩阵Λb​和Λd​正式表示。这种方法可以有效地缩放和禁用A和B的行和列,允许以最少数量的可训练参数进行逐层适应。需要注意的是,在这种设置中,不要求是低秩的。这是因为它们是静态的,不需要存储它们的值。相反,通过变化,可训练参数的数量线性增加。

表1展示了存储训练后的VeRA和LoRA权重所需的理论内存。假设LoRA和VeRA方法应用于每个transformer块的查询和键层。VeRA的可训练参数数量由决定,与LoRA的形成对比。具体而言对于最低秩(即r=1),VeRA需要的可训练参数大约是LoRA的一半。随着秩的增加,VeRA的参数计数每个增量增加​,与LoRA的​相比,节省显著。在处理极其深和宽的模型,如GPT-3时,这种参数效率变得特别重要。

基于这种效率,VeRA的主要优势在于其存储训练后的权重调整所需的最小内存占用。因为随机冻结的矩阵可以从随机数生成器(RNG)种子重新生成,这些矩阵不需要存储在内存中。这大大减少了内存需求,现在仅限于训练后的b和d向量和单个RNG种子所需的字节。与LoRA相比的内存效率见表1。

VeRA方法中随机矩阵和缩放向量的初始化策略如下:

  • 共享矩阵:本方法对冻结的低秩矩阵A和B采用Kaiming初始化。通过根据矩阵维度缩放值,确保A和B的矩阵乘积对所有秩保持一致的方差,消除了对每个秩微调学习率的需要。

  • 缩放向量:缩放向量b初始化为零,这与LoRA中矩阵B的初始化相一致,并确保在第一次前向传递期间权重矩阵不受影响。缩放向量d在所有元素上用单一非零值初始化,从而引入了一个新的超参数,可以为更好的性能进行调整。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

加助理微信提供直播链接:amliy007,29.9元即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory,关注享粉丝福利,限时免费CSDN听直播后的录播讲解。
 

LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

实验

研究者们首先在GLUE基准测试上评估了VeRA方法。GLUE基准测试是一个广泛用于评估自然语言理解能力的数据集集合。实验使用了RoBERTa模型的两个变体:RoBERTabase和RoBERTalarge。对于RoBERTabase,使用了1024的秩,而对于RoBERTalarge,使用了256的秩。共享矩阵使用PyTorch实现的均匀版本的Kaiming初始化,而d向量的初始值设为0.1。

实验设置与Hu等人(2022年)的工作大体一致,将VeRA方法应用于每个自注意力模块的查询和值投影矩阵,并完全训练分类头。与Hu等人(2022年)使用额外的超参数α来调整适应层的梯度不同,研究者们为分类头和适应层引入了不同的学习率。通过超参数调整确定了学习率和训练周期的数量。RoBERTabase的批量大小设置为64,RoBERTalarge的批量大小设置为32,最大序列长度分别为512和128。

由于时间和预算的限制,研究者们省略了耗时的MNLI和QQP任务,因此没有使用MNLI技巧来处理MRPC、RTE和STS-B任务。与Hu等人(2022年)一致,报告了归因于微调层的可训练参数数量,明确排除了以标准方式训练的分类头。进行了5次不同随机种子的运行,记录了每次运行的最佳周期结果,并报告了这些结果的中位数。

表2显示了VeRA在两个模型上与LoRA的竞争性能,但使用的参数数量却少了一个数量级。

研究者们在E2E基准测试上进行了实验,这是另一个自然语言处理的基准测试。实验遵循了Hu等人(2022年)的实验设置,并对GPT-2的Medium和Large模型进行了微调。对于LoRA,使用了Hu等人(2022年)提供的实现和超参数集,而对于VeRA,调整了秩和学习率,两者都经过了调整。所有使用的超参数都可以在附录A中找到。

表3显示了VeRA在GPT2 Medium和Large模型上的性能,与LoRA相比,VeRA在可训练参数数量上少了3倍和4倍。

指令调整是微调语言模型以更有效地遵循特定指令的过程。研究者们展示了VeRA在使Llama和Llama2模型遵循指令方面的有效性,对于7B和13B变体,分别仅使用了1.6M和2.4M可训练参数,相比之下,使用LoRA和64秩时提出了159.9M和250.3M可训练参数。

表4显示了使用VeRA和LoRA方法微调的模型在MT-Bench上的平均得分,以及基础Llama 13B模型。尽管可训练参数数量减少了100倍,VeRA在指令遵循任务上的性能与LoRA相当。

为了在图像分类任务上评估VeRA方法,研究者们对CIFAR100、Food101、Flowers102和RESISC45数据集上的Vision Transformer(ViT)进行了微调。对于每个数据集,研究者们在每个类别的10个样本上进行训练,并在完整的测试集上进行评估。使用了在ImageNet-21k数据集上预训练的ViT模型的权重。

表5显示了在不同图像分类数据集上使用VeRA和LoRA微调的ViT模型的性能。VeRA在较小的模型上接近LoRA的性能,在较大的模型上,即使使用的可训练参数数量少了10倍以上,也超过了LoRA。

最后研究者们使用RoBERTalarge模型在GLUE基准测试的RTE任务上,研究了LoRA和VeRA方法在参数可扩展性方面的权衡。对于VeRA,使用了一组秩{1, 4, 16, 64, 256, 1024},对于LoRA,使用了一组秩{1, 2, 4, 8, 16, 32, 64},并观察了可训练参数数量与准确性之间的权衡。每种配置都重复了五次,以不同的随机种子进行,报告了结果的中位数。

图2显示了在RTE任务上,随着秩的变化,LoRA和VeRA方法的性能。结果表明,VeRA方法在参数效率上显著更高。值得注意的是,当较高秩的VeRA具有与标准LoRA相同数量的参数时,它的性能比LoRA高出4个百分点。

研究者们还进行了消融研究,以检查VeRA方法中各个组成部分的影响。所有后续实验都集中在MRPC和RTE任务上,并使用了RoBERTalarge模型。研究者们坚持使用先前实验中使用的超参数,只为每次测试修改正在研究的组件。每个实验都使用5个随机种子运行,并报告了结果的平均值和标准差。

表6显示了消融研究的结果,研究了d和b缩放向量的影响以及不同的初始化策略。研究者们发现,省略任何一个缩放向量都会损害性能。仅d配置的性能略好于仅b配置。这种性能差异突显了d缩放向量的高表达性。

图3提供了在RTE任务上微调后d向量变化幅度的可视化。由于低秩冻结矩阵对每个层都保持相同,我们可以直接比较d向量在各层的长度,以说明其相对适应性。总之查询矩阵的适应性最大,这表明在这些层进行微调的需求或容易程度更大。另外与之前高效适应方法的发现类似,研究者们也观察到较后层的适应性比前层更高。

表7显示了在RTE、MRPC、CoLA和STS-B任务上使用共享和唯一随机矩阵的结果。结果显示,使用唯一矩阵时,MRPC和CoLA任务的平均性能略有提高,而RTE和STS-B任务的性能则与共享矩阵时相同。

这些实验结果表明,VeRA方法在保持性能的同时,显著减少了所需的可训练参数数量,这使得它在资源受限的环境中特别有用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2118239.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sse简单介绍

sse fetch-event-source插件的使用https://blog.csdn.net/weixin_42400404/article/details/141896061?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22141896061%22%2C%22source%22%3A%22weixin_42400404%22%7D 严格意义上&…

【漏洞复现】泛微OA E-Cology XmlRpcServlet 任意文件读取漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

使用docker打包项目的流程(小白可懂)

🎉 前言 这并不完全是一个正经的教程,而是根据我的学习经验总结出来的一个模版,大家可以尝试一下,权当了解一下项目打包的流程。 🎉 克隆演示项目 我在我的GitHub仓库里已经上传了演示项目,大家可以使用…

回归预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)多输入单输出

回归预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)多输入单输出 目录 回归预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)多输入单输出预测效果基本介绍模型介绍PSO模型LSTM模型PSO-LSTM模型程序设计参考资料致谢预测效果 Matlab实现PSO-LSTM多变量回归…

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:C 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C的类型转换 📒1. C语言…

Qt多语言/多语种详细开发教程

Qt作为跨平台的开发工具,早已应用到各行各业的软件开发中。 今天讲讲,Qt开发的正序怎么做多语言开发。就是说,你设置中文,就中文显示;设置英语就英文显示,设置繁体就繁体显示,设置发育就显示法语…

【Python知识宝库】使用Python进行网络请求:requests库入门

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、requests库简介二、安装requests库三、发送GET请求四、发送POST请求五、处理响应内容1. 获取状态码2. 获取文…

使用 Python Guardrails 提高 LLM 输出的可靠性

利用验证函数防止您的 LLM 输出崩溃 合理使用IF可以使您的LLM输出更可靠 虽然在创造力和解决复杂任务方面表现出色,但LLM往往难以遵循严格的规则,并且经常提供略微超出设定边界的答案。在构建应用程序时,这一缺陷可能导致失败和荒谬的答案&a…

智能巡检机器人助力新型信息基础设施建设与发展

为深入贯彻落实党的二十大和二十届二中、三中全会精神,推动新型信息基础设施协调发展,近日,工业和信息化部等十一部门关于推动新型信息基础设施协调发展有关事项。 新型信息基础设施是以信息网络为基础,以新一代信息通信技术创新为…

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨…

大数据-126 - Flink State 03篇 状态原理和原理剖析:状态存储 Part1

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知…

海外盲盒系统开发搭建,助力盲盒出海!

随着盲盒全球化发展,盲盒出口海外已经成为了大多数盲盒企业的选择。在互联网时代中,盲盒出口主要通过跨境电商和独立海外盲盒系统。而在目前市场发展趋势中,对于企业来说,一个独立的盲盒系统至关重要。海外盲盒APP可以帮助盲盒企业…

【ACM出版-高录用EI稳检索!九大高校联合举办】2024年人工智能、数字媒体技术与交互设计国际学术会议(ICADI2024)

​【ACM出版,EI稳定检索,九大高校联合举办, IEEE Fellow支持】 2024年人工智能、数字媒体技术与交互设计国际学术会议(ICADI2024) 2024 International Conference on artificial intelligence, digital media technology and …

期权开户攻略:期权开户主要的流程是什么?

今天期权懂带你了解期权开户攻略:期权开户主要的流程是什么?交易期权可以为投资者提供多种灵活性和机会,但同时也伴随风险。因此,了解期权的基本概念和策略,结合自身的风险承受能力,才能更好地进行投资决策…

解决el-date-picker切换类型type时错位

vue代码如下 样式效果如下 切换日期类型时,立马点日期会出现错位,检查发现是日期的展开面板并没有插入到body中导致的错位 解决方法 给el-date-picker加上唯一key值就可以

智慧园区,为园区多场景提供智能化赋能

智慧园区解决方案旨在通过现代信息技术手段,为园区空间多场景提供智能化赋能,以提升园区的运营效率、管理水平和服务质量。以下是对智慧园区解决方案的详细阐述: 一、智慧园区解决方案的核心目标 智慧园区解决方案的核心目标是实现园区的“…

ruoyi若伊项目(vue前后端分离)下载搭建

介绍 💡 RuoYi-Vue ​ RuoYi-Vue 是一款开源的后台管理系统,是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Spring Security、MyBatis、Jwt、Vue),内置模块如:部门管理、…

Gemma 2大模型的训练范式解析

咱们聊聊大型语言模型(LLMs)的训练范式吧,这可是个大话题。从最早的GPT模型到现在的复杂开放权重LLMs,这一路走来,变化可真不少。记得最开始,LLMs的训练就只关注预训练,但现在,这事儿…

C++设计模式——Strategy策略模式

一,策略模式简介 策略模式是一种行为型设计模式,策略模式在软件开发场景中定义了一系列的算法,并将每个算法单独封装在可替换的对象中,使应用程序在运行时可以根据具体的上下文来动态地选择和切换算法,同时保持原有的…