论文部分内容阅读
随着深度学习在图像识别与分类、语言翻译、风格迁移、自然语言处理等领域的大量应用与实践,以深度学习为代表的机器学习业务正快速在各类企业中大规模地落地。目前机器学习工作负载在大规模集群上运行仍存在诸多问题:首先从资源层面,相较于传统的工作负载,机器学习的模型训练任务在资源使用方面具有异构性,同时对硬件资源又有极强的敏感性。其次在任务层面,机器学习任务的类别和优先级相较于传统的任务也更为复杂,需要考虑任务的后续训练时间、训练速度、分布式的架构选择等不同方面的因素。最后从高层业务角度,以自动机器学习为代表的部分业务对资源的需求较大,容易造成资源的紧张。由于这些问题的存在,进行机器学习业务的开发与运维人员通常需要对集群进行手动的维护工作。现有的工作流一方面要求较高的人力成本,另一方面没有办法通过调度层面的优化提高集群利用率,延长了机器学习任务从数据准备到模型训练再到模型发布与部署整个流程所需的时间。针对机器学习工作负载在集群上的特点,本文提出了面向机器学习场景的集群调度与资源管理系统,在保证集群上的硬件加速器资源的利用率的同时,降低机器学习任务的训练时间,提高训练效率,同时支持基于多维度优先级的任务抢占与资源降级使用的策略。本文的主要贡献包括:(1)从资源角度提出了基于集群利用率预测的树形调度方法本文针对常见的机器学习场景,设计了一系列实验,证明了分布式机器学习任务在资源和网络上的瓶颈问题。基于这一问题,本文提出了基于集群利用率的树形调度方法。本文通过对网络较好的机器进行聚集,形成小规模的集群的方式进行分布式机器学习任务的调度,避免分布式机器学习任务间的网络瓶颈问题,提高硬件加速器资源的使用效率,降低训练的完成时间。(2)从任务角度提出了基于多维度优先级的任务抢占与降级策略本文综合考虑了机器学习任务在不同方面的优先级信息,提出了任务间相互抢占的策略。同时为了防止链式抢占的问题,本文提出了被抢占任务从硬件加速器资源到CPU资源的降级使用策略,进一步提高高优先级的训练速度,保证硬件加速器资源的高使用率。(3)从业务角度设计了针对自动机器学习业务场景的调度剪枝方法本文提出了基于训练时间和模型性能预测的资源限制使用策略。通过对不同参数组合的早期预测,对其进行分类分级处理,增加高质量参数组合的资源,支持自动机器学习任务的训练的同时,保证训练不会过度使用集群资源。(4)提出并实现了支持端到端全流程的机器学习平台原型系统根据之前的研究内容,本文提出了支持端到端的机器学习平台的原型系统。该原型系统支持数据预处理、模型训练、模型的部署与发布、基准测试和自动机器学习等不同阶段的机器学习业务相关功能。最后通过计算机视觉场景的案例,验证了原型系统的通用性,进而证明了本文研究方法的有效性。