LoRA:大型语言模型的低秩适应

        LoRA                        官网

 LoRA(Low-Rank Adaptation)出自2021年的论文“LoRA: Low-Rank Adaptation of Large Language Models”

常见的大模型微调方法:

        Adapter-Tuning、Prefix-Tuning、Prompt-Tuning(P-Tuning)、P-Tuning v2、LoRA。

         LoRA技术冻结预训练模型的权重,并在每个Transformer块中注入可训练层(称为秩分解矩阵),即在模型的Linear层的旁边增加一个“旁支”A和B。其中,A将数据从d维降到r维,这个r是LoRA的秩,是一个重要的超参数;B将数据从r维升到d维,B部分的参数初始为0。模型训练结束后,需要将A+B部分的参数与原大模型的参数合并在一起使用。

        LoRA微调的优点包括:

        (1)训练速度更快。

        (2)计算需求更低。

        (3)训练权重更小

解读:LoRA

LoRA:大型语言模型的低秩适应 (Low-Rank Adaptation,简称LoRA)

        即Low-Rank Adaptation,是一种针对大型预训练语言模型的参数高效微调方法。在自然语言处理领域,大型语言模型(如GPT-3、BERT等)已经取得了显著的成功,但这些模型的参数量往往非常庞大,达到数十亿甚至千亿级别。因此,对这类模型进行微调(fine-tuning)以适应特定任务时,需要消耗大量的计算资源和时间。

        LoRA的主要思想是将这些大型模型的适应性参数分解为两个低秩矩阵的乘积,从而大幅减少需要更新的参数数量。具体来说,LoRA在原始模型的基础上添加了额外的可训练参数,这些参数以矩阵的形式存在,并通过与原始模型中的注意力矩阵或前馈网络矩阵相乘,来模拟微调过程中参数的变化。

这种方法的优势在于:

  1. 计算效率:由于更新的参数数量大幅减少,因此在进行微调时,所需的计算资源(如GPU内存和计算时间)也相应减少。

  2. 存储效率:由于不需要存储原始模型的所有参数的更新版本,因此可以节省存储空间。

  3. 稳定性:由于更新的参数较少,LoRA可以减少过拟合的风险,提高模型的泛化能力。

  4. 灵活性:LoRA可以应用于不同类型的模型,包括但不限于基于注意力机制的模型和基于Transformer的模型。

LoRA的实现通常涉及以下步骤:
  1. 冻结原始模型参数:在微调过程中,保持预训练模型的所有参数不变。

  2. 添加低秩矩阵:在原始模型的某些层中添加额外的可训练低秩矩阵。

  3. 微调低秩矩阵:使用特定任务的数据来训练这些低秩矩阵,从而使模型适应新的任务。

  4. 推理时结合低秩矩阵:在推理阶段,使用更新后的低秩矩阵与原始模型参数相结合,以生成输出。

LoRA为大型语言模型的微调提供了一种高效的方法,使得在资源有限的情况下也能对模型进行有效的适应和定制。

论文                                        LoRA 论文

        自然语言处理的一个重要范例包括大规模的预训练一般域数据和适应特定的任务或域。当我们预训练更大的模型时,重新训练所有模型参数的完全微调变得不太可行。以GPT-3 175 B为例--部署微调模型的独立实例,每个实例都有175 B个参数,这是非常昂贵的。我们提出了低秩自适应(Low-Rank Adaptation,简称LoRA),它冻结了预先训练的模型权重,并将可训练的秩分解矩阵注入到Transformer架构的每一层中,大大减少了下游任务的可训练参数数量。与使用Adam微调的GPT-3 175 B相比,LoRA可以将可训练参数的数量减少10,000倍,并将GPU内存需求减少3倍。LoRA在RoBERTa、DeBERTa、GPT-2和GPT-3上的模型质量表现与微调相当或更好,尽管可训练参数更少,训练吞吐量更高,而且与适配器不同,没有额外的推理延迟。我们还提供了一个实证调查排名不足的语言模型适应,揭示了LoRA的功效。我们发布了一个软件包,用于促进LoRA与PyTorch模型的集成,并在此https URL中提供了RoBERTa,DeBERTa和GPT-2的实现和模型检查点。

参考:大模型微调技术(Adapter-Tuning、Prefix-Tuning、Prompt-Tuning(P-Tuning)、P-Tuning v2、LoRA)_prefix tuning-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

冬奥会|基于SprinBoot+vue的冬奥会科普平台(源码+数据库+文档)

目录 基于SprinBootvue的冬奥会科普平台 一、前言 二、系统设计 三、系统功能设计 1登录注册 2系统功能模块 3管理员功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|…

Discourse 使用 DiscourseConnect 调用接口 admin/users/sync_sso 404 错误

在对用户数据通过 SSO 同步的时候,调用提示 404 错误。 我们使用的是 Java 的代码。 2024-05-23_16-34-421340802 70.3 KB 如上图,返回显示的代码为 404。 问题原因 出现上面错误的原因是安装的 Discourse 实例的 discourse connect 没有启用。 2024-…

【C语言】明析部分C语言内存函数

目录 1.memcpy 2.memmove 3.memset 4.memcmp 以下都是内存函数,作用单位均是字节 1.memcpy memcpy是C/C语言中的一个内存拷贝函数,其原型为: void* memcpy(void* dest, const void* src, size_t n);目标空间(字节&#xff09…

作家百度百科怎么做出来的 怎么创建作家百科词条才能通过

创建作家百度百科词条需要遵循一定的步骤,并注意一些关键点,以确保词条能够顺利通过审核。以下是伯乐网络传媒pouquan根据经验结果得出的详细指导: 准备工作 注册百度账号:在创建任何百度百科词条之前,您需要先注册一…

Milvus的内存索引

简介: 这篇文章主要介绍milvus支持的各种内存索引,以及它们最适用的场景,还有用户为了获得更好的搜索性能可以配置的参数。 索引是有效组织数据的过程,它的主要角色是在大的数据集中显著的加速耗时的查询从而有效的进行相似搜索…

常见的100个Shell命令,超级实用!

在大多数的Linux和Unix系统、及其他类Unix系统中,Shell是用户与操作系统内核交互的主要方式。作为一种强大的命令行解释器,它也支持编程功能,用户可以写脚本来处理各种任务。 熟悉shell脚本,首先要对shell指令熟悉,今…

Python图形界面(GUI)Tkinter笔记(八):用【Label()】方法制作九九乘数表

主要是使用"config()"方法来体现函数式、模块化的美好风景。把需随时要修改的控件参数定义在“config()”方法里且把它封装在一个函数中,这时只需对这函数内的“config()”方法作出相应的修改即可,无需对主代码或全部代码重新修一遍。这也是Py…

【Spring】spring入门程序

案例要求:创建一个 Studentservice 类,其中需要使用 studentDao 接口的保存方法,来存储一个Student 类的对象,StudentDao 接口有两个不同的实现类,通过 Spring 的方式,为 Student类创建对象并为属性赋值&am…

react【框架原理详解】JSX 的本质、SyntheticEvent 合成事件机制、组件渲染过程、组件更新过程

JSX 的本质 JSX 代码本身并不是 HTML,也不是 Javascript,在渲染页面前,需先通过解析工具(如babel)解析之后才能在浏览器中运行。 babel官网可查看 JSX 解析后的效果 更早之前,Babel 会把 JSX 转译成一个 R…

论文精读:UFO: A UI-Focused Agent for Windows OS Interaction

UFO : A UI-Focused Agent for Windows OS Interaction Status: Reading Author: Bo Qiao, Chaoyun Zhang, Dongmei Zhang, Liqun Li, Minghua Ma, Qinglong Zhang, Qingwei Lin, Saravan Rajmohan, Shilin He, Si Qin, Xiangyu Zhang, Yu Kang Institution: 微软(…

骑行之旅,骑行之旅,骑行之旅

骑行之旅其一:晨曦破晓普吉路,铁骑奔腾向远方。小桃园中寻雅趣,保利春湖泛波光。落水洞边环水库,田冲村里话家常。秧草塘畔风情美,白泥塘中歌声扬。陡普鲁村享盛宴,AA 制下笑语长。赛道体验激情涌&#xff…

有什么免费的文字转语音软件?这5个文字转语音工具超简单

听说你对最近备受瞩目的文字转语音技术很感兴趣? 文字转语音技术,就是一种将文本转换为自然语音的技术,它让机器发音听起来就像真人一样。那么,市面上的文字转语音软件种类繁多,选择起来就有些困难了。 别担心&#…

【cocos creator】进度条控制脚本,支持节点进度条,图片进度条,进度条组件,和进度文字展示

进度条控制脚本,支持节点进度条,图片进度条,进度条组件,和进度文字展示 const { ccclass, property, menu } cc._decorator;let text_type cc.Enum({"20%": 0,"1/5": 1,"差值": 2,"自定义…

开放式耳机怎么选择!教你几招!2024开放式蓝牙耳机推荐

在面对市场上琳琅满目的开放式耳机时,许多用户可能会感到难以抉择。作为一名开放式耳机的爱好者,我根据自己的实际使用体验,整理了一些我认为值得推荐的开放式耳机,希望能为正在寻找合适耳机的朋友们提供一些参考和帮助。我将为大…

Nodejs+Websocket+uniapp完成聊天

前言 最近想做一个聊天,但是网上的很多都是不能实现的,要么就是缺少代码片段很难实现websocket的链接,更别说聊天了。自己研究了一番之后实现了这个功能。值得注意的是,我想在小程序中使用socket.io,不好使&#xff0…

英语学习笔记24——Give me/us/him/her/them some ...

Give me/us/him/her/them some … 给我/我们/他/她/他们一些…… 词汇 Vocabulary desk n. 课桌(有书桌堂),写字台 复数:desks 搭配:desk mate 同桌    构成:desk mate 桌子上的伙伴 同桌    cl…

深度学习模型keras第二十三讲:在KerasCV中使用SAM进行任何图像分割

1 SAM概念 ###1.1 SAM定义 Segment Anything Model(SAM)是一种基于深度学习的图像分割模型,其主要特点包括: 高质量的图像分割:SAM可以从输入提示(如点、框、文字等)生成高质量的对象掩模&am…

【Hive SQL 每日一题】行列转换

文章目录 行转列列传行 行转列 测试数据: DROP TABLE IF EXISTS student_scores;CREATE TABLE student_scores (student_id INT,subject STRING,score INT );INSERT INTO student_scores (student_id, subject, score) VALUES (1, Math, 85), (1, English, 78), (…

高效爬取Reddit:C#与RestSharp的完美结合

介绍 在数据驱动的时代,网络爬虫已经成为获取网页数据的重要工具。Reddit,作为全球最大的社区平台之一,以其丰富的用户生成内容、广泛的讨论话题和实时的信息更新吸引了大量用户。对于研究人员和开发者而言,Reddit提供了宝贵的数…

VMware Workstation 虚拟机安装 ubuntu 24.04 server 详细教程 服务器安装图形化界面

1 阿里云下载 ubuntu-releases安装包下载_开源镜像站-阿里云 2 打开vmware,新建虚拟机 3 选择下载的镜像,开始安装 3 光驱这里修改下 4 重新启动,安装图形化界面 #更新软件包列表 sudo apt-get update #安装Ubuntu图形桌面 sudo apt install ubuntu-desktop 5 安…