Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请教增量预训练后的两个问题:1)token长尾 2)group texts #83

Closed
Zagreus-lzy opened this issue Jul 11, 2023 · 12 comments
Closed
Labels
question Further information is requested

Comments

@Zagreus-lzy
Copy link

Describe the Question

Please provide a clear and concise description of what the question is.

二次预训练的领域文本背景是游戏应用。
模型是chatglm-6b,数据量为4w条QA样本,训练方式为lora+自回归。

目前遇到两个问题:
1)增量预训练之后token出现长尾现象,连续输出同一个token,且不会主动停止。
比如:《传奇》是一款MMO类游戏,全新玩法 全新玩法 全新玩法 全新玩法 ...

2)输入数据为“问题+回答”的形式,因为做了group texts,训练后的模型回答中也带有“问题”。
比如:
Q:请介绍一下《王者荣耀》这款游戏?
A:《王者荣耀》是一款......的游戏。请描述一下《和平精英》这款游戏?《和平精英》是一款.....

@Zagreus-lzy Zagreus-lzy added the question Further information is requested label Jul 11, 2023
@valkryhx
Copy link

我理解二次预训练之后 是不是还是要SFT一下 才好?

@Zagreus-lzy
Copy link
Author

我理解二次预训练之后 是不是还是要SFT一下 才好?

这里是想验证一下,增量预训练有没有把领域知识注入到模型中,但是目前回答的还不如原模型。

@valkryhx
Copy link

我理解二次预训练之后 是不是还是要SFT一下 才好?

这里是想验证一下,增量预训练有没有把领域知识注入到模型中,但是目前回答的还不如原模型。

我想问下 您有没有遇到二次预训练的数据量和train step对不上的情况?比如2卡 预训练语料4000条 batch_size_per_gpu=2 epoch=1 那step应该是4000*1/2/2=1000 steps,
但是实际steps会比这个值大?

@Zagreus-lzy
Copy link
Author

我理解二次预训练之后 是不是还是要SFT一下 才好?

这里是想验证一下,增量预训练有没有把领域知识注入到模型中,但是目前回答的还不如原模型。

我想问下 您有没有遇到二次预训练的数据量和train step对不上的情况?比如2卡 预训练语料4000条 batch_size_per_gpu=2 epoch=1 那step应该是4000*1/2/2=1000 steps, 但是实际steps会比这个值大?

是不是有个max_train_samples的参数你没有改啊?

@CarolineWinter88
Copy link

感觉是数据切分的问题,这边大概的逻辑是将所有的文本数据合并起来,然后按照block size去切分,这样有可能是把下个场景的信息,带入到了上个场景中了

@AI-Study-Han
Copy link

数据量为4w条QA样本不应该是SFT吗?不是增量训练吧,增量训练应该用纯文本数据吧

@HanXM715
Copy link

@HanSomeLing 我看博主的增量预训练的数据也是QA形式,按道理来说应该是纯文本,估计博主这样做是为了将QA信息注入到预训练中
image

@zhaoxin-L
Copy link

Describe the Question

Please provide a clear and concise description of what the question is.

二次预训练的领域文本背景是游戏应用。 模型是chatglm-6b,数据量为4w条QA样本,训练方式为lora+自回归。

目前遇到两个问题: 1)增量预训练之后token出现长尾现象,连续输出同一个token,且不会主动停止。 比如:《传奇》是一款MMO类游戏,全新玩法 全新玩法 全新玩法 全新玩法 ...

2)输入数据为“问题+回答”的形式,因为做了group texts,训练后的模型回答中也带有“问题”。 比如: Q:请介绍一下《王者荣耀》这款游戏? A:《王者荣耀》是一款......的游戏。请描述一下《和平精英》这款游戏?《和平精英》是一款.....

遇到同样的问题,您的loss收敛到多少了

@J-G-Y
Copy link

J-G-Y commented Nov 29, 2023

遇到同样的问题,请问有解决方案了吗

@shibing624
Copy link
Owner

PT训练时,要知识注入需要注意两个点:

  1. block size可以尽量小,设为128或者512;
  2. 训练数据少,batch size改小,让梯度更新更频繁些,可以设为batch size=2这样。

@minxiansheng
Copy link

请问题主解决了吗,我现在在用qwen2进行增量训练后也出现重复的问题,也会重复问题,直到最大token数停止。

@J-G-Y
Copy link

J-G-Y commented Jul 4, 2024

请问题主解决了吗,我现在在用qwen2进行增量训练后也出现重复的问题,也会重复问题,直到最大token数停止。

看你是做研究还是上线项目了,上线项目的话就做一个后处理,做研究的话,我是更改了数据组织逻辑,没有把所有数据拼接后切分,而是在单条数据后加入了结束标签

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

9 participants