LoRa 学习笔记
LoRa是什么?
LoRA,出自论文《LoRA: Low-Rank Adaptation of Large Language Models》,是Microsoft 于 2021 年推出的一项新技术,用于微调大型语言模型 (LLM)。
比如,GPT-3有1750亿参数,为了让它能干特定领域的活儿,需要做微调,但是如果直接对GPT-3做微调,成本太高太麻烦了。
LoRA的做法是,冻结预训练好的模型权重参数,然后在每个Transformer(Transforme就是GPT的那个T)块里注入可训练的层,由于不需要对模型的权重参数重新计算梯度,所以,大大减少了需要训练的计算量。
研究发现,LoRA的微调质量与全模型微调相当,我愿称之为神器。
要做个比喻的话,就好比是大模型的一个小模型,或者说是一个插件。
LoRA本来是给大语言模型准备的,但把它用在cross-attention layers(交叉关注层)也能影响用文字生成图片的效果。
LoRa方法简介
LoRA借鉴了上述结果,提出对于预训练的参数矩阵$W_0∈ℝ^{m×n}$,我们不去直接微调$W_0$,而是对增量做低秩分解假设:
其中$U,V$之一用全零初始化,$W_0$固定不变,优化器只优化$U,V$。由于本征维度很小的结论,所以$r$我们可以取得很小,很多时候我们甚至可以直接取$1$。所以说,LoRA是一种参数高效的微调方法,至少被优化的参数量大大降低了。
PEFT对LORA的实现
https://blog.csdn.net/weixin_44826203/article/details/129733930
LoRa 学习笔记
http://example.com/2023/04/23/LoRa 学习笔记/