上篇文章对深度学习训练中的优化器做了背景介绍,链接戳↓
技术干货 | 如何用MindSpore优化器加速收敛高度逼近最优值?
这篇跟大家分享MindSpore自研优化器THOR(Trace-based Hardware-driven layer-ORiented Natural Gradient Descent Computation),该优化器在ImageNet上训练ResNet50,使用MindSpore+8 Ascend 910 仅需66.7分钟,当使用256节点时仅需2.7分钟!该优化器已完成论文投稿,被AAAI2020接受,后续会把论文贴出来。
因此,在训练过程中逐步增大 矩阵的更新间隔,可以在不影响收敛速度的情况下,减少训练时间。例如在ResNet50中,更新间隔步数随着训练的进行越来越大,到后期每个epoch只需更新一次二阶信息矩阵,如下图所示。
下图展示了THOR在ResNet50+ImageNet,batchsize为256时一二阶上的训练曲线图。
图中的THOR,THOR_stop,THOR_NT分表表示 ,从图中可以看到THOR收敛所需迭代数大约是一阶的一半,且单step的时间与一阶相差也不大。相比一阶算法需要117min,二阶优化器端到端时间提速约40%。
THOR还测试了在不同batchsize下ResNet50+ImageNet的收敛结果,结果见下表,当batchsize为8192,使用256块Ascend 910时,只需2.7分钟精度即可收敛到75.9%,该结果在业界也是非常有竞争力的。MindSpore团队还会将THOR进一步应用到NLP领域中,如Bert和GPT-3,到时候再跟大家分享THOR在NLP任务上的表现。