亚马逊挑中MXNet后,机器之心和他们聊了聊

简介: 近日,亚马逊首席技术官 Werner Vogels 在一篇博客上宣布,亚马逊选择 MXNet 作为该公司最主要的深度学习框架;他还宣布 AWS 将会为 MXNet 和该公司所支持的生态系统的开发提供软件代码、文档和投资。这一消息对深度学习领域和 MXNet 社区来说都无疑是重大利好的。看起来知乎上「为什么强大的 MXNet 一直火不起来?」的问题现在终于可以终止了,相信在亚马逊这样的巨头的支持下,MXNet 还将迎来更大的发展并被更多的实践者应用。

MXNet 的前世今生


MXNet 起源于三个不同的开源项目,分别是由在美国的陈天奇,在加拿大的许冰和在香港的王乃岩牵头的 cxxnet,上海张铮老师及其学生牵头的 Minerva,以及在新加坡的 Min Lin 牵头的 purine2 。


2014 年 NIPS 上,同为上海交大校友的陈天奇与李沐碰头,讨论到各个在做深度学习 Toolkits 的项目组,发现大家普遍在进行很多重复性的工作,例如文件 loading 等。于是他们决定组建 DMLC(Distributied (Deep) Machine Learning Community),号召大家一起合作开发 MXNet,分别发挥各自的特长,避免 reinvent the wheel。


据张铮老师回忆,早期 MXNet 的核心成员在十人左右,却曾同时分布在多达六个时区。其中张铮老师指导的 Minerva 团队主要负责后端引擎,陈天奇进行接口设计,李沐负责分布式。


在打造 MXNet 的过程中,团队成员在设计上进行了十分细致的思考和讨论。MXNet 使用 Mixture 设计,融合了其他一些主流框架的优点,例如其像 Tensor Flow 一样的 符号式编程(symbolic),和 Torch 一样的 命令式编程(imperative);为了方便开发者使用,MXNet 支持多种语言接口,同时在底层预步了对 Caffe 和 Torch 等运算模块的兼容等等;在内存使用方面,MXNet 大胆使用了不同于一般的系统内存优化的设计,并取得了很好的效果。


93D5C47F-49CF-419D-AF42-99D0DA832D3C.jpeg


经过一年的努力,MXNet 现身 2015 年 NIPS 的机器学习系统 Workshop。点击「阅读原文」查看相关论文。


2016 年,越来越多的开源贡献者参与到了开发及维护 MXNet 的工作中,对 MXNet 进行了大量的扩展、优化和修复工作。其中包括后期加入 DMLC,并逐渐成为核心成员,负责 rtc 和 torch 的解浚源(Eric),扛下 RNN 部分的 Chiyuan 和张宇,负责 R 接口的 Qiang Kou,Scala 接口的 Yizhi Liu,以及施新建等。截止到 2016 年 11 月中旬,MXNet 项目拥有超过两百名贡献者。


亚马逊背书的开源深度学习框架


在昨天亚马逊的表态之后,机器之心第一时间联系了 MXNet 项目的主要贡献者之一解浚源(Eric),请他谈论了一些对于这一消息和 MXNet 发展情况的一些见解。

D771964C-151C-4335-96F7-C26C8E51700B.jpeg

解浚源(Eric)是华盛顿大学正在就读计算机科学博士三年级的学生,正与 Ali Farhadi 和 Ross Girshick 共同进行研究工作。在此之前,解浚源于中国科技大学获得了计算机科学学士学位。研究兴趣是机器学习和计算机视觉,特别是发掘使用无标签或易于获得的「自然」标注的数据训练深度神经网络的新方法。解浚源目前是 MXNet 项目的主要贡献者之一,主要负责 rtc 和 torch 的部分。




以下是机器之心对解浚源的专访内容整理(部分回答引用自知乎):


1)亚马逊选择 MXNet 作为其最主要的深度学习框架,这对于你们双方而言意味着什么?这件事是从什么时候开始计划的?


该问题的答案引用自知乎:https://www.zhihu.com/question/52906838/answer/132582817


Eric:MXNet 发展到现在有一年多了,已经是一个相对成熟的项目。我对我们的技术很有信心。MXNet 的速度,节省内存,接口灵活性,和分布式效率都是可圈可点的。作为一个由爱好者发起,没有投资的项目,MXNet 以前最大的短板是文档和宣传。而 Amazon 作为大财主以后在这方面可以起到很好的作用。


实际上 Amazon 对 MXNet 的支持已经有一段时间了,在 Github 上提交了很多文档方面的改进。细心的同学可能已经发现最近网站变好看了,拼写错误也少了很多(MXNet Documents),花钱请的前端和文案就是不一样。总体来说 Amazon 对开源社区很友好,除了对文档和稳定性的要求严格了一些并没有干涉我们的开发。Code Review 还是我们自己在做,是否接收代码也是社区决定的。


在 Amazon 之前已经有很多公司在默默的用 MXNet 了,只是没有大肆宣传。比如图森、地平线、搞 Mathematica 的 Wolfram 都给 MXNet 贡献了很多代码。


我对 MXNet 的前景很乐观,欢迎大家试用,也欢迎贡献代码,众人拾柴火焰高嘛,不知道从哪里下手的同学帮忙完善一下文档也是好的。有意全职做 MXNet 相关工作的可以联系我们,我们可以帮忙介绍美国 Amazon 以及北京、深圳各大机器学习 Startup 的工作:)


P.S. 这篇文章里关于分布式效率的细节比较少,GPU 也是 K80,比较老。但是我以节操担保线性加速的结果是靠谱的。我们自己在 Titan X 上用 resnet 也能跑出类似的效果。大家可以来试试。


2)在今后的发展中,你怎么看待和 Caffe、CNTK、TensorFlow 以及 Torch 的竞争?


Eric: Caffe 有辉煌的历史,但是随着深度学习模型发展的越来越复杂,对灵活性要求越来越高,已经很难适应需求了。yangqing 吸取了 Caffe 的经验教训,已经开始在 Facebook 内部搞 Caffe2 了。Caffe 的用户应该会在未来 1 到 2 年内迁移到其它平台;


CNTK 目前热度不高,但是微软在持续投入,最近刚加入了 Python 前端,未来怎么样还不好说。


值得一提的是微软的 Azure 团队最近发了若干篇在 Windows 上用 MXNet 和 R 做深度学习的 blog。个人认为是因为 MXNet 对 Windows 和 R 都有完善的支持,用 Windows 的统计学家是微软的重要客户群。


剩下的平台都有各自的特色,我认为未来会共存很长时间,很难实现一款平台统一所有市场


Torch 比较像一个免费且原生支持 GPU 的 Matlab,在学术圈习惯 Matlab 或者不用 Python 的人群中很受欢迎。Torch 的封装少,简单直接,前期学习和开发时的思维难度都比较低。但是由于封装少和 Lua 本身的限制,工程性不好、容易乱写、代码可复用性差,导致 Torch 不适合做大项目的开发。


TensorFlow 希望做一个大而全的机器学习框架,而不只满足于深度学习。我认为 TF 会沿着替代 sk-learn 的方向发展,会比较适合快速实现标准算法。但是大而全的负面因素就是代码量大、抽象层数多、代码冗余,对性能和可定制性都会带来负面影响。可能并不适合需要深度定制、对性能敏感的企业和做前沿研究的 research。


MXNet 的方向是小而精、灵活高效。我们希望把核心深度学习的做到极致。MXNet 的代码量小,容易深度定制,同时支持 imperative(类似 Torch)和 declarative(类似 TF)两种 API,所以更灵活。另外 MXNet 的单机和分布式性能都是很好的。缺点是相对于 Torch 学习难度会大一些,另外以前没有资金支持,文档和宣传做的比较差。但是有了 Amazon 的支持,相信在这些方面会有大幅改善。


3)可否为大家讲解一下 MXNet 是如何达到拔群的 scaling efficiency 的?


Eric:MXNet 的并行化部分用了李沐的 pslite 进行通信,基于 zeromq,效率很高。另外 MXNet 基于依赖引擎(Dependency Engine)调度,每一层的梯度计算完毕后马上就可以开始传输,实现最优的 communication and computation overlapping。


4)可以介绍一些基于 MXNet 的有趣应用吗?


Eric: MXNet 有 Fast/Faster RCNN 和 SSD 的实现样例,另外还有一个用 DQN 玩 Flappy Bird 的例子,比较有趣:



5)MXNet 开源社区现在发展状况如何?说点什么呼吁人们参与到 MXNet 的开发和应用中来?


Eric: MXNet 的社区很活跃,我们已经有超过 200 个 contributor,包括很多公司的员工,以及学生和爱好者。MXNet 需要提升的主要是文档和教程。另外陈天奇正在研究运行时编译(RTC),不久后会发布,可以带来进一步的性能提升。近期我们会发布 0.9 版本,完成了后端到 nnvm 的迁移,以及很多新的 feature,比如一个用来调试性能的 profiler。

0A2CAD10-D41E-42C9-A2AE-EE14B9EDF17A.jpeg



©本文为机器之心原创文章,转载请联系本公众号获得授权

相关文章
|
5月前
|
机器学习/深度学习 人工智能 算法
这个社区可以互相交流学习AI相关的开发技术吗?自学开发AI图像算法插件一段时间,和大家分享一下经历吧,也不知道自己目前在折腾的东西有没有用。
接触AI相关快一年的时间,期间自学了一些AI图像相关的算法,然后用掌握的一些知识整了一些土枪土炮的花样,给大家献个丑,希望能在这里找到一个可以交流学习的环境。
158 3
|
9月前
|
数据挖掘 测试技术
项目实战10——对生产环境要有敬畏之心
项目实战10——对生产环境要有敬畏之心
83 0
|
9月前
案例10-对生产环境有敬畏之心
对生产环境有敬畏之心
|
11月前
|
人工智能 自然语言处理 安全
AI卷趴程序员!DeepMind祭出竞赛级代码生成系统AlphaCode,超越近半码农
AI卷趴程序员!DeepMind祭出竞赛级代码生成系统AlphaCode,超越近半码农
|
人工智能 自然语言处理 自动驾驶
没想到,没想到,AI背后还有这些弯弯绕
不管是最近以ChatGPT、Bard为代表的人工智能内容生成,还是更早前以L2、L4多个等级为代表的自动驾驶,都离不开AI的身影。那么,在AI这条宽敞、光明的赛道,要如何愉快地奔跑呢?今天,我们就以自动驾驶为例,聊一聊AI背后的那些“科技与狠活”。
218 0
没想到,没想到,AI背后还有这些弯弯绕
|
机器学习/深度学习 C++
百度飞桨世界冠军带你从零实践强化学习第五天(三岁白话时间)
百度飞桨世界冠军带你从零实践强化学习第五天(三岁白话时间)
150 0
百度飞桨世界冠军带你从零实践强化学习第五天(三岁白话时间)
|
机器学习/深度学习 C++
百度飞桨世界冠军带你从零实践强化学习第四天(三岁白话时间)
这里是三岁,这里吧第四的素材和资料整理了一下,大家康康,有什么不足的欢迎提出,批评指正!!!
92 0
百度飞桨世界冠军带你从零实践强化学习第四天(三岁白话时间)
|
机器学习/深度学习 人工智能 安全
机器之心对话张亚勤:机器学习对安全领域而言是把双刃剑
为了应对日益增长的安全威胁,该公司还在加大其对应各方面的研究投入,其中在人工智能方面的投入尤其突出。机器之心在拉斯维加斯最近举办的 DEF CON 黑客大会上采访了百度公司总裁张亚勤博士,本文为相关内容的中文版。
136 0
机器之心对话张亚勤:机器学习对安全领域而言是把双刃剑
|
机器学习/深度学习 人工智能 自然语言处理
谷歌神经网络翻译系统发布后,我们和Google Brain的工程师聊了聊
9 月 27 日,谷歌在 arXiv.org 上发表论文《Google`s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation》介绍谷歌的神经网络翻译系统(GNMT)后,「机器之心」第一时间进行了详细的解读和报道,重磅 | 谷歌翻译整合神经网络:机器翻译实现颠覆性突破(附论文)。
235 0
|
机器学习/深度学习 人工智能 自然语言处理
机器之心独家对话吴恩达:很多技术其实是中国最先开始应用的
吴恩达,百度首席科学家、百度大脑项目负责人。在最近的百度语音开放平台三周年主题活动上,机器之心对这位与 Geoffrey Hinton、Yoshua Bengio、Yann LeCun 齐名的人工智能专家进行了专访,深度了解了百度的人工智能研究、吴恩达的人工智能之路,以及更多的有关人工智能技术的话题。
218 0
机器之心独家对话吴恩达:很多技术其实是中国最先开始应用的