1. 文章简介
这篇文章是微软在21年的一篇文章,不过我了解得比较晚,最近才发现有这个工作,就匆匆地扫了眼里面的内容。
如前所述,这篇文章是21年的一个工作了,当时应该是GPT3刚出,LLM的影响力还没有那么大,主流的范式还是使用大数据进行预训练之后在小数据集上进行finetune。
因此,针对大模型的finetune优化还是一个非常关键的问题,尤其当参数量巨大而普遍使用的GPU显存并没有那么大的时候,如何在不损失模型效果的情况下缩小模型以及加速推理就是一个巨大的问题。
而这篇文章就是在这里进行了一些讨论,给出了一个名为LoRA的方法,优化了模型finetune,具体来说就是通过LoRA的方式在不损伤模型效果的前提下缩减了模型的参数总量,从而大幅缩减了模型finetune所需的内存,提升finetune的速度。
下面,我们就来看一下LoRA的具体方法设计以及对应的实验效果考察。
2. 方法介绍
LoRA的整体思路个人觉得还是非常巧妙的。
众所周知,finetune的本质是在小的特定数据集下对预训练大模型的参数进行微调,使得其能够在保留大数据预训练的只是前提下,在特定的小数据集当中获得更好的表现。因此,finetune的本质就是对模型增加一个微扰,使得其收敛到一个更适合于某特定任务的局部最优点。
而LoRA的核心思路就是,直接freeze模型的全部参数,然后额外给模型增加一个扰动的module,来模拟finetune之后参数改变的效果。如此一来,只要这些扰动的module参数量够小且推理够快,就不会影响模型整体的inference成本,且可以大幅地缩减模型finetune的开销,因为我们只需要训练极小量的一部分参数即可。
我们给出文中的LoRA结构示意图如下:

对应的数学公式如下:
h = W 0 ⋅ x + Δ W ⋅ x = W 0 ⋅ x + B A x h = W_0 \cdot x + \Delta W \cdot x = W_0 \cdot x + BAx h=W

本文介绍了微软在2021年的文章中提出的LoRA方法,通过不损伤模型效果的方式,通过额外的扰动模块减小大模型finetune的参数量,加快推理速度。实验结果显示LoRA在Bert和GPT系列模型中效果显著,有助于解决大模型参数量过大导致的内存和速度问题。
最低0.47元/天 解锁文章
1936

被折叠的 条评论
为什么被折叠?



