模型计算量估计,训练时间预测 Scaling Laws for Neural Language Models

一、模型计算量

C ≈ 6N*D

其中C表示训练语言模型所需的总计算量,N表示模型参数量,D表示用于训练的语料总量,6表示每训练一个token所需的浮点计算量约为6N,其中前向计算2N,反向计算4N。

注意:这里的6是针对Transformers,如果其它模型结构,还请重新确定每个参数的平均计算量。开了激活点检查activation checkpoint,这个系数是8。

激活检查activation checkpoint通过在前向传播过程中只存储一部分(而不是全部)的激活值来减少存储空间消耗。对于没有存储的激活值,如果在后向传播过程中需要它们,就重新计算这些值。这种方法可以显著减存储占用,但是会增加计算开销,因需要重新计算一些激活值。

举个例子

哈哈哈,还是例子好理解。

比如我现在要训练模型参数量为175B,用于训练的语料总量为300B,即

N=175B=175*10^9

D=300B=300*10^9

那么训练模型所需的总计算量为:

C ≈ 6N*D=6*175B*300B=6*175*10^9*300*10^9=3.15*10^23=3.15*10^7 PFlops

二、模型训练耗时估计

哈哈哈,都知道所需的总的计算量,那不是轻轻松松估计训练耗时。

T=C/(MFU*S)

其中C表示训练语言模型所需的总计算量,S表示训练模型所用集群的算力,MFU(Model FLOPs Utilization)训练模型时的算力利用率。

举个例子

比如我现在训练模型所需总计算量为3.15*10^7 PFlops,集群算力能力为3924.44565 PFlops/s,训练模型时的算力利用率为55.2%,即:

C =3.15*10^7 PFlops

S=3924.4 PFlops/s=卡的数量*每张卡的算力

MFU=55.2%

则训练该模型所需的时间为:

T=C/(MFU*S)=3.15*10^7/(55.2%*3924.4)=14541秒=4小时

注意:这里的算力利用率是整个训练过程中的算力利用率,有的地方的算力利用率是计算的时候的算力利用率,不考虑纯通信和集群故障。如果想获取训练总时间,这些时间需单独考虑。

视频教程:

模型计算量预测 训练时间估计_哔哩哔哩_bilibili

参考文献:

[2001.08361] Scaling Laws for Neural Language Models (arxiv.org)

相关推荐
WHAT8162 小时前
【Orb-Slam3学习】 特征匹配函数的目的与分类
c++·人工智能·算法·slam
Jurio.3 小时前
【JPCS独立出版,EI稳定检索】2024年工业机器人与先进制造技术国际学术会议(IRAMT 2024,9月27-29)
人工智能·计算机视觉·机器人·自动化·制造
蓝羽飞鸟3 小时前
gaussian grouping训练自定义数据集
人工智能·深度学习·计算机视觉·3d
程序边界3 小时前
AI文案新纪元:用ChatGPT构建你的文案创作系统
人工智能·chatgpt
Fiona.y3 小时前
最大池化、非线性激活、线性层
人工智能·pytorch·python·深度学习·神经网络·学习·机器学习
OreoCC4 小时前
第J1周:ResNet-50算法实战与解析(TensorFlow版)
人工智能·深度学习·tensorflow2
m0_632544214 小时前
iOS/iPadOS18.1Beta3发布,新增通知摘要和AI消除功能
人工智能·ios·cocoa
python收藏家4 小时前
人工智能的可解释性(XAI) | 使用LIME
人工智能·机器学习
NewsMash4 小时前
上门解民忧 中信银行太原分行适老化金融服务提升温度
人工智能·5g
神秘的土鸡4 小时前
灵办AI搜索引擎和文档总结工具
人工智能·github·开源软件·ai编程·ai写作