使用 LoRA 微调相比纯 BERT 微调,训练速度会有明显提升
·
1. 可训练参数数量大幅减少
- 纯 BERT 微调:需要训练 BERT 的全部参数(例如
bert-base约 1.1 亿参数)+ 分类层 / CRF 层参数。 - LoRA 微调:仅训练 LoRA 适配器参数(通常仅占原参数的 0.1%-1%,例如
r=8时约 10 万 - 100 万参数)+ 分类层 / CRF 层参数。
参数数量减少意味着:
- 反向传播时计算梯度的开销大幅降低(梯度计算与参数数量正相关)。
- 内存占用减少,可支持更大的 batch size(进一步加速训练)。
2. 计算效率提升
LoRA 的核心是在原模型的注意力层(如 query/value)中插入低秩矩阵,前向传播时的额外计算量极小(可忽略不计),而反向传播仅需更新低秩矩阵的参数,避免了对整个 BERT 模型的参数更新。
相比之下,纯 BERT 微调需要对所有注意力层、隐藏层的参数进行更新,计算量巨大。
3. 实际训练速度提升幅度
具体提速效果取决于模型大小和 LoRA 配置(如r的取值),通常:
- 对于
bert-base级别的模型,LoRA 微调可提速 3-10 倍(batch size 相同的情况下)。 - 对于更大的模型(如
bert-large),提速会更明显(可能 10 倍以上)。
注意:推理速度基本不变
LoRA 仅影响训练阶段的速度,推理(预测)时可以将 LoRA 参数与原模型参数合并(通过peft的merge_and_unload方法),此时推理速度与纯 BERT 完全一致,不会有额外开销。
综上,LoRA 微调在保持模型性能接近纯微调的前提下,能显著加快训练速度,尤其适合资源有限的场景。
更多推荐
所有评论(0)