pic · 2024-03-21 0

Lora training parameters 01

  • LoRA network weights
    可在此训练已训练过的LoRA模型,且将保存成为一个新文件
  • DIM for weights
    • 只有在使用 LoRA network weights 进行额外训练时,才可以选择此选项
    • 默认值为 off
  • Train batch size
    指定批处理大小,用以指定一次学习(同时训练)的图像数量
    batch size 越大,学习时间越短,但调谐精度会降低,权重变化次数减少,可能导致学习不足 batch size 越大。消耗的内存越多
  • Epoch
    总共学习轮数、循环数
  • Save every N epochs
    每经过N个epoch,保存一次LoRA文件
  • Caption Extension
    在此处指定 caption file 的扩展名
    若为空,则扩展名为”.caption”; 若扩展名为”.txt”,则在此处指定”.txt”
    可忽略
  • Mixed precision
    指定训练期间权重数据的
    Mixed precision 类型 建议选择 fp16 ,能够节省内存和加快速度
  • Save precision
    指定要保存在LoRA文件中的重量数据的类型
    float 32位; FP16/BF16 16位 默认FP16
  • Number of CPU threads per core
    训练期间每个CPU内核的线程数
  • Seeds
    在学习过程中有许多随机过程,指定seed能够确定随机处理过程,更容易重现学习结果
    但有些随机过程不使用此种子(如随机裁剪图像),因此指定相同的种子不总是能得到相同的学习结果
    默认值为空
  • Cache latents
    训练图像被读入VRAM,在进入 Unet 之前会”压缩”到一个状态,这个状态叫做 latent,并在此状态下在VRAM进行训练 通常每次加载图像时都会”压缩”图像,但可通过 Cache latents 来指定将”压缩”图像保留在主内存中
    默认值为打开
  • Cache latents to disk
    与Cache latents类似,选中此选项可指定将压缩的映像数据作为临时文件保存到磁盘 此临时文件可在重启kohya_ss后也可以重复使用
    打开此功能将无法使用 augmentation and random crop other than flip_aug
    默认值为关闭
  • learning rate
    默认值为0.0001
  • LR Scheduler
    用于如何更改学习速率的设置
    adafactor: 选择此选项时将Optimizer设置为Adafactor。边学习边根据情况自动调整学习率,保存VRAM常数
    constant: 学习率从头到尾不变
    constant_with_warmup: 从学习率0开始,在warm-up时逐渐向学习率的设定值递增,在主学习时使用学习率的设定值。
    cosine: 在绘制波浪(余弦曲线)的同时逐渐将学习速率降低到 0
    cosine_with_restarts: 多次重复余弦
    linear: 从学习速率设置开始,线性递减到 0
    polynomial: 与线性行为相同,但减少起来更复杂。如果希望将学习速率固定在学习速率设置,请设置为常量。
    默认值为cosine
  • LR warmup
    如果在LR Scheduler中选择了constant_with_warmup,需要在此处设置warm-up次数 此处指定的次数为总步数的百分比
    例如, 用1 batch size训练 50 个图像 10 次,并做 2 epochs, 则总步数为 50x10x2=1000. 如果你设置 LR warmup 为 10, 则1000 总步数的前 10% 或 100 steps, 将是warmup.
    默认值为10
  • Optimizer
    设置如何在训练期间更新神经净权重
    常用:AdamW、AdamW8bit、
    Adafactor(使用Adafactor时忽略学习率设置)
    Lion 较新
    默认值为AdamW8bit
  • Optimizer extra arguments
    如果希望给定优化器的粒度更高,可在此处编写命令
    通常将此字段留空
  • Text encoder learning rate
    设置文本编码器的学习速率 对 Text Encoder learning rate 进行额外训练的影响会影响整个 U-Net,因此,它通常设置低于 Unet learning rate
    默认值为 0.00005(5e-5)
    如果在此处指定一个数字,则该数字优先于“学习率”值
  • Unet learning rate
    设置 U-Net 的学习率
    这是在 U-Net 中对每个attention block(以及取决于设置的其他块)进行额外学习时的学习率。
    默认值为 0.0001(1e-4)
    如果在此处指定一个数字,则该数字优先于“学习率”值
  • Network Rank (Dimension)
    指定“附加小神经网络”隐藏层中的神经元数量
    神经元数量越大,可以存储的学习信息就越多,但学习学习目标以外的不必要信息的可能性增加,LoRA文件大小也随之增加。
    通常设置为最大值约为 128 默认值为 8
  • Network alpha
    由于LoRA的结构, 神经网络的权重值趋于小, 如果它变得太小, 它可能会变得与零无差别 (等同于什么都学不了)。因此,提出了一种技术,其中实际(存储)的权重值保持较大,但在学习过程中权重始终以恒定的速率减弱,以使权重值显得更小。
    网络 alpha 决定了这个“权重减弱率”。
    网络 alpha 值越小,存储的 LoRA 神经净权重越大。 使用时权重减弱的程度(使用强度)由“Network_Alpha/Network_Rank”(大约介于 0 和 1 之间的值)计算,并且与网络排名数字密切相关。| 如果学习后LoRA的准确率不够好,权重数据可能太小,塌陷到0。在这种情况下,可以尝试降低网络 Alpha 值(=增加保存权重值)。 默认值为 1(即最大化存储的权重值)。
    如果 Network Alpha 和 Network Rank 具有相同的值,则效果将被关闭。
    在设置网络 Alpha 时,应该考虑对学习率的影响。
    例如,Alpha 为 16,排名为 32,使用的权重强度为 16/32 = 0.5,这意味着学习率仅为学习率设置的一半。如果 Alpha 和 Rank 是相同的数字,则使用的强度将为 1,并且对学习率没有影响。
  • Max resolution
    默认值为“512,512”
  • Stop text encoder training
    更新文本编码器对整体影响很大,所以很容易陷入过拟合(对训练图像调优过多而无法绘制其他图像)。
    在适度点停止学习也是防止过度拟合的一种方法。 此处指定的数字是总训练步骤的百分比。一旦学习达到此百分比,文本编码器就会停止学习。
    例如,如果总步数为 1000,而在此处指定了 80,则当学习进度为 80% 时,文本编码器将完成训练,即 1000×0.8=800 步。 U-Net 的培训继续进行,还剩下 200 个步骤。 如果此值为 0,则文本编码器训练直到最后才会停止。
  • Enable buckets
    如果训练图像的大小相同,则可以关闭此选项,但将其保持打开状态不会起作用 将大小相似的图像放在同一个存储桶中,将不同大小的图像放在不同的存储桶中。
    如果关闭训练图像大小不统一时启用Enable buckets ,则训练图像将被放大或缩小为相同大小。
    默认值为打开。

参考:LoRA training parameters · bmaltais/kohya_ss Wiki · GitHub