Horovod

在 Kubernetes 上弹性深度学习训练利器-Elastic Training Operator

一世执手 提交于 2021-02-19 17:13:49
背景 由于云计算在资源成本和弹性扩容方面的天然优势,越来越多客户愿意在云上构建 AI 系统,而以容器、Kubernetes 为代表的云原生技术,已经成为释放云价值的最短路径, 在云上基于 Kubernetes 构建 AI 平台已经成为趋势。 当面临较复杂的模型训练或者数据量大时,单机的计算能力往往无法满足算力要求。通过使用阿里的 AiACC 或者社区的 horovod 等分布式训练框架,仅需修改几行代码,就能将一个单机的训练任务扩展为支持分布式的训练任务。在 Kubernetes 上常见的是 kubeflow 社区的 tf-operator 支持 Tensorflow PS 模式,或者 mpi-operator 支持 horovod 的 mpi allreduce 模式。 现状 Kubernetes 和云计算提供敏捷性和伸缩性,我们可以通过 cluster-AutoScaler 等组件为训练任务设置弹性策略,利用 Kubernetes 的弹性能力,按需创建,减少 GPU 设备空转。 但这种伸缩模式面对训练这种离线任务还是略有不足: 不支持容错,当部分 Worker 由于设备原因失败,整个任务需要停止重来。 训练任务一般时间较长,占用算力大,任务缺少弹性能力。当资源不足时,除非任务终止,无法按需为其他业务腾出资源。 训练任务时间较长,不支持 worker 动态配置,

229页CMU博士张昊毕业论文公布,探索机器学习并行化的奥秘

本小妞迷上赌 提交于 2020-10-27 09:53:46
  机器之心报道    机器之心编辑部    CMU 机器人研究所张昊(Hao Zhang)博士论文新鲜出炉,主要围绕着机器学习并行化的自适应、可组合与自动化问题展开。   随着近年来,机器学习领域的创新不断加速,SysML 的研究者已经创建了在多个设备或计算节点上并行机器学习训练的算法和系统。机器学习模型在结构上变得越来越复杂,许多系统都试图提供全面的性能。尤其是,机器学习扩展通常会低估从一个适当的分布策略映射到模型所需要的知识与时间。此外,将并行训练系统应用于复杂模型更是增加了非常规的开发成本,且性能通常低于预期。   近日,CMU 机器人研究所博士张昊公布了自己的博士学位论文《机器学习并行化的自适应、可组合与自动化》, 旨在找出并解决并行 ML 技术和系统实现在可用性和性能方面的研究挑战 。   具体而言,该论文 从可编程性、并行化表示、性能优化、系统架构和自动并行化技术等几方面对分布式并行 ML 展开了研究,并认为分布式并行机器学习可以同时实现简洁性和高效性 。此外,该论文表明,并行 ML 的性能可以通过生成自适应 ML 模型结构和集群资源范式的策略实现大幅度提升,同时通过将「如何并行化」这一核心问题形式化为端到端优化目标以及构建可组合分布式 ML 系统来自动优化这类自适应、自定义策略,进而可以解决可用性挑战。   论文链接:https://www.cs.cmu.edu/

数据集暴增压力下,微信「扫一扫」识物训练如何优雅破局?

夙愿已清 提交于 2020-08-19 03:19:39
微信“扫一扫”识物上线一段时间,由前期主要以商品图(鞋子/箱包/美妆/服装/家电/玩具/图书/食品/珠宝/家具/其他)作为媒介来挖掘微信内容生态中有价值的信息,扩张到各种垂类领域的识别,包括植物/动物/汽车/果蔬/酒标/菜品/地标识别等,识别核心依托于深度学习的卷积神经网络模型。随着每天千万级的增长数据和越来越多的模型参数量,深度学习训练一次时间大概需要一周左右。如何能够快速训练优化模型并上线,成为我们亟待解决的问题。 一、引言 如今,依托强大的GPU算力,深度学习得到迅猛发展。在图像处理、语音识别领域掀起了前所未有的一场革命。相较于传统的方法,以卷积神经网络(CNN)为代表的深度学习方法可以高度地重点学习数据的特性,在图像处理领域已经取得了统治地位。 随着扫一扫识物日调用量的持续增加,图片数据正以每天千万级的量级增长,在这个争分夺秒的时代里,得数据者得天下。同时,神经网络的复杂性呈爆炸式增长,像15年微软提出图像分类的ResNet模型有7 ExaFLOPs/6千万个参数,17年谷歌的神经网络机器翻译模型有100 ExaFLOPS/87亿个参数。 在大部分场景下,模型可以在一台GPU服务器上,使用一个或者多个GPU进行训练。但随着数据集的增大,训练时间也相应增长,有些时候训练需要一周甚至更长时间。因此,如何能够快速迭代优化深度学习模型,成为我们算法开发者亟须解决的问题。

如何用Amazon SageMaker 做分布式 TensorFlow 训练?(千元亚马逊羊毛可薅)

人走茶凉 提交于 2020-08-07 08:07:08
机器之心转载,来源:AWS官方博客,作者:Ajay Vohra。 TensorFlow 是广泛被用于开发大型深度神经网络 (DNN) 的开放源机器学习 (ML) 库,此类 DNN 需要分布式训练,并且在多个主机上使用多个 GPU。Amazon SageMaker 是一项托管服务,可通过主动学习、超参数优化、模型分布式训练、监控训练进展,部署培训模型作为自动扩展的 RESTful 服务,以及对并发 ML 实验进行集中式管理,从标签数据开始简化 ML 工作流。 本文将重点讨论使用 Amazon SageMaker 进行分布式 TensorFlow 训练。 概念概述 尽管本文中的许多分布式训练概念通常适用于多种类型的 TensorFlow 模型,但本文着重要介绍的是在 Common Object in Context (COCO) 2017 数据集上对 Mask R-CNN 模型进行的分布式 TensorFlow 训练。 模型 Mask R-CNN 模型用于对象实例分割,其中模型生成像素级掩膜(Sigmoid 二进制分类)和以对象类别(SoftMax 分类)注释的目标框(Smooth L1 回归)描绘图像中的每个对象实例。Mask R-CNN 的一些常见用例包括:自动驾驶汽车的感知、表面缺陷检测和地理空间图像分析。 文中选择 Mask R-CNN 模型的关键原因有三个: 大型数据集上的

Spark dataframe to numpy array via udf or without collecting to driver

旧街凉风 提交于 2020-04-30 09:48:46
问题 Real life df is a massive dataframe that cannot be loaded into driver memory. Can this be done using regular or pandas udf? # Code to generate a sample dataframe from pyspark.sql import functions as F from pyspark.sql.types import * import pandas as pd import numpy as np sample = [['123',[[0,1,0,0,0,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1], [0,1,0,0,0,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1]]], ['345',[[1,0,0,0,0,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,1,1], [0,1,0,0,0,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1]]], ['425',

Spark dataframe to numpy array via udf or without collecting to driver

家住魔仙堡 提交于 2020-04-30 09:47:45
问题 Real life df is a massive dataframe that cannot be loaded into driver memory. Can this be done using regular or pandas udf? # Code to generate a sample dataframe from pyspark.sql import functions as F from pyspark.sql.types import * import pandas as pd import numpy as np sample = [['123',[[0,1,0,0,0,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1], [0,1,0,0,0,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1]]], ['345',[[1,0,0,0,0,1,1,1,0,1,1,0,1,0,0,0,1,1,1,1,1,1], [0,1,0,0,0,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1]]], ['425',

美团BERT的探索和实践

馋奶兔 提交于 2020-04-20 08:23:09
他山之石,可以攻玉。美团点评NLP团队一直紧跟业界前沿技术,开展了基于美团点评业务数据的预训练研究工作,训练了更适配美团点评业务场景的MT-BERT模型,通过微调将MT-BERT落地到多个业务场景中,并取得了不错的业务效果。 背景 2018年,自然语言处理(Natural Language Processing,NLP)领域最激动人心的进展莫过于预训练语言模型,包括基于RNN的ELMo[1]和ULMFiT[2],基于Transformer[3]的OpenAI GPT[4]及Google BERT[5]等。下图1回顾了近年来预训练语言模型的发展史以及最新的进展。预训练语言模型的成功,证明了我们可以从海量的无标注文本中学到潜在的语义信息,而无需为每一项下游NLP任务单独标注大量训练数据。此外,预训练语言模型的成功也开创了NLP研究的新范式[6],即首先使用大量无监督语料进行语言模型预训练(Pre-training),再使用少量标注语料进行微调(Fine-tuning)来完成具体NLP任务(分类、序列标注、句间关系判断和机器阅读理解等)。 图1 NLP Pre-training and Fine-tuning新范式及相关扩展工作 所谓的“预训练”,其实并不是什么新概念,这种“Pre-training and Fine-tuning”的方法在图像领域早有应用。2009年,邓嘉

ElasticDL: Kubernetes-native 弹性分布式深度学习系统

徘徊边缘 提交于 2020-03-02 04:44:45
9月11日,蚂蚁金服在 Google Developer Day Shanghai 2019 上宣布开源了基于 TensorFlow 2.0 eager execution 的分布式深度学习系统 ElasticDL。基于 TensorFlow 的支持弹性调度的深度学习系统,据我们所知,ElasticDL 是第一 个。项目负责人王益和我们分享了 ElasticDL 项目的设计意图和现状,尤其是 ElasticDL 与 TensorFlow 2.0 以及 Kubernetes 的技术关联。 分布式深度学习的技术思路 基于 TensorFlow 的分布式训练系统大致可以分为以下四类: 其中,ElasticDL 位于田字格的右上角。之所以选择这条技术思路,是为了利用 Kubernetes 实现容错和弹性调度。 高性能计算和云计算 在深度学习技术研发的早期,涉及的人员相对少,共用一个计算集群的人相对少, 计算作业之间的协调可以通过口头交流实现。大家更关心缩短运行时间,也就是 从作业启动到结束的这段时间。高性能计算技术(HPC)是解决这个问题的有效 途径,比如 NVIDIA 的 cuBLAS 和 cuDNN 优化高性能数学计算、NCCL 优化 GPU 之间的通信效率。 随着深度学习技术的大规模使用,很多工程师和研究员共用一个集群,通过商量 来协调调度显然不可行了

Call For Contributor!送价值¥2048华为开发者大会(2020)门票

强颜欢笑 提交于 2020-01-06 16:59:34
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 关于华为开发者大会(HDC 2020) 华为开发者大会2020(Cloud)将于2020年2月11日-12日在深圳举办,这是华为面向ICT(信息与通信)领域全球开发者的年度顶级旗舰活动。大会旨在搭建一个全球性的交流和实践平台,开放华为30年积累的ICT技术和能力,以“鲲鹏+昇腾”硬核双引擎,为开发者提供澎湃动力,改变世界,变不可能为可能。 **本次大会设有两场主题演讲、数十个Codelab、上百场技术论坛、30000+平米展区、15000+开发者、2000+合作伙伴、热门开源项目、创新大赛、初创公司与投资者对接会、黑客松、音乐节等活动,面向企业开发者、初创公司、学生等群体提供个性化内容体验。**我们期待与你在一起,梦飞扬! 大会官网: 华为开发者大会HDC.Cloud-华为云 贡献者活动介绍 **此次贡献者活动将送出20张价值¥2048的华为开发者大会(2020)门票,只要参与社区贡献就有机会获得门票。**这里提到的社区贡献不仅仅是指贡献代码, 您能想到的任何方式例如提交代码修改、发掘Bug、代码review、提交文档修改、提交Issue、发表博客、完善测试用例、反馈需求、增加使用案例等都属于社区贡献。 参与活动的项目包括:KubeEdge、Volcano。 活动规则 鉴于本次活动接受多种贡献方式

ElasticDL: Kubernetes-native 弹性分布式深度学习系统

泄露秘密 提交于 2019-11-29 19:07:15
9月11日,蚂蚁金服在 Google Developer Day Shanghai 2019 上宣布开源了基于 TensorFlow 2.0 eager execution 的分布式深度学习系统 ElasticDL。基于 TensorFlow 的支持弹性调度的深度学习系统,据我们所知,ElasticDL 是第一 个。项目负责人王益和我们分享了 ElasticDL 项目的设计意图和现状,尤其是 ElasticDL 与 TensorFlow 2.0 以及 Kubernetes 的技术关联。 分布式深度学习的技术思路 基于 TensorFlow 的分布式训练系统大致可以分为以下四类: 其中,ElasticDL 位于田字格的右上角。之所以选择这条技术思路,是为了利用 Kubernetes 实现容错和弹性调度。 高性能计算和云计算 在深度学习技术研发的早期,涉及的人员相对少,共用一个计算集群的人相对少, 计算作业之间的协调可以通过口头交流实现。大家更关心缩短运行时间,也就是 从作业启动到结束的这段时间。高性能计算技术(HPC)是解决这个问题的有效 途径,比如 NVIDIA 的 cuBLAS 和 cuDNN 优化高性能数学计算、NCCL 优化 GPU 之间的通信效率。 随着深度学习技术的大规模使用,很多工程师和研究员共用一个集群,通过商量 来协调调度显然不可行了