自学内容网 自学内容网

Transformers Learning Rate Schedules

Learning Rate Schedules (PyTorch)
在这里插入图片描述
https://huggingface.co/docs/transformers/v4.48.0/en/main_classes/optimizer_schedules#transformers.SchedulerType

1.“linear” = get_linear_schedule_with_warmup

线性衰减调度器:在预热阶段(warmup)使用较小的学习率,然后在后续的训练中,学习率从初始值线性衰减到最小值。适用于需要在训练过程中逐渐减少学习率的任务。

典型用法:常用于 fine-tuning(微调)预训练模型。

2.“cosine” = get_cosine_schedule_with_warmup

余弦衰减调度器:学习率在训练过程中遵循余弦函数衰减。预热阶段使用较小的学习率,然后余弦地减小学习率直到训练结束。适用于希望学习率逐渐减小的任务,通常用于需要较长训练时间的任务。

典型用法:Transformer 预训练和 fine-tuning 中常用,特别是在长时间训练时。

3.“cosine_with_restarts” = get_cosine_with_hard_restarts_schedule_with_warmup

余弦衰减带硬重启调度器:类似于普通的余弦衰减,但是每隔一段时间(即“重启”)学习率重新开始衰减。这个策略适用于一些需要周期性地重新激活学习率的情况,通常用于训练过程中避免陷入局部最小值。

典型用法:长时间训练时,周期性地重启学习率。

4.“polynomial” = get_polynomial_decay_schedule_with_warmup

多项式衰减调度器:学习率会根据多项式函数衰减。起始阶段可以使用较大的学习率,在后续阶段根据多项式的衰减规律减小学习率,直到达到最小值。适用于需要较为平滑减小学习率的任务。

典型用法:通常用于需要非常平滑衰减的训练过程。

5.“constant” = get_constant_schedule

常数学习率调度器:在训练期间保持学习率不变。这是最简单的调度器,适用于需要在整个训练过程中保持学习率恒定的任务。

典型用法:不希望学习率变化,适用于某些基础模型训练或快速实验。

6.“constant_with_warmup” = get_constant_schedule_with_warmup

常数学习率调度器,带热身:在训练开始时通过一个热身阶段逐渐增加学习率,然后在后续训练中保持学习率不变。适用于需要开始阶段逐步增加学习率以避免训练不稳定的情况。

典型用法:适用于微调时使用恒定学习率,但需要热身来稳定训练过程。

7.“inverse_sqrt” = get_inverse_sqrt_schedule

平方根反比调度器:学习率按步数的平方根反比衰减,即随着训练的进行,学习率会根据训练步数的平方根逐渐减小。通常用于某些类型的自适应学习率策略中。

典型用法:常见于 transformer 和其他高级模型的训练中。

8.“reduce_lr_on_plateau” = get_reduce_on_plateau_schedule

按 plateau 减少学习率调度器:当验证集的损失在若干个训练步骤内没有改善时,自动减少学习率。这个策略常用于验证集上的指标没有提升时,减少学习率以避免过拟合。

典型用法:当模型训练过程中验证集性能没有显著提升时,采用此策略来调整学习率。

9.“cosine_with_min_lr” = get_cosine_with_min_lr_schedule_with_warmup

余弦衰减带最小学习率调度器:类似于余弦衰减调度器,但是在衰减时会设置一个最小的学习率阈值。学习率不会低于这个最小值,避免学习率过低造成训练无法继续的情况。

典型用法:需要平稳衰减学习率,同时保持学习率不会降得太低。

10.“warmup_stable_decay” = get_wsd_schedule

稳定衰减热身调度器:结合了热身阶段和稳定衰减的策略,旨在训练早期让模型稳定学习,之后逐渐减小学习率。适用于那些希望在训练初期保持较高学习率的任务,后期逐渐稳定学习的任务。

典型用法:用于需要在训练初期稳定模型时,逐步衰减学习率的任务。


原文地址:https://blog.csdn.net/Int321/article/details/145156269

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!