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

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

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

相关推荐
LOVE️YOU3 小时前
Python 中 Tuple 为什么有时可 Hash,有时不可 Hash?
开发语言·python·哈希算法
小oo呆3 小时前
【学习心得】迭代器和可迭代对象
开发语言·python
AC赳赳老秦3 小时前
采集行为合规自检:OpenClaw 自动校验 robots 协议与采集频率,规避违规采集风险
java·开发语言·c++·python·php·deepseek·openclaw
迅猛龙办公室3 小时前
Python输出当前计算机的系统日期和时间
开发语言·前端·python
XiaoMaqqqq5 小时前
知名的IP驱动产业新场景新工具
网络·python·网络协议·tcp/ip
言乐65 小时前
Python实现语音审核模型
开发语言·python·django·virtualenv·pygame
程序员清风6 小时前
Python 数据分析环境搭建:从 Jupyter 到 pandas
python·jupyter·数据分析
月光船幽幽6 小时前
加性偏移外推提升参数识别可靠性
python·算法
BD_Marathon7 小时前
消息对象中字段的说明
java·前端·python
Java后端的Ai之路7 小时前
Python进阶探索23 - Python中的Time与Datetime模块
开发语言·数据库·python·datetime·time