论文部分内容阅读
近年来,越来越多的公司部署分布式机器学习集群用来训练机器学习模型,以提供各种人工智能驱动的服务。与此同时,机器学习任务也给集群资源调度(为任务匹配合适的资源)带来了一些独特的挑战,如复杂的资源-训练速度关系、任务完成时间不可预知等。现有的相关研究大多基于研究者对特定的机器学习框架和工作负载的理解对资源-任务完成时间建立白盒模型,再通过启发式算法求解。白盒模型的准确性会极大的影响资源调度的性能且不具备通用性。因此,本文引入黑盒优化技术来解决分布式机器学习集群的资源调度问题,主要的工作如下:1.当集群中的机器学习模型为生产级模型时,用户主要关心模型的训练时间。资源调度问题主要考虑如何为每个任务选择合适的物理计算节点上以使得总任务完成时间最小。本文对该问题进行了形式化数学建模,并对该问题存在的挑战进行了深入分析,提出了一种基于贝叶斯优化的资源调度算法,首次引入贝叶斯优化这种黑盒优化算法来解决该问题,并在其中提出了收敛曲线学习子算法来解决机器学习训练迭代次数未知的问题。本文对4种不同的概率代理模型和采集函数组合的贝叶斯优化子算法以及其他目前领先的研究进行了实验对比。实验结果表明,贝叶斯优化子算法确实能用最少的搜索开销找到最优或者接近最优的资源调度方案,并且概率代理模型为高斯过程,采集函数为EI(Expected Improvement)的贝叶斯优化子算法在所有场景中都表现最好。而概率代理模型为随机森林时可以显著的减小计算复杂度,对于超大规模集群会更实用。2.当集群中的机器学习模型为实验级模型时,用户主要关心模型性能(如准确率)。本文分析了为了实现提升集群中的机器学习模型的整体性能,资源调度算法应该具备的要点。基于这些分析,本文提出了Metis算法,一种基于深度强化学习的资源调度算法。Metis以最大化集群中的机器学习模型的整体性能为调度目标,采用固定时间分片的周期性调度策略,由深度强化学习Agent做调度决策,主动调整资源分配。本文设计了强化学习模型的状态、动作和奖赏,并在状态设计中,创新的提出用在小规模集群、小规模数据集上学习到的损失函数曲线以及资源-单次迭代时间模型的参数来对分布式机器学习任务编码。最后,本文实现了Metis算法并和目前领先的研究进行了对比。实验表明,Metis算法能显著提升集群中机器学习模型的整体性能,并且可以减少模型选择过程中用户的等待时间。