如何将深度学习训练速度提升一百倍?PAISoar 来了(16)

2.使用 PaiSoar 中的 learning rate 动态调节方法smooth_exponential_decay , 在训练初期采用 lr(learning rate) 平滑上升的策略 , 训练刚开始时 , 使用一个较小的 lr , 尽量避免一开始由于 lr 太大导致收敛不稳定 。 后面再平滑增大 lr , 尽量让 weights 更新到离初始的 init weight 比较远的地方 。 lr 增长到目标值后再采用指数衰退的方式 , 每个几个 epoch 衰退一次 , 逐步减少 lr , 避免训练后期过大的 lr 导致训练波动 , 不收敛 , learning rate 变化趋势如下图所示:

3.分布式 N 个 worker 训练 , 相当于单机 batch size 增大N倍 , 此时需要调大 learning rate , 一般调大 sqrt(N)~N倍 , 可以结合 Tensorboard 来观察 loss 和 lr 的变化趋势来决定调大还是调小 lr.

经过调参在不同 GPU 卡下绿网模型都调试收敛 , 不同 GPU 卡下训练轮数如下表所示:

在16机(32 GPU卡)下绿网模型在20个小时收敛 , 比单机(2 GPU卡)快了14.4倍 , 完成一天内训练收敛的目标 。 同时对所有分布式训练的模型使用了安全部的的火眼平台进行 ROC 测试 , 测试集有4万多条数据 。 经测试 , 分布式模型效果和单机2 GPU卡效果一致:

推荐阅读