微软 LoRA| 使用万分之一的参数微调你的GPT3模型

news2025/1/17 21:46:22

一、概述

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

论文地址:https://arxiv.org/abs/2106.09685

代码:GitHub - microsoft/LoRA: Code for loralib, an implementation of "LoRA: Low-Rank Adaptation of Large Language Models"

1.1 Motivation

  1. NLP重要的范式为在通用数据集上预训练,然后特定领域微调,但是随着模型越来越大,继续全量fine-tuning变得越来越不可能。

1.2 Methods

  1. 本文提出低秩Adaptation(LoRA),冻结了预先训练的模型参数,将可训练的秩分解矩阵注入到Transformer架构的每一层中,大大减少了下游任务的可训练参数的数量,训练参数只有GPT-3 175B模型的万分之一,GPU内存只需要1/3。

1.3 Conclusion

  1. 尽管训练参数少很多,LoRA在RoBERTa,DeBERATa,GPT-2和GPT-3的效果甚至比全量fine-tuning要好,并且不像adpers等方法,不会增加推理latency,不需要降低输入序列长度,同时维持高的模型质量。
  2. 可以快速的进行任务的切换,因为在不同任务重其可以共享绝大部分的模型的参数。
  3. 可以应用到任意神经网络的dense层。

1.4 Future works

  1. LoRA和其他有效的adaptation方法结合。
  2. 研究fine-tuning或者LoRA背后的机制。
  3. 除了其方式的选择LoRA的权重,是否还有更多的原则来做?
  4. ΔW(LoRA学习到的权重) 的秩亏表明 W 也可能是秩亏的,这也可以成为未来工作的灵感来源。

二、详细内容

1 模型结构说明

  • 冻结模型原始圈子,只训练A和B矩阵,同时B初始化为零,这样初始阶段B不参与更新。

2 LoRA推理latency比adapter方法要好

  • Adaper方法在序列长度比较短的时候,推理latency增加非常多

3 LoRA与Fine-tuning方法,其他Adapter方法在Roberta,deberta模型的效果对比

  • LoRA和FT方法效果差不多,各有千秋,但是需要训练的参数少很多。
  • 效果和其他Adpt方法也各有千秋,但是推理速度更快

4 LoRA与Fine-tuning方法,其他Adapter方法在GPT-2模型的效果对比

  • 在GPT-2系列模型上,比全量fine-tuning以及其他Adapter方法效果都好不少

5 LoRA在GPT3模型上的效果

  • 看起来比其他fine-tuning方法以及Adapter方法都要好

6 超参数选择上的表现

  • 相对于prefixEmbed,prefixLayer,Adapte人(H)等方法,LoRA表现出更好的可拓展性和表现
  • LoRA看着对超参数的选择上没那么敏感,稳定性更好

7 同等参数下,LoRA加到Transformer的那一层效果比较好呢?

  • 对Wq和Wv矩阵同时做Adapting效果最佳

8 如何选择参数rank r=?【没咋看懂】

  • 同时调整 Wq 和 Wv时候,一个小的值r=1就足以在这些数据集上,而单独训练 Wq 需要一个比较大的值r=4才有不错的效果。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

课时6—死锁(二)

一、死锁的避免 避免死锁同样属于事先预防策略,是在资源动态分配过程中,防止系统进入不安全状态,以避免发生死锁。 1、系统安全状态 在避免死锁方法中,把系统的状态分为安全状态和不安全状态。当系统处于安全状态时可避免发生死…

Android UI开发之多样式富文本的简洁实现

多样式富文本的简洁实现 原文链接:Android UI开发之多样式富文本的简洁实现 AppendableStyleString 允许你快速构建多种样式文字。 特性 支持对于同一个字符串设置多种样式。支持文字和图片。提供默认样式。采用 DSL 确保更清晰的样式作用范围 快速开始 下面的…

【事务失效】十种常见场景

前提 大多数Spring Boot项目只需要在方法上标记Transactional注解,即可一键开启方法的事务性配置。 但是,事务如果没有被正确出,很有可能会导致事务的失效,避免因为事务处理不当导致业务逻辑产生大量偶发性BUG 事务的传播类型 …

JDK8-17的特性发生了哪些变化

JDK8-17的特性发生了哪些变化 垃圾回收器Java交互式编程接口定义扩展String底层结构变更of 创建不可变序列HTTP 2 协议接口引入 var 关键字字符串增强lambda 表达式类型推导switch 增强支持文本块定义instanceof 模式匹配引入record 关键字新增密封类的定义switch二度加强模块…

栈及其实现

目录 一&#xff1a;栈 1.栈的概念和结构 2.栈的实现 <1>.初始化栈 <2>.入栈 <3>.出栈 <4>:获取栈顶元素 <5>.获取栈中有效元素个数 <6>.销毁栈 <7>.示例 二&#xff1a;栈的完整代码 一&#xff1a;栈 1.栈的概念和结构 …

Origin中log2的计算,设置以2为底的log坐标

使用高中的换底公式即可&#xff0c;把2的底换成10的底计算 ![在这里插入图片描述](https://img-blog.csdnimg.cn/5747fdbd2b5c43f095d716092fd17124.png

模式介绍和基本管理

模式介绍&#xff1a; 用户的模式(SCHEMA&#xff09;指的是用户账号拥有的对象集&#xff0c;在概念上可将其看作是包含表、 视图、索引和权限定义的对象。在 DM 中&#xff0c;一个用户可以创建多个模式&#xff0c;一个模式中的对象 &#xff08;表、视图等&#xff09;可以…

【深度学习】- 作业2: MNIST手写数字识别

课程链接: 清华大学驭风计划 代码仓库&#xff1a;Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的&#xff0c;其分为四门课&#xff0c;包括: 机器学习(张敏教授) &#xff0c; 深度学习(胡晓林教授), 计算…

stata软件基本操作

一、stata软件介绍 Stata是一个用于分析和管理数据的功能强大又小巧玲珑的实用统计分析软件&#xff0c;由美国计算机资源中心&#xff08;Computer Resource Center&#xff09;研制。它同时具有数据管理软件、统计分析软件、绘图软件、矩阵计算软件和程序语言的特点&#xf…

二叉树的相关知识

1.树概念及结构 1.1树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有一个特殊的结点&#…

Typora Mac版本安装 Pandoc 导出文件为word格式(windows可通用)

今天在和一位商务小伙伴对接的时候&#xff0c;需要提供一份 word 版本的初稿。对于习惯了使用 支持 markdown 语法的 typora 来说&#xff0c;复制粘贴到 word 是不可能的。 可以通过 “导出” 功能&#xff0c;选择将当前文件导出为 “word” 格式&#xff0c;这个过程有个小…

通过CSS实现炫酷效果,让你的网页不再平淡无奇

通过CSS实现炫酷效果&#xff0c;让你的网页不再平淡无奇 (一)CSS基础1.1CSS介绍1.2CSS样式1.3CSS 格式 &#xff08;二&#xff09;CSS 选择器2.1标签选择器2.2类选择器2.3层级选择器2.4id选择器2.5组选择器2.6伪类选择器2.7通配符选择器 &#xff08;三&#xff09;样式表引入…

【自然语言处理】 - 作业3: 文本情感分析

课程链接: 清华大学驭风计划 代码仓库&#xff1a;Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的&#xff0c;其分为四门课&#xff0c;包括: 机器学习(张敏教授) &#xff0c; 深度学习(胡晓林教授), 计算…

C++的继承

继承 1.继承的概念及定义1.1继承的概念1.2 继承定义1.2.1定义格式1.2.2继承关系和访问限定符1.2.3继承基类成员访问方式的变化 2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数5.继承与友元6. 继承与静态成员7.复杂的菱形继承及菱形虚拟继承 1.继承的概念及…

舒适交友 - 什么样的婚姻最舒服 稳态婚姻

人人都是心理学家,mbti等_个人渣记录仅为自己搜索用的博客-CSDN博客 人生两大目标: 生产力提升 让身边的人快乐. 激动 兴奋 不一定 舒适 开心 幸福 安全感 平静 宁静 祥和 婚姻 稳态 041 探秘“情绪”——如何确定只有六种基本情绪&#xff1f; - 知乎 ( 6种原始情绪&am…

chatgpt赋能Python-python_dilate

Python中的dilate操作&#xff1a;了解该操作及其应用 在计算机视觉领域&#xff0c;dilate操作是一种常用的图像处理技术。在Python中&#xff0c;我们可以使用OpenCV库来实现dilate操作。本文将介绍dilate操作的基本概念&#xff0c;讨论其应用及如何使用Python进行实现。 …

C++爱好者的自我修养(13.1):一维数组——简介,声明,初始化(赋值)

文章目录 1.什么是数组&#xff1f;2.数组的声明2.1格式2.2特别注意&#xff1a;有效下标值的重要性 3.数组的初始化&#xff08;赋值&#xff09;3.1格式3.2 C11新增的初始化方法规则功能3.2.1 等号的省略3.2.2 当大括号内无东西3.2.3 禁止缩窄转换 1.什么是数组&#xff1f; …

Kafka实时数据同步

目录 1 概述 2 捕获Oracle数据到Kafka 2.1 数据捕获设置 2.2 数据发布任务设置 2.3 捕获到发布数据流映射 2.4 查看任务执行日志 3 订阅Kafka数据到ClickHouse 3.1 数据订阅设置 3.2 数据加载设置 3.3 订阅到加载数据流映射 3.4 查看任务执行日志 4 校验数据一致性 …

GEE:GEDI数据提取值到矢量区域和点

作者:CSDN @ _养乐多_ 本文将介绍GEDI数据集从GEE上下载到本地,并将每一个激光点的值提取为一个矢量区域,并提取值到矢量区域的方法。 文章目录 一、GEDI数据下载二、GEDI数据栅格矢量化三、提取值到区域四、提取栅格值到点五、空间插值一、GEDI数据下载 GEDI数据下载链接:…

80个Python练手小项目;AI开发者的总结与反思;B站免费Stable Diffusion视频教程;五问ChatGPT+医学影像 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 『美团大模型已秘密研发数月』在仅剩一年的窗口期里努力奔跑 5月18日下午&#xff0c;美团内部召开大模型技术分享会&#xff0c;美团…