1 Introduction
目前分布式学习在资源供应方面,都是依据之前的相似任务进行手动设置,但是对于首次运行的负载而言,只能反复尝试以找到最优的资源配置。
但是反复试错的代价是十分高昂的,每一轮迭代都要花几分钟重建图,而且,确定分配给当前作业多少资源需要提前知道作业的规模特征。
所以现在的资源分配策略是过量分配,这样有两种不好:第一,资源的浪费,不仅是费用高,而且物理资源也没有高效利用;第二,过量分配无法解决stragglers
问题,即如果有一台低效机器,由于分布式的效率是由最后完成的机器决定的,因此,存在个别机器拖垮整个集群的现象。
1.1 Main challenges
挑战一
当前的用户资源分配习惯主要依赖于主流的分布式学习系统,如TensorFlow和PyTorch。
TensorFlow的集群规模是在一开始就设定好的,且训练开始后是无法动态变动;而PyTorch的资源动态变化主要体现在输入和操作上。
现有的作业资源分配在其生命周期内是静态不变的,而在面对强烈的资源动态变动需求下,现有的系统难以很好的提供此类需求的扩展。
挑战二
简单的scaling out导致训练的批尺寸增大,影响模型的收敛性(详细参照博客)简单来说,就是大批尺寸的训练容易收敛成sharpminmum,而小批尺寸训练会收敛成flat minimum
1.2 Autoscaling engine for distributed learning
本文设计的自动缩放引擎可在资源分配的变化过程中,我们的系统重用现有的进程,并将所有相关的程序状态保存在内存中,以最小化空闲时间
在考虑上述思想的同时,有以下贡献:
1.描述了当前先进的分布式学习系统在体系结构层面上对资源缩放的限制
2.设计了分布式学习的启发式缩放策略,其中考虑了吞吐和代价
扫描二维码关注公众号,回复:
10485206 查看本文章
3.是第一个无需过量分配资源解决了straggler问题的分布式学习引擎