[paper note]LoRA+: 原理分析

2024-04-09 18:12
文章标签 分析 lora note 原理 paper

本文主要是介绍[paper note]LoRA+: 原理分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

论文信息

论文标题:LoRA+: Efficient Low Rank Adaptation of Large Models

发表时间:2024年2月

论文内容

摘要

在本文中,我们表明,最初在论文《LoRA: Low-Rank Adaptation of Large Language Models》中引入的低秩适应(LoRA)会导致大宽度(嵌入维度)模型的次优微调。这是因为 LoRA 中的适配器矩阵 A 和 B 以相同的学习率更新。使用大宽度网络的缩放参数,我们证明对 A 和 B 使用相同的学习率并不能实现有效的特征学习。然后我们证明,只需通过精心选择的固定比率为 LoRA 适配器矩阵 A 和 B 设置不同的学习率,即可纠正 LoRA 的这种次优性。我们将此算法称为 LoRA+。在我们广泛的实验中,LoRA+ 提高了性能(1% ‑ 2% 的改进)和微调速度(高达 ~ 2 倍加速),而计算成本与 LoRA 相同。

主要结论

定理 1: (高效 LoRA(非正式))。假设权重矩阵 A 和 B 使用 Adam 进行训练,学习率分别为 η A η_A ηA η B η_B ηB。那么,不可能达到 η A = η B η_A = η_B ηA=ηB 的效率。然而,LoRA 微调在$η_A = θ(n^{-1} ) $ 和 η B = θ ( 1 ) η_B = θ(1) ηB=θ(1)时非常有效。

定理1的结果表明,只有一对满足 η B η A = θ ( n ) \frac{η_B}{η_A} = θ(n) ηAηB=θ(n)的学习率才能实现效率。在实践中,这转化为设置 η B ≫ η A η_B ≫ η_A ηBηA,但在调整学习率时并不能提供固定的精确比率 η B η A \frac{η_B}{η_A} ηAηB (“θ”中的常数通常很难处理),除非我们同时调整 η B η_B ηB η A η_A ηA ,即从计算角度来看效率不高,因为它变成了 2D 调整问题。因此,很自然地设置一个固定的比率 η B η A \frac{η_B}{η_A} ηAηB并仅调整 η A η_A ηA (或 η B η_B ηB),这将有效地将调整过程减少为一维网格搜索,实现与A、B学习率相同的标准 LoRA 的计算成本相当。我们将这种方法称为 LoRA+。

LoRA+ :设置 LoRA 模块 A、B 的学习率,使得 η B = λ η A η_B = λη_A ηB=ληA,其中 λ > 1 固定并调整 η A η_A ηA

在 LoRA+ 中,比率 λ 的选择至关重要。接近 1 的比率将类似标准 LoRA,而当 $n ≫ r $ 时,选择 λ ≫ 1 λ ≫ 1 λ1 会改善结果。通过广泛的实证评估,我们首先验证我们的理论结果,并表明最优对 ( η A , η B ) (η_A, η_B) (ηA,ηB) (就测试精度而言)通常满足 η B ≫ η A η_B ≫ η_A ηBηA。然后,我们研究了 LoRA+ 的最佳比率 λ,并提出了一个默认比率,根据经验发现,与标准 LoRA 相比,该比率通常可以提高性能。

LoRA+中如何设置比率 λ = η B η A λ = \frac{η_B}{η_A} λ=ηAηB

最佳比率 λ 取决于架构和通过“θ”中的常数进行的微调任务(定理1)。这是这些渐近结果的局限性,因为它们没有提供有关任务和神经架构如何影响常数的任何见解。为了克服这一限制,我们采用经验方法来估计 λ 的合理值。

在这里插入图片描述

在上图中,显示了不同对(模型、任务)的测试精度方面前 4 次运行的 η B η A \frac{η_B}{η_A} ηAηB比率的分布。最佳比率对模型和任务敏感,但中位数对数比率徘徊在 4 左右。我们估计,通常设置一个比率 λ = η B η A ≈ 2 λ = \frac{η_B}{η_A} ≈ 2 λ=ηAηB2 可以提高性能。这可以通过设置 η A = η η_A =η ηA=η η B = 2 4 η η_B = 2^4η ηB=24η 并调整超参数 η 来实现。

为了检查该方法的有效性,我们在 MNLI 任务上对 Roberta‑base 进行了 3 个时期的微调,使用两种不同的设置:

(LoRA+) η B = 2 4 η A η_B = 2^4η_A ηB=24ηA和(标准) η B = η A η_B = η_A ηB=ηA。在这两种设置中,我们通过网格搜索调整 η A η_A ηA

结果如下图所示
在这里插入图片描述

LoRA+( λ = 2 4 λ = 2^4 λ=24)显示出最终测试精度和训练速度的显着提高。使用 LoRA+,仅用 1.6 个 epoch,就达到了标准设置3个 epoch 后获得的最终精度。

从业者指南:使用LoRA+进行微调

将 LoRA+ 集成到任何微调代码中都很简单,只需从lora plus中提供的代码导入自定义训练器 LoraPlusTrainer,即可使用单行代码来实现。在Trainer中,λ 的值默认设置为 $ 2^{ 4}$ ,与 LoRA 相比,它可以显著提高性能。然而,请注意,λ 的最佳值取决于任务和模型:如果预训练模型的任务相对困难,则 λ 的选择将至关重要,因为需要有效的训练来使模型与微调任务保持一致。相反,当预训练模型的微调任务相对容易时,λ 的影响不太明显。根据经验,设置 λ = 2 4 λ = 2^4 λ=24是一个很好的起点。

结论和局限性

采用缩放参数,我们表明目前在实践中使用的 LoRA 微调效率不高。我们提出了一种方法 LoRA+,通过为 LoRA 适配器矩阵设置不同的学习率来解决这个问题。我们的分析得到了广泛的实证结果的支持,证实了 LoRA+ 在训练速度和性能方面的优势。这些好处对于“硬”任务更为显着,例如 Roberta/GPT2 的 MNLI(例如与 SST2 相比)和 LLama‑7b 的 MMLU(例如与 MNLI 相比)。然而,如图 7 (Figure 7) 所示,对最佳比率ηB/ηA的更精细估计应考虑任务和模型相关性,而我们在本文中的分析缺乏此维度。

这篇关于[paper note]LoRA+: 原理分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

MOLE 2.5 分析分子通道和孔隙

软件介绍 生物大分子通道和孔隙在生物学中发挥着重要作用,例如在分子识别和酶底物特异性方面。 我们介绍了一种名为 MOLE 2.5 的高级软件工具,该工具旨在分析分子通道和孔隙。 与其他可用软件工具的基准测试表明,MOLE 2.5 相比更快、更强大、功能更丰富。作为一项新功能,MOLE 2.5 可以估算已识别通道的物理化学性质。 软件下载 https://pan.quark.cn/s/57

衡石分析平台使用手册-单机安装及启动

单机安装及启动​ 本文讲述如何在单机环境下进行 HENGSHI SENSE 安装的操作过程。 在安装前请确认网络环境,如果是隔离环境,无法连接互联网时,请先按照 离线环境安装依赖的指导进行依赖包的安装,然后按照本文的指导继续操作。如果网络环境可以连接互联网,请直接按照本文的指导进行安装。 准备工作​ 请参考安装环境文档准备安装环境。 配置用户与安装目录。 在操作前请检查您是否有 sud

hdu4407容斥原理

题意: 有一个元素为 1~n 的数列{An},有2种操作(1000次): 1、求某段区间 [a,b] 中与 p 互质的数的和。 2、将数列中某个位置元素的值改变。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu

hdu4059容斥原理

求1-n中与n互质的数的4次方之和 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWrit

线性因子模型 - 独立分量分析(ICA)篇

序言 线性因子模型是数据分析与机器学习中的一类重要模型,它们通过引入潜变量( latent variables \text{latent variables} latent variables)来更好地表征数据。其中,独立分量分析( ICA \text{ICA} ICA)作为线性因子模型的一种,以其独特的视角和广泛的应用领域而备受关注。 ICA \text{ICA} ICA旨在将观察到的复杂信号

【软考】希尔排序算法分析

目录 1. c代码2. 运行截图3. 运行解析 1. c代码 #include <stdio.h>#include <stdlib.h> void shellSort(int data[], int n){// 划分的数组,例如8个数则为[4, 2, 1]int *delta;int k;// i控制delta的轮次int i;// 临时变量,换值int temp;in