[THUDM/ChatGLM-6B][BUG/Help] <请问大神们 训练问答对形式,训练集以外的问题如何不回答呢?>

2024-05-10 544 views
9

或者如何能获取当前问题的阈值? 请问大神们有什么意见吗?

Steps To Reproduce

使用问答对训练模型,问了不想关的问题,chatglm会乱回答,如何能解决不回答训练集以外的问题呢?

Environment
- OS:
- Python:
- Transformers:
- PyTorch:
- CUDA Support (`python -c "import torch; print(torch.cuda.is_available())"`) :

回答

9

我训练的结果是 问了训练集的问题 也会出现乱答的情况 不知道是不是训练数据少了

4

我训练的结果是问了训练集的问题也会出现乱回答的情况不知道是不是训练数据少了

你训练多少轮? 我数据集大概3000多条问答,训练3000轮,效果提升明显,由于遗忘性问题,问训练集以外的问题就会根据数据集乱回答

8

我训练的结果是问了训练集的问题也会出现乱回答的情况不知道是不是训练数据少了

你训练多少轮? 我数据集大概3000多条问答,训练3000轮,效果提升明显,由于遗忘性问题,问训练集以外的问题就会根据数据集乱回答

那应该是我数据量太少了,我就训练了几条数据 1000轮,请问一下你这个量级的数据训练完之后,回答每次都准确吗?会不会出现回答混乱,或者受到历史问答的干扰

9

请问训练多少轮?你们是如何做的呢?训练的内容重复训练3000次?

8

目前我尝试过的, 经验分享出来和大佬交流下: 核心是让模型轻度遗忘或者轻微过拟合, 同时结合prompt约束

  • 先尝试大模型, chatgpt可以完美prompt解决
  • 小模型 chatglm6b这种, 尝试靠微调+prompt 效果较好, 但还是存在“问内答外”or“问外答内”这种缺陷
    • 数据量大: 大轮数微调+简单prompt, 对话聚焦的效果较好
    • 数据量小: 小轮数微调+精调prompt, 对话聚焦的效果一般, 不过缺陷基本收敛到“问外答内”, 对于垂类场景可以接受
  • 进一步
    • 加数据
    • 小模型可以试下更好的 prompt learning
    • 增大模型
    • 模型够大后尝试 CoT
8

外挂问题集,模型推理结果embedding,和问题集匹配

3

目前我尝试过的, 经验分享出来和大佬交流下: 核心是让模型轻度遗忘或者轻微过拟合, 同时结合prompt约束

  • 先尝试大模型, chatgpt可以完美prompt解决
  • 小模型 chatglm6b这种, 尝试靠微调+prompt 效果较好, 但还是存在“问内答外”or“问外答内”这种缺陷

    • 数据量大: 大轮数微调+简单prompt, 对话聚焦的效果较好
    • 数据量小: 小轮数微调+精调prompt, 对话聚焦的效果一般, 不过缺陷基本收敛到“问外答内”, 对于垂类场景可以接受
  • 进一步

    • 加数据
    • 小模型可以试下更好的 prompt learning
    • 增大模型
    • 模型够大后尝试 CoT

我这里只有900条数据,做了微调,加了instuction,问内虽然答内了,但是基本属于胡编乱造了,很难回答准确,准备加入知识库和微调双管齐下了。老哥有什么好的建议么

1

目前我尝试过的, 经验分享出来和大佬交流下: 核心是让模型轻度遗忘或者轻微过拟合, 同时结合prompt约束

  • 先尝试大模型, chatgpt可以完美prompt解决
  • 小模型 chatglm6b这种, 尝试靠微调+prompt 效果较好, 但还是存在“问内答外”or“问外答内”这种缺陷

    • 数据量大: 大轮数微调+简单prompt, 对话聚焦的效果较好
    • 数据量小: 小轮数微调+精调prompt, 对话聚焦的效果一般, 不过缺陷基本收敛到“问外答内”, 对于垂类场景可以接受
  • 进一步

    • 加数据
    • 小模型可以试下更好的 prompt learning
    • 增大模型
    • 模型够大后尝试 CoT

我这里只有900条数据,做了微调,加了instuction,问内虽然答内了,但是基本属于胡编乱造了,很难回答准确,准备加入知识库和微调双管齐下了。老哥有什么好的建议么

1、看你的任务是否复杂,我试过的都是1-2个NLP任务准确度还可以,超过的话最好拆解多阶段,多阶段prompt或训练多个prefix,参考cv的各种多阶段head 2、提升你的数据质量 3、试下self-consistency