书接上回,相信上篇模型参数量的计算对于大家来说小菜一碟,那本篇将继续介绍大模型的训练时间如何估计。

✅训练时间估计

训练时间估计是机器学习项目中的一个重要任务,尤其是在训练大型模型时。训练时间估计可以帮助我们更好地规划资源,避免不必要的浪费,并确保我们能够在合理的时间内完成训练。

在训练大型模型时,训练时间估计变得更加困难,因为模型的大小和复杂性可能会对训练时间产生重大影响。
以下是一些可以帮助我们估计训练时间的因素:

  1. 🔍模型大小:模型的大小(即参数的数量)是影响训练时间的主要因素之一。较大的模型通常需要更多的计算资源和更长的训练时间。
  2. 🔍数据集大小:数据集的大小也会影响训练时间。较大的数据集需要更多的计算资源和更长的训练时间。
  3. 🔍计算资源:计算资源(如GPU和CPU的数量和速度)也会影响训练时间。拥有更多的计算资源可以加快训练速度。
  4. 🔍训练策略:训练策略(如学习率、批处理大小和优化器)也会影响训练时间。不同的训练策略可能会对训练速度产生不同的影响。

下面我们主要介绍一下训练时间的计算主要包括哪些部分。

在训练过程中,训练时间的计算涉及多个部分,主要包括浮点数运算(FLOPs)、数据读写(I/O)和多进程同步等。其中,浮点数运算是最主要的计算部分,而数据读写和多进程同步则会影响训练的效率。所以,接下来可以根据训练运算量的估计公式以及GPU的浮点数运算能力来大致的估算训练时间。具体的估计公式如下:

训练时间 = 训练运算量 / (GPU数量 x GPU的浮点数运算能力)

其中,参数量为P的模型在C个词元上进行与训练的总体运算量可以通过以下公式估计:

🔍训练运算量 ≈ 6CP
若训练过程中采用了激活重计算技术的话,那么反向传播是将需要额外进行一次前向传播,则总运算量将变为:

🔍训练运算量 ≈ 8CP

言归正传,在上述训练时间的公式中,GPU每秒浮点运算数通常是GPU理论浮点运算数的30%~70%左右,因为GPU在计算过程中会进行一些额外的操作,如数据传输和内存管理等。

以LLaMa(65B)的预训练模型为例
其参数量P = 6.5 x 1010,词元数C = 1.4 x 1012,由于采用了激活重计算技术,其运算量大致为8CP = 7.28 x 1023
LLaMa在训练过程中使用了2048张A100 GPU,每张GPU每秒最多能进行3.12 x 10 14次BF16浮点运算。假设在实际的训练过程中,每张GPU能达到每秒2 x 1014次BF16浮点运算。
根据上述公式,可以计算出LLaMa(65B)使用2048张A100显卡、在1.4T个词元上的训练时间可以估算为1.78 x 106秒,即约为20.6天。与原论文的训练时间(21天)基本一致。

今日分享完毕,感谢大家的阅读!


📢 📢 📢
1.各位同学在阅读过程中,如果疑问或者有更好的建议,欢迎在评论区留言讨论!
2.同学们对大模型哪些方面感兴趣,欢迎在评论区留言,博主会根据大家的反馈,持续更新!
3.欢迎各位同学关注博主,博主会持续更新大模型相关内容!

📢 📢 📢
感谢各位阅读,大家的点赞👍- 关注🔥- 收藏⭐ - 评论📝 四连,都是博主坚持协作、更新高质量博文的最大动力!

Logo

一站式 AI 云服务平台

更多推荐