自学内容网 自学内容网

LORA的工作原理

背景

在自然语言处理领域,预训练-微调(pretrain-finetune)范式非常流行。

通过指令微调,大语言模型能够更好地学习遵循和执行人类指令。但是,由于大语言模型的参数量巨大, 进行全参数微调。

预训练模型通常需要大量的计算资源和时间,而在具体任务上微调模型时,仍然需要调整大量的参数,这使得微调过程非常耗费资源。

LoRA的目标就是通过低秩适应来减少微调过程中的参数量,从而降低计算资源的需求。

什么是LoRA

LoRA,全称Low-Rank Adaptation,是一种高效的模型适应技术,主要用于对大型预训练模型进行微调。

核心思想

LoRA的核心思想是利用低秩矩阵分解技术,将大型预训练模型的参数矩阵分解为两个低秩矩阵的乘积,从而在微调时只需要调整这两个低秩矩阵。

在这里插入图片描述
在这里插入图片描述
具体来说,LoRA假设原始模型的权重矩阵可以表示为两个低秩矩阵的乘积,即:
W W W = W o W_o Wo + Δ W W W
其中, W o W_o Wo预训练模型的原始权重矩阵, ΔW 是通过低秩分解得到的两个矩阵的乘积。

低秩矩阵分解

在LoRA技术中,秩表示用于分解大矩阵的两个低秩矩阵的维度。

具体来说,假设我们有一个权重矩阵 W ,通过低秩分解,我们将其表示为两个矩阵 A 和 B 的乘积,即
ΔW=A×B

其中, A 的维度是(m,r),B 的维度是(r,n),这里 r 就是秩(Rank)。

选择较小的 r 可以显著减少参数量,从而降低计算和存储成本。

其中, A 和 B 的秩要比 W 0 W_0 W0 小得多,这样可以显著减少需要调整的参数数量。具体步骤如下:

  1. 预训练模型权重初始化:使用预训练模型的权重矩阵 W 0 W_0 W0初始化。

  2. 低秩矩阵初始化:初始化低秩矩阵 A 和 B 。

  3. 微调过程:在微调过程中,只调整低秩矩阵 A 和 B 的参数,而不改变预训练模型的原始权重矩阵 W 0 W_0 W0

优点

  • 降低计算资源需求:通过调整低秩矩阵来适应模型,只需微调较少的参数,大大降低了计算成本和内存需求。

  • 提高适应效率:低秩矩阵分解可以在不显著影响模型性能的情况下,提高微调的效率和速度。

  • 适应不同任务:LoRA可以轻松适应不同的下游任务,只需调整少量的参数即可实现高效的迁移学习。

参考

https://mp.weixin.qq.com/s/bkY6PwCIb1B-HTDzxLHcjQ

https://www.bilibili.com/video/BV1tthPeFEWb/?spm_id_from=333.337.search-card.all.click&vd_source=667c3d14dbb51ec849c0bc7c38329d10


原文地址:https://blog.csdn.net/weixin_42990464/article/details/140667057

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!