Closed young-chao closed 9 months ago
您好,预训练代码调用的是https://github.com/SkyworkAI/Skywork/blob/main/train/pt_data_preprocess.py 这个脚本哈。处理逻辑是是将文本进行拼接的,没有padding。
您好,预训练代码调用的是https://github.com/SkyworkAI/Skywork/blob/main/train/pt_data_preprocess.py 这个脚本哈。处理逻辑是是将文本进行拼接的,没有padding。
谢谢,我漏看了你们的预处理脚本,从这个来看你们还是保留了和transformers原始的预训练数据拼接逻辑一样的做法。这种不添加eos_token_id去分隔原始数据条目不会分散训练时注意力学习的效果吗?
在实际预训练中我们使用的megatron框架,是有添加的的end_of_doc符号的。demo中没有加eso_token_id但测试发现效果似乎没有异常。
你好,关于预训练数据的处理方式,我有一些疑惑: 从项目中提供的预训练数据示例文件pt_train.jsonl和训练代码来看,你们对于预训练数据是单条直接padding到sequence_length的做法,padding直接使用eos字符;在我之前了解的一些项目里,做法是将所有训练数据分词后拼接再切片;我个人对于这两种处理方式的理解是:如果直接拼接再切片可以保证训练中几乎所有tokens都是有效的,而如果单独处理则会计算大量的padding的tokens。 请问你们在实际训练的时候是否预先将许多单条数据拼接到接近sequence_length组成新的一条数据?