LLaMA-Factory icon indicating copy to clipboard operation
LLaMA-Factory copied to clipboard

究竟怎么做dpo呀

Open XuanRen4470 opened this issue 10 months ago • 6 comments

Reminder

  • [X] I have read the README and searched the existing issues.

Reproduction

我已经严格按照example里dpo的流程做了(lora)

  1. train sft model
  2. 把sft adapter的路径给adapter_name_or_path, 把mistral 7b 的路径(没merge)给model_name_or_path
  3. 推理时 把mistral 7b 的路径(没merge)给model_name_or_path, 然后adapter_name_or_path 给sft adapter路径,dpo adapter路径

我发现dpo训练完后从来没超过sft过(我在9个数据集上测试)

还有是我读别人的问题,发现好多人说merge lora model。 可是我读dpo的readme并没有提到merge。

create_new_adapter,overwrite_cache,这两个我全程在用,虽说也不知道它们什么意思。感觉需要一些更加详细的readme文档。

还有是train完之后具体要怎么inference呢?根据read me 我在inference时需要给adapter_name_or_path 给sft adapter路径,dpo adapter路径。可是如果merge weight的话原则上来说我认为不需要这些东西呀(我之前的实验都没merge因为readme没说要merge lora)

总结: 第一个问题:究竟具体应该怎么train,要不要merge lora weight 第二个问题:具体怎么inference(假如merge 了 lora wright那么readme没有讲这种情况如何inference)

Expected behavior

No response

System Info

No response

Others

No response

XuanRen4470 avatar Apr 23 '24 11:04 XuanRen4470

DPO 不是用来刷数据集准确率的

hiyouga avatar Apr 23 '24 15:04 hiyouga

DPO 不是用来刷数据集准确率的

但是我记得dpo是可以拿来提高模型能力的呀?还有dpo具体的流程究竟是什么呀?我现在加了一个merge sft lora的操作好像准确率有提高。可是readme的dpo example里没有提到merge lora。我现在inference和train的流程和readme里全都不一样但是准确率好像高了一些。

XuanRen4470 avatar Apr 24 '24 00:04 XuanRen4470

example 在哪里呢?

Felixgithub2017 avatar Apr 25 '24 08:04 Felixgithub2017

DPO 不是用来刷数据集准确率的

但是我记得dpo是可以拿来提高模型能力的呀?还有dpo具体的流程究竟是什么呀?我现在加了一个merge sft lora的操作好像准确率有提高。可是readme的dpo example里没有提到merge lora。我现在inference和train的流程和readme里全都不一样但是准确率好像高了一些。

推理的时候可以先把dpo训练的数据merge后再进行推理: (1)把dpo训练的模型进行merge

MODEL_PATH=/your path/Qwen1.5-32B-Chat
OUTPUT_PATH=/your path/qwen-32b-dpo
EXPORT_PATH=/your path/qwen-32b-dpo-merge

python ../src/export_model.py \
    --model_name_or_path $MODEL_PATH  \
    --adapter_name_or_path $OUTPUT_PATH  \
    --template qwen \
    --finetuning_type lora \
    --export_dir $EXPORT_PATH  \
    --export_size 2 \
    --export_legacy_format False \

(2)模型推理

MODEL_PATH=/you path/qwen-32b-dpo-merge

python ../src/cli_demo.py \
    --model_name_or_path $MODEL_PATH  \
    --template qwen \
    --finetuning_type lora  \
    --pure_bf16  \
    --flash_attn

AlexYoung757 avatar Apr 29 '24 08:04 AlexYoung757

我做了dpo、orpo,效果还不如sft,问过LLaMA-Factory的核心开发者,回答是“强化学习适合用于日常对话任务”

KevinFanng avatar May 13 '24 09:05 KevinFanng

本来就有对齐税

lengyueyang avatar May 14 '24 03:05 lengyueyang