深入浅出剖析 LoRA 技术原理( 六 )


不知道你们第一次看到这张图是什么感觉,反正我是没看懂(欸这话怎么感觉在哪听过一次) 。所以以下又是我(不负责任)的解读 。
首先,作者是在上都做了低秩分解,所以1、3图和2、4图分别为一组,我们就选1、3图来看吧 。
其次,作者做这个实验的目的,其实是想看高秩空间中到底包含了多少低秩空间的信息,这样才能解释为什么和的效果基本持平 。
所以作者在计算 和绘制图表时的逻辑是:
好,解释完这一点,我们再具体来看图例 。颜色越浅,表示相似度越高 。在图1中,我们不难发现这一行的颜色是最浅的,随着的增加,颜色逐渐变深 。这说明小秩空间中,信息量越高的那几维特征,和大秩空间的相交度越高,因此它们也是小秩空间表现能持平大秩空间的主要原因,这也更加论证了作者所说的“低秩”的有效性 。
看到这个图表结论,你可能有一个疑惑:不是说取的是信息最丰富的8个维度,而取的是信息最丰富的64个维度吗?那么它们的前8个维度应该是一样的啊!所以随着的增加,空间重合度不是应该越来越大吗?怎么是图表的结果是越来越小呢?
这是因为“取的是信息最丰富的8个维度,而取的是信息最丰富的64个维度”这个现象,是我们的理想,而当模型真正学出来时却不是这样 。模型会尽可能往信息最丰富的维度学,但不能保证取多少,最终学出来的一定就是客观存在的的top r,只能说当r取的比较小时,模型更有可能贴近真正的top r;当r取比较大时,模型学出的是部分有价值的信息和一些噪声,而这个实验则刚好论证了这一点 。
如果理解了这一点,接下来我们可以更好来解读下一个实验了:模型不同的层,它们的r要如何设置呢?
5.2.3 不同层的r值设置
前面我们看到,LoRA作用在了和上,那么对于这两个不同的矩阵,值设置上是否也有不同的讲究呢?
为了解答这一点,作者又设计了一个实验:对三个矩阵,每个矩阵分别设置两组不同的随机种子,跑出两组不同的低秩矩阵,计算这两组低秩矩阵的,结果如下:
按我们之前说明的,两组并不是完美学出客观存在的的top 64维最丰富的信息,而是“部分有效的信息+一些噪声”,基于此我们不难想到:两组都能学到的信息,大概率就是有用的信息了 。所以我们对这两组也做了相似度的计算,从左图中可以看出,的top 10的颜色最浅,在这以内的,可能就是较为有效的信息了 。根据这样的分析结果,我们也能对模型的不同部分采用不同的秩 。
5.2.4 预训练权重 VS 微调权重
之前我们说过,预训练权重是旧知识,微调权重是新知识 。所以正常来说,中应该会有一些没有关注到的部分 。所以,我们也有必要论证我们训出的低秩矩阵是不是符合了这一点 。作者设计的实验结果如下:
其中表示训练出来的用低秩矩阵近似的结果,不是前文所说的客观存在 。
我们来解读一下这个实验:
光看概念是不是有些迷糊,那我们来找个具体指标解读一下吧:
好!关于LoRA的原理介绍,我们就一起学习到这里了 。大家可能发现这篇文章花了比较多的篇幅再实验介绍上,一方面通过实验,可以帮助我们更好理解低秩的含义和作用;另一方面,我个人觉得LoRA实验的结果不是很好读,所以想花些时间多钻研下 。那么在下一篇中,我们再来解读下LoRA的代码实现吧!
吃果冻不吐果冻皮
长期主义,专注AI工程化(LLM/MLOps)落地 。
67篇原创内容
公众号
六、参考
1、
2、
3、@/lora-low-rank--from-the-first--