【自然语言处理】【大模型】VeRA:可调参数比LoRA小10倍的低秩微调方法

2023-12-03 19:28

本文主要是介绍【自然语言处理】【大模型】VeRA:可调参数比LoRA小10倍的低秩微调方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

VeRA:可调参数比LoRA小10倍的低秩微调方法
《VeRA:Vector-based Random Matrix Adaptation》

论文地址:https://arxiv.org/pdf/2310.11454.pdf

相关博客
【自然语言处理】【大模型】VeRA:可调参数比LoRA小10倍的低秩微调方法
【自然语言处理】【大模型】MPT模型结构源码解析(单机版)
【自然语言处理】【大模型】ChatGLM-6B模型结构代码解析(单机版)
【自然语言处理】【大模型】BLOOM模型结构源码解析(单机版)
【自然语言处理】【大模型】极低资源微调大模型方法LoRA以及BLOOM-LORA实现代码
【自然语言处理】【大模型】DeepMind的大模型Gopher
【自然语言处理】【大模型】Chinchilla:训练计算利用率最优的大语言模型
【自然语言处理】【大模型】大语言模型BLOOM推理工具测试
【自然语言处理】【大模型】GLM-130B:一个开源双语预训练语言模型

一、简介

​ LoRA是降低微调LLM时降低可训练参数的一种方法,但是将其应用在更大的模型仍然面临着挑战。本文提出了了一种基于向量的随机矩阵适配(VeRA,Vector-based Random Matrix Adaptation)。与LoRA相比,其可以将训练参数的数量减少10倍,但保持相同的性能

二、相关工作

1. LoRA

​ LoRA为LLM微调带来的计算挑战提供了一种新颖的解决方案。该方法使用低秩矩阵来近似微调过程中的权重变化,从而有效地减低训练所需的参数量。其还可以使用量化模型权重来进一步降低要求。与基于adapter的微调方法相比,LoRA在部署时不会产生额外的推理时间成本,因此训练矩阵可以和权重合并。

​ AdaLoRA扩展了LoRA方法,在微调过程中引入了低秩矩阵的动态调整。核心思想是通过基于重要性度量来选择性的修剪矩阵中不太重要的分量,从而优化参数预算的分配。

2. 现有方法的参数效率

​ 虽然LoRA这样的方法在微调性能方法展现出了显著的改善,但是仍然需要大量的可训练参数。基于Aghajanyan等人的研究,内在维度的上限比这种方法中通常使用的秩要小的多。因此,参数量可以进一步减少。虽然AdaLoRA通过动态分配参数,从而进一步减少了可微调参数。但是,我们认为存在另一种可以显著减少可训练参数,且效果不会下降的方法。

3. 随机模型和投影

​ 使用随机矩阵和投影来提高模型效率的概念已经得到了多方面研究的支持。Frankle&Carbin发现随机初始化的神经网络中包含训练时能够达到高性能的子网络。此外,Ramanujan等人了存在的子网络即使没有训练也能够取得令人印象深刻的结果。Aghajanyan等人展示了仅训练少量参数,随机投影会完整空间,能够实现全参数模型效果的90%。其他的一些工作也表明,冻结的随机初始化模型加上小部分的微调,表现出奇的好。

三、方法

在这里插入图片描述

​ VeRA的核心创新是低秩矩阵的重参数化。具体来说,冻结一对随机初始化的矩阵,这些矩阵在所有适配层之间共享,然后引入可以逐层自适应的可训练缩放向量。如上图1所示,类似于LoRA,训练的缩放向量和低秩矩阵可以合并至原始权重中,从而消除额外的推理延迟。

1. 方法介绍

​ LoRA微调两个低秩矩阵的乘积来适应LLM。正式来说,对于预训练权重矩阵 W 0 ∈ R m × n W_0\in\mathbb{R}^{m\times n} W0Rm×n,权重更新矩阵被约束为低秩分解,即
h = W 0 x + Δ W x = W 0 x + B A ‾ X (1) h=W_0x+\Delta Wx=W_0x+\underline{BA}X\tag{1} h=W0x+ΔWx=W0x+BAX(1)
其中带有下划线的参数通过梯度更新。这种近似可以使得模型保持原始权重 W 0 W_0 W0冻结,同时仅优化低秩矩阵 A A A B B B。它们的尺寸要远比原始矩阵小。 A A A的形状是 m × r m\times r m×r B B B的形状是 r × n r\times n r×n,而 r ≪ min ⁡ ( m , n ) r\ll\min(m,n) rmin(m,n)。相比, VeRA \text{VeRA} VeRA
h = W 0 + Δ W x = W 0 x + Λ b ‾ B Λ d ‾ A x (2) h=W_0+\Delta Wx=W_0x+\underline{\Lambda_b}B\underline{\Lambda_d}Ax\tag{2} h=W0+ΔWx=W0x+ΛbBΛdAx(2)
在本方法中, B B B A A A是冻结、随机且跨层共享的,而缩放向量 b b b d d d是可训练的,形式上表达为对角矩阵 Λ b \Lambda_b Λb Λ d \Lambda_d Λd。在这种情况下, B ∈ R m × r B\in\mathbb{R}^{m\times r} BRm×r A ∈ R r × n A\in\mathbb{R}^{r\times n} ARr×n不需要是低秩的。这是因为这两个矩阵是静态的,并且不需要存在这些值。相反,由于 d ∈ R 1 × r d\in\mathbb{R}^{1\times r} dR1×r,改变 r r r仅会线性增加可训练参数的数量。

2. 参数计数

在这里插入图片描述

​ 使用 L t u n e d L_{tuned} Ltuned表示微调层的数量, d m o d e l d_{model} dmodel表示这些层的维度。VeRA的可训练参数数量为
∣ Θ ∣ = L t u n e d × ( d m o d e l + r ) (3) |\Theta|=L_{tuned}\times(d_{model}+r)\tag{3} ∣Θ∣=Ltuned×(dmodel+r)(3)
而LoRA的可微调参数为
∣ Θ ∣ = 2 × L t u n e d × d m o d e l × r (4) |\Theta|=2\times L_{tuned}\times d_{model}\times r\tag{4} ∣Θ∣=2×Ltuned×dmodel×r(4)
具体来说,对于最低的秩( r = 1 r=1 r=1),VeRA大约需要LoRA一半的可训练参数。此外,随着秩的增加,VeRA的可训练参数一次仅增加 L t u n e d L_{tuned} Ltuned,而LoRA则增加 2 L t u n e d d m o d e l 2L_{tuned}d_{model} 2Ltuneddmodel。对于极大的模型,这种参数效率则极为显著,例如GPT-3有96个注意力层且hidden size为12288。

​ VeRAA的主要优势是存储训练的权重占用非常小的存储空间。因此随机冻结矩阵可以从随机数生成器种子中重新生成,所以这些矩阵不需要存储。这大大减少了内存的需求,现有的内存需要仅限于训练向量 b b b d d d以及单个随机数种子所需要的字节。与LoRA相比的内存效率如表1所示。

3. 初始化策略

共享矩阵。利用Kaiming初始化方法来初始化冻结低秩矩阵 A A A B B B。通过基于矩阵维度的缩放至,其能确保 A A A B B B的矩阵乘积对所有秩保存一致的方差,从而消除对每个秩的学习率进行微调的需求。

缩放向量。缩放向量 b b b被初始化为0,这与LoRA中矩阵 B B B的初始化是一致的,能确保权重矩阵在第一次前向传播时不受影响。缩放向量 d d d的所有元素使用单个非零值进行初始化,从而引入了一个新的超参数。调整该超参数可以带来更好的效果。

​ 图1展示了VeRA中低秩矩阵和缩放向量的初始化示例。具体来说看,使用正态分布来初始化低秩矩阵,并使用1来初始化 d d d向量。

四、实验

​ baselines包括:全参微调、Bitfit(仅微调bias向量,其他参数保存固定)、Adapter tuning、LoRA。

1. GLUE Benchmark

在这里插入图片描述

2. E2E Benchmark

在这里插入图片描述

3. LLaMA-2-7B指令遵循

在这里插入图片描述

4. 可训练参数数量的影响

在这里插入图片描述

这篇关于【自然语言处理】【大模型】VeRA:可调参数比LoRA小10倍的低秩微调方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/450594

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了