LoRA 适配器:用更少的计算微调大模型
LoRA(Low-Rank Adaptation,低秩适配)是一种 微调大模型 的方法,可以大幅减少计算量和显存占用,让我们在 普通显卡 上也能微调大模型(比如 LLaMA-3、GPT)。
为什么要用 LoRA?
传统微调(Fine-tuning) 需要修改模型所有参数,训练时显存占用巨大,计算量也很高,对 普通显卡不友好。
LoRA 适配器 只调整 一小部分参数,保留原模型参数不变,从而 降低计算成本,适合 低显存 GPU(如 Colab、RTX 3090)。
LoRA 的核心思想
✅ 不修改原模型权重,而是在某些层(如全连接层)旁边加一个 LoRA 适配器 来学习新的信息。
✅ 只训练 LoRA 适配器的参数,而不动原模型,这样参数量 减少上千倍,显存占用也大幅下降。
📌 类比理解:
- 传统微调 就像 重新装修整个房子,改动很大,耗时耗力。
- LoRA 微调 就像 在现有房子里摆放一些新家具,房子不变,但风格可以调整,成本更低。
LoRA 适配器是如何工作的?
LoRA 主要应用于 线性层(Linear Layer),核心做法是 在权重矩阵旁边加上一个小的可训练矩阵,用数学公式表达如下:
假设原始权重矩阵是 ( W )
-
传统微调会 直接更新 ( W ),导致参数量很大
-
LoRA 让 ( W ) 保持不变,而是 添加两个小矩阵 ( A ) 和 ( B ):
[
W’ = W + A \times B
]
其中:
- ( W ) 是 原模型权重(不变)
- ( A ) 和 ( B ) 是 LoRA 适配器(新增的参数,训练时只更新这部分)
📌 直白解释:
- 传统方法:直接改 大模型的核心权重,训练很慢,显存占用大。
- LoRA 方法:给大模型加“外挂”适配器,只改一小部分参数,训练更快,显存占用小。
LoRA 适配器的优点
✅ 节省显存:微调 LLaMA-3 8B 这种大模型,传统方法可能需要 100GB 显存,LoRA 可能 10GB 就够。
✅ 训练更快:只训练一小部分参数,计算量小得多。
✅ 适配多任务:可以给 同一个模型装多个 LoRA 适配器,不用重复训练。
LoRA 适配器的应用
💡 假设你有一个 LLaMA-3 8B 基础模型,你想让它能回答金融领域的问题:
- 不使用 LoRA,你需要 重新训练 LLaMA-3 的所有参数,需要 几百 GB 显存,成本极高。
- 使用 LoRA,你 只训练 0.1% 的参数,原模型不变,成本低、速度快,适合普通显卡。
总结
📌 LoRA 适配器的作用:
- 让普通显卡也能微调大模型
- 不修改原模型参数,而是新增一个小的可训练“外挂”
- 显存占用更少,训练更快
- 适用于 LLaMA、GPT 等大语言模型的微调
所以,你在微调 LLaMA-3 的时候,LoRA 让你在 12GB 显存的 Colab 上也能训练,而不用上百 GB 的显存。