LoRa是什么?
2023-03-18 12:37:12

LoRA,英文全称Low-Rank Adaptation of Large Language Models,直译为大语言模型的低阶适应,这是微软的研究人员为了解决大语言模型微调而开发的一项技术。

比如,GPT-3有1750亿参数,为了让它能干特定领域的活儿,需要做微调,但是如果直接对GPT-3做微调,成本太高太麻烦了。

LoRA的做法是,冻结预训练好的模型权重参数,然后在每个Transformer(Transforme就是GPT的那个T)块里注入可训练的层,由于不需要对模型的权重参数重新计算梯度,所以,大大减少了需要训练的计算量。

研究发现,LoRA的微调质量与全模型微调相当,我愿称之为神器。

要做个比喻的话,就好比是大模型的一个小模型,或者说是一个插件。

LoRA本来是给大语言模型准备的,但把它用在cross-attention layers(交叉关注层)也能影响用文字生成图片的效果。

最早的Stable Diffusion模型其实不支持LoRa的,后来才加入了对LoRa的支持,据说,Simo Ryu是第一个让Stable Diffusion支持LoRa的人,感兴趣的话,去大佬的GitHub上看看这个项目。