LoRA:低秩自适应
本章节是对轻松上手微调大语言模型——QLORA篇中提到的LoRA的原理解释。
背后动机
现今模型的参数量变得越来越大,对预训练模型进行全微调变得越来越不可行。为了解决这个问题有了LoRA(Low-Rank Adaption)的诞生。将可训练的秩分解矩阵注入到每个模型中架构的层,极大的减少下游任务的训练参数量。以GPT-3 175B微调为例,相较于以Adam微调的GPT-3 175B, LoRA 可以减少10000倍训练参数,并且所需的GPU内存减少3倍。
LORA的优势:
- LoRA 通过大幅减少可训练参数的数量,使微调更加高效。
- 原始预训练权重保持冻结状态,这意味着您可以拥有多个轻量级、便携式 LoRA 模 型,用于在其之上构建的各种下游任务。
- LoRA可以与其他许多方法结合使用,比如Prefix-tuning。
- 使用 LoRA 微调的模型的性能与完全微调的模型的性能相当。
思想
假设我们有权重位 W 0 W_0 W0密集层,以梯度 ∇ W 0 \nabla W_0 ∇W0更新。则新的权重为:
W 1 = W 0 + ∇ W 0 W_1=W_0+\nabla W_0 W1=W0+∇W0
经过 n n n次梯度下降得到: