大模型微调LoRA训练与原理

1.什么是LoRA?

LoRA的全称是LO W-R ANK-ADAPTATION。是一种实现迁移学习的技术手段。

  1. 矩阵的秩?

秩是一个向量空间的基向量的个数。例如:二维平面坐标系存在两个基向量,平面上任意的一个向量都可以使用这两个基向量进行线性表示,则秩为2。三维空间中则有3个基向量。3维空间存在很多对的基向量,而正交的基向量才是最简单的。秩是矩阵特有的属性。

  1. Transforerm中的矩阵有哪些?

很明显最常见的就是Q,V,K这3个矩阵了。在transformer中,一个字母的被embeding之后,又会被Q,K,V这个3个参数矩阵进行映射到D_model的512维度。这里假设输入的序列长度为100,embeding为256,则Q,K,V这3个矩阵的维度都是(256,512)。设矩阵M=(256,512)。则矩阵M的秩是小于或等于256的,如果M是满秩的则说明embeding为256可能是不够的,需要往大了调整。

但是如果矩阵M不是满秩矩阵,则说明embeding为256维度的向量空间是搓搓有余的。如果M的秩为100,则说明任意一个字符的embeding空间向量都可以使用这100个基向量来进行表示。

LoRA就是这么认为的,他直接认为大模型生成的各种向量空间的秩都很低(模型太胖了,容量很大)。

在数学上,这种非满秩矩阵都可以表示成两个矩阵的乘积。举个例子:M=(256,512),假设他的秩是100,那么则有(256,100)*(100,512) = (256,512)。再假设A=(256,100),B=(100,512),也就是矩阵M=A*B,即M可以使用两个矩阵乘积进行表示了。在这里计算一下参数减少量:1-(256*100+100*512)/(256*512)=41%。可以看到使用A*B代表矩阵M直接减少了41%的参数量,简直美滋滋啊。

  1. 如何应用LoRA进行模型微调?

模型微调是迁移学习的一张具体应用,而LoRA又是模型微调的一种技术手段。我们一般需要借助的是大模型强大的基础特征提取能力,再这个基础上fit特定领域的数据,也就是我们需要微调的部分。如下图所示,LoRA经常一种bypass的方式加在模型当中,训练时只更新LoRA部分的权重。可以看到大模型的权重是d×d的维度,而LoRA使用(d,r)*(r,d)两个矩阵进行相乘就可以得到d×d,然后两个特征进行相加即可,其中r是超参数,表示左边蓝色W矩阵的秩。

很明显,LoRA适用于模型中网络层体量很大的部分,比如Q,K,V这3个矩阵,即将每个字母的embeding映射到512维空间中是搓搓有余的,实际上可能映射到384维可能就是刚刚好的状态,LoRA就适用于这种映射维度过高的低秩矩阵,使用矩阵相乘的形式显著的降低模型参数数量,而且保持性能不变。

相关推荐
后端小肥肠7 小时前
挖到公众号漫画黑马赛道:简笔画小动物讲历史,漫画工坊一键直出
人工智能·aigc·agent
stsdddd7 小时前
YOLO算法建筑工地安全帽目标检测数据集16881张:标注核对笔记
算法·yolo·目标检测
IT_陈寒7 小时前
Redis的原子性竟然失效了?记一次分布式锁翻车实录
前端·人工智能·后端
MobotStone7 小时前
AI 写代码越来越爽,但程序员可能越来越废了
人工智能·设计模式
vibecoding777 小时前
FLUX 3 Image Klein 实战:int8 量化 8GB 显卡跑商用文生图,ComfyUI 完整部署流程
人工智能·计算机视觉·大模型
志尊宝8 小时前
AI原生前端开发(013):端侧文本生成实战:智能提示、自动补全
人工智能·prompt·ai-native
2601_965449088 小时前
开源工具做推广没预算?AI自动生成宣传视频的方案
人工智能·开源·音视频
会博通·代码搬运工8 小时前
粮食加工企业档案系统,如何对接 MES/ERP 与质检?——会博通采集与适配实践
人工智能·档案管理·企业数字化·ai赋能·档案系统·知识资产
愤怒火龙果8 小时前
AI攻防 AIRT03-RAG Exploitation & Vector Database Attacks
数据库·人工智能·网络安全
孟健8 小时前
Claude Code 接入 DeepSeek V4.1 与 MiniMax M3.1 实测:200+ TPS 下的代码准确率与 Token 账单
人工智能·llm·ai编程