首页 > 其他分享 >研0学习笔记——大模型微调之LoRA技术

研0学习笔记——大模型微调之LoRA技术

时间:2024-07-07 17:29:47浏览次数:17  
标签:权重 训练 模型 微调 矩阵 笔记 LoRA

概念:LoRA(Low Rank Adaptaion of LLMs),即LLMs的低秩适应,可以做到只使用极少量参数的训练,达到微调整个模型的效果,解决了先前Adapter Tuning与Prefix Tuning的缺点。

应用:
1、在绘画应用stable diffusion中,LoRA以插件的形式嵌入模型中,使得用户可以下载相对于原模型(GB量级)更小的LoRA模型(MB量级)达到调整生成图像风格的效果。
2、在语言大模型ChatGPT-3中可以借助LoRA优化它在特定领域的表现,例如代码调试、法律咨询等特定领域。

原理:
1、将原微调参数矩阵(下图左)分解为A、B两个低秩的参数矩阵(下图右),使用原有的微调框架训练A、B矩阵,训练过程中并不会更新原模型的权重,而是在预测阶段时,按一定比例将A、B矩阵与原参数做加法,所以LoRA是一个附加的框架.
2、具体的做法是冻结了原模型的权重后,将可训练的低秩矩阵注入到原模型的各个层中,在LLMs中可以只注入到注意力层中。



细节:
1、开始训练时,矩阵B通过高斯初始化(kaiming初始化),矩阵A全零初始化(原作的说法是方式不重要,只需要初始两者相乘为零,且其中一者不为零即可)。
2、LoRA(即A、B矩阵)矩阵的秩:理想的情况是找到一个秩r,使得LoRA的低秩近似结构BA能具备全参数微调的增量矩阵ΔW的表达能力,能越接近越好。
2、LoRA权重系数α/r,一般取α=2*r,使得总权重为2,权重过大容易过拟合,过小容易效果不明显。

效果:按照LoRA论文报告的结果,LoRA微调使得在训练GPT3 175B时的,显存消耗从1.2TB降至350GB,通过调整batchsize和数据精度可以消耗更低。

标签:权重,训练,模型,微调,矩阵,笔记,LoRA
From: https://blog.csdn.net/weixin_53960324/article/details/140249089

相关文章

  • Django详细笔记
    django学习特点快速开发安全性高可伸缩性强URL组成部分URL:同意资源定位符一个URL由以下几部分组成scheme://host:port/path/?query-string=xxx#anchorscheme:代表的是访问的协议,一般为http或https协议host:主机名,域名port:端口http默认:80端口https默......
  • LSTUR论文阅读笔记
    NeuralNewsRecommendationwithLong-andShort-termUserRepresentations论文阅读笔记这个同样是一篇很老但是比较经典的文章,这里来读一下Abstract存在的问题:​ 用户通常既有长期偏好,也有短期兴趣。然而,现有的新闻推荐方法通常只学习用户的单一表征,这可能是不够的。提出......
  • 基于Sentence Transformer微调向量模型
    SentenceTransformer库升级到了V3,其中对模型训练部分做了优化,使得模型训练和微调更加简单了,跟着官方教程走了一遍,顺利完成向量模型的微调,以下是对官方教程的精炼和总结。一所需组件使用SentenceTransformer库进行向量模型的微调需要如下的组件:数据数据:用于训练和评估的数......
  • mini-lsm通关笔记-字符相关操作
    本文捋一下mini-lsm中的字符相关操作[u8]Vec<u8>BytesBufKeySliceKeyBytes[u8]和Vec<u8>这两个是rust内置的数据类型。[u8]:切片本身并不拥有数据,而是引用了数据。它由一个指向数组开始处的指针和一个表示数组长度的计数器组成。[u8]类型通常写作&[u8],这是因为切片通......
  • 信号与系统笔记分享
    文章目录一、导论信号分类周期问题能量信号和功率信号系统的线性判断时变,时不变系统因果系统判断记忆性系统判断稳定性系统判断二、信号时域分析阶跃函数冲激函数取样性质四种特性1筛选特性2抽样特性3展缩特性4卷积特性卷积作用冲激偶函数奇函数性质公式推导与证......
  • 操作系统笔记分享(第二章 进程的描述与控制)
    文章目录介绍二、进程的描述与控制2.1前驱图和程序执行前驱图程序并发执行2.2进程的描述进程控制块PCB进程特征进程状态PCB的作用PCB的信息1.进程标识符2.处理机状态3.进程调度信息4.进程控制信息PCB的组织方式1.线性方式2.链接方式3.索引方式2.3进程控制......
  • 操作系统笔记分享(第三章 处理机的调度与死锁)
    文章目录介绍三、处理机的调度与死锁3.1处理机调度概述处理机调度层次高级调度中级调度低级调度进程调度的任务和方式处理机调度算法的目标3.2调度算法先来先服务(FCFS)短作业优先(SJF)抢占式非抢占式优先级(PR)高相应比优先调度算法(HRRN)时间片轮转(RR)多级队列多级反馈队......
  • 仅做笔记用:base64字符串转换为十六进制形式表示的二进制数据
    使用JavaScript实现一个函数,参数是一个base64的字符串,将这个字符串解析成二进制数据,并将这个二进制数据的每个字节以一个十六进制两位数表示出来,每个字节的十六进制两位数之间空一格,每行16个字节,返回整理好的十六进制形式。functionbase64ToHex(base64Str){//解析ba......
  • TypeScript笔记(一)
    一、TypeScript=Type+JavaScript  在JS基础上,为JS增加了类型支持。TS属于静态类型的编程语言,在编译期间做类型检查,可以在代码编写期间发现问题,减少调试时间。TS相比JS的优势:1、更早的发现错误,减少调试时间;2、代码提示;3、提升可维护性;4、ECMAScript;5、TS有类型推断......
  • FFmpeg开发笔记(三十六)Linux环境安装SRS实现视频直播推流
    ​《FFmpeg开发实战:从零基础到短视频上线》一书在第10章介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。不过MediaMTX的功能实在是太简单了,无法应用于真实直播的生产环境,真正能用于生产环境的流媒体服务器还要看SRS或者ZLMediaKit。SRS是一......