简单且可扩展的大模型ContinuallyPre-train策略
作者: NLP前沿 来源: NLP前沿
https://arxiv.org/pdf/2403.08763.pdf?
大模型通常在很多很多的数据上进行预训练,但是一旦有新数据之后,可能需要开始训练。文章研究了继续预训练(Continually Pre-train) 大模型的技巧,相比于重新训练,可以节省大量的计算资源。然而,由于新数据引起的分布偏移通常会导致在旧数据上的性能下降或对新数据的适应性差。
文章中主要研究的策略如下,具体的结论对比,超参结果见原文(有40来页):
1.学习率(LR)重新升温和重新衰减 :
*重新升温 :在模型开始在新数据集上预训练时,将学习率从一个较低的值(通常是预训练结束时的学习率)线性增加到一个较高的最大值(ηmax)。这个过程通常在新数据集的一小部分迭代中完成。
*重新衰减 :在重新升温后,使用余弦衰减函数将学习率从一个较高的值逐渐降低到一个较小的值(ηmin),以优化新数据集上的模型性能。
*重播旧数据 :
-
在持续预训练过程中,模型不仅学习新数据集,还会定期回顾旧数据集的一部分。这是通过在训练批次中混合新旧数据来实现的,其中旧数据的比例可以根据需要调整(例如1%,5%,10%等)。
-
重播策略可以通过“计算等价重播”来实现,即在保持总体计算量不变的情况下,减少新数据的量,以便包含重播的旧数据。
*无限学习率计划 :
- 包括四个阶段:线性升温阶段、冷却阶段、恒定阶段和退火阶段。
*线性升温阶段 :学习率从初始值线性增加到最大值ηmax。
*冷却阶段 :学习率通过某种衰减函数(如余弦衰减或倒数平方根衰减)从ηmax逐渐降低到一个恒定值ηconst。
*恒定阶段 :学习率保持为ηconst,持续一定的迭代次数。
*退火阶段 :学习率从ηconst逐渐降低到一个非常小的值ηmin,以确保模型在部署前能够收敛。
文章的实验结果表明,通过简单且可扩展的持续学习策略,可以成功地更新LLMs,并且仅使用重新训练模型的一小部分计算资源。
更多AI工具,参考Github-AiBard123,国内AiBard123