Skip to main content
PromptQuorumPromptQuorum

LoRA 与全量微调:该用哪一种?

快速回答

除非你拥有大规模高质量数据集,并且有足够的 VRAM 支持全量微调,否则应优先选择 LoRA。LoRA 在冻结的基础模型之上训练少量新增权重,占用内存远更少,对大多数任务仍能有效调整模型行为。

  • LoRA 冻结基础模型,只训练少量新增权重矩阵——VRAM 成本低得多。
  • 全量微调更新每个参数,在数据充足且干净的情况下,质量可能略优于 LoRA。
  • LoRA 适配器是可在同一基础模型上替换使用的小文件。

更新于: 2026年7月14日

Technique & Concept Explainers中级

关键要点

  • LoRA 冻结基础模型并训练少量新增权重,所需 VRAM 远低于全量微调
  • 全量微调更新每个参数,在数据规模大且干净的情况下可达到略高的质量
  • LoRA 适配器是体积小、可替换的文件——多个任务专用适配器可共用一个基础模型
  • 全量微调需要 80GB 以上 VRAM 的 7B 模型,用 LoRA 通常可在单张消费级 GPU 上完成微调

最佳选择:多数本地环境首选 LoRA

LoRA 是在消费级硬件上适配本地模型的正确默认选择,因为它只训练极少部分参数,却能在大多数指令跟随和风格适配任务上取得接近全量微调的效果。以下情况请使用 LoRA:只有一张消费级 GPU、数据集规模是数千(而非数百万)条样本,或者希望在不为每个变体保存完整副本的前提下,保留同一基础模型的多个任务专用版本。

以下情况请使用全量微调:拥有大规模、精心整理的数据集(通常是数十万条样本或更多)、可使用多张高 VRAM GPU,且任务需要对模型底层表示做出比 LoRA 新增矩阵所能捕捉的更深层次的改变。如果拿不准,先从 LoRA 开始——它迭代更快,如果质量遇到瓶颈,之后可以升级为全量微调。

主要区别

LoRA(低秩自适应)在保持原始权重冻结的同时,向模型插入少量可训练的权重矩阵,与更新每个参数相比,大幅降低了训练所需的内存和算力。训练时仍需加载冻结的基础模型,但优化器只需为新增的小矩阵跟踪梯度,这正是 VRAM 节省的主要来源。

全量微调更新整个模型,在大规模、精心整理的数据集上可能取得略好的结果,但由于输出是模型的完整副本而非一个小的适配器文件,所需的 VRAM 和存储空间要大得多。全量微调的优化器状态(尤其是使用 Adam 等常见优化器时)通常需要模型自身内存占用的数倍,这也是为什么对 7B 模型进行全量微调通常需要多张高 VRAM GPU。

LoRA全量微调
更新的参数仅新增的小矩阵模型中的每个参数
典型 VRAM 需求(7B 模型)单张消费级 GPU,通常低于 24GB多张高 VRAM GPU
输出产物小型适配器文件(数 MB)完整模型副本(数 GB)
可跨任务替换可以——多个适配器共用一个基础模型不可以——每次结果都是独立的完整模型

各自的适用场景

在调整模型的语气、格式或狭窄任务行为时选择 LoRA——这正是 LoRA 新增矩阵能很好捕捉、又不影响模型更广泛知识的那类变化。当任务需要模型吸收大量新的事实性知识,或需要在极广泛的输入范围内从根本上改变行为时,选择全量微调——这类任务从更新每个参数中获益更多。

如果拿不准,先从 LoRA 开始,在自己的保留测试集上评估质量,再考虑全量微调——LoRA 的迭代速度(训练更快、检查点更小)让你可以更低成本地先尝试不同的数据组合和超参数。

常见问题

可以在同一个基础模型上组合使用多个 LoRA 适配器吗?
可以——LoRA 适配器体积小且可替换,因此可以针对同一个冻结的基础模型训练多个任务专用适配器,并按需加载,而无需在磁盘上保留多个完整模型副本。
与全量微调相比,LoRA 会降低输出质量吗?
对大多数指令跟随和风格适配任务而言,LoRA 与全量微调之间的质量差距很小。当任务需要模型吸收大量新的事实性知识时,这一差距会明显拉大,此时全量微调能更新每个参数的能力优势更明显。
可以把 LoRA 适配器合并回基础模型吗?
可以——LoRA 适配器可以合并到基础模型的权重中,生成一个独立的标准模型文件,这样推理时就不再需要单独加载适配器,但也失去了为其他任务替换适配器的能力。
与全量微调相比,LoRA 微调实际能节省多少 VRAM?
具体数字取决于模型大小、LoRA 秩和优化器选择,但相比对同一基础模型进行全量微调,LoRA 通常能将所需训练 VRAM 降低约一个数量级,因为梯度和优化器状态只需针对新增的小矩阵进行跟踪。