Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

LoRA (Low-Rank Adaptation)

LoRA 通过冻结大模型的权重并训练小型低秩更新矩阵来微调模型,从而减少可训练参数、内存占用和存储需求。

LoRA 是低秩适配(Low-Rank Adaptation)的缩写,是一种参数高效微调(PEFT)方法。它冻结模型的原始权重,并在选定层旁训练一对小矩阵,从而让大型预训练模型适应新任务。两个矩阵的乘积构成一个低秩更新,并加到冻结权重上,因此只有极少一部分参数会获得梯度。LoRA 由 Microsoft 的 Hu 等人于 2021 年提出。与使用 Adam 进行完整微调相比,LoRA 将 GPT-3 175B 的可训练参数减少了 10,000 倍,将训练所需的 GPU 内存减少了 3 倍,同时在 RoBERTa、DeBERTa、GPT-2 和 GPT-3 上达到或超过完整微调的质量。如今,LoRA 被广泛用于在普通硬件上定制大型语言模型(LLM)、扩散模型和视觉 Transformer。LoRa 是用于 IoT 设备的远距离无线电协议,与此处所说的 LoRA 无关。

LoRA 的工作原理#

微调通过某个更新量 ΔW 改变大小为 d × k 的预训练权重矩阵 W。LoRA 假设该更新的内在秩较低,因此可以写成两个瘦矩阵的乘积:ΔW = B × A,其中 A 的大小为 r × k,B 的大小为 d × r,而秩 r 远小于 d 或 k。该层的输出变为 h = Wx + (α / r) × BAx,其中 α 是固定的缩放常数。A 使用较小的随机值初始化,B 则初始化为零,因此训练开始时模型与预训练模型完全相同。只有 A 和 B 会在反向传播期间更新,这也省去了所有冻结权重的优化器状态。

对于 4096 × 4096 的投影层,完整微调会训练约 1680 万个权重,而秩为 8 的适配器只训练 8 × (4096 + 4096) = 65,536 个权重。下面的 PyTorch 脚本会构建这样的适配器,并将它合并到冻结层中:

import torch
from torch import nn

# A frozen pretrained 4096 x 4096 projection, like one in a transformer attention block
base = nn.Linear(4096, 4096).requires_grad_(False)

# LoRA's trainable rank-8 update: B @ A, scaled by alpha / r
# B starts at zero, so the adapted layer initially matches the pretrained one
r, alpha = 8, 16
A = nn.Parameter(torch.randn(r, 4096) * 0.01)
B = nn.Parameter(torch.zeros(4096, r))
trainable = A.numel() + B.numel()
total = trainable + sum(p.numel() for p in base.parameters())
print(f"Trainable: {trainable:,} of {total:,} parameters ({trainable / total:.2%})")

# After training, merge the update into the base weight so inference costs nothing extra
nn.init.normal_(B, std=0.01)  # stand-in for trained values
x = torch.randn(2, 4096)
adapted = base(x) + (alpha / r) * (x @ A.T @ B.T)
merged = nn.functional.linear(x, base.weight + (alpha / r) * B @ A, base.bias)
print(f"Merged layer matches adapter output: {torch.allclose(adapted, merged, atol=1e-5)}")

该适配器训练的是该层 16,846,848 个参数中的 65,536 个,占 0.39%;将 B × A 合并到 W 中,与单独运行适配器会得到相同的输出。因此,合并后的 LoRA 模型运行速度与原始模型完全相同;相比之下,早期适配器层会在每次前向传播中增加额外计算。

在实践中使用 LoRA#

原论文只对 Transformer 的注意力查询投影和值投影进行适配,如今许多方案则会针对所有线性层。秩和 α 是主要的超参数:Hugging Face PEFT 库默认使用 r = 8 和 α = 8。由于基础模型保持不变,一次部署可以只保留一份模型副本,并按需切换小型任务适配器。对于 GPT-3 175B 的查询投影和值投影采用秩 4 时,每个适配后的检查点会从 350 GB 缩小到约 35 MB,体积约减少 10,000 倍。

  • 语言模型:团队可以在一块 GPU 上将开源 LLM 适配到特定领域、风格或指令格式,通常会将 LoRA 与指令微调数据结合使用。
  • 图像生成:LoRA 文件可以让 Stable Diffusion 等模型学习某种角色、产品或艺术风格,并且与基础检查点分开共享和叠加使用。
  • 视觉和多模态模型:适配器可以针对医疗、工业或文档图像定制视觉 Transformer 和视觉语言模型(VLM),而无需重新训练骨干网络。

变体#

  • QLoRA:将基础模型冻结为 4 位 NormalFloat 精度,并在其上训练 LoRA 适配器。Dettmers 等人使用这种方法,在单块 48 GB GPU 上微调一个 650 亿参数模型,同时保持了完整 16 位微调的性能。
  • DoRA:将每个预训练权重拆分为幅度和方向,只对方向应用 LoRA,因此在推理成本相同的情况下,能缩小与完整微调之间的精度差距。
  • 参数高效微调:只训练模型一小部分参数的方法的统称。冻结层是最简单的形式,Ultralytics YOLO 将其作为 freeze 训练参数提供:它会让 YOLO26 模型的前 N 层保持预训练权重,同时训练其余部分。
  • 全量微调:更新所有权重,并为每个任务保存一份完整大小的模型。在编程和数学任务上,全量微调的表现显著优于标准 LoRA,而 LoRA 能更好地避免基础模型的其他技能出现灾难性遗忘。
  • 提示调优:学习软提示嵌入,并将其添加到输入前面,同时冻结所有模型权重。
  • 迁移学习:将一个任务中的知识用于另一个任务的通用方法。LoRA 是一种高效的实现方式。
  • 模型合并:合并分别经过微调的模型权重;将多个 LoRA 适配器合并到一个基础模型中就是常见做法。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来