当前位置: 首页 > article >正文

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

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

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


http://www.kler.cn/a/504756.html

相关文章:

  • 《深度剖析算法优化:提升效率与精度的秘诀》
  • 【数据结构】基础知识
  • 【大数据】机器学习-----线性模型
  • Unreal Engine 5 C++ Advanced Action RPG 八章笔记
  • 14X505-1《火灾自动报警系统设计规范图示》中相关数据和总线制的个人理解
  • 从零搭建一个Vue3 + Typescript的脚手架——day1
  • 微软震撼发布:Phi-4语言模型登陆Hugging Face
  • Java算法 数据结构基础 并查集 模版 [洛谷-P3367]
  • Masked_Filled随机置列为零
  • 集合帖:区间问题
  • 自建RustDesk服务器
  • BERT的中文问答系统65
  • C语言重点回顾(持续更新中~)
  • 【C#深度学习之路】如何使用C#实现Yolo8/11 Segment 全尺寸模型的训练和推理
  • 实战web 渗透测试教学课程
  • Copilot 和 Windsurf哪个更适合于.netcore开发
  • 获取文章分类详情功能
  • 永久免费日志增量采集工具
  • ubuntu20升级至22后不兼容ssh-rsa加密算法
  • 【C++】揭秘类与对象的内在机制(核心卷之构造函数与析构函数的奥秘)
  • [MRCTF2020]Xor
  • 电机控制01 - 入门篇
  • 设计和优化用于 AR、HUD 和高级显示系统的表面浮雕光栅
  • 指令微调(Instruction Fine-Tuning)
  • LeetCode —— 数组
  • Chapter 3-11. Detecting Congestion in Fibre Channel Fabrics