蚂蚁金服开源ElasticDL:Kubernetes原生的分布式深度学习系统

简介: 9月11日,蚂蚁金服在2019谷歌开发者大会上海站上,宣布开源 ElasticDL,一个基于 TensorFlow 2.0 的 Kubernetes 原生的分布式深度学习系统。这也是业界首个基于TensorFlow 的支持弹性调度的深度学习系统。

9月11日,蚂蚁金服在2019谷歌开发者大会上海站上,宣布开源 ElasticDL,一个基于 TensorFlow 2.0 的 Kubernetes 原生的分布式深度学习系统。这也是业界首个基于TensorFlow 的支持弹性调度的深度学习系统。

ElasticDL 的主要特性是容错性是弹性调度,这是通过研发一个 Kubernetes-native 的框架来调用 TensorFlow 2.0 从而实现的。Kubernetes-native 指的是一个分布式程序调用Kubernetes API 来起止进程;给予了分布式系统更多的调度灵活度。与之对应的做法是为每个分布式框架写一个 Kubernetes operator 来启动分布式作业,比如,Google Cloud 为 TensorFlow 开发了 Kubernetes operator Kubeflow,但Kubeflow不支持弹性调度。

TensorFlow 2.0 的 eager execution API 是 ElasticDL 的另一大助力,使得 ElasticDL 不必像 Uber Horovod 这类为 TensorFlow 1.x 设计的系统一样需要“盗取”作为计算图执行的中间结果的 gradients。

在多人共用计算集群的情况下,支持弹性调度意味着极大提升团队效率和集群的总体利用率。举个比较极端的例子:假设一个集群有N个GPU,而一个任务只使用其中一个,当没有弹性调度时,一个要求所有N个GPU的任务需要等待前一个任务结束才能开始,这个等待时间可能高达数天甚至数周,在等待期间,集群的效用是1/N;而拥有弹性调度能力之后,新的任务可以在N-1个GPU上立刻运行,并且Kubernetes可以在第一个任务完成后将占用的GPU赋予这个任务,在这个案例里,集群整体效用是100%. 因此,在部分案例中,ElasticDL能极大的提升集群利用率。

除此之外,ElasticDL还拥有高效和易用的特性。今年5月份,蚂蚁金服开源了SQLFlow,ElasticDL通过与SQLFlow的联动,实现让AI变得像使用SQL一样简单,SQLFlow把SQL程序翻译成一个ElasticDL程序,让工程师可以用SQL语言描述模型训练和预测过程。

ElasticDL项目负责人王益表示:“ElasticDL 处于研发初期,我们希望尽早开源ElasticDL和尽早分享其设计意图,汇聚来自不同公司和社区的力量,一起探索GoogleTensorFlow2.0和Kubernetes的分布式训练生态,早日实现便捷的端到端的人工智能开发套件。”

蚂蚁金服一直积极参与开源社区共建。自从2011年宣布第一波开源项目以来,开源项目数量每年都有增长。目前蚂蚁金服已经有400多个开源项目,其中,AntDesign项目已获四万多 GitHub 星标,有800多人参与项目建设,SQLFlow、EggJS和SOFA系列也成为社区热门。

外部.png

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
存储 边缘计算 Kubernetes
边缘计算问题之YurtControllerManager 接管原生 Kubernetes 的调度如何解决
边缘计算问题之YurtControllerManager 接管原生 Kubernetes 的调度如何解决
157 1
|
机器学习/深度学习 数据可视化 TensorFlow
使用Python实现深度学习模型的分布式训练
使用Python实现深度学习模型的分布式训练
556 73
|
人工智能 监控 开发者
阿里云PAI发布DeepRec Extension,打造稳定高效的分布式训练,并宣布开源!
阿里云PAI发布DeepRec Extension,打造稳定高效的分布式训练,并宣布开源!
325 0
|
消息中间件 监控 数据可视化
Apache Airflow 开源最顶级的分布式工作流平台
Apache Airflow 是一个用于创作、调度和监控工作流的平台,通过将工作流定义为代码,实现更好的可维护性和协作性。Airflow 使用有向无环图(DAG)定义任务,支持动态生成、扩展和优雅的管道设计。其丰富的命令行工具和用户界面使得任务管理和监控更加便捷。适用于静态和缓慢变化的工作流,常用于数据处理。
Apache Airflow 开源最顶级的分布式工作流平台
|
机器学习/深度学习 自然语言处理 并行计算
DeepSpeed分布式训练框架深度学习指南
【11月更文挑战第6天】随着深度学习模型规模的日益增大,训练这些模型所需的计算资源和时间成本也随之增加。传统的单机训练方式已难以应对大规模模型的训练需求。
2024 3
|
机器学习/深度学习 算法 自动驾驶
深度学习之分布式智能体学习
基于深度学习的分布式智能体学习是一种针对多智能体系统的机器学习方法,旨在通过多个智能体协作、分布式决策和学习来解决复杂任务。这种方法特别适用于具有大规模数据、分散计算资源、或需要智能体彼此交互的应用场景。
935 4
|
Kubernetes Cloud Native Java
探索未来编程新纪元:Quarkus带你秒建高性能Kubernetes原生Java应用,云原生时代的技术狂欢!
Quarkus 是专为 Kubernetes 设计的全栈云原生 Java 框架,凭借其轻量级、快速启动及高效执行特性,在 Java 社区脱颖而出。通过编译时优化与原生镜像支持,Quarkus 提升了应用性能,同时保持了 Java 的熟悉度与灵活性。本文将指导你从创建项目、编写 REST 控制器到构建与部署 Kubernetes 原生镜像的全过程,让你快速上手 Quarkus,体验高效开发与部署的乐趣。
591 1
|
存储 关系型数据库 MySQL
深度评测:PolarDB-X 开源分布式数据库的优势与实践
本文对阿里云开源分布式数据库 PolarDB-X 进行了详细评测。PolarDB-X 以其高性能、强可用性和出色的扩展能力在云原生数据库市场中脱颖而出。文章首先介绍了 PolarDB-X 的核心产品优势,包括金融级高可靠性、海量数据处理能力和高效的混合负载处理能力。随后,分析了其分布式架构设计,包括计算节点、存储节点、元数据服务和日志节点的功能分工。评测还涵盖了在 Windows 平台通过 WSL 环境部署 PolarDB-X 的过程,强调了环境准备和工具安装的关键步骤。使用体验方面,PolarDB-X 在处理分布式事务和实时分析时表现稳定,但在网络问题和性能瓶颈上仍需优化。最后,提出了改进建
|
机器学习/深度学习 分布式计算 PyTorch
构建可扩展的深度学习系统:PyTorch 与分布式计算
【8月更文第29天】随着数据量和模型复杂度的增加,单个GPU或CPU已无法满足大规模深度学习模型的训练需求。分布式计算提供了一种解决方案,能够有效地利用多台机器上的多个GPU进行并行训练,显著加快训练速度。本文将探讨如何使用PyTorch框架实现深度学习模型的分布式训练,并通过一个具体的示例展示整个过程。
603 0
|
Kubernetes 网络协议 Docker
在K8S中,ip-cer-pod与docker原生端口映射有何区别?
在K8S中,ip-cer-pod与docker原生端口映射有何区别?