LORA: LOW-RANK ADAPTATION OF LARGE LAN-GUAGE MODELS

这篇具有很好参考价值的文章主要介绍了LORA: LOW-RANK ADAPTATION OF LARGE LAN-GUAGE MODELS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Paper name

LORA: LOW-RANK ADAPTATION OF LARGE LAN-GUAGE MODELS

Paper Reading Note

Paper URL: https://arxiv.org/pdf/2106.09685.pdf
Code URL:

  • huggingface 集成: https://github.com/huggingface/peft
  • 官方代码: https://github.com/microsoft/LoRA

TL;DR

  • 本文提出了低秩自适应 (Low-Rank Adaptation, LoRA),它冻结了预训练的模型权重,并将可训练的秩分解矩阵注入到 Transformer 架构的每一层,极大地减少了下游任务的可训练参数的数量,有效提升预训练模型在下游任务上的 finetune 效率

Introduction

背景

  • 自然语言处理的一个重要范式包括对一般领域数据的大规模预训练(pretrain)和对特定任务或领域的适应(finetune)
  • 当预训练模型的参数量较大时,完全的微调(重新训练所有模型参数)变得不太可行
    • 以GPT-3 175B为例,部署经过微调的模型的独立实例,每个实例都有175B参数,这是非常昂贵的

本文方案

  • 本文提出了低秩自适应 (Low-Rank Adaptation, LoRA),它冻结了预训练的模型权重,并将可训练的秩分解矩阵注入到 Transformer 架构的每一层,极大地减少了下游任务的可训练参数的数量
    LORA: LOW-RANK ADAPTATION OF LARGE LAN-GUAGE MODELS
    LoRA 通过优化 dense layer 的变化的秩分解矩阵来间接训练 dense layer,保持预训练模型参数冻结。上图中的矩阵秩 ® 可以非常低,比如对于 GPT-3 175B 模型,rank-1 或 rank-2 就能基本对齐原始 rank-12288 的效果

  • 与 Adam 微调的 GPT-3 175B 相比,LoRA 可训练参数数量减少了 1 万倍,GPU 内存需求减少了 3 倍

  • 在 RoBERTa、DeBERTa、GPT-2 和GPT-3 等大语言模型上,LoRA 在模型质量方面的表现与微调相当或更好,尽管它具有更少的可训练参数、更高的训练吞吐量,并且与适配器不同,没有额外的推断延迟


Dataset/Algorithm/Model/Experiment Detail

实现方式

问题定义
  • 给定一个自回归语言模型 PΦ(y|x),比如可以是基于通用多任务训练的 GPT 模型,需要将这个模型在下游任务上进行 finetune,比如机器阅读理解 (MRC) 和自然语言转换为 SQL (NL2SQL) 这两个任务上,这些任务的数据通常是上下文与目标对:Z = {(xi, yi)}i=1,…,N,其中 xi 和 yi 都是 token 序列

    • 比如在 NL2SQL 中,xi 是自然语言查询,yi 是对应的 SQL 指令
  • 对于全模型参数 finetune,模型初始化为预训练权重Φ0,需要通过训练更新为Φ0 +∆Φ
    LORA: LOW-RANK ADAPTATION OF LARGE LAN-GUAGE MODELS
    这种方式缺点是更新的参数 ∆Φ 数量级与原始参数数据集一致,训练开销大

  • 本文的方法是使 finetune 的参数的量极大降低,∆Φ = ∆Φ(Θ) ,其中训练的参数量 |Θ| 远小于原始模型的参数量 |Φ0|.
    LORA: LOW-RANK ADAPTATION OF LARGE LAN-GUAGE MODELS
    基于本文方法,对于 GPT-3 175B 模型来说,可训练的模型参数可以是原始模型 0.01%

LOW-RANK-PARAMETRIZED UPDATE MATRICES
  • 神经网络包含许多密集的层,这些层执行矩阵乘法。这些层中的权重矩阵通常具有全秩。当适应特定的任务时,预训练的语言模型往往具有较低的“instrisic dimension”,尽管随机投影到较小的子空间,但仍然可以有效地学习
  • 受此启发,本文假设在适应过程中对权重的更新也具有较低的“intrinsic rank”,比如对于一个预训练的参数矩阵 W 0 ∈ R d × k W_{0} \in R^{d \times k} W0Rd×k ,通过用低秩分解表示后者来约束它的更新
    W 0 + ∆ W = W 0 + B A W_{0} + ∆W = W_{0} + BA W0+W=W0+BA ,其中 B ∈ R d × r B \in R^{d \times r} BRd×r , A ∈ R r × k A \in R^{r \times k} ARr×k ,其中秩 r 远小于 min(k, d)
  • 训练过程中模型原始参数 W 0 W_{0} W0 保持冻结, A 和 B 参数可训练, W 0 W_{0} W0 ∆ W = B A ∆W=BA W=BA 有相同的 input, 它们各自的输出向量按坐标求和,整体过程如图一所示
    LORA: LOW-RANK ADAPTATION OF LARGE LAN-GUAGE MODELS
    对 A 使用随机高斯初始化,对 B 使用零初始化,这样 ∆ W = B A ∆W=BA W=BA 在刚开始训练的时候输出是 0,不会对原始模型的映射产生影响
  • 然后需要对 ∆ W x ∆Wx Wx 利用 α r \frac{\alpha}{r} rα 进行缩放, α \alpha α 是 r 中的常数。当用 Adam 进行优化时,如果适当缩放初始化,调优 α \alpha α 与调优学习率大致相同。因此,本文简单地将 α \alpha α 设置为尝试的第一个 r,而不调整它。这种缩放有助于在变化 r 时减少重新调优超参数
Lora 性质 1:全面微调的推广
  • 通过将 LoRA 秩 r 设置为预训练的权重矩阵的秩,大致恢复了完整微调的表达性。换句话说,当增加可训练参数的数量时,训练LoRA大致收敛于训练原始模型
Lora 性质 2:没有额外的推断延迟
  • 在生产中部署时,可以显式地计算和存储 W = W0 + BA,并像往常一样执行推理,也即将 LoRA 权重和原始模型权重合并,不增加任何的推断耗时
    • W0 和 BA 都是 Rd×k
    • 当我们需要切换到另一个下游任务时,我们可以通过减去 BA 然后添加不同的 B’A’ 来恢复 W0,这是一个内存开销很小的快速操作
APPLYING LORA TO TRANSFORMER
  • transformer 自注意模块中有四个权重矩阵 Wq , Wk, Wv , Wo,以及 MLP 中的两个权重矩阵,本文为了简介和节省计算量,做的实验是只在 attention 矩阵上加 LoRA

  • 在 transformer 上实践 LoRA 的好处

    • 对于基于 Adam 训练的 Transformer 结构,如果 r 远小于原始权重矩阵维度,VRAM 使用减少 2/3,因为不需要存储冻结参数的优化状态。在 GPT-3 175B 上,将训练期间的 VRAM 消耗从 1.2TB 降低到 350GB
    • 当 r = 4 并且只调整 q 和 v 投影矩阵时,checkpoint 的大小减小了大约 10,000× (从 350GB 减小到 35MB)
    • 观察到在 GPT-3 175B 训练期间,lora 与完全微调相比,加速了 25%。因为对于大部分模型参数都不需要计算梯度了
  • 在 transformer 上实践 LoRA 的缺点

    • 如果选择将 LoRA 的参数 A 和 B 吸收到原始模型权重 W0 中以消除额外的推理延迟,那么在一次转发传递中批量输入不同的任务并不是一件简单的事情。在延迟不是很严重的情况下,可以不合并权重并动态地选择要用于批处理样例的 LoRA 模块

实验结果

对比实验
  • 与 finetune 相比精度基本对齐
    LORA: LOW-RANK ADAPTATION OF LARGE LAN-GUAGE MODELS
    LORA: LOW-RANK ADAPTATION OF LARGE LAN-GUAGE MODELS

  • 与当前的一些主流 Adapter 方法对比延时明显降低
    LORA: LOW-RANK ADAPTATION OF LARGE LAN-GUAGE MODELS文章来源地址https://www.toymoban.com/news/detail-419984.html

Thoughts

  • 在 LLM 和 StableDiffusion 中被广泛使用的模型加速 finetune 的方案,能够在不增加推理耗时的情况下基本对齐或超过完全参数 finetune 的方法,在实际应用部署中很有价值

到了这里,关于LORA: LOW-RANK ADAPTATION OF LARGE LAN-GUAGE MODELS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 《LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS》论文笔记

    《LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS》论文笔记

    全量参数微调在LLM背景下由“不方便”演变为“不可行|高昂成本”,基于“收敛的模型参数可以压缩到低维空间”的假设: the learned over-parametrized models in fact reside on a low intrinsic dimension. 作者提出LORA(Low Rank Adaptation)方法,其本质如下图所示: h = W x h = Wx h = W x ,其中 x x

    2024年02月13日
    浏览(11)
  • LLM:LoRA: Low-Rank Adaptation of Large Language Models

    LLM:LoRA: Low-Rank Adaptation of Large Language Models

    随着模型规模的不断扩大,微调模型的所有参数(所谓full fine-tuning)的可行性变得越来越低。以GPT-3的175B参数为例,每增加一个新领域就需要完整微调一个新模型,代价和成本很高。 为解决微调大规模语言模型到不同领域和任务的挑战,已有多种方案,比如部分微调、使用

    2024年02月07日
    浏览(7)
  • LLM微调 | LoRA: Low-Rank Adaptation of Large Language Models

    🔥 发表于论文:(2021) LoRA: Low-Rank Adaptation of Large Language Models 😄 目的:大模型预训练+微调范式,微调成本高。LoRA只微调新增的小部分参数。 adapter增加了模型层数,引入了额外的推理延迟; prefix-tuning比较难训练,效果不如直接finetune。 LoRA不会引入额外的延迟,甚至原文中

    2024年02月17日
    浏览(8)
  • [论文阅读笔记77]LoRA:Low-Rank Adaptation of Large Language Models

    [论文阅读笔记77]LoRA:Low-Rank Adaptation of Large Language Models

    题目 论文作者与单位 来源 年份 LoRA: Low-Rank Adaptation of Large Language Models microsoft International Conference on Learning Representations 2021 524 Citations 论文链接:https://arxiv.org/pdf/2106.09685.pdf 论文代码:https://github.com/microsoft/LoRA 研究主题 问题背景 核心方法流程 亮点 数据集 结论 论文类型 关

    2024年02月06日
    浏览(7)
  • 【DL】《LoRA: Low-Rank Adaptation of Large Language Models》译读笔记

    《Low-rank Adaption of Large Language Models: Explaining the Key Concepts Behind LoRA》 LoRA的秩分解矩阵是随机初始化的,然后通过梯度下降法进行训练。文章中提到,这种初始化方法可以保证LoRA的矩阵与预训练模型的权重相互正交,从而避免了对预训练模型的干扰。文章还比较了其他几种初

    2024年02月08日
    浏览(8)
  • 2021-arxiv-LoRA Low-Rank Adaptation of Large Language Models

    2021-arxiv-LoRA Low-Rank Adaptation of Large Language Models

    Paper: https://arxiv.org/abs/2106.09685 Code: https://github.com/microsoft/LoRA 自然语言处理的一个重要范式包括对通用领域数据的大规模预训练和对特定任务或领域的适应。当预训练更大的模型时,完全微调(重新训练所有模型参数)变得不那么可行。以 GPT-3 175B 为例,部署微调模型的独立

    2024年02月07日
    浏览(9)
  • Raki的读paper小记:LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

    Raki的读paper小记:LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

    研究任务 对大模型进行部分微调 已有方法和相关工作 现有技术通常通过扩展模型深度引入推理延迟(Houlsby 等人,2019;Rebuffi 等人,2017),或通过减少模型可用序列长度(Li 和 Liang,2021;Lester 等人,2021;Ham-bardzumyan 等人,2020;Liu 等人,2021) 面临挑战 这些方法通常无法

    2024年02月15日
    浏览(8)
  • 简单理解大模型参数高效微调中的LoRA(Low-Rank Adaptation)

    简单理解大模型参数高效微调中的LoRA(Low-Rank Adaptation)

    [论文地址] [代码] [ICLR 22] 阅前须知:本博文可能有描述不准确/过度简化/出错的地方,仅供参考。 网络结构 其中,原有模型的参数是直接冻结的,可训练参数只有额外引入的LoRA参数(由nn.Parameter实现)。 模型微调的本质 记网络原有预训练参数为 W 0 ∈ R d × k W_0 in R^{d times

    2024年02月15日
    浏览(15)
  • Lora升级!ReLoRa!最新论文 High-Rank Training Through Low-Rank Updates

    Lora升级!ReLoRa!最新论文 High-Rank Training Through Low-Rank Updates

    关注公众号TechLead,分享AI与云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。 尽管通过扩展导致具有数千亿参

    2024年02月10日
    浏览(9)
  • [论文解析] Diffusion Guided Domain Adaptation of Image Generators

    [论文解析] Diffusion Guided Domain Adaptation of Image Generators

    project link: https://styleganfusion.github.io/ In this paper, we show that the classifier-free guidance can be leveraged as a critic and enable generators to distill knowledge from large-scale text-to-image diffusion models. Generators can be efficiently shifted into new domains indicated by text prompts without access to groundtruth samples from target dom

    2024年02月16日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包