AI个人学习
和实操指南

让 ChatGPT 解释 LoRA 所有参数

设置选项描述缺点
base_model基本模型文件的字符串路径此选项指定基本模型文件的路径,用作训练新模型的起点。模型将在提供的新数据上进行微调。选择与任务和数据相关的基本模型非常重要,否则微调过程可能不会提高性能。
img_folder包含训练图像的文件夹的字符串路径此选项指定包含用于训练模型的训练图像的文件夹路径。训练图像的质量和数量可以极大地影响模型的性能。拥有足够多样化、高质量的图像对模型的学习至关重要。
output_folder保存输出模型的文件夹的字符串路径此选项指定训练后保存输出模型的文件夹路径。输出文件夹应有足够的存储空间来保存模型文件。定期备份模型文件以防数据丢失导致工作丢失非常重要。
change_output_name布尔值指定是否更改训练模型的输出名称。如果设置为 True,则输出名称将更改,否则将保持不变。N/A
save_json_folder字符串训练模型的 json 文件将被保存的文件夹路径。N/A
load_json_path字符串将用于加载模型参数的 json 文件的路径。这对于从先前的检查点继续训练很有用。load_json_path 指定的文件必须存在且为有效的 json 文件。
json_load_skip_list字符串列表指定不在保存的 .json 文件中加载的模型配置中的键的字符串列表。如果不小心将所需的键包含在 json_load_skip_list 中,模型可能无法按预期工作。
multi_run_folder字符串存储多次训练运行结果的文件夹名称,格式为 {multirun_folder}/run{run_number}/。如果多次运行时不更改 multi_run_folder 名称,先前的结果将被覆盖。
save_json_only布尔值如果设置为 True,则仅保存模型配置文件(.json 格式),而不是完整的模型检查点。仅靠 .json 文件无法恢复模型,如果 save_json_only 设置为 True,则必须从头开始训练。
caption_dropout_rate0 到 1 之间的浮点数指定训练期间标题的随机丢弃率。如果此值设置得太高,标题中的重要信息可能会丢失,导致结果质量降低。
caption_dropout_every_n_epochs整数指定训练期间执行标题丢弃的频率(以轮数计)。如果此值设置得太高,模型在训练期间可能无法接触到足够的标题多样性,导致过拟合。如果设置得太低,模型可能没有足够的时间从标题中学习就被丢弃了。
caption_tag_dropout_rate0 到 1 之间的浮点数控制训练模型时标题的随机丢弃率。高值意味着更多标题将被丢弃,而低值意味着较少标题将被丢弃。设置高值可能导致标题中的重要信息丢失,导致结果质量降低。
net_dim整数此设置确定模型网络架构中隐藏单元的数量。较大的 net_dim 值会导致模型更复杂、容量更大,但也需要更多的计算资源,并可能导致过拟合,如果模型过大而训练数据不足。过拟合,增加计算资源
alpha浮点数此设置确定训练期间使用的学习能力。较大的 alpha 值可以导致更快的收敛,但如果设置得太高,也可能导致模型过度拟合或收敛到次优解。较小的 alpha 值可能导致收敛速度慢或根本无法收敛。次优解,收敛速度慢
scheduler字符串此设置确定训练期间使用的学习率计划。常见选择包括 "step"、"cosine" 和 "plateau"。步进计划在指定的迭代次数后按固定因子减少学习率,而余弦计划则按余弦函数减少学习率。高原计划在验证损失停止改善时降低学习率。次优解,收敛速度慢,选择适当的计划难度大
cosine_restarts整数余弦退火计划应该重启的次数。更多的重启次数允许学习率更频繁地变化,减少了陷入次优学习率的风险。增加重启次数可能导致学习率变化更频繁,这可能使训练过程更不稳定,更难以调整。
scheduler_power浮点数调度器的幂参数。较大的幂值意味着学习率变化更慢。设置较高的幂值可能导致学习率太慢而无法在合理的时间内收敛。另一方面,设置较低的幂值可能导致学习率过于激进,导致模型过拟合训练数据。
warmup_lr_ratio浮点数在热身期间,最大学习率与初始学习率的比率。学习率从初始值逐渐增加到最大值。高热身学习率比率可能导致模型收敛缓慢或根本无法收敛。另一方面,低热身学习率比率可能导致学习率太低而无法有效训练模型。
learning_rate浮点数此选项设置用于训练模型的优化器的学习率。它决定了优化器更新模型参数的步长。默认值为 0.0001。高学习率可能导致模型过快收敛到次优解,而低学习率可能导致训练过程缓慢,可能收敛到较差的解。学习率必须仔细设置以平衡这些权衡。
text_encoder_lr浮点数此选项特别设置模型文本编码器组件的学习率。如果此值设置为与 learning_rate 不同的值,它允许特别微调文本编码器。将 text_encoder_lr 设置为与 learning_rate 不同的值可能导致过拟合到文本编码器,可能无法很好地泛化到新数据。
unet_lr浮点数此选项特别设置模型 UNet 组件的学习率。如果此值设置为与 learning_rate 不同的值,它允许特别微调 UNet。将 unet_lr 设置为与 learning_rate 不同的值可能导致过拟合到 UNet,可能无法很好地泛化到新数据。
num_workers整数指定加载数据的工作线程数。增加工作线程数可以加快数据加载和训练速度,但也可能增加内存使用。太多工作线程可能导致内存溢出并减慢训练过程。
persistent_workers布尔值确定是否使用持久工作线程。持久工作线程维护数据样本队列,允许更有效地加载数据。可能导致系统性能下降,特别是在内存或磁盘 I/O 等资源有限的系统上。
batch_size整数指定每个批次中包含的样本数量。较大的批次大小可以导致更有效的训练,但也可能增加内存使用并减慢收敛速度。太大的批次大小可能导致内存溢出并减慢训练过程,而太小的批次大小可能导致收敛缓慢。
num_epochs整数指定应该对训练数据进行多少次完整的遍历。更多的轮数将导致更准确的模型,但也需要更多时间来运行。更长的培训时间,如果使用太多轮次,可能会过度拟合数据。
save_every_n_epochs整数指定训练期间模型应该保存的频率。例如,将此设置为 5 意味着每 5 轮保存一次模型。占用更多存储空间,因为模型将更频繁地保存。
shuffle_captions布尔值指定训练数据是否应该在轮次之间进行洗牌。洗牌可以帮助防止模型陷入局部最小值,但也可能使训练变得不一致。如果训练数据的顺序具有重要意义,可能导致训练不一致。
keep_tokens整数文本语料库中用于训练的最频繁的 Token 数量。出现频率低于 keep_tokens 的 Token 将被替换为未知 Token ("")。较小的值将导致词汇表大小减小,可能减少模型的内存需求,但也可能导致信息丢失。如果 keep_tokens 设置得太低,可能会导致信息丢失。
max_steps整数训练期间要采取的最大步骤数。一旦模型看到 max_steps 批次的数据,训练将停止。如果 max_steps 设置得太低,模型可能没有完全训练。如果设置得太高,训练可能需要很长时间。
tag_occurrence_txt_file字符串包含标签出现信息的文本文件路径。标签出现信息用于在训练期间加权损失函数。如果标签出现信息不可用或未正确指定,模型可能无法正确训练。
sort_tag_occurrence_alphabetically真或假如果设置为真,tag_occurrence_txt_file 中的标签将按字母顺序排序。此选项可以用于保持标签顺序的一致性,并确保相似的标签被分组在一起。N/A
train_resolution整数值此值确定训练图像的分辨率。更高的分辨率将产生更详细的图像,但也需要更多的内存和计算资源。提高分辨率可以显著增加训练时间和内存需求,特别是如果训练数据很大。
min_bucket_resolution整数值此值确定用于训练的桶的最小大小。较小的桶大小可以导致更快的训练过程,但也可能引起过拟合或降低结果质量。过度降低桶大小可能导致训练效率降低和结果质量降低。
max_bucket_resolution整数指定训练数据的最大图像分辨率。如果训练数据的分辨率大于 max_bucket_resolution,则会对其进行下采样。max_bucket_resolution 的值过高可能导致训练时间更长和内存使用更高,而值过低可能会降低生成图像的质量。
lora_model_for_resume字符串指定一个预训练的 LoRA 模型的路径,该模型将被用来从先前的检查点恢复训练。从预训练模型恢复训练可能会导致过拟合,如果新训练数据与原始训练数据明显不同。
save_state布尔值指定是否在每个轮次后保存训练状态。如果设置为 True,则训练状态将保存在 lora_model_for_resume 文件中。频繁保存训练状态可能导致训练时间更长和磁盘使用更高。
load_previous_save_state真或假指定在训练期间是否加载模型的先前保存状态。如果设置为 True,则训练将从先前保存的状态恢复。如果设置为 False,则训练将从头开始。如果先前保存的状态不可用或已损坏,训练将无法恢复,训练将从头开始,这可能导致更长的训练时间和性能下降。
training_comment字符串指定将添加到保存模型名称中的注释。这可以用来区分用不同设置或参数训练的不同模型。
unet_only真或假指定是否仅训练模型的 UNet 组件。如果设置为 True,则仅训练模型的 UNet 组件,文本编码器组件将不会被训练。如果设置为 False,则模型的 UNet 和文本编码器组件都将被训练。仅训练模型的 UNet 组件可能导致性能低于同时训练两个组件,因为文本编码器组件是模型的重要组成部分,有助于将文本信息编码到训练过程中。
text_only真或假确定是否仅在文本上训练模型或在文本和图像上训练。将此设置为 True 将导致训练更快但图像生成质量较低。将此设置为 False 将导致训练更慢但图像生成质量更高。如果设置为 True,生成的图像将不如设置为 False 时准确或详细。
reg_img_folder字符串用于训练的图像目录的路径。此选项仅在 text_only 设置为 False 时相关。如果没有提供图像,模型将仅在文本上训练,并且无法生成图像。
clip_skip真或假确定模型是否应该在训练数据中跳过剪辑过的图像。剪辑过的图像是那些在尺寸上要么太小要么太大,与 train_resolution 相比。如果设置为 True,模型可能无法从训练数据中的某些图像中学习。如果设置为 False,训练可能需要更长时间,因为模型需要处理所有图像,即使是剪辑过的图像。
test_seed整数指定测试数据生成和评估的随机种子。设置种子确保每次运行脚本时都会生成相同的测试数据。不同的种子可能导致不同的测试数据和评估结果,使得跨运行比较性能变得困难。
prior_loss_weight浮点数指定先前损失项在总体损失计算中的权重。先前损失项用于鼓励模型生成与训练数据的先前分布相似的输出。将权重设置得太高可能导致输出与先前过于相似,降低模型的创造力。将权重设置得太低可能导致输出与先前相去甚远,不够连贯。
gradient_checkpointing布尔值指定是否使用梯度检查点来减少训练期间的内存使用。梯度检查点涉及在反向传播期间选择性地保存和重新加载激活,这减少了内存使用,但以增加计算时间为代价。使用梯度检查点可能会减慢训练过程,对于小型模型或具有足够内存的设备可能不必要。
gradient_acc_steps整数指定训练期间梯度累积的步数。增加此值可以减少内存使用并帮助训练稳定性。梯度_acc_steps 的较高值增加了操作数量,可能会减慢训练过程。
mixed_precision布尔值指定是否使用混合精度训练,使用低精度数据类型来加速训练。使用混合精度训练可能导致准确性降低并可能导致训练不稳定。
save_precision浮点数指定保存模型权重时使用的精度。通常根据训练期间使用的精度设置为 32 或 16。较低的精度值在保存模型权重时可能会导致信息丢失,导致准确性降低。
save_as字符串指定保存训练模型的文件格式。支持的格式有:ckpt、safetensors、pt、bin。文件格式应与 LoRA 模型将用于的 Stable Diffusion AI 艺术模型类型相匹配。
caption_extension字符串指定包含训练数据标题的文本文件的扩展名。扩展名必须与标题文件的实际文件扩展名匹配。
max_clip_token_length整数指定单个标题中允许的最大 Token 数量。超出此长度的标题将在训练期间被跳过。设置较高值可能会增加训练期间的内存使用。设置较低值可能会导致标题中的重要信息丢失。
buckets整数列表指定桶算法的大小。例如,如果 buckets 设置为 [5,10,15],则数据将被分为三个桶,长度为 5 Token 的数据在一个桶中,长度为 10 Token 的数据在另一个桶中,长度为 15 Token 的数据在第三个桶中。桶的数量和桶的大小必须仔细选择以取得良好结果。如果桶的数量太小,模型可能表现不佳,而如果桶的数量太大,模型可能会过拟合。
xformers字符串列表指定训练期间使用的变换器。变换器可以用来应用数据增强技术,如随机裁剪、翻转、旋转等。变换器的选择可以极大地影响模型的性能,因此选择最适合特定任务的变换器非常重要。
use_8bit_adam布尔值指定是否使用 8 位 Adam 优化器。此选项可以用来减少训练过程的内存需求。如果此选项设置为 True,训练过程的内存需求将减少,但训练可能会变慢,模型可能准确性较低。
cache_latents布尔值如果设置为 True,则训练数据的潜在值将被缓存以加快训练速度。这可以减少训练模型的时间,但也可能使用更多内存并增加开始训练的时间。增加内存使用和启动时间变慢。
color_aug布尔值如果设置为 True,则在训练期间执行颜色增强。这可以增加训练数据的多样性,但也可能减慢训练速度。训练时间变慢。
flip_aug布尔值如果设置为 True,则在训练期间执行翻转增强。这可以增加训练数据的多样性,但也可能减慢训练速度。训练时间变慢。
random_crop真/假指定是否对训练图像应用随机裁剪。如果设置为 True,则训练图像将在输入模型之前随机裁剪到指定大小。使用随机裁剪可以增加训练数据的多样性,但它也增加了训练的计算成本,并可能减慢训练过程。
vae真/假指定是否使用变分自编码器(VAE)作为模型的主干。如果设置为 True,则模型将作为 VAE 进行训练。使用 VAE 可以提供数据的更灵活表示,但它也可以增加训练的难度并可能需要更多的微调。
no_meta真/假指定是否从训练过程中排除元数据(例如,类别标签、属性等)。如果设置为 True,则模型在训练期间将无法访问任何元数据。排除元数据可以简化训练过程,但它可能导致模型质量降低,无法利用元数据提供的额外信息。
log_dir字符串存储训练日志文件的目录路径。如果目录已存在且不为空,训练可能会覆盖存储在该目录中的先前日志,导致数据丢失。
bucket_reso_steps整数增加图像分辨率的步数。图像分辨率从 max_bucket_resolution 开始,并在每个步骤后增加 2 的因子。将此值设置得太高可能导致内存错误和训练时间更长,因为图像大小在每个步骤中增加。将此值设置得太低可能导致图像质量降低。
bucket_no_upscale布尔值表示是否限制图像分辨率增加超过其原始大小。如果设置为 True,则图像分辨率不会增加超过其原始大小,这可能导致图像质量降低。
v2真或假此设置指定是否使用模型架构的版本 2。使用不同版本的模型架构可能会改变生成艺术的质量和性能,因此很重要进行实验和比较结果,以确定给定任务的最佳选项。
v_parameterizationspectral_norm"、"instance_norm" 或 "batch_norm"此设置确定如何在训练期间对模型的参数进行规范化。谱规范化、实例规范化和批量规范化是防止过拟合的不同方法,每种方法在计算成本和性能方面都有自己的权衡。选择错误的规范化方法可能会对模型的性能产生负面影响,因此很重要尝试不同的选项,以确定哪个最适合给定任务。
AI轻松学

普通人的AI入门指南

帮助你以低成本、零基础学会如何利用AI工具。AI就像办公软件一样,是每个人的必备技能。 掌握AI会让你在求职中占据优势,在未来的工作和学习中事半功倍。

查看详情>
未经允许不得转载:首席AI分享圈 » 让 ChatGPT 解释 LoRA 所有参数

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文