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

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

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

相关推荐
Dxy123931021613 分钟前
DrissionPage 异常处理实战指南:构建稳健的网页自动化防线
运维·爬虫·python·自动化·drissionpage
chao_7891 小时前
链表题解——反转链表【LeetCode】
开发语言·python·算法
⁤͏͏⁦⁠͏1 小时前
6月2日day43打卡
python
大写-凌祁1 小时前
GLIDE论文阅读笔记与DDPM(Diffusion model)的原理推导
论文阅读·人工智能·笔记·python·深度学习·机器学习·计算机视觉
Mikhail_G1 小时前
Python应用continue关键字初解
大数据·运维·开发语言·python·数据分析
互联网杂货铺1 小时前
unittest自动化测试实战
自动化测试·软件测试·python·测试工具·程序人生·职场和发展·测试用例
Code_流苏1 小时前
Python趣学篇:从零打造智能AI井字棋游戏(Python + Tkinter + Minimax算法)
python·算法·游戏·tkinter·智能井字棋·minimax算法
水银嘻嘻1 小时前
04 APP 自动化- Appium toast 元素定位&列表滑动
python·appium·自动化
Ronin-Lotus2 小时前
嵌入式硬件篇---龙芯2k1000串口
linux·网络·python·嵌入式硬件·龙芯·2k1000
编程有点难2 小时前
Python训练打卡Day38
人工智能·python·深度学习