蚂蚁金服开源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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
11天前
|
Ubuntu 网络安全 容器
KubeSphere 是一个开源的容器平台,提供丰富的功能和便捷的操作界面,适用于企业容器化部署和管理
KubeSphere 是一个开源的容器平台,提供丰富的功能和便捷的操作界面,适用于企业容器化部署和管理。本文详细介绍了如何在 Ubuntu 22.04 上安装 KubeSphere,包括系统要求、安装依赖项、设置防火墙、下载安装脚本、选择安装选项、验证安装结果等步骤,并提供了常见问题的解决方法。希望本文能为读者提供实用的参考和帮助。
23 3
|
23天前
|
机器学习/深度学习 算法 编译器
Python程序到计算图一键转化,详解清华开源深度学习编译器MagPy
【10月更文挑战第26天】MagPy是一款由清华大学研发的开源深度学习编译器,可将Python程序一键转化为计算图,简化模型构建和优化过程。它支持多种深度学习框架,具备自动化、灵活性、优化性能好和易于扩展等特点,适用于模型构建、迁移、部署及教学研究。尽管MagPy具有诸多优势,但在算子支持、优化策略等方面仍面临挑战。
56 3
|
28天前
|
Kubernetes 安全 容器
关于K8s,不错的开源工具
【10月更文挑战第12天】
|
5月前
|
机器学习/深度学习 人工智能 TensorFlow
TensorFlow 是一个由 Google 开发的开源深度学习框架
TensorFlow 是一个由 Google 开发的开源深度学习框架
74 3
|
2月前
|
Linux pouch 容器
CentOS7部署阿里巴巴开源的pouch容器管理工具实战
关于如何在CentOS 7.6操作系统上安装和使用阿里巴巴开源的Pouch容器管理工具的实战教程。
126 2
CentOS7部署阿里巴巴开源的pouch容器管理工具实战
|
2月前
|
存储 Kubernetes 数据安全/隐私保护
k8s对接ceph集群的分布式文件系统CephFS
文章介绍了如何在Kubernetes集群中使用CephFS作为持久化存储,包括通过secretFile和secretRef两种方式进行认证和配置。
99 5
|
3月前
|
Kubernetes 负载均衡 算法
如何在kubernetes中实现分布式可扩展的WebSocket服务架构
如何在kubernetes中实现分布式可扩展的WebSocket服务架构
74 1
|
4月前
|
资源调度 Kubernetes 异构计算
Serverless Kubernetes 复杂性问题之Kubernetes中的多形态异构资源的问题如何解决
Serverless Kubernetes 复杂性问题之Kubernetes中的多形态异构资源的问题如何解决
|
4月前
|
Kubernetes 持续交付 Python
Kubernetes(通常简称为K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。
Kubernetes(通常简称为K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。
|
6月前
|
机器学习/深度学习 开发框架 Android开发
移动应用开发的未来:跨平台框架与原生系统之争深度学习在图像识别中的应用与挑战
【5月更文挑战第28天】 在移动设备日益成为我们生活不可或缺的一部分的同时,移动应用的开发也正经历着前所未有的变革。本文将探讨当前移动应用开发的关键技术趋势,特别是跨平台开发框架的兴起以及它们与传统的原生移动操作系统之间的竞争。我们将分析这些技术如何塑造了开发者构建、部署和维护移动应用的方式,并预测了未来可能的发展方向。 【5月更文挑战第28天】 随着人工智能技术的飞速发展,深度学习已成为推动计算机视觉领域进步的核心动力。本文旨在探讨深度学习技术在图像识别任务中的运用,并分析其面临的主要挑战。通过回顾卷积神经网络(CNN)的基础理论及其变体,文章揭示了深度学习如何提高图像识别的准确性和效率。
下一篇
无影云桌面