mymusise / ChatGLM-Tuning

基于ChatGLM-6B + LoRA的Fintune方案
MIT License
3.71k stars 444 forks source link

大佬,问一下,多轮对话的数据组织形式是什么? #182

Open cristianohello opened 1 year ago

mymusise commented 1 year ago

可以参考下官方ptuning的例子

cristianohello commented 1 year ago

@mymusise

官方的多轮对话例子是这样的: 对话数据集 如需要使用多轮对话数据对模型进行微调,可以提供聊天历史,例如以下是一个三轮对话的训练数据:

{"prompt": "长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "response": "用电脑能读数据流吗?水温多少", "history": []} {"prompt": "95", "response": "上下水管温差怎么样啊?空气是不是都排干净了呢?", "history": [["长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "用电脑能读数据流吗?水温多少"]]} {"prompt": "是的。上下水管都好的", "response": "那就要检查线路了,一般风扇继电器是由电脑控制吸合的,如果电路存在断路,或者电脑坏了的话会出现继电器不吸合的情况!", "history": [["长城h3风扇不转。继电器好的。保险丝好的传感器新的风扇也新的这是为什么。就是继电器缺一个信号线", "用电脑能读数据流吗?水温多少"], ["95", "上下水管温差怎么样啊?空气是不是都排干净了呢?"]]}

那针对这个项目lora微调的时候,还需要修改数据处理的代码吗? 希望大佬能给出针对多轮数据组织形式进行微调的代码分支。

cristianohello commented 1 year ago

@mymusise 官方数据如下: https://github.com/THUDM/ChatGLM-6B/tree/main/ptuning#%E5%AF%B9%E8%AF%9D%E6%95%B0%E6%8D%AE%E9%9B%86

mymusise commented 1 year ago

这块应该不难,可以参考具体官方的处理:https://github.com/THUDM/ChatGLM-6B/blob/main/ptuning/main.py#L160

把history的内容转成:

"[Round {}]\n问:{}\n答:{}\n".format(turn_idx, old_query, response)

然后这部分加入到context的前面应该就可以