跳到正文

LoRA 微调比全量微调更慢吗?

前向传播、反向传播与优化器更新的计算效率分析

原题:采用LoRA进行大模型微调时,相比全量微调,是否会带来额外的训练时间开销?请从前向传播、反向传播和优化器更新角度分析其计算效率。

推理优化 · 百度真题

回答与解析

结论

LoRA的确定性优势是大幅减少可训练参数、参数梯度和优化器状态;它不保证单步训练一定比全量微调快。速度取决于实现、序列长度、batch、激活checkpoint和通信。

三个阶段

前向:对原线性层 W0x 增加低秩分支 B(Ax)。若 A∈R^(r×k)B∈R^(d×r),额外计算约为 O(rk+dr) 每个输入位置,不是 O(drk)。训练时A/B持续更新,不能像推理部署那样预先把 BA 永久合并进W0;额外分支可能使单步略慢。

反向:W0冻结后不计算或存储其参数梯度,但为了得到A/B以及更早层的梯度,仍需通过基座算子传播激活梯度。反向FLOPs不会与“可训练参数占比”同比下降,更不能据此宣称减少数百倍。

优化器:只为A/B维护Adam的梯度与一、二阶状态,显存和更新计算显著减少。这通常允许更大batch或让原本放不下的配置可训练,但基座权重和激活仍占空间;普通LoRA也不等于4-bit QLoRA。

如何比较

报告相同模型、序列长度、有效batch、精度、checkpoint策略和硬件下的tokens/s、step time、峰值显存与最终质量。训练完成后可合并 W=W0+BA 做无额外分支的线性推理,但量化权重是否能直接合并需按部署方案处理。

口语版讲法(约4分钟)

  • 先区分显存收益与单步速度
  • 计算前向低秩分支成本
  • 说明反向仍穿过基座
  • 分析优化器状态收益
  • 给出公平基准方法

我的结论是:LoRA通常显著省训练显存和优化器更新,但不能保证单步训练一定更快。很多说法把可训练参数少直接等同为反向计算少,这是不准确的。要分别看前向、反向和优化器三个阶段,还要固定序列长度、batch、精度和实现才能比较。

前向时,原线性层仍然计算W0乘x,旁边多一个低秩分支B乘A乘x。假设输入维k、输出维d、秩r,先算Ax的成本与r乘k相关,再算B乘结果的成本与d乘r相关,所以额外项是O(rk加dr),不是把d、r、k三者相乘。r远小于d和k时,额外项相对基座矩阵较小,但它毕竟是新增算子和读写,可能让step略慢。

训练期间A和B每步都在变化,不能像部署推理那样提前把BA永久合并到W0。否则每次更新后都要重新合并,还会改变训练图和开销。训练完成后,如果权重格式允许,可以把W等于W0加BA合并成一个线性层,从而在推理时不保留低秩分支;量化基座如何合并则要看具体格式。

反向阶段是第二个容易误解的地方。冻结W0意味着不用保存和更新W0的参数梯度,但为了求A、B的梯度,以及把梯度传到更早的层,激活梯度仍要经过基座线性层和整个网络。也就是说,反向FLOPs不会按可训练参数比例下降,更不能因为只训练百分之一参数,就宣称计算减少一百倍。

LoRA最大的确定性收益通常在优化器状态。全量微调要为大量参数维护梯度以及Adam的一阶、二阶状态,LoRA只为A、B维护这些内容,所以这部分显存和更新计算明显下降。省下来的容量可以换更大的batch、较长序列或更少GPU。但基座权重和训练激活仍然存在,普通LoRA也不能和4-bit量化基座的QLoRA混为一谈。

分布式训练时,LoRA还会改变通信结构:可训练梯度少了,但基座前向和激活通信未必少;小矩阵算子利用率也可能不如大GEMM。所以有人测到略快,也有人测到相近或略慢,都可能合理。不能给一个脱离硬件的二到五倍加速承诺。

公平测试时,我会固定模型、数据、序列长度、有效batch、混合精度、checkpoint策略和GPU,比较tokens每秒、step时间、峰值显存、通信占比和最终质量。这样可以准确说“显存节省多少、吞吐变化多少”,而不是从参数量直接推导训练时间。

此外,收敛到相同质量所需的训练step也可能不同。比较总训练时间时,既要看单步耗时,也要看达到同一验证指标需要多少step;只比较跑完固定轮数,不能证明哪种方法更高效。

关键一句:可训练参数比例很低,为何激活反向计算仍然大量存在。

核验来源

  1. LoRA: Low-Rank Adaptation of Large Language Models
  2. QLoRA: Efficient Finetuning of Quantized LLMs

面试官还可能这样问

  1. 问法 1 · 场景切入

    假设在同一 7B 模型、序列长度、有效 batch、精度和硬件上比较 LoRA 与全量微调。你会怎样拆解前向、反向和优化器更新时间,并用哪些实测指标判断谁更快?

  2. 问法 2 · 层层追问

    LoRA 前向额外计算什么?……冻结 W0 后是否仍要传播激活梯度?……哪些参数不再维护梯度与 Adam 状态?……为什么显存下降不代表单步时间同步下降?……怎样公平测 tokens/s?

  3. 问法 3 · 直球技术

    分析 LoRA 相对全量微调在前向、反向和优化器更新阶段的计算与内存开销,并给出不预设加速结论的基准测试方案。

同模块相关题目