最近,和大模型一起引起广泛关注的,还有其微调方法。这些方法用很少的数据,就能让大模型在原本表现平平的下游任务中脱颖而出,成为该领域的专家。
其中,最受人瞩目的当属LoRA方法。包括LoRA在内的这些方法,其背后的核心原理究竟是什么呢?它和大模型之间的关系又是怎样的呢?接下来,我们一起探讨。
来谈谈近期备受瞩目的LoRA。LoRA(LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS)是在ICLR2022上提出的一种技术。它利用低秩适配的方法,在使用大模型适配下游任务时,只需训练少量的参数即可达到非常好的效果。
那么,LoRA是如何微调适配下游任务的呢?流程其实很简单。LoRA利用对应下游任务的数据,只通过训练新加的部分参数来适配下游任务。当新参数训练好后,将其与原有的模型参数合并,既能在新任务上达到fine-tune整个模型的效果,又不会增加推断时的耗时。
LoRA的核心思想可以通过下面的示意图来理解。图中,蓝色部分代表预训练好的模型参数。LoRA在预训练好的模型结构旁边加入了A和B两个结构,这两个结构的参数分别进行特定的初始化和训练。A的输入维度和B的输出维度与原始模型的输入输出维度相同,而A的输出维度和B的输入维度则是一个远小于原始模型输入输出维度的值,这就是low-rank的体现。