Tensor.Art
在线生图

lora摸鱼炼丹心得


更新

边摸鱼边炼丹。

底层原理听不懂,浅显道理容易误导。

建议炼丹时长两月半以下食用。

将训练模型比作做饭,将调参比作初始炖汤的水温\预定佐料,将其中练度比作爆炒的力度。

炼丹是很基于经验、尝试、实验的,并不代表通晓某知识就能出“仙丹”,也可能出“咸蛋”。

炼丹被很多人称为玄学。

  • 玄学:指的是难以数学规律,自然规律,经验规律,被人轻易理解的事。

很多时候,咱们的数据集不一样:

如炼

真人——二次元——2.5D动漫——实物——风景———多概念

概念——动作——画风——风格——背景——服装——角色——人脸——表情包

鬼知道炼什么鬼哦,所以数据集不同,同参未必具有普遍适用性,问就是推荐默认跑一遍。

  • 炼丹:训练模型,一般指训练lora。

  • lora:lycris,locon,loha本质都是lora,即大模型的低阶(秩)适应,相对大模型的微调。

  • 打标:让文本与图像建立联系,文本与图像对齐特征,便于学习。

  • 数据集:数据集<——图片\样本<——特征集\属性集<——特征。

  • 训练:让机器学习特征。

有时,调参靠实验,优化数据集和打标可能更好。

  • 超参数:在机器学习模型训练前由人为设定的参数,这称调参。

1.学习率:lr,步长。

太小不合适,太大的直接会炖糊\色块堆积。

2.批次大小\并行数量:bs,每批次处理的样本\图片数量。

bs调大会降低总迭代步数,一般会减少时间,bs&训练集足够大,1步1小时也可能的。

总步数不是恒稳的,而时间是恒稳的。

总步数:样本×rep×epo/bs。

提高bs:可能大概也许作用——>抹平差异特征+学习共有特征。

小样本不必大bs,大样本则可大。

一报告称,提高bs需提高lr。

3.练度:练度<——repeat+epochs。

4.repeat:rep,重复,模型在每个epoch内多次看到图片的次数。

提高作用:可能大概也许作用——>多概念平衡数据集+增强每个样本的特征学习记忆。

5.epochs:epo,纪元\轮次,按rep过一轮数据集,遍历数据集所有图片。

提高作用:可能大概也许作用——>学习共有特征+增强所有样本的特征学习记忆。

同参下试了:epo的提高比rep的提高容易过拟合(可能也许大概

6.过拟合:把训练集的特征记得太死,以至于不具有泛化性,忘记了之前会的(先验知识)。

一个叫"过拟合"的学生,月考嘎嘎猛,高考名落孙山,他就叫过拟合。

所以太像会容易过拟合,其实只要弹得动,轻微过拟合没事。

这并非一定是弊端,比如有些表情包大概是要练到过拟合的。

又像又弹得动,鱼和熊掌不一定兼得,毕竟lora可以降低权重,减轻效果。

7.炸炉\练烂:练烂是过拟合吗?答:练都练烂了,还过不过拟合,是,不是,它最好单独拿出来。

炼什么是什么(举例)

——>有人炼角色,调用1gril自带角色特征,很难出其它girl,只记得学的1girl,不记得其它1girl。

——>我自己炼画风,epo越后面,一样权重跑同seed图,未添加衣服词+(nude:1.5),越后面epo衣服残留越重,无法换装。

但是吧,画风一般不必要换装的把?

——>全是upper_body的图炼,结果很难出full_body的图,它忘记了之前的full_body,

但,还有close-up,比如大头表情包就是需要就是抑制全身,所以忘记就罢了。

8.正则化:防止过拟合——>防止忘记先验知识,防止过拟合同学只记得涩涩,而不记得考试要考什么了。

咋用?它不一定好用,所以未必要用。

——>炼1girl,正则集放其它girl。

——>炼up_body,防止忘记full_body,在正则集放full_body。

——>以此类推,我放些垃圾,那么他会不会变得"至臻完美、璞玉浑金"呢?

答:过拟合同学想起了要考试了,那他就能一定不名落孙山吗?说不定有用。

9.泛化性:对未知\新的输入响应良好。即为文生图,我理解为(lora)

——>在未知(未训练)(加触发词)的提示词(tag)的输入,响应良好。省流:好。

10.通用性:在24年3月份之前有三个倍受推崇的二次元系列XL。

a31,kohaku,pony.

与众不同的是三个XL,训练量都是M(百万)级。

所以微调量级是属于另起炉灶的,这三个系列训练的lora一般来说是不能够很有效的互相适配的,或者性能削弱\无效,省流:不咋通用,但不一定呢。

对于仨系列的lora,适合对应的专门专用,它不会如1.5那么通用。

原因简单:训练量巨大,以至于“跳出三界之外,不在五行之中”。

1.5的lora通用可以是泛用,但≠泛化,叫泛用性吧。

1.5的lora通用主要是1.5底膜基本由nai1或者1.5微调\训练\融合而来,而且微调量级一般不大,根据血缘关系远近lora通用性降低。

lora的泛化应该可以理解为出图好

——>我理解这是在(加触发词)配合未训练(未知)的提示词(tag)下也能出图不错\有效,省流:好就行。

11.鲁棒性:不丢失特征,稳定、靠谱。省流:棒。

12.还原度:以训练tag,测试还原。省流:像。

13.dim(rank):资讯\信息\参数的承载量,越大不一定越好,但小一定够妙。

——>我自己试了,大dim更容易拟合到画风,其余不知。

14.关于lora调用的触发词:训练可能会设置触发词,或者将训练标签里的高频词写成lora调用时的触发词,所以您可以看看作者的模型介绍,大多情况下,不写触发词,lora调用不容易有效,而不是lora不好。

15.关于loss

引入:“训练损失”,“测试损失“两个词。

明面上的值我称为“训练损失”,虽然可以通过查看loss曲线查看收敛情况,但loss值它真的真的很有用,它告诉不了一点是否过拟合、有没有炼烂、炼糊、练好。

至于好不好还得自己跑图测试靠自己评判“测试损失”,人们常用XYZ图表脚本。

3
0

评论