一、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,实现更低的内存占用。
原理组合:
- 量化(Quantization):把原始 FP16 / FP32 的模型权重压缩成 4-bit。
- 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) | 更低(可在一张消费显卡上运行) |
训练方式 | 加入可训练低秩矩阵 | 先量化后加低秩矩阵 |
优点 | 简单、高效 | 极致压缩、适合本地微调 |
用途 | 多任务、多领域微调 | 本地/低资源环境微调大模型 |