可以简单测试下续写能力,验证下模型是否正常。 至此,我们获得了 1 个增量预训练过的大模型基座。
5.增量预训练一般需要多大数据量?
首先要确保你有足够大量的数据集,至少有几 B 的 token;否则几十条数据的情况我更推荐模型微调。
6.增量预训练过程中,loss 上升正常么?
通常增量预训练开始的阶段会出现一段时间的 loss 上升,随后慢慢收敛。
7.增量预训练过程中,Ir 如何设置?
- 学习率是一个很重要的参数,因为 I 的大小会出现以下问题:
- 如果 I 过大,那 loss 值收敛会更困难,旧能力损失的会更大;
- 如果 I 过小,那可能难以学到新知识。 当你数据集比较小(例如 100B 以下?),那建议使用较小的学习率。例如可以使用 pre-train 阶段最大学习率的 10%。通常 7B 模型 pre-train 阶段的学习率大概是 3e-4,所以我们可以选择 3e-5。 并且需要根据你的 batch size 做相应缩放。通常 Ir 缩放倍数为 batch size 倍数的开方。例如 batch size 增大 4 倍,学 习率对应扩大 2 倍即可。
8.增量预训练过程中,warmup_ratio 如何设置?
warmup_ratio 也很重要。通常 LLM 训练的 warmup_ratio 是 epoch*1%左右。例如 pre-train 阶段一般只训一个 epoch,则 ratio 是 0.01;SFT 通常 3 个 epoch,ratio 对应为 0.03。 但是如果做 CPT,建议 warmup_ratio 调大一点。如果你的数据集很大,有几百 b,那 warmup 其实不影响最重的模 型效果。但通常我们的数据集不会有那么大,所以更小的 ratio 可以让模型"过渡“得更平滑。 学习率和 warmup_ratio 是两个相辅相成的概念,二者通常是成正比的关系。或者说如果你正在用一个较大的学习 率,那你或许可以同时尝试增加 warmup 来防止模型“烂掉”。
9.warmup 的步数对大模型继续预训练是否有影响?
- warmup 介绍:warmup 是一种 finetune 中常用的策略,指学习率从一个很小的值慢慢上升到最大值;
- 对比实验设计:使用不同 4 种不同预热步数(eg:0%,0.5%,1%,2%)来进行实验