什么是LoRA?

半兽人 发表于: 2025-05-19   最后更新时间: 2025-05-21 14:58:37  
{{totalSubscript}} 订阅, 160 游览

一、LoRA

LoRA,英文全称Low-Rank Adaptation of Large Language Models,直译为大语言模型的低阶适配,是微软的研究人员为了解决大语言模型微调而开发的一项技术。

例如,GPT-3有1750亿参数,为了让它能干特定领域的活儿,需要做微调,但是如果直接对GPT-3做微调,成本太高。

就像给一个“学霸”补课,让它从“通才”变成某个领域的“专家”

LoRA的做法是,冻结预训练好的模型权重参数,然后在每个Transformer(Transforme就是GPT的那个T)块里注入可训练的层,由于不需要对模型的权重参数重新计算梯度,所以,大大减少了需要训练的计算量。

测试发现,LoRA的微调质量与全模型微调相当。

LoRA优点

  • 训练速度更快
  • 计算需求更低
  • 训练权重更小,因为原始模型被冻结,我们注入新的可训练层,可以将新层的权重保存为一个约3MB大小的文件,比UNet模型的原始大小小了近一千倍。

如果比喻的话,就好比是大模型的一个插件。

二、QLoRA(Quantized LoRA)

QLoRA 是 LoRA 的升级版,结合了量化技术。它将大模型压缩为低位(如 4-bit)格式后再应用 LoRA,实现更低的内存占用。

原理组合:

  1. 量化(Quantization):把原始 FP16 / FP32 的模型权重压缩成 4-bit。
  2. LoRA 微调:在冻结量化权重的基础上,插入可训练的 LoRA 层。

关键技术点:

  • 使用 4-bit NormalFloat (NF4) 格式保留更多信息
  • 通过 paged optimizers(如 paged AdamW) 优化内存访问
  • 与 bitsandbytes 库配合使用(支持 4-bit/8-bit 量化)

优点:

  • 可在一张 24GB 显存显卡上微调百亿参数大模型
  • 微调性能接近全量微调
  • 非常适合个人和小团队微调 LLM

三、对比总结

项目 LoRA QLoRA
是否量化 是(4-bit)
显存需求 中等(8-bit、16-bit) 更低(可在一张消费显卡上运行)
训练方式 加入可训练低秩矩阵 先量化后加低秩矩阵
优点 简单、高效 极致压缩、适合本地微调
用途 多任务、多领域微调 本地/低资源环境微调大模型
更新于 2025-05-21
在线,4小时前登录

查看LLM更多相关的文章或提一个关于LLM的问题,也可以与我们一起分享文章