![](https://img-blog.csdnimg.cn/img_convert/716c12f606914fbc13f3f1256120cbac.jpeg)
文|沙剑
蚂蚁集团高级技术专家
专注分布式深度学习领域
主要负责蚂蚁大规模分布式训练引擎的设计和开发
本文 4491 字 阅读 12 分钟
本文整体介绍了 DLRover 的项目动机与核心能力,未来我们会发布一系列文章,来从同步/异步弹性训练,优化策略服务,多种集群和训练框架对接,策略定制开发等多个角度来介绍 DLRover 的更多细节,敬请期待。
01
技术背景
2022 年 6 月,蚂蚁集团决定全面引入 ESG 框架,启动并确立了“数字普惠”、“绿色低碳”、“科技创新”、“开放生态”四位一体的可持续发展战略。针对“绿色低碳”,设立了 4 个子议题,包括绿色运营、科技助力产业碳中和、生态保护与修复绿色低碳生活。
在此背景下,绿色 AI 也成为蚂蚁 AI Infra 团队的一个重要工作方向。作为绿色 AI 的重要板块,工程提效项目致力于打造高性能离在线 AI 工程体系,通过提升算力效率和资源利用率,最终达到节省资源降低碳排放的目的。
当前,用户提交分布式训练作业的工具有 Yarn 或者 KubeFlow/Training-Operator。在提交作业时,用户需要在作业中指定作业资源,包括不同角色的节点数量和资源规格(CPU 核数、内存、GPU 等)。
在训练作业提交后,作业可能遇到如下问题:
-
集群资源不足以启动作业的所有节点,作业只能等待。
-
训练作业的节点可能会出错,比如被高优任务抢占、机器故障、IO 故障等,导致作业失败。
出现这些问题后,用户只能修改作业资源来重新提交作业。
针对这两个问题,蚂蚁集团早期基于 Kubernetes 开源了 ElasticDL 项目来支持 K8s 上 TF 2.x 分布式训练的弹性容错。在项目落地过程中我们又发现了如下问题:
-
用户配置的资源可能过少引起 OOM 和训练性能差。
-
用户为了保障作业成功率和速度,通常会配置超额资源导致利用率低。
-
越来越多的用户使用 PyTorch 或其他 TF 之外的框架来开发和训练模型。
-
越来越多的分布式集群开始支持 AI 作业,比如 Ray、Spark 集群,能否适配任意