OpenLMLab / MOSS-RLHF

MOSS-RLHF
Apache License 2.0
1.2k stars 91 forks source link

PPOSFTDataset bug report和相关问题咨询 #49

Open DZ9 opened 4 months ago

DZ9 commented 4 months ago

ppo_datahelper.py此处代码和对应函数不适配。 image

另外想正好咨询一下:

  1. 此处应该padding left or right?
  2. llama2默认是padding right,但我看到reward model里的batch数据都是padding left,ppo这里都有很多地方也是padding到left的,具体的padding对齐策略是怎样的呢?
  3. 我发现loss_mask最终会把对应的tokenid改为0,ppo_trainer.py ,然后和模型输出做cross entropy,这里被mask掉的数据,好像依旧会按照label是0而进行梯度回传,能否咨询下这里的具体原理呢? image
Ablustrund commented 3 months ago
  1. pad-left = false是从右侧padding
  2. reward model padding left是为了防止最后打分的token为pad,影响效果。
  3. lossmask吧tokenid改为pad,所以最终是不会计算loss的。