OpenLMLab / MOSS-RLHF

MOSS-RLHF
Apache License 2.0
1.22k stars 93 forks source link

关于中文reward-model参数合并的问题 #24

Open hannlp opened 11 months ago

hannlp commented 11 months ago

感谢作者无私开源,看到官方README里说中文的reward-model是基于open-chinese-llama-7b做的,但是后面的步骤说明里写的是:python merge_weight_zh.py recover --path_raw decapoda-research/llama-7b-hf --path_diff ./models/moss-rlhf-reward-model-7B-zh/diff --path_tuned ./models/moss-rlhf-reward-model-7B-zh/recover,这里用的又是原始的llama。我一开始是使用原始的llama合并的,可以成功合并,但是打分异常 #21 。后来尝试使用https://huggingface.co/openlmlab/open-chinese-llama-7b-patch 进行合并,但是代码中的一致性检查报错了Naive integrity check failed. This could imply that some of the checkpoint files are corrupted. @Ablustrund

Ablustrund commented 11 months ago

您好,感谢您的使用。无论中文和英文的模型,合并都使用原始的decapoda-research/llama-7b-hf。我们的中文奖励模型是基于open chinese llama 训练的,但是发布的时候为了统一,使用decapoda-research/llama-7b-hf做的diff,所以合成奖励模型和基于什么训练是没有关系的。所以你最开始的合并是正确的。 另外关于打分异常的问题,我在您的代码中没有看到明显错误,请您也确认一下是否和代码中“采样打分”部分相同。 另外奖励模型打分的绝对值没有明显的参考意义,只要保证同样的prompt,好的回复的打分好于坏的回复即可。 另外需要确认的是,我们的输入格式貌似是 <s> <|Human|> 列举一种空气污染。</s> <|MOSS|> 一种常见的空气污染源是化石燃料的......</s> 请您确认一下是否在每一个prompt后面,缺少一个</s>(但是我不确定对奖励模型的打分是否有显著影响。)

hannlp commented 11 months ago

非常感谢作者回复,之前试过在prompt后面也加,影响不大。不知道作者有没有试用我的代码,如果输出是一致的,那可能就是跟模型准确率本身不够高有关系了,话说reward model确实还挺难做的。再次感谢作者,期待part 2。

Ablustrund commented 11 months ago

非常感谢作者回复,之前试过在prompt后面也加,影响不大。不知道作者有没有试用我的代码,如果输出是一致的,那可能就是跟模型准确率本身不够高有关系了,话说reward model确实还挺难做的。再次感谢作者,期待part 2。

谢谢您的使用!我们的代码和您类似,只是加了special token。但是我们在发布tokenizer的时候已经加入了special token,所以应该是相通的。 奖励模型的泛化能力和鲁棒性确实比较重要,如果您的sample和我们训练的sample区别较大,打分就很容易不准。我们的part2预计在本月或者下个月推出 感谢您的持续关注!

ayf-9797 commented 4 months ago

想请教下两位老师,通过调试可以看到,中文奖励模型要求下载的'diff'目录下的模型已经在每一层都具备了权重,这时是否还需要使用python merge_weight_zh.py对模型权重进行融合呢?另外,给出的模型的权重融合代码中使用的是加法,我使用hugging face中下载的llama-7b-hf融合后的校验结果都是inf,然后提示融合错误,这两个问题还请老师不吝赐教,非常感谢!