LORA学习笔记3——训练参数

训练步长

Step(步):模型训练时ai模型会根据标注生成一个图片,并与学习图片进行对比,通过对比的结果调整嵌入向量。这样的一个流程就被称为“一步”。

如果一个训练集中有50张图片,每张图片设定为要训练10次,所以训练完这一组数据集需要50*10=500步。

Epoch(轮):一个训练集里面的全部图片按照规定的训练次数训练完一次,被称之为训练完“一轮”。参考刚才的例子,500步就是该训练集的一轮所需要的步数。

max_train_epochs(最大训练轮数):通常我们使用这个概念来控制训练一个模型的总步数。模型训练的总步数=max_train_epochs*Epoch。比如刚才的例子中,一轮是500步,假设我们训练的最大轮数是10,那么训练的总步数就是500*10=5000步。

train_batch_size(训练批次大小):模型训练可以一次学习多个图片,如果将这个参数设置为8,那么训练时ai会一次训练8张图片,缩短训练所需要的时间。

学习率

学习率可以理解为ai学习时的强度。学习率过高会导致过拟合,学习率过低会导致欠拟合。

 过拟合:训练出的模型过于匹配训练数据,导致在新数据集中无法生成较好的新结果。在ai画图中的表现就是生成的图片过于和训练集中的图片相似,无法生成差异化的内容。

欠拟合:训练出的模型过于不匹配训练数据,导致新数据集中生成的结果与预期相差过大。反映在ai画图里就是生成的图片完全不像训练集里的图片。

在训练中通常过拟合的概率会大于欠拟合,因此学习率通常会设置在比较低的水平,通常用0.0001即可。

当训练的数据集较大时,需要设置较小的学习率。因为数据越多,损失曲面更复杂,在高学习率的情况下容易导致训练不稳定。

在训练中通常会增加学习率调度器,使训练过程中的学习率逐渐降低,可以保证后期避免过拟合。

网络维度

network rank/network dimension:网络秩,该值越大,从原始的矩阵中抽取出来的行列就越多,需要微调的数据量就越多,就可以容纳下更多的概念。

这个值会直接影响lora模型的大小,与模型大小是正相关关系。在训练三次元这种画面细节较多的模型时,通常会调高这个值;在训练二次元这种画面细节相对较少的模型时,通常会调低这个值。比如训练二次元人物,只需要设置为32就可以;如果要训练画风,就需要设置为更高的值。

network alpha:用于调节lora作用于原模型程度的参数。alpha和rank的比值等于“减弱权重程度”。alpha不超过rank,越接近于rank,则对原模型权重的影响越小。越接近于0,则对权重的微调作用越显著。通常会设置为rank的0.5~1倍之间。

性能参数

mixed_precision(混合精度):在深度学习中通常使用32位浮点数进行训练,但是实践证明训练ai模型不需要这么高的精度,因此通常可以设置为16位,可以节约大量的显存。

cache_latent(缓存图像latent):可以在学习前一次性地将图片缓存到显存里,后面再反复调用,可以有效提升训练速度。

xfomers:英伟达显卡的硬件级别优化,可以提升训练速度。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值