1、原来的模型可以正常对话 2、ptuning后,加载prefix_encoder参数与原来的模型,原来的语言能力没有了,这个是正常的吗
根据文档操作
Environment- OS:
- Python:
- Transformers:
- PyTorch:
- CUDA Support (`python -c "import torch; print(torch.cuda.is_available())"`) :
1、原来的模型可以正常对话 2、ptuning后,加载prefix_encoder参数与原来的模型,原来的语言能力没有了,这个是正常的吗
根据文档操作
Environment- OS:
- Python:
- Transformers:
- PyTorch:
- CUDA Support (`python -c "import torch; print(torch.cuda.is_available())"`) :
我也发现一样的问题,即使对特定的任务加上prompt描述在进行finetune,还是会导致原本对话能力的丧失。 使用LoRA进行finetune的话,原本的能力也会受影响,但是没有p-tuning严重。
我也是,ptuning微调后,原有能力消失, D:\webui2\ChatGLM-6B\ptuning>python web_demo.py --model_name_or_path="D:\chatglm-6b" --ptuning_checkpoint="checkpoint-3000" --pre_seq_len=128
LORA同样遇到
同样遇到了这个问题:
个人理解是p-tuning在前面加prefix-token,找到了一个非常合适这个任务的prompt。前向预测的时候,就相当于加上了特定任务的prompt。
LoRA训练后,不加prompt问训练之前内容,没感到有变化
同样的问题,pt后问什么都只回答pt的内容,通用的能力完全消失
神经网络具有灾难性遗忘的问题,在新的任务上训练之后会遗忘之前的知识。LoRA 因为对参数的改动是从 0 开始的所以会好一点,但是如果 最好的解决方法是把特定任务的训练数据和我们的训练数据一起进行训练。因此,我们推出了一个提交新的训练数据的计划 https://github.com/THUDM/ChatGLM-6B/tree/main/improve ,我们会定期将筛选通过的训练数据加入到训练中,并开源训练后的模型参数。
@duzx16 你们使用的训练数据是什么规模,可以开源吗?我们的业务数据由于数据隐私与安全的问题,不方便提交。如果你们的训练数据可以开源,我们每次训练时,使用你们的训练数据+我们的业务数据一起训练。
神经网络具有灾难性遗忘的问题,在新的任务上训练之后会遗忘之前的知识。LoRA 因为对参数的改动是从 0 开始的所以会好一点,但是如果 最好的解决方法是把特定任务的训练数据和我们的训练数据一起进行训练。因此,我们推出了一个提交新的训练数据的计划 https://github.com/THUDM/ChatGLM-6B/tree/main/improve ,我们会定期将筛选通过的训练数据加入到训练中,并开源训练后的模型参数。
发现灾难性遗忘问题,与测试时prompt有很大关系。 我们将领域内的多轮对话组织成如下格式: 原始多轮对话:问题1->答案1->问题2->答案2 组织训练数据为:input:【round0】\n问:问题1,答:答案1 \n 【round1】\n 问:问题2 答:target:答案2。 使用全参数量的方式finetuning(非ptuning方式微调)。然后在公开数据上测试(非领域内数据)。预测时输入中加入“【round0】”与加入“【round0】”后效果差别很大。
举例如下: 原始数据: input:阅读文章,回答问题:具体文章xxxx。问题:具体问题xxx。 label:埼玉县埼玉市南区七丁目 ChatGLM6B: input:阅读文章,回答问题:具体文章xxxx。问题:具体问题xxx。 output:武藏浦和站是一个位于埼玉县埼玉市南区七丁目,属于东日本旅客铁道(JR东日本) 预测input中不加入【round0】(模型为我们微调模型): input:阅读文章,回答问题:具体文章xxxx。问题:具体问题xxx。 output:武藏浦和站是一个位于埼玉县埼玉市南区七丁目,属于东日本旅客铁道(JR东日本)埼玉县埼玉市南区七丁目,属于东日本旅客铁道 预测input中加入【round0】(模型同上): input:【round0】阅读文章,回答问题:具体文章xxxx。问题:具体问题xxx。 output:亲,请您稍等,正在查询中。谢谢理解呢。 ps: ”亲,请您稍等,正在查询中。谢谢理解呢。“是我们训练语料中的内容。
请问,你们训练ChatGLM6B使用的多轮对话训练数据,其中input的prompt格式是怎么样的?针对多轮对话数据都在开头加上"【round0】问:答:"这种prompt吗?
大佬们,有咩有针对6b-int4的lora微调方案,机器显存就8g
@duzx16 你们使用的训练数据是什么规模,可以开源吗?我们的业务数据由于数据隐私与安全的问题,不方便提交。如果你们的训练数据可以开源,我们每次训练时,使用你们的训练数据+我们的业务数据一起训练。
想啥呢 官方不会的~
目前也发现,不过我发现一点方法可能会好一些,在ptuingv2的时候除了加要增加的知识外,还额外增加一个chatgpt的问答模型,这样调出来的,不会特别遗忘,比单纯知识遗忘好一点儿。不知道lora会不会好一些。