大模型微调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就适用于这种映射维度过高的低秩矩阵,使用矩阵相乘的形式显著的降低模型参数数量,而且保持性能不变。

相关推荐
大数据在线1 小时前
布局Agentic AI,亚马逊云科技组合拳再升级
人工智能·openai·亚马逊云科技·智能体·agentic ai
8Qi82 小时前
回文子串(Palindromic Substrings)—— 题解
算法·leetcode·职场和发展·动态规划
皮皮学姐分享-ppx5 小时前
政府绿色采购数据库(2015-2024.3)
大数据·网络·数据库·人工智能·制造
GIS数据转换器5 小时前
基于3D GIS的监控视频精准标定平台
人工智能·物联网·3d·音视频·无人机·知识图谱
专注VB编程开发20年6 小时前
AI 生成C# WinForm 窗体 = 目前就是垃圾
开发语言·人工智能·c#
深小乐6 小时前
Claude Fable5 尝鲜,效果挺不错
人工智能
Nayxxu6 小时前
Gemini + RAG 企业知识库教程:从文档切片到答案生成
运维·人工智能
冬奇Lab6 小时前
真正的 AI-Native Workflow 是什么?——四个判断测试
人工智能·agent
冬奇Lab6 小时前
每日一个开源项目(第128篇):Agent Skills - 给 AI 编程 Agent 装上工程纪律
人工智能·开源·资讯
Deepoch7 小时前
Deepoc VLA开发板:采摘机器人的环境鲁棒作业与不确定性应对
人工智能·机器人·采摘机器人·deepoc