LoRA(Low-Rank Adaptation)
·
LoRA(Low-Rank Adaptation)是一种高效、低成本的模型微调方法,特别适用于像大语言模型(LLM)这样参数量巨大的神经网络。它由微软的研究人员在2021年提出,旨在解决传统微调(Fine-tuning)需要更新全部模型参数所带来的高计算和存储成本问题。
核心思想
传统的微调会更新预训练模型的所有参数,而LoRA的核心思想是:在微调过程中,不直接修改原始模型的权重,而是引入一组低秩(low-rank)的可训练参数来近似权重的变化。
具体来说,假设原始模型中某个层的权重矩阵为 W0W_0W0(例如一个 d×kd \times kd×k 的矩阵)。在微调时,权重的变化 ΔW\Delta WΔW 通常也是一个 d×kd \times kd×k 的矩阵。LoRA认为,这个变化 ΔW\Delta WΔW 可以被分解为两个低秩矩阵的乘积:
ΔW=B⋅A \Delta W = B \cdot A ΔW=B⋅A
其中:
- BBB 是一个 d×rd \times rd×r 的矩阵,
- AAA 是一个 r×kr \times kr×k 的矩阵,
- rrr 是一个远小于 ddd 和 kkk 的秩(rank),例如 r=8r=8r=8 或 646464。
因此,模型在推理时的实际权重变为:
W=W0+ΔW=W0+B⋅A W = W_0 + \Delta W = W_0 + B \cdot A W=W0+ΔW=W0+B⋅A
工作流程
- 冻结原始权重:在微调过程中,原始预训练模型的权重 W0W_0W0 被冻结,不参与梯度更新。
- 引入低秩矩阵:在需要微调的层(如注意力机制中的 Q,K,VQ, K, VQ,K,V 矩阵)旁边,注入可训练的低秩矩阵 AAA 和 BBB。
- 训练低秩矩阵:只对 AAA 和 BBB 进行反向传播和优化。
- 推理时合并:训练完成后,可以将 B⋅AB \cdot AB⋅A 加到 W0W_0W0 上,得到最终的权重,也可以在推理时动态计算。
优点
- 参数效率高:只需要训练少量参数(仅 AAA 和 BBB),大幅减少训练所需的显存和计算资源。
- 存储成本低:微调后的模型只需保存原始模型(共享)和一小部分LoRA权重,便于多任务共享和部署。
- 避免灾难性遗忘:由于原始权重被冻结,模型保留了预训练学到的通用知识。
- 易于切换任务:只需加载不同的LoRA权重,即可快速切换模型行为,适合多任务场景。
应用场景
- 大语言模型的个性化微调(如对话模型、写作助手)
- 多任务学习
- 资源受限环境下的模型适配
- 快速迭代和A/B测试
总结
LoRA是一种“旁路式”的微调方法,它通过低秩分解来近似权重更新,实现了高效、轻量的模型适配。它已成为当前大模型微调的主流技术之一,广泛应用于Hugging Face、PEFT等开源框架中。
更多推荐



所有评论(0)