Stable Diffusion训练LoRA模型参数具体阐明(阿里巴巴堆友AI)
工具:线上模型训练堆友AI
一、训练参数
批量巨细 (Batch Size)
[*]作用:每次训练中利用的样本数目。
[*]参考值:可以从 8 到 64,取决于显存巨细。
训练轮数 (Epochs)
[*]作用:完备遍历训练数据的次数。
[*]参考值:通常在 10 到 50 之间。
批次巨细
[*]作用:批次巨细是每次迭代中输入模型的样本数目。它在训练深度学习模型时非常紧张,因为它影响模型的收敛速率和训练稳定性。较大的批次巨细通常会加速训练并使损失曲线更加平滑,但可能需要更多的内存和计算资源。
[*]参考值:
[*]小型网络:比方 16、32
[*]中型网络:比方 64、128
[*]大型网络:比方 256、512
一般来说,批次巨细不应超过显存的承载本事。常见的选择是 32、64、128。
训练肴杂精度
[*]作用:肴杂精度训练指的是在训练过程中同时利用16位和32位浮点数,以加快训练速率并节省显存。利用半精度 (16位) 可以减少内存利用,同时通过合适的缩放计谋来保持数值稳定性。肴杂精度训练对今世 GPU(如 NVIDIA 的 RTX 系列)支持良好,可以实现更高的吞吐量。
[*]参考值:
[*]在支持肴杂精度的环境(如利用 TensorFlow 和 PyTorch 的适当 API)下,可以直接利用。比方,利用 TensorFlow 的 tf.keras.mixed_precision.set_global_policy('mixed_float16')。
需要阐明的是,在选择利用肴杂精度时,建议确保硬件和库的支持,通常情况下,最常见的选择是启用肴杂精度。
二、样图设置
样图分辨率
[*]作用:样图分辨率指的是输入图像的像素尺寸,通常以宽度x高度(比方,512x512等)的情势表示。分辨率影响模型生成图像的细节及质量,较高的分辨率能够提供更多的细节,但也需要更大的计算资源。
[*]参考值:
[*]256x256:实用于基础使命或资源有限的情况
[*]512x512:常用的中平分辨率,适合大多数生成使命
[*]1024x1024或更高:用于高质量生成要求,如艺术作品或复杂场景
随机种子数
[*]作用:随机种子数是一个用于初始化随机数生成器的值,确保训练或生成过程的可重复性。利用雷同的种子数可以得到雷同的随机结果,这在调试和实验中非常紧张。
[*]参考值:通常为恣意整数。建议固定一个值以便于后续的实验对比。
采样方式
[*]作用:采样方式决定了在生成图像时如何从模型的埋伏空间中选择样本。差别的采样技能会影响生成图像的多样性和质量。
[*]参考值:
[*]随机采样(Random Sampling):简朴且快速,但可能导致生成结果不稳定
[*]温度采样(Top-k或Top-p Sampling):通过限制选择的候选范围来提高生成质量
[*]幂律分布采样(Nucleus Sampling):将概率之和限制在特定的阈值内,以防止选择低概率的样本
提示词
[*]作用:提示词是给模型输入的笔墨描述,用于引导生成过程。提示词的质量直接影响生成图像的干系性和满足度。
[*]参考值:提示词应简便明了,比方"一只在丛林中闲步的狐狸"。利用具体的细节和形容词可以得到更准确的结果。
负向提示词
[*]作用:负向提示词是用来告诉模型在生成图像时应避免的特性或内容。这对于消除不必要的元素、控制生成结果的方向非常有用。
[*]参考值:负向提示词应明确,通常包罗不希望出现的对象或属性,比方“无笔墨、无模糊”。利用有用的负向提示词可以提高生成图像的质量和准确性。
三、保存设置
每N轮保存一个LoRA
[*]作用:
[*]检查点保存:在训练过程中,尤其是长时间训练的情况下,保存模型可以避免因为不测情况(如崩溃或中断)丢失训练进度。
[*]模型版本管理:随着训练的举行,模型参数会不停变化。定期保存可以帮助研究人员回顾差别版本的模型,举行比较,以选择最佳的模型。
[*]减少过拟合风险:通过观察差别轮次上保存的模型性能,可以判定是否出现了过拟合现象,从而选择最佳的模型参数。
[*]规复训练:假如训练由于某种缘故原由被终止,可以从近来的保存点继承训练,而不必从头开始。
[*]参考值:
[*]N的选择:N的具体值通常取决于几个因素,包罗但不限于:
[*]训练数据集的巨细与复杂度
[*]实验的目标(如需要更精致的模型调优)
[*]训练过程中的计算资源(如GPU的利用情况)
[*]模型的结构与参数目
常见的参考值可能在10到100之间。比方,对于小型数据集和简朴模型,可能选择每10轮保存一次,而对于复杂模型或大数据集,则可能选择每50或100轮保存一次。
LoRA保存精度
[*]作用:保存精度指的是在训练过程中利用的数据精度(如浮点数的位数)。常见的有FP32(32位浮点数)、FP16(16位浮点数)等。利用低精度可以减少显存占用,提高训练速率,但可能会影响模型的收敛性和准确性。
[*]参考值:FP16常用于加速训练,尤其是在支持Tensor Core的硬件上。FP32则适合对精度要求高的使命。
四、学习率&优化器
总学习率
[*]作用:总学习率是模型全部参数的学习率,它控制着模型学习的步幅巨细。较高的学习率可能导致训练不稳定,而较低的学习率则可能使模型收敛速率缓慢。
[*]参考值:常用的总学习率范围为1e-5到1e-4,具体值需要根据使命和网络架构举行调解。
Unet学习率
[*]作用:这是专门为Unet网络部分设置的学习率,用于分别调解其学习参数。Unet是处理图像干系使命的紧张部分,可能需要单独优化。
[*]参考值:一般建议设置为1e-4到1e-5。
文本编码学习率
[*]作用:与Unet学习率类似,这是用于文本编码器部分的学习率。文本编码器通常用于处理语言干系的输入,因此也需要单独优化。
[*]参考值:通常设置为1e-5到5e-5。
学习率预热(%)
[*]作用:学习率预热是指在训练初期渐渐增长学习率以避免模型不稳定。这一方法有用确保模型在早期能够平稳地找到合适的收敛区间。
[*]参考值:建议预热期占总训练周期的5%到10%,具体可以根据训练的稳定性调解。
学习率调度器
[*]作用:这是一种动态调解学习率的计谋,通常在训练过程中根据epoch或batch的变化来调解学习率,以提高收敛服从。
[*]参考值:
Linear
线性调度器按照线性函数渐渐降低学习率。通常,学习率从初始值开始以肯定的速率减少到最终值。这种方法简朴易懂,适合于一些简朴的训练过程。
Cosine
余弦调度器基于余弦函数,学习率在训练过程中呈现余弦曲线的外形。这意味着学习率在训练开始时快速减小,之后渐渐趋近于零。该方法有助于在训练的后期举行精致调解。
Cosine with Restarts
余弦重启调度器在根本的余弦调度器上举行了改进,答应学习率在肯定的周期内举行多次重启。每次重启时,学习率从较高的值开始,并按照余弦函数降低。这种方法可以帮助模型在多个局部最优之间举行更好的探索。
Polynomial
多项式调度器学习率遵照多项式函数举行调解。用户可以设置多项式的次数,以及学习率从初始值下降到最低值的方式。这种方法可以提供相对平滑的学习率变化,但设置的参数较多。
Constant
常量调度器在整个训练期间保持学习率不变。虽然简朴,但在某些情况下可能无法很好地适应训练动态,容易导致训练过程中的震荡或收敛不良。
Constant with Warmup
常量带热身调度器在训练初期采用一个小的学习率渐渐增长到预设的常量学习率。这种热身计谋有助于在训练初期稳定模型参数,避免大梯度带来的不稳定性。
总的来说,选择合适的学习率调度器依靠于具体的使命和数据集。调度计谋的选用和调解可以对训练结果产生显着影响。
优化器
[*]作用:优化器是用于更新网络权重的算法。差别的优化器对训练效果和收敛速率有差别的影响。
[*]参考值:
AdamW
AdamW是Adam优化器的一种变体。它在Adam的基础上,引入了权重衰减(weight decay)来防止过拟合。AdamW通过将权重衰减与更新规则分离,能更有用地管理优化过程,尤其是在深度学习中体现良好。
AdamW8bit
AdamW8bit是一种改进版本,将AdamW的参数存储精度降低到8位。这减少了内存利用和计算负担,实用于大模型的训练,尤其在GPU内存有限的环境中。
PagedAdamW8bit
PagedAdamW8bit在AdamW8bit的基础上进一步优化,通过将参数分片或分页,以更有用地处理内存,适合在更小的GPU内存中训练大型模型。
Lion
Lion是一种新的优化器,通常被认为在某些环境下比Adam更有用。它在梯度更新时引入了方向的概念,通常在收敛速率和稳健性上体现更好。
Lion8bit
Lion8bit是Lion优化器的8位版本,通过降低存储精度来减少内存利用。它实用于大型模型和资源受限的环境。
PagedLion8bit
PagedLion8bit在Fat Duck格的基础上,进一步优化内存利用,适合在内存受限的环境中训练大型深度学习模型。
SGDNesterov
SGDNesterov是对SGD优化器的一个改进,结合了Nesterov加速的方法。生成的梯度更具前瞻性,通常可以更快地收敛。
SGDNesterov8bit
SGDNesterov8bit是SGDNesterov的8位版本,旨在减少内存占用,适合在深度学习大型模型的训练中利用。
DAdaptation
DAdaptation是一种自适应优化器,它利用数据的特点评估学习率,以在训练过程中的差别阶段举行调解。
DAdaptAdam
DAdaptAdam是一个结合了Adaptive方法(如Adam)和数据自适应的方法,旨在提拔模型训练的服从和效果。
DAdaptAdaGrad
DAdaptAdaGrad是AdaGrad的一种自适应变体,利用数据特性动态调解学习速率,提高收敛速率。
DAdaptAdanIP
DAdaptAdanIP结合了Adan优化器与自适应特性,以更好地满足各种训练条件。
DAdaptLion
DAdaptLion结合了Lion优化器与自适应机制,旨在实现更佳的收敛性和效果。
DAdaptSGD
DAdaptSGD是对SGD的自适应变体,根据特定的特性和情况动态调解学习率,提拔训练服从。
AdaFactor
AdaFactor是一种内存高效的优化器,特殊实用于处理大型模型。它通过引入分解的梯度和新颖的学习率调解技能,来减少训练中的内存占用。
Prodigy
Prodigy是一种先进的优化器,通常结合了一系列今世优化技能,旨在高效地训练大型模型,加强学习效果和收敛速率。
重启次数
[*]作用:这是在训练时答应的学习率重启次数,重启可以帮助模型避免局部最优并尝试新的学习周期。
[*]参考值:一般设置为1到3次,根据训练需求调解。
仅训练Unet
[*]作用:这一参数用于指定训练时是否仅更新Unet部分的权重,实用于模型分阶段训练的情况。
[*]参考值:通常在迁徙学习的初期,可能只训练Unet部分,之后再训练其他部分。
仅训练文本编码器
[*]作用:与仅训练Unet类似,此参数用来指定训练时是否仅更新文本编码器的权重。
[*]参考值:此计谋通常用于处理文本输入的模型调解,可以在训练过程中阶段性地训练文本编码器。
五、数据集设置
图片分辨率
[*]作用:图片分辨率指的是输入图片的宽度和高度(以像素为单位)。分辨率会影响模型的训练效果和推理速率。高分辨率可以提供更多的细节信息,但也会增长训练时间和计算资源消耗。
[*]参考值:常见的分辨率是224x224、256x256、512x512等,根据具体使命而定。
是否启动arb桶
[*]作用:ARB桶是一种动态调解输入分辨率的方法,依据使命需求和模型性能主动选择最适合的分辨率,可以提高训练服从和模型精度。
[*]参考值:一般可选择“是”或“否”。假如使命具有多样性,启动ARB桶可以带来更好的效果。
arb桶最小分辨率
[*]作用:设定在利用 ARB 计谋时,答应输入的最低分辨率。较低的分辨率可以减少计算资源消耗,但可能损失部分细节信息。
[*]参考值:通常设置为64x64、128x128或256x256,具体视场景而定。
arb分桶最大分辨率
[*]作用:设定在利用 ARB 计谋时,答应输入的最高分辨率。较高的分辨率可以提高模型的分类或检测精度,但也会增长计算负担。
[*]参考值:可设定为512x512、1024x1024,具体取决于可用的计算资源和训练使命的需求。
arb分桶最大分辨率划分单位
[*]作用:这个参数通常用于界说在 ARB 计谋下如何对最大分辨率举行划分的粒度。它影响分辨率变化的机动性和训练的适应性。
[*]参考值:可以设定为16像素、32像素等,具体依据最大分辨率和整体训练需求举行调解。
六、网络设置
网络巨细
[*]作用:网络巨细通常指模型的参数数目或层数,它直接影响模型的体现力和训练时间。更大的网络可能捕捉到更多的数据特性,但也更易过拟合。
[*]参考值:常见的文本或图像模型(如BERT、ResNet)可能包罗数百万到数十亿的参数。选择时需思量使命的复杂性与可用的计算资源。
网络额外参数
[*]作用:在LoRA中,引入的额外参数用于适应低秩矩阵分解,这些参数在微调时更新,而主模型参数保持不变。这种设计旨在减少训练时的参数更新量,同时保持模型的体现。
[*]参考值:额外参数的数目通常可以设定为主模型参数的1%到5%,具体取决于使命的复杂水平。
网络Alpha
[*]作用:网络Alpha通常是LoRA中的一个超参数,它控制低秩适应矩阵的缩放因子。Alpha越大,表示网络将对低秩适应的贡献越大,从而可能提拔模型的体现,但也可能导致过拟合。
[*]参考值:一般选择范围在16到64之间,具体值可以通过实验调优以适应差别的使命和数据集。
七、打标设置
打乱标签
[*]作用:打乱标签的主要目标是增长模型的鲁棒性,防止模型学习到标签的序次或模式,从而提高其泛化本事。这在数据集较小或存在某种埋伏依靠性的情况下尤其紧张。
[*]参考值:通常在每个epoch开始时打乱一次,大概在每个batch中打乱。可以设置为布尔值(True/False),一般情况下,保举利用True。
利用带权重token
[*]作用:带权重token的设置用于处理不均衡的数据集。当某些种别的样本数目远多于其他种别时,可以给这些种别的token分配较小的权重,而给稀有种别的token分配较大的权重,从而使得模型在训练时更加关注这些稀有种别。
[*]参考值:权重的设置通常依靠于具体的使命和数据集的种别分布。可以通过种别频率计算权重,通常在(0.5到10)之间(比方,稀有种别权重为5,常见种别权重为1)。
保持N个token
[*]作用:保持肯定命目标token可以用于控制输入的序列长度,确保模型处理的输入不会超过其最大处理本事(如学习到的上下文信息),并提高训练服从。
[*]参考值:通常,N的取值在1到512之间,具体要根据模型的架构来决定。比方,BERT模型在其训练中常用的最大token数目是512。
最大token长度
[*]作用:最大token长度是指在模型输入中,答应的最大序列长度。超出此长度的序列会被截断,大概举行其他处理(如拆分)。这有助于减少内存开销和提高训练速率,同时保证模型的输入符合要求。
[*]参考值:最常见的最大token长度设置为128、256或512,具体值仍然取决于模型的设计和使命特点。大型模型如G通常答应512个token,而一些具体使命可能只需要128个token即可。
八、噪音设置
噪音偏移
[*]作用:噪音偏移是指在生成过程中添加的基于某种分布的噪音。这可以帮助模型学习更复杂的特性和获取更具多样性的输出。
[*]参考值:通常在0到1之间,一般会根据具体使命举行调解,常见值在0.1到0.5之间。
多分辨率(金字塔)噪音扩散次数
[*]作用:指在差别分辨率下举行多次噪音扩散。这种方法可以帮助模型更好地明白细节和大局,从而提高生成图像的质量。
[*]参考值:常见的值如0到200步,具体取决于使命的复杂性。
多分辨率(金字塔)衰减率
[*]作用:衰减率决定了在多分辨率处理时噪音扩散的强度衰减速率。合适的衰减率可以提高生成的稳定性和图像质量。
[*]参考值:衰减率通常选择在0.1到0.9之间,具体根据模型行为调解。
九、高级参数
随机种子数
[*]作用:随机种子是用于初始化随机数生成器的值。这确保了实验的可重复性。雷同的种子会产生雷同的随机序列。
[*]参考值:-1(随机)。
clip跳过
[*]作用:Clip 跳过是指在训练过程中跳过某些 Clip 层的计算。这可以减少训练时间,同时可能提高生成效果。
[*]参考值:通常选择在1到3之间,具体根据模型架构和目标使命举行调解。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]