Lora原理分析
与其他两种微调模式的区别
Texual Inversional只微调了文本编辑器
Dreambooth等手段微调文本编译器和噪声预测器两部分
(噪声预测器微调难度更大,db的高配置要求就是为了同时微调其中的所有参数)
训练的意义:让模型的“认知”发生改变,模型里以向量形式存储的像素分布规律发生改变,执行运算的时候,他们会被用来调节算法的运行逻辑从而输出不同的结果 ---> 模型权重
在深度学习中,模型的权重·(Weights)是指神经网络中的参数,这些参数用于调整和学习模型的行为,以便能够对输入数据进行有效的映射和提取有用的特征。
各种权重以矩阵的形式存储在一起
LoRA(低秩微调模型)做的事情主要有两件:
-
冻结原始模型的权重,另起单独的“微调权重”进行训练
-
在微调权重进行训练过程中“偷工减料”
LoRA:dui进行微调时不计算全部行列、只计算开头的前两行和两列,其调出来的模型在处理任务时表现和微调1000行1000列差不多。
在“微调权重”中创建两个额外的“转化器”
-
一个将满秩转换为低秩
-
另一个将低秩转换为满秩
此时、只需要让模型学习这两个“小矩阵”里的数据变化即可
tips
矩阵的“秩”是一个线性代数里的概念,描述了这个矩阵中的信息丰富度和多样性。在低秩适应"的场景里,行列数的降低伴随着秩的降低
感兴趣可以另行了解。
-
将显存的需求从12G降到8G甚至更低的水平,打开模型训练的门槛,在家用级的电脑上就能实现“练模型”
-
只记录低秩矩阵的模型->很节约存储空间,最大尺寸的LoRA不超过150M,是一个最小规格的checkpoint的十分之一不到
使用Kohya训练器作为载体(仅作为一个载体)
安装Kohya训练器(这里选择使用这个训练器,使用其他训练器也没有影响,功能是相通的)
安装三个前置软件
-
Python(3.10.9)
-
Git
-
Visual Studio
重启电脑后使用Git clone进行官方程序的安装
学习资料:60分钟速通LORA训练!绝对是你看过最好懂的AI绘画模型训练教程!StableDiffusion超详细训练原理讲解+实操教学,LORA参数详解与训练集处理技巧_哔哩哔哩_bilibili