TencentARC / LLaMA-Pro

[ACL 2024] Progressive LLaMA with Block Expansion.
https://tencentarc.github.io/LLaMA-Pro/
Apache License 2.0
449 stars 34 forks source link

增量预训练的疑惑? #13

Closed zhuxiaobin closed 5 months ago

zhuxiaobin commented 5 months ago

通过llama pro拓展之后,进行二次的增量预训练,最少需要多少GB的领域数据?因为原来的学习新知识,需要混入80%-90%的通用知识,现在通过llama pro不需要混入通用知识,但是数据量如果还是要求很高的话,领域数据不一定有这么多?最少需要多少GB的领域数据呢?

hills-code commented 5 months ago

我没有统计我们的训练数据磁盘占用量,一般而言统计的是训练的tokens,我们训练了包括the-stack-dedup的python子集,以及proof-pile-2的大约80B tokens

zhuxiaobin commented 5 months ago

@hills-code 80B是最低要求么?对于一般的领域,很难收集到如此量级的数据

hills-code commented 5 months ago

就我们的经验看来,大多数持续预训练的文章都在这个量级以上,我们没有试过较小规模的训练,这是我们确定训练数据量的时候参考的几篇文章供您参考,LLEMMA: AN OPEN LANGUAGE MODEL FOR MATHEMATICS,LEMUR: HARMONIZING NATURAL LANGUAGE AND CODE FOR LANGUAGE AGENTS。他们预训练的数据量均在数十B token的这个量级

zhuxiaobin commented 5 months ago

感谢回复,可能是数学和代码的逻辑要求更高,所以才需要如此大的数据量来训练,我这边先尝试尽可能收集相关领域数据再进行尝试

lzq603 commented 2 months ago

请问如何做增量预训练?

hills-code commented 2 months ago

可以参考这段代码,写了一个对pretrain dataset的tokenizer(没有对instruct的token进行mask),其他代码和instruction tuning是一致的https://github.com/hills-code/open-instruct/blob/557483a8f091e22b5449dc49733d5ad84f7c4aa1/open_instruct/finetune.py#L342