← 专题深读

专题深读 · 2026-10-19 · 基础

LoRA:只改动一小部分来微调大模型的方法

LoRA 是一种高效的微调方法:冻结预训练模型的权重,只在每一层附加两个很小的矩阵并对其进行训练。QLoRA 在此基础上加入 4 比特量化,使单张 GPU 就能微调多达 650 亿参数的模型。

目录
要点
  • 全量微调需要为每个任务单独保存一个与原模型同样大小的模型,模型越大,负担就越难以承受。
  • LoRA 固定原始权重,只把“变化量”作为两个小矩阵(A·B)的乘积来学习。这一方法依赖的假设是:权重的变化量实际上只需少数几个方向就足以表示(低秩)。
  • 训练得到的 A·B 在部署时可以合并到原始权重中,因此与适配器方法不同,不会拖慢推理。
  • QLoRA 将冻结的主干模型量化为 4 比特,大幅降低了内存占用,同时还提出了“数据质量比数量更重要”的观察。
  • 近期研究正朝着几个方向推进:解释 LoRA 为何有效的理论、缩小与全量微调的性能差距,以及按任务切换适配器的实用系统。

为什么需要它:全量微调的负担

LLM(大语言模型)通常先在海量通用数据上预训练,再针对摘要、问答、SQL 生成等特定任务重新训练后使用。这第二个阶段就是微调。最简单的方法是全量微调,即重新调整模型的所有参数(模型通过训练确定的那些数值)。

问题在于规模。LoRA 论文(paper)以 GPT-3 175B 为例指出,为每个任务单独构建并部署一个拥有 1,750 亿参数的模型,成本高到难以承受。哪怕只做客服、法律文书、代码审查三个版本,也会产生三份与原模型同样大小的模型。训练时还必须把所有参数的梯度和优化器状态(训练算法为每个参数单独保存的辅助值)载入 GPU 内存。

此前已有只调整部分参数或附加小型外部模块的方法。但据同一篇论文所述,这些方法往往会让模型变得更深从而拖慢推理,或缩短模型可用的输入长度,或达不到全量微调的性能。效率与质量只能二选一。

核心思想:原书不动,只贴便利贴

假设要把一本厚厚的专业教科书改得适合自己的工作。不必重印整本书,只需保持原书不变,在需要的地方贴上便利贴即可。工作变了,就换一叠便利贴。LoRA(Low-Rank Adaptation,低秩适应)做的正是这件事。

这一方法之所以可行,依据的是“变化量很简单”这一假设。LoRA 论文(paper)基于先前的研究,假设模型适应新任务时权重的变化量具有较低的“内在秩”。秩简单来说,就是表示一个矩阵实际上沿多少个独立方向变化的数。如果变化量只需少数几个方向就能解释,那么就不必学习整个巨大的矩阵,只要找出这些方向即可。

效果显著。同一篇论文报告称,与用 Adam 对 GPT-3 175B 进行全量微调相比,需训练的参数量减少了 1 万倍,GPU 内存需求减少了 3 倍。训练参数可以小到原模型的 0.01% 左右,并且在 RoBERTa、DeBERTa、GPT-2、GPT-3 上的质量与全量微调相当甚至更好。

LoRA 论文报告的节省效果

1 万倍训练参数减少
3 倍GPU 内存减少
0.01%训练参数占原模型比例
这是 LoRA 论文报告的数值,比较对象是用 Adam 对 GPT-3 175B 进行全量微调。

如何工作:冻结权重旁附加的两个小矩阵

Transformer 的每一层都有用于变换输入的大型权重矩阵(例如注意力中的查询、键、值矩阵)。LoRA 将原始权重 W 原样冻结,然后在其旁边并列附加两个小矩阵。矩阵 A 把输入压缩到一个很窄的空间(宽度 r),矩阵 B 再把它扩展回原来的大小。A 与 B 的乘积用来代替“变化量”。

一次计算的流程如下:1)输入进来后经过冻结的 W,得到原始输出。2)同一输入经过 A 变窄,再经过 B 重新变宽。3)把两个结果相加作为最终输出。4)训练时只更新 A 和 B,不改动 W。因此,对于大部分参数,既不需要保存梯度,也不需要保存优化器状态。

宽度 r 可以小到什么程度?LoRA 论文(paper)报告称,在 GPT-3 175B 上,即使原始维度为 12,288,r 取 1 或 2 也已足够。而且部署时可以预先把 B×A 加到 W 上,合并为一个矩阵。这样推理时的计算路径与原模型完全相同,不会因附加模块而变慢。如果不合并、单独保存 A·B,也可以在同一个主干模型上按任务切换不同的 LoRA。

LoRA 单层的计算路径输入 → 原始权重 W; 输入 → 矩阵 A; 矩阵 A → 矩阵 B; 原始权重 W → 相加; 矩阵 B → 相加; 相加 → 输出; 矩阵 B → 部署时合并到 W(可选)输入原始权重 W冻结(不训练)矩阵 A压缩到宽度 r矩阵 B扩展回原大小相加输出部署时合并到 W无推理延迟可选
LoRA 单层的计算路径 输入分成两路,分别经过冻结的原始权重和小矩阵 A·B,然后相加。训练只针对 A·B,部署时可以把 B×A 合并到原始权重中。

发展脉络:从 LoRA 到 QLoRA

LoRA(paper,2021)确立了“冻结主干模型,只训练小型低秩矩阵”的框架。它大幅减少了训练参数和存储空间,支持按任务切换模块,并且没有推理延迟,这一点使其区别于已有的适配器方法。不过,训练时冻结的主干模型本身仍需以 16 比特等原始精度载入 GPU 内存。

QLoRA(paper,2023)减轻的正是主干模型的这部分负担。据论文所述,以常规 16 比特微调 LLaMA 65B 需要超过 780GB 的 GPU 内存。QLoRA 将冻结的主干模型量化为 4 比特(用更少的比特表示数值以减小体积的技术),并在其上附加 LoRA,让梯度经由量化后的权重传回 LoRA 部分。结果是,微调 65B 模型所需内存降到了 48GB 以下,并且据报告保持了与 16 比特全量微调相同的性能。

为此它增加了三项设计:针对服从正态分布的权重设计的 4 比特数据类型 NF4(4-bit NormalFloat);双重量化,即对量化所用的辅助常数也再做量化,平均每个参数节省约 0.37 比特(65B 模型约 3GB);以及分页优化器,把处理长输入时出现的内存骤增转移到 NVIDIA 统一内存中。论文还指出,只有把 LoRA 附加到所有层上,才能基本避免先前研究中出现的精度损失。

QLoRA 论文利用节省下来的资源训练了 1,000 多个模型,并提出了关于数据的观察:9 千个样本的 OASST1 在聊天机器人性能上优于 45 万个样本(子集抽样)的 FLAN v2,由此总结出数据质量远比数量重要。用这种方法构建的 Guanaco 模型据称在 Vicuna 基准上,以单张 GPU 训练 24 小时即达到 ChatGPT 性能的 99.3%。

全量微调 · LoRA · QLoRA

全量微调更新所有参数

  • 每个任务保存一个原大小模型
  • 需要所有参数的梯度和优化器状态
  • 65B 以 16 比特训练需超过 780GB

LoRA冻结主干,只训练 A·B

  • 每个任务只保存小型 A·B
  • 部署时合并则无推理延迟
  • 主干以原始精度载入内存

QLoRA4 比特主干 + LoRA

  • NF4·双重量化·分页优化器
  • 65B 训练降至 48GB 以下
  • 报告保持 16 比特性能

공통 三者都是让预训练模型适配特定任务的微调方法

并列比较三种方法各自训练什么、节省什么。

近期发展方向

第一,试图解释“LoRA 为何有效”的理论研究。有限秩瓶颈研究(paper)指出,LoRA 虽已成为参数高效微调的标准,但关于为何低秩就已足够的理论解释仍不完整。该研究注意到,冻结主干模型后,损失函数只能通过由冻结激活值构成的有限秩通道来“看到”每个权重矩阵。由此它表明,所需的秩并不取决于数据量,而取决于这一通道的秩,即“瓶颈秩”。

第二,缩小与全量微调性能差距的尝试。DT-LoRA(paper)的出发点是 LoRA 的性能往往低于全量微调。分析原因后发现,分解后的更新只在当前低秩因子所确定的空间内移动,而该空间之外的梯度分量占据了大部分梯度能量。因此,它把固定的秩预算分为稳定分支和动态分支,用来捕捉这些外部方向中的主要部分。据报告,在不增加相对 LoRA 的训练参数或推理成本的情况下,它在视觉和语言任务上都取得了稳定提升。

第三,“切换 LoRA”的实用系统。一项医学影像解读研究(paper)把 Qwen3.5-9B 以 4 比特冻结作为一个共享主干模型,在其上附加按任务划分的 LoRA 适配器,并根据输入的问题选择相应的适配器。系统覆盖六类任务和七种影像类型,并为每个任务分别调整了适配器的秩和提示词。最终容器为 30.1GB,每个病例平均耗时 3.1 秒。作者表示效果因任务而异,并将此解读为支持按任务采用不同配置的结果。不过,这是在竞赛评测集上测得的结果,并不代表真实临床环境中的性能。

LoRA 研究脉络图 LoRA 确立了框架,QLoRA 把主干模型压缩到 4 比特。右侧展示了 2026 年的研究分别朝理论、性能和实用系统方向推进的情况。

局限与争议

性能差距并不总会消失。LoRA 论文(paper)在多个模型上报告了与全量微调相当或更好的质量,但 DT-LoRA(paper)的出发点则是 LoRA 的性能往往低于全量微调。由于更新被限制在低秩空间中,当任务所需的变化并不简单时,就可能吃亏。秩 r 取多大、附加到哪些层,很多时候仍需靠实验来确定。

关于“为何有效”的解释也仍在推进中。正如有限秩瓶颈研究(paper)所指出的,已有分析大多依赖于在预训练权重附近对网络做线性近似。低秩就已足够这一点,起初更接近经验性观察,理论支撑现在才逐步积累。

评估问题也随之而来。QLoRA 论文(paper)指出,GPT-4 评估与人工评估的排名大体一致,可以作为低成本的替代方案,但也存在明显不一致的情况,而且当时的聊天机器人基准并不足以可靠地准确衡量性能。此外,MMLU 得分高并不意味着 Vicuna 聊天机器人得分也高。既然现在可以用较低成本进行大量微调,确认“究竟在哪方面变好了”的评估就变得更加重要。

延伸学习

起点是 LoRA 原论文(paper)。只读第 1 章引言和第 2 章问题定义,就能把握全量微调在存储与部署上的负担,以及“用少量参数表示变化量”的思路。第 3 章“已有方案还不够吗?”对适配器方法的推理延迟问题做了比较。

接下来是 QLoRA(paper)。如果在实践中要用单张 GPU 微调大模型,最好了解 NF4、双重量化和分页优化器各自在哪里节省内存。关于数据质量和评估方法的分析也值得一并阅读。

之后若想了解最新动向,选三篇即可。对理论感兴趣,可以从有限秩瓶颈研究(paper)读起;对提升性能的变体感兴趣,可以从 DT-LoRA(paper)读起;对用一个主干模型运行多个任务的系统设计感兴趣,可以从医学影像适配器研究(paper)读起。

相关术语

微调 量化 参数 Transformer 后训练 模型合并 GPTQ·AWQ VRAM

参考资料

奠基论文

最新研究

由 AI 根据所列参考资料撰写并经过审核。详情请查看原始资料。