OpenLMLab / MOSS-RLHF

MOSS-RLHF
Apache License 2.0
1.27k stars 96 forks source link

PPO训练稳定性问题 #17

Open hust-kevin opened 1 year ago

hust-kevin commented 1 year ago

@Ablustrund 我之前使用其它框架训过RLHF,发现模型可能在2000 step的时候效果相比sft是有所提升的,但是继续训练,可能到第3000个step的时候就完全训崩了,请问你们在做实验的时候有遇到类似的问题么,就是增加训练的step,后续容易训崩,这个可能的原因是什么呢

Ablustrund commented 1 year ago

我们的框架不同于其他框架,我们在技术报告中的各种trick大多目的是提高ppo过程的稳定性,其中kl penalty对约束模型防止崩溃起到较为显著的效果。我们初步判断在训练较多step后模型崩掉的原因可能是reward model的能力不够,不足以完成正确的打分,这部分我们会在技术报告PART II中做较为详细的阐述。

hust-kevin commented 1 year ago

好的,那使用论文中的这些trick是可以解决ppo训练崩溃的问题还是只能延缓呢?是否训练很长的step之后可能也容易崩掉?

ruizheng20 commented 1 year ago

好的,那使用论文中的这些trick是可以解决ppo训练崩溃的问题还是只能延缓呢?是否训练很长的step之后可能也容易崩掉?

在我们的实验设置下,是可以避免的。我们的实施流程加入了各种有效的trick,适当的调参,比如kl penelty系数,reward clipping程度是有很大几率避免的。

akk-123 commented 1 year ago

@Ablustrund @ruizheng20 你好,我看论文中提到rollout size为128,train batch size为32,为什么这里训练脚本中设置的都是为2(如果8卡的话为16),哪种设置更好呢,是否bs更小(更加on-policy)训练会更加稳定呢

Ablustrund commented 1 year ago

bs更小训练会更加稳定。on policy 和 off policy的区别是batch size 是否和 rollout size 相匹配,如果batchsize能够将当前采样得到的samples一步优化,那么就是on policy