大模型(LLMs)增量预训练篇
为什么要增量预训练?
有一种观点,预训练学知识,指令微调学格式,强化学习对齐人类偏好,[L]{.underline} [IMA]{.underline}等论文算是这一观点的证据。
所以要想大模型有领域知识,得增量预训练。(靠指令微调记知识不靠谱,不是几十w条数据能做到的。)
进行 增量预训练 需要做哪些准备工作?
-
模型底座选型
主流是LLaMA,因为[s]{.underline} [calin]{.underline} [g法]{.underline} [则]{.underline},可能LLaMA做了充分预训练。(当然有版权问题)
这里备选BLOOM,感觉基座比LLaMA差,但是也有7B版本。
[F]{.underline} [alcon]{.underline}、[C]{.underline} [PM-bee]{.underline}、[A]{.underline} [quila]{.underline}、[B]{.underline} [aichuan]{.underline}待实验,license友好,但生态和效果都是问题。其实,因为结构上都类似LLaMA,未来估计会出现整合这些模型的项目。
(Falcon公布的训练语料中没有中文)
这里没列ChatGLM和ChatGLM2,因为有种说法在SFT模型上增量预训练效果比较差。(未证实)
-
数据收集
这里最经典的开源预训练数据还是wudao的200G和the[pile]{.underline}这两个数据集(怀念一下Open-Llama)加起来有1T的文本量,足够前期玩耍了。
其实,刚开始实践的时候,不需要太多样本,先收集GB量级的领域文本跑通流程即可。
-
数据清洗
当然这里数据治理可能是chatgpt魔法的最关键的部分,最基础的是把网页爬取数据中的广告清理掉。
Falcon论文里介绍了数据清洗的手段,对于我们很有参考意义。
增量预训练 所用 训练框架?
-
超大规模训练