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

请问在预训练时,如何保持书籍等数据的换行符号?如何把书籍切成block? #1891

Closed
erichuazhou opened this issue Dec 19, 2023 · 5 comments
Labels
solved This problem has been already solved

Comments

@erichuazhou
Copy link

请大神指教:
(1) 我在pt阶段的数据是大量书籍和文件数据,有大量的换行符,无法构造成wiki_demo.txt或者json格式,请问如何处理?
(2) 请问group texts的流程是怎么样的?各个block在预训练之前进行shuffle了吗?
(3) 如果是多个txt文件,会在切成多个block之后混合进行shuffle吗?
感谢。
@hiyouga

@hiyouga
Copy link
Owner

hiyouga commented Dec 19, 2023

json 格式允许换行符,通过转义字符可解决
会 shuffle

@hiyouga hiyouga added the solved This problem has been already solved label Dec 19, 2023
@hiyouga hiyouga closed this as completed Dec 19, 2023
@erichuazhou
Copy link
Author

请问下,
(1)我每本书籍转为json,需要进行切分吗?还是每本书对应于json一行?
(2)如果每本书需要切分,block大小需要和程序内部data_args.cutoff_len设为一样对吗?谢谢
image

感谢大神
@hiyouga

@FoolMark
Copy link

请问下, (1)我每本书籍转为json,需要进行切分吗?还是每本书对应于json一行? (2)如果每本书需要切分,block大小需要和程序内部data_args.cutoff_len设为一样对吗?谢谢 image

感谢大神 @hiyouga

  1. 我的解决方法是同一个文本里换行符变成\t然后组成一行,LLaMA-Factory中的方法是一行当作一个sample,然后每个sample自动切成cutoff_len这个长度的若干sample用于训练(最后一个好像是丢弃的)
  2. 如果支持json我想应该是和sft那种数据组织方式一样,一条数据放在一个key下面就行了不用手动切,不过我没试过...
  3. 另外我也有问题要请教一下,请问你用的是哪个base model? 继续 pretrain时候是否需要指定template? 我用chatglm3-base 做 pt (全量参数)后导出的模型的tokenizer没法导入.
    参考 [Link] (chatglm3 微调完成之后导出成功,但无法加载 #1307 (comment)) 的做法后微调得到的base模型可以续写生成,但是似乎无法结束,每次生成都会到max_new_length
    我还在debug中...

@Zombiessss
Copy link

json 格式允许换行符,通过转义字符可解决 会 shuffle

流式加载也会shuffle吗?当前做继续预训练的数据量很大一下子吃不进去的时候,感觉流式没法shuffle呀,只能前置把数据集自己shuffle好

@hiyouga
Copy link
Owner

hiyouga commented Dec 27, 2023

@Zombiessss 流式会 shuffle 一部分

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
solved This problem has been already solved
Projects
None yet
Development

No branches or pull requests

4 participants