LoRA的原理简介

在文章开始前先澄清一个概念,需要区分形近的单词"LoRa"(long range),这是一项通信技术。熟悉物联网行业的朋友相对会比较熟悉LoRa这项技术,因为有些设备比如电梯的控制就使用了这个技术进行本地数据和命令的传输。

本文介绍的LoRA(最后两个字母大写),是Low-Rank Adaptation的缩写,Low-Rank来自于对权重矩阵的分解。LoRA技术通过将权重矩阵分解成低秩矩阵的乘积,降低了参数数目,进而达到减少硬件资源、加速微调进程的目的。

众所周知,大模型所涉及的参数都是以10亿起的,往往上百亿千亿级的参数。这些模型进行预训练后的基座模型(Base Model)在具体的应用场景下需要进一步微调。这时面临两种选择:

  • 全参数的微调:毫无疑问,这个需要加载所有的参数进行调整训练,费时费力更费钱。
  • 部分参数的微调:只针对某些层的权重和参数进行调整训练,能够减少存储空间和加速部署,但存在一些性能和模型质量的损耗。

LoRA在保留基座模型全部参数的同时,拆分出权重矩阵的更新并进行矩阵分解,通过调整训练这个由低秩矩阵乘积表示的更新矩阵来减少存储空间的同时保留了模型的质量和微调速度。

LoRA原理

LoRA的详细论文介绍可以阅读参考资料2(LORA: LOW-RANK ADAPTATION OF LARGE LAN- GUAGE MODELS)。其原理如下图所示:对于一个预训练好的基座模型,保留其原有的权重矩阵W不变,仅微调训练更新部分,且这个更新权重矩阵被分解成A和B两个低秩矩阵。下图中A矩阵初始化为高斯分布矩阵,B矩阵初始化为0矩阵。

数学表达:

h=W_{0}x + \Delta Wx=W_{0}x+BAx

其中的B\in \mathbb{R}^{d\times r}A\in \mathbb{R}^{r\times d},同时r << d。

这里的好处显而易见,假设d=10000, r = 8,在使用LoRA前需要对10000 * 10000共计1亿个参数进行计算更新,而LoRA仅需要10000*8 + 8*10000共计16万个参数的更新计算。论文中使用的模型是“GPT-3 175B”,这个差距读者可以自行计算。

具体微调时会引入两个超参数:\alphar,它俩的比\alpha / r\Delta W进行缩放,类似学习率(learning rate)超参数来控制\Delta W的更新步长。

这里有个疑问,为什么将\Delta W能进行分解呢?这里就涉及到矩阵秩和列向量的线性相关性之类的数学概念,以及参考资料3中的发现。有兴趣的读者可以自己再深究。

同时,参考资料2作者还发现仅对W_{q}进行分解更新的效果不够,但对全部4个权重矩阵进行更新并没有大幅提升,对W_{q}W_{v}进行分解更新就能取得足够好的效果,一般r取4或者8:

参考资料:

1. YouTube LoRA explained (and a bit about precision and quantization)

2. LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

3. INTRINSIC DIMENSIONALITY EXPLAINS THE EFFEC- TIVENESS OF LANGUAGE MODEL FINE-TUNING

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

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

相关文章

小红书释放被封手机号 无限注册

前几年抖音也可以释放被封手机号 那时候都不重视 导致现在被封手机号想释放 基本不可能的 或者就是最少几百块 有专业的人帮你通过某些信息差释放 本教程是拆解 小红书被封手机号怎么释放&#xff0c;从今年开始&#xff0c;被封的手机号无法注销了 所以很困扰 那么本教程来…

TypeScript中的数据选择艺术:pick和omit操作入门

引言 标题&#xff1a;TypeScript中的数据选择艺术&#xff1a;pick和omit操作入门简短介绍&#xff1a;探索TypeScript中的实用工具类型Pick和Omit&#xff0c;它们可以帮助你从现有类型中选择或排除属性&#xff0c;简化你的代码并提高类型安全性。 背景知识 易于理解的解…

基于一种改进小波阈值的微震信号降噪方法(MATLAB)

微震是指岩体由于在人为扰动或自然原因下受力变形&#xff0c;发生破裂过程中能量积聚而释放的弹性波或应力波。微震信号具有信噪比低、不稳定性、瞬时性和多样性等特点。因此&#xff0c;在任何损坏之前都会出现微小的裂缝&#xff0c;这种微小的裂缝是由岩层中应力和应变的变…

PPT职场课:话术+技巧+框架+案例,告别只会念PPT不会讲(8节课)

课程目录 001-讲PPT如何开场及导入?5个简单实用的方法.mp4 002-讲PPT如何过渡衔接结尾?6类话术争来就用.mp4 003-掌握这3个逻辑表达万能框架&#xff0c;搞定98的PPT.mp4 004-学会这3种PPT结构讲解技巧告别只会念不会讲(上).mp4 005-学会这3种PPT结构讲解技巧告别只会念…

Logstash分析MySQL慢查询日志实践

删除匹配到的行&#xff0c;当前行信息不记录到message中

106网页短信群发平台

什么是106网页短信群发平台&#xff1f; 106网页短信群发平台是一种便捷的在线群发工具&#xff0c;通过该平台用户可以方便地向大量的手机号码*。相比传统的群发方式&#xff0c;106网页群发平台具有更高效、更便捷的特点。 为什么选择106网页短信群发平台&#xff1f; 高效快…

浙大×移动云,携手点亮AI新时代

近年来&#xff0c;中国移动依托强大的算网资源优势&#xff0c;围绕大模型训练、推理和应用三大场景&#xff0c;打造了一站式智算产品体系。该体系旨在为客户提供覆盖资源、平台、应用的AI全链路服务。目前&#xff0c;一站式智算产品体系已在浙江大学智算中心和许昌中原智算…

C++:编程界的王者,引领未来的创新之路

在编程语言的浩瀚星空中&#xff0c;C犹如一颗耀眼的恒星&#xff0c;以其卓越的性能、深厚的底蕴和广泛的应用领域&#xff0c;持续引领着编程界的发展。它不仅在当下拥有无可替代的地位&#xff0c;更在未来展现出无限的潜力和可能性。 一、C&#xff1a;编程界的王者风范 …

事务transaction与其的acid特性

DDL DML CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT COMMENT 学号,createDate datetime DEFAULT NULL COMMENT 创建时间,modifyDate datetime DEFAULT NULL COMMENT 修改时间,userName varchar(30) NOT NULL COMMENT 学生名称,pwd varchar(36) DEFAULT NULL …

若依框架dialog弹窗取消点击空白出关闭

如果想全局取消的话就找到main.js在里面加上下面的一行代码&#xff0c;添加完成之后记得清楚浏览器缓存重新加载js文件。 Element.Dialog.props.closeOnClickModal.default false;如果想指定某个弹窗取消点击空白处关闭&#xff0c;那么就找到那个弹窗加上。添加完毕之后刷新…

【python】基于岭回归算法对学生成绩进行预测

前言 在数据分析和机器学习领域&#xff0c;回归分析是一种预测连续数值的监督学习技术。当数据特征与目标变量之间存在线性关系时&#xff0c;线性回归模型尤其有用。然而&#xff0c;当特征数量多于样本数量&#xff0c;或者特征之间存在多重共线性时&#xff0c;普通最小二…

unaipp推荐算法的汽车租赁系统zaxzu 微信小程序hbuiderx

随着现代汽车租赁管理的快速发展&#xff0c;可以说汽车租赁管理已经逐渐成为现代汽车租赁管理过程中最为重要的部分之一。但是一直以来我国传统的汽车租赁管理并没有建立一套完善的行之有效的汽车租赁管理系统&#xff0c;传统的汽车租赁管理已经无法适应高速发展&#xff0c;…

基于SpringBoot+Vue点餐系统设计和实现(源码+LW+部署讲解)

&#x1f339;作者简介&#xff1a;✌全网粉丝10W&#xff0c;前大厂员工&#xff0c;多篇互联网电商推荐系统专利&#xff0c;现有多家创业公司&#xff0c;致力于建站、运营、SEO、网赚等赛道。也是csdn特邀作者、博客专家、Java领域优质创作者&#xff0c;博客之星、掘金/华…

1.02.02 虚拟化与容器化Docker环境搭建

1.02.02 虚拟化与容器化Docker环境搭建 ******************************************************************************* *******************************************************************************

nginx的应用部署nginx

这里写目录标题 nginxnginx的优点什么是集群常见的集群什么是正向代理、反向代理、透明代理常见的代理技术正向代理反向代理透明代理 nginx部署 nginx nginx&#xff08;发音同enginex&#xff09;是一款轻量级的Web服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&…

「Java开发指南」如何用MyEclipse搭建GWT 2.1和Spring?(一)

本教程将指导您如何生成一个可运行的Google Web Toolkit (GWT) 2.1和Spring应用程序&#xff0c;该应用程序为域模型实现了CRUD应用程序模式。在本教程中&#xff0c;您将学习如何&#xff1a; 安装Google Eclipse插件为GWT配置一个项目搭建从数据库表到一个现有的项目GWT编译…

学习前端第二十九天(可迭代对象,映射和解构【弱】,Object.keys values)

一、可迭代对象 1、Symbol.iterator方法&#xff0c;使对象可迭代 [Symbol.iterator]() {let i 5;return {next() {i--;return { done: !i, value: i }}}} next&#xff08;&#xff09;方法返回的结果的格式必须是{done&#xff1a;Boolean&#xff0c;value&#xff1a;a…

有关while((c=getchar())!=\n)和while((ch=getchar()!=EOF))

Ⅰ 详解 while((cgetchar())!\n) \n是回车符&#xff0c; ch getchar()从键盘输入一个字符&#xff0c; 整句话的意思就是&#xff0c;当从键盘输入回车符时&#xff0c;循环结束 while((chgetchar()!EOF)) 1.分别介绍getchar和EOF int getchar(void) 使用键盘输入字符&a…

RocketMq 实战总结

1.org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout 大量执行批量发送操作时偶现该问题&#xff0c;通过调整增加发送超时时间解决 2.consumeThreadMin(消费者最小线程数) consumeThreadMax(消费者最大线程数) 由于mq使…

【kettle015】kettle访问Hive数据仓库并处理数据至execl文件(最近完善中)

1.一直以来想写下基于kettle的系列文章&#xff0c;作为较火的数据ETL工具&#xff0c;也是日常项目开发中常用的一款工具&#xff0c;最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下Hive数据仓库相关知识体系 3.欢迎批评指正&#xff0c;跪谢一键三连&am…