Shortcuts

get_cosine_schedule_with_warmup

torchtune.training.get_cosine_schedule_with_warmup(optimizer: Optimizer, num_warmup_steps: int, num_training_steps: int, num_cycles: float = 0.5, last_epoch: int = - 1) LambdaLR[source]

创建一个学习率调度,使学习率从0.0线性增加到num_warmup_steps,然后在剩余的num_training_steps-num_warmup_steps上按余弦调度减少到0.0(假设num_cycles = 0.5)。

这是基于Hugging Face的实现 https://github.com/huggingface/transformers/blob/v4.23.1/src/transformers/optimization.py#L104

Parameters:
  • optimizer (torch.optim.Optimizer) – 用于调度学习率的优化器。

  • num_warmup_steps (int) – 预热阶段的步骤数。

  • num_training_steps (int) – 训练步骤的总数。

  • num_cycles (float) – 余弦调度中的波数。默认为0.5 (从最大值减少到0,遵循半余弦曲线)。

  • last_epoch (int) – 恢复训练时的最后一个周期的索引。默认为 -1

Returns:

使用适当的时间表进行torch.optim.lr_scheduler.LambdaLR。