sunzeyeah / RLHF

Implementation of Chinese ChatGPT
283 stars 35 forks source link

reward推理问题 #16

Closed ItGirls closed 1 year ago

ItGirls commented 1 year ago

你好,请问你有没有发现在基于chatglm实现的reward模型做推理时,batchsize设置不同时,同一个样本推理结果不一致.model.eval,with torch.nograd这些都加了,还不清楚为什么会这样.

sunzeyeah commented 1 year ago

你好 能否提供具体的代码、数据和日志

sunzeyeah commented 1 year ago

你好,我猜测可能原因是reward score的计算,目前已修复,可以尝试一下是否解决你的问题

reward score应该分别取chosen和rejected各自的最后一个非padding token,但是取了两者的max index,所以不同的chosen和rejected组合计算出来的结果都不一致。详见reward.py,以及issue 17

ItGirls commented 1 year ago

明天我回复你

发自我的iPhone

------------------ 原始邮件 ------------------ 发件人: Zeye Sun @.> 发送时间: 2023年5月17日 21:42 收件人: sunzeyeah/RLHF @.> 抄送: ItGirls @.>, Author @.> 主题: Re: [sunzeyeah/RLHF] reward推理问题 (Issue #16)

你好,我猜测可能原因是reward score的计算,目前已修复,可以尝试一下是否解决你的问题

reward score应该分别取chosen和rejected各自的最后一个非padding token,但是取了两者的max index,所以不同的chosen和rejected组合计算出来的结果都不一致。详见reward.py,以及issue 17

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

ItGirls commented 1 year ago

这里哈,在reward Model(base model为 chatglm)里面, 这个hidden_states = hidden_states.view(batch_size, seq_len, hidden_size)是错的,应该是hidden_states = hidden_states.permute(1, 0, 2).

sunzeyeah commented 1 year ago

谢谢指出,已修复