Closed LexieeWei closed 3 months ago
理论上我们没有做归一化,不排除是一些计算上的 bug
理论上我们没有做归一化,不排除是一些计算上的 bug
希望api_demo get_scores 接口能输出 train_bash --do_predict 一样的chosen/reject分数,LLama_factory 框架是否支持呢
还发现一个问题,每次api_demo的服务拉起来后,同一case的推理分值是不同的,很奇怪
还发现一个问题,每次api_demo的服务拉起来后,同一case的推理分值是不同的,很奇怪
可以分享一个调用API程序的借口吗?
` chosen_trunc_rewards = chosen_rewards[i, div_index:end_index] # shape 69 rejected_trunc_rewards = rejected_rewards[i, div_index:end_index] # shape 69
loss = -torch.nn.functional.logsigmoid(chosen_trunc_rewards - rejected_trunc_rewards).mean()` 请教一个问题。RM模型计算loss的时候,应该是sentence级别或者sequence级别去计算sigmoid loss吧?因为逻辑上是要求某个sentence的回答比另一个sentence的回答的分数高。但是实现的时候,是token级别的去计算sigmoid loss,然后取mean了。不知道是我哪里理解有问题呢?谢谢
Reminder
Reproduction
api_demo 部署:
CUDA_VISIBLE_DEVICES=1 python .../LLaMA-Factory/src/api_demo.py \ --stage rm \ --model_name_or_path xxxx/checkpoint-280 \ --template qwen \ --finetuning_type full
train_bash --do_predict 测试
CUDA_VISIBLE_DEVICES=0 python train_bash.py \ --stage rm \ --model_name_or_path xxxx/checkpoint-280-backup \ --do_predict \ --dataset_dir ... \ --dataset ...\ --template qwen \ --finetuning_type full \ --per_device_eval_batch_size 4 \ --output_dir... \ --overwrite_output_dir \ --fp16
Expected behavior
背景:我已经微调过奖励模型RM,需要部署一个接口,给到其他模块使用
现象:我使用 train_bash 的 --do_predict 模式,对一批数据对进行测试,这时的分数不是归一化的,根据分值相对大小来判断候选答案好坏的结果也基本符合业务预期(记为设置A);但是我使用api_demo部署RM接口后,发现输出的分值在0~1之间,且相对大小不再合理(记为设置B)。
问题:
System Info
No response
Others
No response