链载Ai

标题: 【一文了解】大模型微调的方法LoRA [打印本页]

作者: 链载Ai    时间: 4 小时前
标题: 【一文了解】大模型微调的方法LoRA

大模型微调是深度学习中的一项关键技术,它允许我们在已有的预训练模型上,通过进一步的训练来适应特定的任务或数据集。在众多的Fine-Tuning方法中,LoRA(Low-Rank Adaptation)是一种轻量且高效的大型语言模型微调方法。与全参数微调相比,这种方法显著减少了训练的参数量,从而降低了GPU内存需求和训练时间。本篇我将为各位同学介绍一下大模型微调的方法-LoRA。

01
核心思想



LoRA的核心思想是假设大语言模型的预训练权重已经包含了丰富的知识,直接微调所有参数会非常耗时且需要大量的计算资源。微调的任务只是对这些知识进行轻微的调整。因此,LoRA并不直接修改预训练的权重,而是在模型的每一层注入低秩矩阵,通过训练这些低秩矩阵来实现模型的适配。
因此,LoRA通过引入两个低秩矩阵A和B,并将它们相乘后加到原始权重矩阵上,实现对模型的微调,从而不需要改变整个模型的权重。

02
具体步骤


如上图所示,ΔW的分解意味着我们用了两个较小的LoRA矩阵A和B来表示大型矩阵ΔW。如果A的行数与ΔW相同,B的列数与ΔW相同,那么我们可以将分解表示为ΔW = AB。(这里的AB表示矩阵A和B的矩阵相乘的结果。)

根据以上分析,步骤如下:

1. 冻结预训练模型的权重:LoRA 不会修改预训练模型的原始权重,而是将它们冻结。

2. 注入秩分解矩阵:在 Transformer 的每一层,LoRA 向原始权重矩阵 W 添加一个低秩矩阵更新 ΔW,其中 ΔW = BA。

- A 是一个降维矩阵,将输入特征映射到一个低维空间。

- B 是一个升维矩阵,将低维空间的特征映射回原始特征空间。

- A 和 B 的秩远小于 W 的秩。

3. 训练秩分解矩阵:在微调过程中,只有 A 和 B 的参数会被训练,而原始权重矩阵 W 保持不变。

4. 合并权重矩阵:在推理阶段,可以将 ΔW 与 W 合并,得到最终的权重矩阵 W' = W + ΔW。


03
优势与劣势


优势:


劣势:


04
总结


LoRA 是一种高效的大模型微调方法,它通过冻结预训练权重并注入低秩矩阵,显著减少了内存需求和训练时间,同时保持了良好的性能。 它已成为微调大型语言模型的一种流行技术,并被广泛应用于各种下游任务。在实际应用中,LoRA可以与预训练模型的权重合并,以便在生产环境中使用,而不引入额外的推理延迟。这意味着在微调后,模型可以像以前一样进行推理,而不需要对模型结构进行任何修改。






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5