论文阅读_模型结构_LoRA

name_en: LoRA: Low-Rank Adaptation of Large Language Models
name_ch: LORA:大语言模型的低阶自适应
paper_addr: http://arxiv.org/abs/2106.09685
date_read: 2023-08-17
date_publish: 2021-10-16
tags: [‘深度学习’,‘大模型’]
author: Edward J. Hu
citation: 657
code: https://github.com/microsoft/LoRA pytorch,风格简捷

1 读后感

LoRA 是 Low-Rank 的缩写,它是一种大模型微调技术。一开始用于优化自然语言模型,但是后来自然语言模型后来选择了 Prompt 的道路;而该技术在图像领域得到了广泛的应用,比如 Stable Diffusion 的一众 LoRA 模型,从背景风格到人物形像,不用精调 2-8 G 的基础模型,通过训练 只有几十到几百兆 LoRA 模型,就可以实现建模。

它针对的问题是:当模型大到一定程度,比如 GPT-3 有 175B 参数,精调变得费时而昂贵。其解决方法是:它修改了fine-tune过程,提出低阶自适应技术,冻结了预训练的模型权重,并将可训练的秩分解矩阵注入到 Transformer 架构的每一层中,这大大减少了下游任务中可训练参数的数量。其的效果是:与使用 Adam 微调的 GPT-3 175B 相比,LoRA 可以将可训练参数数量减少 10,000 倍,GPU 内存需求减少 3 倍。且推理时没有额外延迟。

2 介绍

2.1 感性理解

先用图像建模举个例子,比如使用 LAION-5B 数据集训练底模,它包含 58.5 亿个 图像-文本对,如果我们在其基础上用 200 张图片精调模型,可以想见,最终模型的大多数参数与底模差异不大;如果也使用与原模型一样大的空间存储是很浪费的,需要保留的只是当前风格和通用风格的差异,信息量并不大。这种情况下,使用 LoRA模型,相当于对两个模型的差异做降维后再存储。这种情况下,相对于5G的底模,LoRA 模型可能只有10-20M。

2.2 LoRA 优势

之前的优化 fine-tune 的方法主要有:只精调部分参数,训练额外层,调节激活函数等,这些方法精调效果往往不是很好,有的还会引起推理延迟。LoRA优势如下:

  • 对于一个大模型,可针对不同下游任务训练多个LoRA小模型,方便存储和切换。
  • 训练效率更高,硬件需求更低,只需要优化注入的小得多的低秩矩阵。
  • 与完全微调的模型相比,不会引入推理延迟。
  • LoRA 与许多现有方法正交,可与其中许多方法相结合。

(既不复杂,使用时也没有太多限制条件)

3 背景知识

3.1 矩阵的秩 Rank

矩阵的秩是指矩阵中线性独立的行向量或列向量的最大数量,即矩阵中的最大线性无关行(或列)的数量。对于一个 m 行 n 列的矩阵,它的秩记为r,r 的取值范围是 0 到 min(m, n)。当 r = 0 时,表示该矩阵是一个零矩阵,所有元素都为零。

3.2 全秩 Full-Rank

当 r = min(m, n) 时,表示矩阵的所有行(或列)都是线性无关的,即全秩(满秩,full-rank)矩阵。

3.3 低秩 Low-Rank

低秩表示(Low-Rank Representation,简称LRR)的基本思想是将高维数据表示为低维子空间中的低秩表示。假设数据中的信息可以由较少的关键特征表示。通过将数据表示为低秩矩阵,LRR可以实现降维和去噪的效果,从而提取出数据中的重要特征。

4 方法

4.1 低秩参数矩阵

之前论文《Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning》证明,预训练的语言模型具有较低的“内在维度”(实际不需要那么大维度),即使随机投影到较小的子空间,仍可有效学习。我们假设权重的更新 fine-tune 也具有较低的“内在维度”。

将预训练的权重矩阵定义为W0,其维度为 d×k,通过用低秩分解 W0 + ΔW = W0 + BA 用后者来约束其更新,其中 B 为 d×r 维,A 为 r×k 维,并且秩 r << min(d, k)。训练期间,W0 被冻结,不更新,而 A 和 B 包含可训练参数。W0 和 ΔW = BA 都与相同的输入相乘,并且它们各自的输出向量按维度求和。

h = W 0 x + ∆ W x = W 0 x + B A x h = W_0x + ∆W x = W_0x + BAx h=W0x+Wx=W0x+BAx

对 A 使用随机高斯初始化,对 B 使用零初始化,因此 ΔW = BA 在训练开始时为零。然后按 α/r 缩放 ΔW x ,其中 α 是 r 中的常数,调整 α 与调整学习率大致相同。

这里的 r 需要设置,如果 r 与 d 维度相同,即降维时,理论上其效果和 fine-tune 一致,而具体 r 如何设置详见对比实验部分。

4.2 将 LORA 应用于 Transformer 框架

从原理来看,LoRA 可用于任何神经网络中。在 Transformer 架构中,自注意力模块中有四个权重矩阵(Wq、Wk、Wv、Wo),MLP 模块中有两个。研究限制为仅调整下游任务的注意力权重,并冻结 MLP 模块。后面的对比实验针对这四个矩阵做了 LoRA 测试。

这样做最显著的好处是减少内存和存储量。对于使用 Adam 训练的大型 Transformer,如果使用 r << d 的模型,可以将 VRAM 使用量减少多达 2/3。在 GPT-3 175B 上,可将训练期间的 VRAM 消耗从 1.2TB 减少到 350GB。当 r = 4 并且仅调整查询和值投影矩阵时,检查点大小减少了大约 10,000倍(从 350GB 到 35MB)。

RoLA 还允许支持定制多个模型,这些模型可在预训练权重存储在 VRAM 中的机器上动态地换入换出。与完全微调相比,由于不需要计算绝大多数参数的梯度,GPT-3 175B 训练期间的速度提高了 25%。

5 实验

实验部分分别对 RoBERTa,GPT-2,GPT-3 做了针对下游任务的对比实验,从实验部分可以看到,LoRA模型参数非常少,且效果往往不低于fine-tune,有时效果更好。

6 对比实验

6.1 在 Transformer 中的哪些权重矩阵上应用 LORA

文中实验限定了参数整体大小,针对不同的 LoRA 设置,对比模型性能。这里只考虑了自注意力中的权重矩阵,如果使用 1 种类型的注意力权重,则 r = 8;如果使用 2 种类型,则对应于 r = 4,结果如表 5 所示:

实验证明 Wq,Wv 组合可提供最佳性能,4 阶也能捕获足够的 ΔW 信息,因此适应更多的权重矩阵比适应具有更大阶数的单一类型权重效果更好。

6.2 最佳 rank 的大小是多少

实验对比了不同秩大小的模型效果,可以看到,r=1 时 Wq,Wv 就可以满足一定效果,而单独调节 Wq 需要更大的 r。这说明 ΔW 只需要很低的秩(另外两个实验也验证了数据的低秩性质)。

6.3 ΔW 与 W 对比

观察 ∆W 与 W 的相关性,具体方法是将 W 映射到 ∆W 的 r 维子空间中,然后用 Frobenius 范数,对比其一致性。

实验得出结论:与随机矩阵相比,ΔW 与 W 具有更强的相关性;ΔW 不重复 W 的顶部奇异方向,而是仅放大 W 中未强调的方向;放大系数相当大:r = 4 时为 21.5 ≈ 6.91/0.32。这表明低秩适应矩阵可能会放大特定下游任务的重要特征,这些特征是在一般预训练模型中学习但未强调的

7 实用技巧

7.1 LoRA 与 基础模型

根据 LoRA 原理可知,LoRA保存的是精调与基础模型(底模)差异的降维数据,所以 LoRA 与训练它的底模强相关,一般 LoRA 描述中也有对其底模的说明,一般情况下,至少二者的 2D/现实风格需要一致。
当然也有像 “Detail Tweaker LoRA” 这样不挑底模的 LoRA。

7.2 LoRA 权重

在引用 LoRA 时,可在 Prompt 中指定 LoRA 权重,一般默认为 1,虽然 SD 是基于 LDM 技术,理论上,其特征是连续的,可微调的,但是将 LoRA 设得太大,结果往往也是反常识的。

7.3 多个 LoRA 叠加

操作时可以叠加使用多个 LoRA。实际使用时,尽量叠加不同类型的 LoRA,比如一个增加画面细节,另一个修改背景风格,它们调整的往往不是一组权重,问题不大;但是不建议叠加同一类型的 LoRA,在同一组权重上反复计算,效果往往不可控。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用深度蛋白质序列嵌入方法通过 Siamese neural network 对 virus-host PPIs 进行精准预测【Patterns,2022】

研究背景&#xff1a; 病毒感染可以导致多种组织特异性损伤&#xff0c;所以 virus-host PPIs 的预测有助于新的治疗方法的研究&#xff1b;目前已有的一些 virus-host PPIs 鉴定或预测方法效果有限&#xff08;传统实验方法费时费力、计算方法要么基于蛋白结构或基因&#xff…

深眸科技创新赋能视觉应用产品,以AI+机器视觉解决行业应用难题

随着工业4.0时代的加速到来&#xff0c;我国工业领域对于机器视觉技术引导的工业自动化和智能化需求持续上涨&#xff0c;国内机器视觉行业进入快速发展黄金期&#xff0c;但需求广泛出现同时也对机器视觉产品的检测能力提出了更高的要求。 传统机器视觉由人工分析图像特征&am…

TCP协议的重点知识点

TCP协议的重点知识点 TCP(传输控制协议)是一种面向连接、可靠的数据传输协议,工作在传输层,提供可靠的字节流服务。它是互联网协议栈中最重要、最复杂的协议之一,也是面试中常被问到的知识点。本文将详细介绍TCP协议的各个重要概念。 TCP基本特性 TCP主要具有以下基本特性: …

XML—DTD、 Schema

目录 DTD是什么&#xff1f; DTD有什么用途&#xff1f; DTD与XML有什么联系&#xff1f; DTD原理图 外部DTD DTD文件book.dtd: 使用外部DTD文件的XML文件 PCDATA XML 文档构建模块 一、元素 1、元素声明 ①、有元素&#xff1a; ②、空元素&#xff1a; ③、ANY…

JVM 判定对象是否死亡的两种方式

引用计数法&#xff1a;&#xff08;脑门刻字法&#xff09;和 可达性分析 引用计数算法 引用计数器的算法是这样的&#xff1a;在对象中添加一个引用计数器&#xff0c;每当有一个地方引用它时&#xff0c;计数器值就加一&#xff1b;当引用失效时&#xff0c;计数器值就减一…

Linux 桌面上的 Firefox 面临着大问题

导读毫无疑问&#xff0c;无论是在桌面、笔记本电脑还是移动设备上&#xff0c;浏览器都是任何操作系统中最重要的应用之一。 如果没有一个功能强大、快速且稳定的浏览器&#xff0c;操作系统的实用性将大幅度降低&#xff0c;以至于我相当确定&#xff0c;如果一个操作系统没有…

将Spring boot 项目部署到tomcat服务艰难

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z X Y Z

基于AVR128单片机智能传送装置

一、系统方案 1、板载可变电阻&#xff08;电位器&#xff09;R29的电压作为处理器ATmega128的模数转换模块中单端ADC0的模拟信号输入&#xff08;跳线JP13短接&#xff09;。 2、调节电位器&#xff0c;将改变AD转换接口ADC0的模拟信号输入&#xff0c;由处理器完成ADC0的A/D转…

释放 ChatGPT 的价值:5 个专家提示

随着近来ChatGPT的热议&#xff0c;人工智能技术被推上风口浪尖&#xff0c;由此以数字化技术为基础的数字营销也再次受到了不小的关注&#xff0c;但是营销的本质从来都没有变过&#xff0c;今天我们聊下ChatGPT无论如何演进&#xff0c;人工智能无论变得多么先进&#xff0c;…

JVM知识点(一)

1、JVM基础概念 &#xff08;1&#xff09;JVM、JRE、JDK JRE&#xff1a;JVM基本类库组成的运行环境就是JRE。JVM自己是无法完成一次编译&#xff0c;处处运行的&#xff0c;需要有一个基本类库告诉JVM如何操作运行&#xff0c;如如何操作文件&#xff0c;连接网络等&#x…

xfs ext4 结合lvm 扩容、缩容 —— 筑梦之路

ext4 文件系统扩容、缩容操作 扩容系统根分区 根文件系统在 /dev/VolGroup/lv_root 逻辑卷上&#xff0c;文件系统类型为ext4&#xff0c;大小为10G&#xff0c;现在要将其扩容成20G。 给空闲空间分区# 调整分区类型为LVM&#xff0c;也就是8e类型 fdisk /dev/sdb# 选定分区后使…

微前沿 | 第1期:强可控视频生成;定制化样本检索器;用脑电重建视觉感知;大模型鲁棒性评测

欢迎阅读我们的新栏目——“微前沿”&#xff01; “微前沿”汇聚了微软亚洲研究院最新的创新成果与科研动态。在这里&#xff0c;你可以快速浏览研究院的亮点资讯&#xff0c;保持对前沿领域的敏锐嗅觉&#xff0c;同时也能找到先进实用的开源工具。 本期内容速览 01. 强可…