传统的微调(如下所示)在 LLM 上是不可行的。
这是因为 LLM 拥有数十亿个参数,体积高达数百 GB。
并非所有人都能获得如此强大的计算基础设施,而且从商业角度来看也不合理。
以下是对 LLM 进行微调的五种最优方法:
话虽如此,这些并不是 LLM 微调的唯一技术。
以下是一些流行微调方法的时间轴:
接下来,我们将逐一解析这些方法。
LoRA
Low-Rank Adaptation
在权重矩阵旁添加两个低秩可训练矩阵 A 和 B。
不直接微调原始权重矩阵 W,而是调整这些低秩矩阵的更新。
LoRA-FA
虽然 LoRA 大幅减少了可训练参数的总量,但仍需要大量激活内存来更新低秩权重。
LoRA-FA(其中 FA 代表 Frozen-A)通过冻结矩阵 A,仅更新矩阵 B,以进一步降低内存需求。
VeRA
Vector-based Random Matrix Adaptation
在 LoRA 中,低秩矩阵 A 和 B 在每一层都是独立的。
在 VeRA 中,A 和 B 被固定(冻结)、随机初始化,并在所有层之间共享。
取而代之的是,它学习针对每一层的特定缩放向量(b 和 d)。
Delta-LoRA
该方法同样会调整矩阵 W,但方式不同于传统微调。
它在每两个连续的训练步骤中,计算矩阵 A 和 B 的乘积之差(delta),并将其增量添加到 W。
LoRA+
在 LoRA 中,矩阵 A 和 B 采用相同的学习率进行更新。
LoRA+ 的研究者发现,对矩阵 B 设定更高的学习率可以提高收敛速度和效果。