论文《LoRA: Low-Rank Adaptation of Large Language Models》阅读

这篇具有很好参考价值的文章主要介绍了论文《LoRA: Low-Rank Adaptation of Large Language Models》阅读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天带来的是由微软Edward Hu等人完成并发表在ICLR 2022上的论文《LoRA: Low-Rank Adaptation of Large Language Models》,论文提出了大模型 tuning 框架 LoRALow-Rank Adaptation)。

论文地址:https://openreview.net/pdf?id=nZeVKeeFYf9
附录下载地址:https://openreview.net/attachment?id=nZeVKeeFYf9&name=supplementary_material
代码地址:https://github.com/microsoft/LoRA

Background

一些术语介绍:

· Intrinsic Dimension(本征维度):An objective function’s intrinsic dimensionality describes the minimum dimension needed to solve the optimization problem it defines to some precision level. 是指在pre-trained LLM中,对于下游的tuning工作,实际上不需要对模型所有参数都进行更新,在保证某种精度(如90%)的要求下,可以只更新一部分就可以了(可称为 d 90 d_{90} d90)。

few-shot learning:少样本学习。借助于少样本学习,大模型在特定下游任务的训练过程中,只需要少数的特定任务数据就可以发挥不错的性能。

Prompt Engineering:提示工程。这是 LLM 在 NLP 应用中的特有应用,类似于特征工程,是一种需要专家背景知识,通过组织input的格式,风格等内容,使得输入内容对LLM能够具备更好的促进作用。

Adaptation:适应。也就是大模型对特定下游任务的tuning,使其能够在下游任务中性能更好。

Introduciton

本文提出的主要出发点在于 大模型 的训练模式,即先通过对 大量的 task-independent 语料的预训练,然后再在特定任务上进行精调 fine-tuning,使得模型能够在特定的下游任务中展现较好的表现。

这里就出现一个问题,大模型无论是在存储还是计算上,都是很大的,需要很大的算力和存储。Fine-tuning所有参数就会很费时费力。举例来说,GPT-3 175B总共包含175 billion个参数,也就是1750亿个,fine-tuning所有层,所有Transformer中的Q K V 和 output 矩阵加上 bias,可想而知是一个很大的开销。如何解决这个问题构成本文的 Motivation。

当然已经有诸多此类问题的解决方案。例如,Adapter Layer,也就是在Transformer中插入了两层Adapter Layer 来适应下游任务,只更新Adapter Layer 中的参数,原来的Transformer中的参数 不进行更新。这类模型的问题在于,Adapter Layer 和原来的大模型参数是从输入到输出上下夹在一起的(类似于汉堡),参数计算时必须从输入到输出一层一层进行。那么模型在推理的时候,就必然涉及到等上一层计算完才可以计算下一层,那么就带来了模型的延迟,影响模型体验。

作者提出了低秩矩阵乘法作为任意矩阵 W W W的 特定增量 Δ W \Delta W ΔW,通过只更新 Δ W \Delta W ΔW 的方式减小模型开销的同时,保住模型性能。

是的,模型就是这么“简单”,但是一方面模型的切入点非常犀利;另一方面模型性能不错且带来了巨大的 tuning 节省,让贫穷的学生党探索大模型时能够更自如一些;同时,本文的实验部分也非常充分(附录中),在不同benchmark中的表现都能够佐证LoRA模型的有效性。

论文《LoRA: Low-Rank Adaptation of Large Language Models》阅读,论文阅读,语言模型,人工智能,自然语言处理,深度学习,神经网络

Problem Statement

首先是问题形式化,对于fine-tuning,就是把预训练完成的所有参数checkpoint进行存储dump,在精调阶段,将所有参数初始化为dump出来的value,以此作为参数更新的起始点,完成模型优化。表示如下:

max ⁡ Φ ∑ ( x , y ) ∈ Z ∑ t = 1 ∣ y ∣ log ⁡ ( P Φ ( y t ∣ x , y < t ) ) (1) \max _{\Phi} \sum_{(x, y) \in \mathcal{Z}} \sum_{t=1}^{|y|} \log \left(P_{\Phi}\left(y_{t} \mid x, y_{<t}\right)\right) \tag{1} Φmax(x,y)Zt=1ylog(PΦ(ytx,y<t))(1)
如上所示,通过对下游任务数据集 Z \mathcal{Z} Z 进行模型所有参数 Φ \Phi Φ 的更新。如果 Φ {\Phi} Φ 很大,那么fine-tuning 就会很麻烦。

对此,作者提出了只更新 task-specific 的 新引入的 少量的参数 Δ Φ = Δ Φ ( Θ ) \Delta \Phi = \Delta \Phi(\Theta) ΔΦ=ΔΦ(Θ),完成模型的tuning。这里 Θ \Theta Θ 是新参数,而且维度相比较于原LLM模型很小( ∣ Θ ∣ ≪ ∣ Φ 0 ∣ |\Theta| \ll |\Phi_{0}| ∣Θ∣Φ0。作者指出,LoRA能够将需要更新的参数数量缩小到万分之一的地步。

max ⁡ Θ ∑ ( x , y ) ∈ Z ∑ t = 1 ∣ y ∣ log ⁡ ( p Φ 0 + Δ Φ ( Θ ) ( y t ∣ x , y < t ) ) (2) \max _{\Theta} \sum_{(x, y) \in \mathcal{Z}} \sum_{t=1}^{|y|} \log \left(p_{\Phi_{0}+\Delta \Phi(\Theta)}\left(y_{t} \mid x, y_{<t}\right)\right) \tag{2} Θmax(x,y)Zt=1ylog(pΦ0+ΔΦ(Θ)(ytx,y<t))(2)

Methodology

LoRA的具体设计实际上用两句话可以完成概括,(1)引入低秩矩阵进行 Δ W \Delta W ΔW 的计算;(2)选择哪些矩阵进行引入。

Δ W \Delta W ΔW 的选择

对于 Δ W \Delta W ΔW 的计算,如下所示:
h = W 0 x + Δ W x = W 0 x + B A x (3) h=W_{0} x+\Delta W x=W_{0} x+B A x \tag{3} h=W0x+ΔWx=W0x+BAx(3)
即,针对Transformer中的矩阵,加入一个 B ⋅ A B \cdot A BA 的操作,其中, B B B A A A 共享的那个维度是 r r r,远小于 输入维度( x x x 的维度)和 输出维度 ( h h h 的维度)。

W W W的选择

Transformer中的几个矩阵可以分为四类,这里分别表示为Q/K/V/O,分别对应到query/key/value/output。作者在附录中加入了对矩阵的选择(所有可训练参数总数18M, 18 M / 175 B ≈ 1 / 10 K 18M/175B \approx 1/10K 18M/175B1/10K),可以看到对QKVO所有矩阵都进行更新,性能最佳。但是在文中,作者普遍使用了只更新QV的方式,并说QV表现更好,这里不太明白。

论文《LoRA: Low-Rank Adaptation of Large Language Models》阅读,论文阅读,语言模型,人工智能,自然语言处理,深度学习,神经网络

总结

本文simple but effective,值得一看!文章来源地址https://www.toymoban.com/news/detail-667385.html

到了这里,关于论文《LoRA: Low-Rank Adaptation of Large Language Models》阅读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

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

    2024年02月07日
    浏览(45)
  • 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日
    浏览(51)
  • 【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日
    浏览(50)
  • 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日
    浏览(67)
  • 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日
    浏览(49)
  • 【论文&代码阅读】LORA: LOW-RANK ADAPTATION OF LARGE LAN- GUAGE MODELS

    最近很多工作好像都绕不开lora,无论是sd还是llm.... 问题:大模型重新训练所有模型参数的完全微调变得不太可行。 lora在做什么 我们提出了低秩自适应,即LoRA,它冻结预先训练的模型权重,并将可训练的秩分解矩阵注入Transformer架构的每一层 为什么work? 学习过的参数化模

    2024年02月10日
    浏览(44)
  • 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 本文提出了低秩自适应 (Low-Rank Adaptation, LoRA),它冻结了预训练的模型权重,并将可训练

    2023年04月21日
    浏览(68)
  • 简单理解大模型参数高效微调中的LoRA(Low-Rank Adaptation)

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

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

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

    2024年02月10日
    浏览(42)
  • 论文阅读 A Survey of Large Language Models 3

    为了检验LLM的有效性和优越性,大量的任务和基准被用来进行实证评估和分析。我们首先介绍了LLM语言生成和理解的三种基本评估任务,然后介绍了LLM具有更复杂设置或目标的几个高级任务,最后讨论了现有的基准和实证分析。 在这一部分中,我们主要关注LLM的三种评估任务

    2024年02月13日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包