hiyouga / LLaMA-Factory

Unified Efficient Fine-Tuning of 100+ LLMs (ACL 2024)
https://arxiv.org/abs/2403.13372
Apache License 2.0
35.52k stars 4.37k forks source link

reward model 使用do_predict得到的结果和直接用api部署不同 #5967

Open vxfla opened 3 weeks ago

vxfla commented 3 weeks ago

Reminder

System Info

Reproduction

如下两种方式对同一批数据打分结果不一致: 方式1: 本地部署一个训练过的reward model API_PORT=8001 llamafactory-cli api --model_name_or_path xxx --template qwen --stage rm

通过如下方式获取score

    prompt = "You are a helpful assistant."
    messages = [
        {"role": "system", "content": prompt},
        {"role": "user", "content": instruct},
        {"role": "assistant", "content": output}
    ]
    text = tokenizer.apply_chat_template(
        messages,
        tokenize=False,
        add_generation_prompt=True
    )
    return text

def get_score(instruct, output):
    text = make_text(instruct, output)
    data = {
                "model": "qwen2.5_3B_style_rm_3k",
                "messages": [
                    text
                ]
            }
    r = requests.post("http://127.0.0.1:8001/v1/score/evaluation", data=json.dumps(data))
    return json.loads(r.text)["scores"][0]```

方式2:
llamafactory-cli train xxx.yaml

yaml内容

model_name_or_path: xxx

stage: rm do_train: false do_eval: false do_predict: true

eval_dataset: xxx template: qwen cutoff_len: 1024 max_samples: 10000 overwrite_cache: true preprocessing_num_workers: 16

output_dir: xxx

per_device_eval_batch_size: 1



### Expected behavior

方式1给出的score比较低,且chosen > reject 的比例只有60%
方式2 给出score 数值较高,且chosen > reject 的比例有100%

想知道是我部署出了问题,还是评测出了问题

### Others

_No response_
vxfla commented 2 weeks ago

你好,我是在本地部署的API,没有对外的接口,这里的调用方式是采用llamafactory文档中的方式启动服务后,结合给出的API文档中的参数自己写的。

将仙 @.***

 

------------------ 原始邮件 ------------------ 发件人: "hiyouga/LLaMA-Factory" @.>; 发送时间: 2024年11月18日(星期一) 晚上7:47 @.>; @.**@.>; 主题: Re: [hiyouga/LLaMA-Factory] reward model 使用do_predict得到的结果和直接用api部署不同 (Issue #5967)

@vxfla 你好,请问一下,我用你的调用api方法404,请问做了什么修改吗,谢谢

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

world2025 commented 2 weeks ago

你好,我是在本地部署的API,没有对外的接口,这里的调用方式是采用llamafactory文档中的方式启动服务后,结合给出的API文档中的参数自己写的。 将仙 @.   ------------------ 原始邮件 ------------------ 发件人: "hiyouga/LLaMA-Factory" @.>; 发送时间: 2024年11月18日(星期一) 晚上7:47 @.>; @*.**@*.>; 主题: Re: [hiyouga/LLaMA-Factory] reward model 使用do_predict得到的结果和直接用api部署不同 (Issue #5967) @vxfla 你好,请问一下,我用你的调用api方法404,请问做了什么修改吗,谢谢 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.>

我搞错了,根据你的可以调用成功,我问下reward的分数,越高越说明回答好是不