Replies: 1 comment 4 replies
-
|
不能和原始的合并啊?你在哪个基础上训练的就合并哪个 |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
好一段时间了,各种方法试了,效果非常异常,感觉是不是什么做法本质错了,恳请点拨一下QAQ。想要做一个代码生成类。SQL 生成的事。 基础模型是llama3.1, 全部工作都是用llamafactory 完成的,vllm 加速推理。
####step1: 使用llama3.1-8b , 做SFT,在test 集合上测试, 准确率确实有提升(6%)

基础模型从hugging face 下载下来的全模型,
SFT 数据样式如下:
SFT 训练命令
llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml
SFT 训练配置
SFT训练3轮, 保存checkpoint , 使用merge 脚本, 合并了SFT 权重和 基础llama3,1-8b的权重
得到llama3.1-8b-sft模型
####step2: llama3.1-8b-sft 针对新的用户问题, 写出SQL response, 一个问题, 写出10个response , 通过评估打分,每一个response都有一个分数, 最高和最低, 形成preference , 筛选preference , 确保高和低的分差大,语句相似度小,通过筛选条件的严格程度, 分别获取了两批 preference data : 2500条和 350条
####step3: DPO训练
训练命令:llamafactory-cli train examples/train_lora/llama3_lora_dpo.yaml
dpo 训练配置

训练之后, 我将do-clean_preference 文件夹 和 原始的 llama3.1-8b (是原始的, 不是SFT的那个) merge 了 , 得到了 llama3.1-8b-dpo
merge 脚本如下:
dpo 数据如下:

####step4 : 推理:
推理数据都是这样组织的: 所有的prompt: 数据库上下文 问题 指令 都写在instruction里了,input是空,output是 test 的 label(用不上
)

<正常情况>当使用SFT模型(llama3.1-8b-sft) 使用test数据inference 后, 长这样:
generated_predictions.jsonl , 可以清晰的看到 prompt 后拼接了 llama3 模版的 尾部标识: <|im_end|>\n<|im_start|>assistant\n", 然后 predict 就是预测出来的SQL
<异常情况>当使用dpo模型 (llama3.1-8b-dpo) , 使用test 数据inference 后, 长这样:
不仅仅是尾部标识 <|im_end|>\n<|im_start|>assistant\n" 都没出现, predict 似乎也是继续往下写的感觉,完全不是生成SQL。 试了不同的数据配比(即使数据数量高一点 质量好一点(preference 区分大一点), )也是一样的情况, 所以感觉是不是代码本身使用的不对。 请各位专家指导一下 真的感谢
Beta Was this translation helpful? Give feedback.
All reactions