重磅 | 巨头之间的深度学习框架战争:亚马逊选中MXNet
选自allthingsdistributed.com
作者:Werner Vogels
机器之心编译
参与:吴攀、李泽南
Werner Voegls,亚马逊副总裁,CTO
随着人工智能的发展,现代科技公司的目标变成了打造不需要人类干预就能执行任务的人工智能软件。
为了这一目标,Amazon Web Services(AWS)选中了 MXNet 作为其最主要的深度学习框架,亚马逊首席技术官 Werner Vogels 昨日在一篇博客文章中透露了亚马逊的这一选择。
Vogels 说 AWS 将会为 MXNet 和该公司所支持的生态系统的开发提供软件代码、文档和投资。尽管他也提到该公司也已经支持了其它深度学习框架(包括 Caffe、CNTK、TensorFlow 和 Torch),但看起来亚马逊将开始主要为 MXNet 站台了。
TensorFlow 和 CNTK 框架是分别由亚马逊的竞争对手谷歌和微软发展起来的。Caffe 来自加州大学伯克利分校的伯克利人工智能研究实验室(Berkeley Artificial Intelligence Research Lab)。
下一周,亚马逊就要举行其年度 AWS re:Invent 大会了,此时 MXNet 的消息出来,说明亚马逊的高管有望在这次大会上谈论人工智能的机会以及将支持亚马逊的 Alexa 个人助理开放给 AWS 开发者。
机器之心曾经发表过一篇 MXNet 的作者之一李沐的专栏文章 《为什么强大的 MXNet 一直火不起来?》 ,谈论了 MXNet 的现状;也曾发过讨论 MXNet 的优势和应用的文章(如 《五大主流深度学习框架比较分析:MXNET 是最好选择》 和 《MXNet 专栏 | 陈天奇:NNVM 打造模块化深度学习系统》 ,现在我们终于可以说:MXNet 火起来了!
-
下面是亚马逊首席技术官 Werner Vogels 宣布此消息的博客文章内容:
机器学习正在我们的商业和生活中的许多领域发挥越来越重要的作用,并且已经被部署到了许多无法编程出明确的算法的计算任务中。
在亚马逊,机器学习已经成为了我们许多业务流程的关键:从推荐系统到欺诈检测、从库存水平到书籍分类再到检测恶意的评论。除此之外,我们还有更多广泛地使用了机器学习的应用领域:搜索、自动无人机、订单履行中心的机器人、文本和语音识别等等。
在各种机器学习算法中,一种被称为深度学习的算法已经成为了机器学习的代表,这种算法可以吸收大量数据并学习数据中优雅的有用的模式:照片中的脸、文本的含义或口头话语的意图。在帮助开发者使用深度学习定义和训练人工智能模型方面已经出现了很多编程模型;另外也出现了很多将深度学习提供给普通开发者的开源框架。其中我们在 AWS 上所支持的流行深度学习框架有:Caffe、CNTK、MXNet、TensorFlow、Theano 和 Torch。
在所有这些流行的框架中,我们的结论是 MXNet 是最具扩展性的框架。我们相信为 MXNet 投入更多努力能够使人工智能社区获益。今天,我们宣布将成为我们的深度学习框架选择。AWS 将继续提供代码和改进文档,并且投资围绕 MXNet 的生态系统。我们也将会与其它组织合作来进一步改进 MXNet。
AWS 和对深度学习框架的支持
在 AWS,我们相信应该给我们的客户提供选择。我们的目标是通过提供正确的实例、软件(AMI)和托管服务来为我们的客户提供符合他们选择的工具、系统和软件。正如在 Amazon RDS 中一样――其中我们支持多种开源引擎,包括 MySQL、PostgreSQL 和 MariaDB,在深度学习框架领域,我们也将通过为客户提供做好的 EC2 实例集和合适的软件工具来支持所有流行的深度学习框架。
Amazon EC2 有广泛的实例类型(instance types)和带有大量内存的 GPU,它已经变成了深度学习训练的重心。为此,我们最近开放了一系列工具以便用户能尽可能轻松地上手;这个工具是 Deep Learning AMI ,其预安装了上面所提到的开源深度学习框架;通过 CUDA(已经安装和预配置)的 GPU 加速;并支持 Anaconda 和 Jupyter 这样的工具。开发者也可以通过这个 AMI 使用分布式深度学习 CloudFormation 模板来使用向外扩展的弹性的 P2 实例集群以运行更大型的训练。
亚马逊和 AWS 一直关注深度学习,并致力于提供多种工具用于技术研发,我们将持续在可用性,可扩展性和功能方面改进所有这些框架。MXNet 是这些计划的中心。
选择一个深度学习框架
开发人员,数据科学家和研究人员在选择深度学习框架时主要考虑三个主要因素:
-
规模化多重 GPU 能力(通过多个主机)来通过更大与复杂的数据集训练巨大且更复杂的模型。深度学习模型能用数天或数周来训练,所以甚至这一块只是一点点提升也会造成在新模型的发展和评估速度上巨大的加强。
-
发展速度和可编程性,特别是有机会使用他们已经熟悉的计算机语言时,他们能够非常迅速地建造新的并更新现有的模型。
-
大范围内设备和平台的可移植性,因为深度学习模型需要在很多不同的的地方运行:从笔记本电脑和能通过大型网络互联和大量的计算能力服务器群,到通常是连接相距甚远设备的移动通讯工具,这些将更少依赖网络互联和相当少的计算力。
对于 AWS 的开发者和很多我们的客户而言,有三件事同样重要。经过慎重地评估,我们选择 MXNet 作为亚马逊的深度学习框架,我们计划在现有和即将推出的新服务中广泛使用它。
我们已经开展了一系列工作,作为承诺的一部分,我们将通过贡献代码(已经做了很多工作)积极地促进和支持开源,改进在线和 AWS 的开发人员体验和帮助文档,并持续改进可视化、开发环境,帮助开发者更方便地从其他框架迁移进来。
MXNet 介绍
MXNet 是一个全功能,灵活可编程和高扩展性的深度学习框架,支持深度学习模型中的最先进技术,包括卷积神经网络(CNN)和长期短期记忆网络(LSTM)。MXNet 由学术界发起,包括数个顶尖大学的研究人员的贡献,这些机构包括华盛顿大学和卡内基梅隆大学。
「MXNet 是在卡内基梅隆大学中诞生的,它是我所看到的最完美的深度学习可扩展框架,它可以让计算机科学更加美好。让不同学科,不同工作的人们团结在一起。我们对亚马逊选择 MXNet 感到兴奋,MXNet 将由此变得更加强大。」卡内基梅隆大学计算机科学系主任 Andrew Moore 说道。
MXNet 缩放
深度学习框架在多核心处理器中的运行效率是其性能的重要指标。更高效的缩放(Scaling)可以让训练新模型的速度显著提高,或在相同的训练时间内大幅提高模型的复杂性。
这正是 MXNet 的优势:我们正在使用越来越多的 GPU 训练图像分析算法 Inception v3(在 MXNet 中实现并在 P2 实例上运行)。MXNet 不仅具有所有已知库中最快的吞吐量(每秒训练的图像数量),而且吞吐量提高几乎与用于训练的 GPU 数量成正比(比例为 85 %)。
用 MXNet 进行开发
除了高可扩展性,MXNet 还提供混合编程模型(命令式和声明式),同时兼容多种编程语言(包括 Python、C ++、R、Scala、Julia、Matlab 和 Java)的代码。
MXNet 中的高效模型和可移植性
计算效率很重要(并且与可扩展性紧密相关),但是内存使用量也同样重要。在运行多达 1000 层的深层网络任务时,MXNet 只需消耗 4GB 的内存。它还可以跨平台移植,并且核心库(具有完整功能)可以整合进单个 C ++源文件中,并为 Android 和 iOS 进行编译。你甚至可以使用 Java 扩展在浏览器中运行它。
更多内容
有关 MXNet 的更多细节可以关注 MXNet 主页,或 GitHub 以获得更多信息,你可以立即使用 Deep Learning AMI,或在你自己的设备中进行开发。亚马逊将在 11 月 30 日于拉斯维加斯 Mirage 酒店举办机器学习「State of the Union」会议,随后也会在 AWS re:Invent 中开展有关 MXNet 的研讨会。
-
MXNet 主页:http://mxnet.io/
-
GitHub 地址:https://github.com/dmlc/mxnet
-
Deep Learning AMI:https://aws.amazon.com/marketplace/pp/B01M0AXXQB
©本文为机器之心编译文章, 转载请联系本公众号获得授权 。
?------------------------------------------------
加入机器之心(全职记者/实习生):hr@almosthuman.cn
投稿或寻求报道:editor@almosthuman.cn
广告&商务合作:bd@almosthuman.cn