在AIGC领域频繁出现着一个特殊名词“LoRA”,这是一种模型训练的方法。LoRA全称Low-Rank Adaptation of Large Language Models,中文叫做大语言模型的低阶适应。如今在stable diffusion中用地非常频繁.
现在大多数模型训练都是采用梯度下降算法。梯度下降算法可以分为下面4个步骤:
- 正向传播计算损失值
- 反向传播计算梯度
- 利用梯度更新参数
- 重复1、2、3的步骤,直到获取较小的损失
以线性模型为例,模型参数为W,输入输出为x、y,损失函数以均方误差为例。那么各个步骤的计算如下,首先是正向传播,对于线性模型来说就是做一个矩阵乘法:
在求出损失后,可以计算L对W的梯度,得到dW:
dW是一个矩阵,它会指向L上升最快的方向,但是我们的目的是让L下降,因此让W减去dW。为了调整更新的步伐,还会乘上一个学习率η,计算如下: