LoRA: 大语言模型个性化的最佳实践

news2024/11/24 10:25:11

出品人: Towhee 技术团队

大型语言模型(LLM)在今年获得了极大的关注。在以往,预训练+微调(finetuning)成为了让模型适配于特定数据的最佳范式。然而随着大型模型的出现,这种完全微调(重新训练所有模型参数)将变得越来越不可行。例如,如果使用GPT-3 175B,部署独立的经微调的模型实例(每个实例都有175B个参数)成本过高。在2021年,微软提出了一个方法叫LoRA(低秩适应),在大模型时代越来越受到重视,并且带来了非常好的效果。该方法冻结预训练模型的权重,并将可训练的秩分解矩阵注入到Transformer体系结构的每个层中,从而大大减少了下游任务所需的可训练参数数量。相对于使用Adam算法微调的GPT-3 175B模型,LoRA可以将可训练参数数量降低10,000倍,GPU内存需求减少3倍。此外,LoRA在RoBERTa、DeBERTa、GPT-2和GPT-3模型的模型质量方面表现与微调相当或更好,尽管它具有较少的可训练参数,更高的训练吞吐量,并且不像适配器(adapters),不会增加推理延迟。

|LoRA's reparametrization: only train A and B. alt alt

|Performance of RoBERTa pretrained with/without LoRA

这个实验结果很好地说明了这个算法的有效性。作者使用了RoBERTa模型在各个下游任务做finetune。FT就是使用全部参数进行训练,BitFit是只训练bias vector冻结住其他全部的权重。可以看出除了完全finetune,几种其他适配方法所训练的参数量都比较小。而LoRA可以训练较少的参数得到更好的结果。

LoRA不仅在NLP可以证明自己是很有效的办法,因为现在越来越多的算法都是基于transformer开发,而这个方法针对transformer非常容易适配。现在很火的stable-diffusion也已经被LoRA所攻陷,让大部分只拥有有限算力的用户可以快速finetune出一个针对自己数据所使用的LoRA模型。随着大模型越来越受到重视,成为各种任务的基线,相信这个方法会成为大模型时代的最常规的操作。

相关资料:

  • https://arxiv.org/abs/2106.09685
  • https://github.com/microsoft/LoRA
  • https://github.com/huggingface/peft

本文由 mdnice 多平台发布

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

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

相关文章

【运动规划算法项目实战】如何实现机器人多目标点导航

文章目录 前言一、 什么是actionlib?二、实现流程三、总结前言 在ROS机器人应用中,实现机器人多目标点导航是非常常见的需求。本文将介绍如何使用ROS和actionlib来实现机器人的多目标点导航,目标点信息将被记录在YAML文件中。 我们可以通过使用MoveBaseAction来实现机器人…

高并发场景下JVM调优实践

一、背景 2021年2月,收到反馈,视频APP某核心接口高峰期响应慢,影响用户体验。 通过监控发现,接口响应慢主要是P99耗时高引起的,怀疑与该服务的GC有关,该服务典型的一个实例GC表现如下图: 可以…

【WinForm】定时器的使用方法除了定时还有延迟执行可用

在使用VS开发工具创建的WinForm项目中,有一个定时器组件,拖出来放上,它只是一个定时处理的作用,不会显示在窗体中。 开发中如果需要定时处理,就使用Timer组件即可, 在它的属性事件一栏里,有一…

offer选择:创业公司 VS 大厂外包

面试拿到两个offer,一个是规模只有几十人的初创小公司,另一个是大厂外包岗位。都是功能测试,两者薪水待遇也差不多,该如何选择?更有利于之后的职业发展...... 这是一个比较典型的问题,对于要转行的同学或者是刚入行没…

【Call for papers】2023年CCF人工智能会议信息汇总(持续更新)

本博文是根据2022年CCF会议推荐的人工智能领域相关会议目录撰写。 注: 由于一些会议的投稿时间还没公开,因此根据往年投稿时间在表格中使用 ~ 符号表示大概的投稿时间(一旦会议日期更新,我们也将同步更新博文。若更新不及时请小伙…

C++常用23种设计模式总结(一)------单例模式

什么是单例模式 单例模式是一种设计模式,它保证一个类只有一个实例,并提供一个全局访问点来访问该实例。这个模式通常用于控制资源的访问,例如数据库连接、线程池等。单例模式通过限制实例化操作并提供访问方法,确保在整个应用程序…

【Unity3D小功能】Unity3D中实现模型的旋转、缩放效果(控制摄像机)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 其实之前已经写了关于如何控制模型的旋转、移动、缩放效果&…

Android开发:使用sqlite数据库实现记单词APP

一、功能与要求 实现功能:设计与开发记单词系统的四个界面,分别是用户登录、用户注册、单词操作以及忘记密码。 指标要求:通过用户登录、用户注册、单词操作、忘记密码掌握界面设计的基础,其中包括界面布局、常用控件、事件处理等…

NPN三极管放大原理

NPN三极管放大 这是华为的芯片,还有其他人的芯片 无论这些芯片再复杂,它们都是由这种材料制成的 ​ 硅晶体 我们把他放大,单个硅原子最外层带有四个电子, 在纯硅当中,这些电子会两两形成共价键,此时周围形成非常稳定的八电子结构 我们接上电池, 电池无法吸引其中的电子离开,也…

不止大模型,亚马逊云科技布局AIGC底座能力

“大模型只是客户需求的其中一个部分,但远远不是所有,客户还需要更广泛的基础能力。亚马逊云科技推出自研芯片、生成式AI服务Bedrock以及大模型Titan,都在致力于推动AIGC技术的普惠化,够降AIGC的技术门槛和资金门槛,让…

万应低代码4月重点更新内容速递

低代码开发能力提升 分布式缓存支持 万应提供了一套分布式的缓存系统,可在多个节点之间共享缓存数据,从而加速数据获取速度,提高应用的性能和效率。包含: 缓存设置节点:把需要高频访问的数据写入到缓存中,并…

vue3 vue.config.js配置Element-plus组件和Icon图标实现按需自动引入

打包时,报警告,提示包太大会影响性能 1.配置前包体积: 2.安装插件: npm i unplugin-auto-import unplugin-vue-components unplugin-icons -D 3.vue.config.js中加入以下配置: const { defineConfig } require(vu…

Vue3 Antd 父子嵌套子表格

Vue3 Antd 父子嵌套子表格 父子嵌套子表格 目标1:可以点击多个父节点表格,正确显示子表格数据 目标2:父表格数据刷新重载,解决子表格数据不刷新问题 官方示例代码,以及效果 https://www.antdv.com/components/tabl…

linux0.12-8-2-asm.s

[290页] 8-2 asm.s程序 8-2-1 功能描述 1、 我们先考虑c)、 d) 2、无出错码 2.1、 将要执行的处理函数压栈; 2.2、 eax被交换入栈。现在eax护理函数 2.3、 其他寄存压栈 2.4、 立即数0压栈 2.5、 取edxEIP后,将edx压栈 2.6、 段寄存器都设置0x10段选…

通过身份个性化网络(IPM)实现真实世界的自动化妆

来源:投稿 作者:小灰灰 编辑:学姐 论文标题: Real-World Automatic Makeup via Identity Preservation Makeup Net 论文链接:https://www.ijcai.org/proceedings/2020/0091.pdf论文代码:https://github.co…

XRSPACE 总经理刘冠廷:元宇宙行业如何通过 2D、3D 联动,实现高速用户增长?

序言: 元宇宙领域创业并非坦途,似乎已经成为了行业共识。 即使到今天,VR/AR 领域的装备开支和上手学习成本居高不下,全球整体用户体量相比移动互联网也仍属早期阶段。 在这样的背景下,元宇宙公司如何持续且快速地获…

python毕业设计之django+vue流浪宠物动物救助领养网站

开发语言:Python 框架:django Python版本:python3.7.7 数据库:mysql 数据库工具:Navicat 开发软件:PyCharm 网站前台: 站内新闻:针对网站的新闻信息进行展示,能够展示…

简单聊聊Echarts伪3D地图实现的相关配置

知识和技能真的是用进废退,还是得多实践,才不至于遗忘。 目录 前言 二、实现原理 三、从0开始实现 1.目录结构 2.地图JSON数据获取 3.具体实现,重头戏 3.一些常见问题的解决方法 总结 前言 本文简单来聊一聊Echarts伪3D地图的实现&a…

Java面试被问Spring哑口无言?100道Spring面试考点解析

对于开发同学来说,Spring 框架熟悉又陌生。 熟悉:开发过程中无时无刻不在使用 Spring 的知识点;陌生:对于基本理论知识疏于整理与记忆。导致很多同学面试时对于 Spring 相关的题目知其答案,但表达不够完整准确。今天展…

UE4蓝图学习篇(八)-- 角色基础移动

在C学习篇中有介绍如何使用UE4C去处理角色的基础移动,那么本篇介绍使用蓝图去处理角色的基础移动。 1、创建Character类; 添加一个SpringArmComponent组件,在其下方添加一个CameraComponent组件能够看到角色,SpringArmComponent的…