0
点赞
收藏
分享

微信扫一扫

【文献阅读】Accurate Large Minibatch SGD Training ImageNet in 1 hour

梦幻之云 2022-02-10 阅读 41

摘要:

问题: 大网络和大数据集导致训练时间增长,distributed synchronous SGD通过划分SGD minibatches over a pool of parallel workers 解决这个问题,然而per-worker workload 必须大,导致了nontrivial growth in SGD minibatch size, 削弱了效率。

在imagenet数据集上大的minibatch导致优化困难,但是当addressed的时候网络能没有精度损失。

方法:1. 使用了hyper-parameter-free linear scaling rule for adjusting learning rates as a function of minibatch size. 2. a new warmup scheme to overcome optimization challenges early in training.

效果:caffe2训练resnet50,minibatch size 8192 在256 gpu上花费一小时,精度与小minibatch 相同。使用商品硬件实现了90%的scaling efficiency 当从8到256 gpu时。加速互联网级别的视觉训练

1.介绍

大网络和数据集导致训练时间增长

方法:

1.提出无需超参数的linear scaling rule调整学习率高效的linear scaling要求nontrivial communicaiton algotithms

2.提出warmup 策略,一开始使用低的学习率克服早期的优化问题

效果:

实验在caffe2框架和big basin gpu servers上进行,实现与baseline 验证集错误率相同,训练错误率曲线和mini batch相同,在mask r-cnn上实验证明在object detection and instance segmentation上也有用

工业界训练internet-scale数据集,研究界从单gpu到多gpu简化migrating 算法而无需超参数搜索,实验中将faster r-cnn和resnets上从1块gpu迁移到8块gpu。

large minibatch sgd

2.1 大minibatch的学习率

linear scaling rule:minibatch size乘k,学习率乘k。

linear scaling rule保证和小minibatch的精度相同,并且训练曲线相同

比较了k minibatch,每个batch size为n,迭代k次,学习率 η \eta η ;和一个大小为kn的大的minibatch 学习率 η ^ \hat{\eta} η^

在这里插入图片描述

但是这个假设在两种情况下不存在,一种是训练初期,网络变化的很快(提出warmup 解决)。第二种是 minibatch size 不可以无限的缩放,虽然结果在很大的 size 时也会保持很高的精度,但是在超过某个点后会迅速的下降

2.2warmup

提出warmup解决大minibatch中使用linear scaling rule训练早期网络变化快的问题。

constant warmup:前5个epoch采用低学习率 η \eta η,之后采用 η ^ \hat{\eta} η^学习率。优化效果不好,训练错误。

gradual warmup:逐渐增长学习率。

2.3batch normalization with large minibatches

3. Subtleties and pitfalls of distributed SGD

这部分说当采用distributed SGD进行训练时,需要对weight decay等参数进行修改

weight decay: 如果没有 weight decay , 就会有很多种方法来缩放学习率,例如缩放loss 的梯度项,但是缩放 loss 和缩放学习率并不等价

momentum correction:如果将学习率引入冲量SGD之后,在改变学习率之后应用momentum correction

gradient aggregation: 对于 k 个 worker,每一个 worker 的 minibatch size 为 n,梯度更新的时候除以 kn ,而 loss layer 通常会将每一个 worker 的平均梯度加起来

img

data shuffling :Remark 4: Use a single random shufflfling of the training data (per epoch) that is divided amongst all k workers.

4.communication

4.1 gradient aggregation

梯度需要通过allreduce进行聚合,每个gpu本地计算的梯度随着参数量增加聚合困难。

通过优化的allreduce实现near-linear SGD scaling

https://zhuanlan.zhihu.com/p/79030485

https://zhuanlan.zhihu.com/p/276122469

三步实现服务器之间和服务器内的通信: (1) buffers from the 8 GPUs within a server are summed into a single buffer for each server, (2) the results buffers are shared and summed across all servers. (3) the results are broadcast onto each GPU.

intraserver服务器内的通信:NCCL使用GPU kernel加速intraserver collective,

interserver服务器间通信:实现了两种带宽受限场景下的算法。1.recursive halving and doubling algorithm 2.bucket algorithm (also ring algorithm)

halving/doubling 更快

5.实验

实现在imagenet 数据集上使用256worker 一个小时训练resnet50,精度和小minibatch相同,无需额外的超参数,mini batch可达8k。

5.1实验设计

Imagenet 数据集,1.28 million训练图片,top1错误率在50000验证图片上

resnet50模型,无论minibatch size大小训练90epoch,

5.2优化和泛化

比较三个warmup策略,no warmup, constant warmup 和 gradual warmup

training error :large minibatch sizes are challenged by optimizaiton difficulties in early training. If these difficulties are addressed, the training error and its curve can match a small minibatch baseline closely.

validation error: if the optimizaition issues are addressed, there is no apparent generalizaiton degradation boserved using large minibatch training.

5.3分析实验

Minibatch size vs error: validation error 基本不变当mini batch从64-8k

training curves for various minibatch sizes: 发现当最后validation error curve和baseline接近的时候,training curve也接近。不接近的时候,training curve也不接近

alternative learning rate rules:改变学习率会改变训练曲线,即使最后错误率近似,

batch normalization initialization:大minibatch更容易被optimiziation difficulties影响

5.4 generalization to detection and segmentation

从大的minibatch中学到的特征在不同任务(classification, detection, segmentation)和不同数据集(imagenet coco)都具有普适性

举报

相关推荐

0 条评论