原标题:adam优化器是什么,adam优化器是什么时候的
导读:
一文读懂Adam优化器参数Adam优化器详解Adam优化器以一阶动量[公式]和二阶动量[公式]为核心,它们分别考虑了梯度的当前值和历史趋势。一阶动量的默认衰减率β1为0.9,初...
一文读懂Adam优化器参数
Adam优化器详解
Adam优化器以一阶动量[公式]和二阶动量[公式]为核心,它们分别考虑了梯度的当前值和历史趋势。一阶动量的默认衰减率β1为0.9,初始值为0,随迭代步数t的增加,其占比逐渐接近1,起初可能导致学习速度过慢。为此,引入偏置校正:[公式],确保动量的均值在开始时不致过小。
二阶动量[公式]同样考虑了梯度的平方,其处理方式类似。当batch size不同,如模型A的batch是模型B的a倍,优化器参数需要相应调整。如果模型A的[公式]为[公式],模型B为[公式],则保持[公式]相等,以保证学习过程等价。
通过对比模型A和B的权重变化,如图2与图3所示,可以看到模型B在相同的迭代步数下,其梯度权重更大。然而,将模型A迭代10步的权重与模型B迭代20步的权重进行比较(图4),可以发现它们在每步的权重上是等效的。这意味着通过调整参数,Adam优化器能够适应不同的batch size。
关于Adam优化器参数量的计算方法
Adam优化器在使用float16混合精度训练时,其参数量的计算涉及到多个组件的显存占用。模型的参数量为P,当参数和梯度都是float16类型时,它们分别占据显存2P。一阶矩m通常需要转换为float32,额外占用4P的显存。同样,二阶矩v也是float32,占用4P。把这些加起来,总显存需求为16P。例如,对于一个7B的大型模型,显存占用将达到112GB。
然而,考虑到计算需求,grad如果直接存储为float32,可以节省一部分显存。每节约一个float16的grad,即节约2P的显存。以7B模型为例,通过这个优化,显存占用将减少至7B* 14= 98GB。这表明在优化计算策略下,显存使用可以得到显著的节省。