完整题目
采用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。