Trainer中
首先:
WarmupDecayLR
= --lr_scheduler_type linear
WarmupLR
= --lr_scheduler_type constant_with_warmup
1
TrainArgument不传lr_scheduler_type、optim,warmup_steps=15
ds config文件中定义如下:
注意:如果不在TrainArgument传入warmup_steps,直接在ds config指定的话会报错,故需要结合使用。
学习率如下:
2
TrainArgument不传lr_scheduler_type、optim,warmup_steps=15
ds config文件中定义如下:
学习率如下:
3
TrainArgument不传optim,warmup_steps=15
lr_scheduler_type=constant_with_warmup
ds config文件中定义如下:
学习率如下:
可以得出:deepspeed中的优化器和学习率策略确实是有优先级的,两个都定义的情况下会用deepspeed中的。
推荐用法:optim用deepspeed, lr_scheduler用huggingface的 cosine
cosine学习率图如下:
PPOTrainer、RLOOTrainer
trl中的相关trainer是不支持deepspeed配置optimizer 和 lr_scheduler的,需要使用huggingface提供的。