1,2,3上链接:2001.08361.pdf (arxiv.org)
幂律:所谓幂律,是说节点具有的连线数和这样的节点数目乘积是一个定值,也就是几何平均是定值,比如有10000个连线的大节点有10个,有1000个连线的中节点有100个,100个连线的小节点有1000个……,在对数坐标上画出来会得到一条斜向下的直线。
我们这篇文章主要针对以下场景和问题:
-
给定你一个7B模型,你知道用多大的数据量train,它能最优?
-
给顶你一个0.5T token的数据,我需要用多大的参数的模型能最优?
-
以上两点需要考虑算力吗?如果算力恒定该怎么考虑
-
我的数据从0.5T上升到了1.5T,需要更多的数据还是更少的数据能达到相同的效果?
讲这些问题之前,我们先明白一个公式:
C=6*N*D
-
C:算力的大小(Tflops),不算embedding
-
N:模型的parameters数量,也就是参数量,不算embedding
-
D:进入模型的训练Token数量
为什么会有6ND这个说法呢?
又得上这张老图
实际上你深度学习每次前向计算,就是算矩阵乘法,矩阵乘法就是一次加一次乘,一个parameters,要对应2次浮点计算,所以要乘以2
而我们做反向求导的时候呢,你又得算误差又得算新weight,所以是前向计算的两倍,这就是要乘以4
两种计算加起来就是每个参数在做深度学习的时候要计算6次浮点运算的原因