深度盘点国内四大机器学习开源平台:PaddlePaddle,Angel
jopen 8年前
<p style="text-align:center"><img alt="深度盘点国内四大机器学习开源平台:PaddlePaddle,Angel" src="https://simg.open-open.com/show/25ad5563c63566fd6fd0a0f29f7a90b1.jpg" /></p> <p style="text-align:left">2015-2016 的机器学习平台开源大潮中,美国是当之无愧的引领者:无论是谷歌、亚马逊、微软、IBM 等互联网巨头,还是美国各大科研院所,为开源世界贡献了品类繁多的机器学习工具。这其中不乏华人的身影,比如开发出 Caffe 的贾杨清。</p> <p>但在大陆这边,无论是 BAT 还是学界,在开源机器学习项目上始终慢了一拍,令人十分遗憾。这与我国世界最大 AI 研究者社区、占据 AI 科研领域半壁江山的江湖地位*颇为不符。让人欣喜的是,2016 下半年,百度和腾讯先后发布了它们的开源平台战略。虽然姗姗来迟,但作为下半场入场的选手,它们的开源平台各自有什么意义?本文中,作为机器学习开源项目盘点的第三弹,雷锋网将与你一起看看包括百度腾讯平台在内的国内四大开源项目。</p> <p>*注:据创新工场人工智能工程院王咏刚副院长统计,我国 AI 发文数与引用文章数居世界第一,占世界总数一半以上。</p> <p><strong>1. 百度:希望获得开发者青睐的 “PaddlePaddle”</strong></p> <p style="text-align:center"><img alt="深度盘点国内四大机器学习开源平台:PaddlePaddle,Angel" src="https://simg.open-open.com/show/e8cd8d800bccffeb71b34f2205053fb6.jpg" /></p> <p>2016 年 9 月 1 日的百度世界大会上,百度首席科学家吴恩达宣布,该公司开发的异构分布式深度学习系统 PaddlePaddle 将对外开放。这标志着国内第一个机器学习开源平台的诞生。</p> <p>其实,PaddlePaddle 的开发与应用已经有段时日:它源自于 2013 年百度深度学习实验室创建的 “Paddle”。当时的深度学习框架大多只支持单 GPU 运算,对于百度这样需要对大规模数据进行处理的机构,这显然远远不够,极大拖慢了研究速度。百度急需一种能够支持多 GPU、多台机器并行计算的深度学习平台。而这就导致了 Paddle 的诞生。自 2013 年以来,Paddle 一直被百度内部的研发工程师们所使用。</p> <p>而 Paddle 的核心创始人,当年的百度深度学习实验室研究员徐伟,现在已是 PaddlePaddle 项目的负责人。</p> <p style="text-align:center"><img alt="深度盘点国内四大机器学习开源平台:PaddlePaddle,Angel" src="https://simg.open-open.com/show/0e83b5d7ceb671ec86682267f5bb8e50.jpg" /></p> <p style="text-align:center">徐伟</p> <p>对了,从 “Paddle” 到 “PaddlePaddle” 的命名还有一个小插曲:Paddle 是“Parallel Distributed Deep Learning”的缩写,意为“并行分布式深度学习”。而去年 9 月发布时,吴恩达认为 “PaddlePaddle” (英语意为划船——“让我们荡起双~昂~桨,小船儿推开波浪。。。”)其实更郎朗上口、更好记,于是就有了这么个可爱的名字。</p> <p>那么,PaddlePaddle 有什么特点?</p> <ul> <li> <p>支持多种深度学习模型 DNN(深度神经网络)、CNN(卷积神经网络)、 RNN(递归神经网络),以及 NTM 这样的复杂记忆模型。</p> </li> <li> <p>基于 Spark,与它的整合程度很高。</p> </li> <li> <p>支持 Python 和 C++ 语言。</p> </li> <li> <p>支持分布式计算。作为它的设计初衷,这使得 PaddlePaddle 能在多 GPU,多台机器上进行并行计算。</p> </li> </ul> <p>相比现有深度学习框架,PaddlePaddle 对开发者来说有什么优势?</p> <p>首先,是易用性。</p> <p>相比偏底层的谷歌 TensorFlow,PaddlePaddle 的特点非常明显:它能让开发者聚焦于构建深度学习模型的高层部分。项目负责人徐伟介绍:</p> <blockquote> <p>“在 PaddlePaddle 的帮助下,深度学习模型的设计如同编写伪代码一样容易,设计师只需关注模型的高层结构,而无需担心任何琐碎的底层问题。未来,程序员可以快速应用深度学习模型来解决医疗、金融等实际问题,让人工智能发挥出最大作用。”</p> </blockquote> <p>抛开底层编码,使得 TensorFlow 里需要数行代码来实现的功能,可能在 PaddlePaddle 里只需要一两行。徐伟表示,用 PaddlePaddle 编写的机器翻译程序只需要“其他”深度学习工具四分之一的代码。这显然考虑到该领域广大的初入门新手,为他们降低开发机器学习模型的门槛。这带来的直接好处是,开发者使用 PaddlePaddle 更容易上手。</p> <p>其次,是更快的速度。</p> <p>如上所说,PaddlePaddle 上的代码更简洁,用它来开发模型显然能为开发者省去一些时间。这使得 PaddlePaddle 很适合于工业应用,尤其是需要快速开发的场景。</p> <p>另外,自诞生之日起,它就专注于充分利用 GPU 集群的性能,为分布式环境的并行计算进行加速。这使得在 PebblePebble 上,用大规模数据进行 AI 训练和推理可能要比 TensorFlow 这样的平台要快很多。</p> <p style="text-align:center"><img alt="深度盘点国内四大机器学习开源平台:PaddlePaddle,Angel" src="https://simg.open-open.com/show/3c3c3854f681c46354a7364588e02bf5.jpg" /></p> <p>说到这里,业内对 PaddlePaddle 怎么看?</p> <p>首先不得不提的是 Caffe,许多资深开发者认为 PaddlePaddle 的设计理念与 Caffe 十分相似,怀疑是百度对标 Caffe 开发出的替代品。这有点类似于谷歌 TensorFlow 与 Thano 之间的替代关系。</p> <p>知乎上,Caffe 的创始人贾杨清对 PaddlePaddle 评价道:</p> <ol> <li> <p>"很高质量的 GPU 代码"</p> </li> <li> <p>"非常好的 RNN 设计"</p> </li> <li> <p>"设计很干净,没有太多的 abstraction,这一点比 TensorFlow 好很多"</p> </li> <li> <p>"设计思路有点老"</p> </li> <li> <p>"整体的设计感觉和 Caffe ‘心有灵犀’,同时解决了 Caffe 早期设计当中的一些问题”</p> </li> </ol> <p>最后,贾表示 PaddlePaddle 的整体架构功底很深,是下了功夫的。这方面,倒是赢得了开发者的普遍认同。</p> <p>总结起来,业内对 PaddlePaddle 的总体评价是“设计干净、简洁,稳定,速度较快,显存占用较小”。</p> <p>但是,具有这些优点,不保证 PaddlePaddle 就一定能在群雄割据的机器学习开源世界占有一席之地。有国外开发者表示, PaddlePaddle 的最大优点是快。但是,比 TensorFlow 快的开源框架其实有很多:比如 MXNet,Nervana System 的 Neon,以及三星的 Veles,它们也都对分布式计算都很好的支持,但都不如 TensorFlow 普及程度高。这其中有 TensorFlow 庞大用户基础的原因,也得益于谷歌自家 AI 系统的加持。</p> <p>百度的 AI 产品能够对普及 PaddlePaddle 产生多大的帮助,尚需观察。雷锋网获知,它已经应用于百度旗下的多项业务。百度表示:</p> <blockquote> <p>“PaddlePaddle 已在百度 30 多项主要产品和服务之中发挥着巨大的作用,如外卖的预估出餐时间、预判网盘故障时间点、精准推荐用户所需信息、海量图像识别分类、字符识别(OCR)、病毒和垃圾信息检测、机器翻译和自动驾驶等领域。”</p> </blockquote> <p>最后,我们来看看对于自家推出的 PaddlePaddle,李彦宏怎么说:</p> <p style="text-align:center"><img alt="深度盘点国内四大机器学习开源平台:PaddlePaddle,Angel" src="https://simg.open-open.com/show/b6efea72c23c9a2bcaf477fe5b3a5641.jpg" /></p> <blockquote> <p>“经过了五六年的积累,PaddlePaddle 实际上是百度深度学习算法的引擎,把源代码开放出来,让同学们、让社会上所有的年轻人能够学习,在它的基础上进行改进,我相信他们会发挥出来他们的创造力,去做到很多我们连想都没有想过的东西。”</p> </blockquote> <p><strong>2. 腾讯:面向企业的 “Angel”</strong></p> <p style="text-align:center"><img alt="深度盘点国内四大机器学习开源平台:PaddlePaddle,Angel" src="https://simg.open-open.com/show/ac69e1756735668d3b5383c077702b50.jpg" /></p> <p>2016,鹅厂在 AI 领域展开一系列大动作:</p> <ul> <li> <p>9 月,成立 AI 实验室。</p> </li> <li> <p>11 月,获得 Sort Benchmark 大赛的冠军</p> </li> <li> <p>12 月 18 日,在腾讯大数据技术峰会暨 KDD China 技术峰会上对外公开 “Angel” 的存在,并透漏它就是拿下 Sort Benchmark 冠军背后的天使。</p> </li> <li> <p>(即将)在 2017 年一季度,开放 Angel 源代码。</p> </li> </ul> <p>Angel 将成为 PaddlePaddle 之后、BAT 发布的第二个重磅开源平台。那么,它到底是什么?</p> <p>简单来说,Angel 是面向机器学习的分布式计算框架,由鹅厂与香港科技大学、北京大学联合研发。腾讯表示,它为企业级大规模机器学习任务提供解决方案,可与 Caffe、TensorFlow 和 Torch 等业界主流深度学习框架很好地兼容。但就雷锋网所知,它本身并不算是机器学习框架,而侧重于数据运算。</p> <p>上个月 18 日的发布会上,腾讯首席数据专家蒋杰表示:</p> <blockquote> <p>“面对腾讯快速增长的数据挖掘需求,我们希望开发一个面向机器学习的、能应对超大规模数据集的、高性能的计算框架,并且它要对用户足够友好,具有很低的使用门槛,就这样,Angel 平台应运而生。”</p> </blockquote> <p style="text-align:center"><img alt="深度盘点国内四大机器学习开源平台:PaddlePaddle,Angel" src="https://simg.open-open.com/show/cc766b7867ef9c277506b5645d96379b.jpg" /></p> <p>这其中的关键词,一个是“大”规模数据,另一个是“低”使用门槛。</p> <p>“大”方面,企鹅表示 Angel 支持十亿级别维度的模型训练:</p> <p>“Angel 采用多种业界最新技术和腾讯自主研发技术,包括 SSP(Stale synchronous Parallel)、异步分布式 SGD、多线程参数共享模式 HogWild、网络带宽流量调度算法、计算和网络请求流水化、参数更新索引和训练数据预处理方案等。这些技术使 Angel 性能大幅提高,达到 Spark 的数倍到数十倍,能在千万到十亿级的特征维度条件下运行。”</p> <p>“低”方面,Angel 并没有采用机器学习领域标配的 Python,而使用企业界程序猿最熟悉的 Java,以及 Scala 。企鹅声明:“在系统易用性上,Angel 提供丰富的机器学习算法库及高度抽象的编程接口、数据计算和模型划分的自动方案及参数自适应配置。同时,用户能像使用 MR、Spark 一样在 Angel 上编程,我们还建设了拖拽式的一体化的开发运营门户,屏蔽底层系统细节,降低用户使用门槛。”</p> <p>总的来讲,Angel 的定位是对标 Spark 。蒋杰宣称,它融合了 Spark 和 Petuum 的优点。“以前 Spark 能跑的,现在 Angel 快几十倍;以前 Spark 跑不了的,Angel 也能轻松跑出来。”</p> <p style="text-align:center"><img alt="深度盘点国内四大机器学习开源平台:PaddlePaddle,Angel" src="https://simg.open-open.com/show/c0f5e12ae42b3f8f079c6264a246540f.jpg" /></p> <p>其实,Angel 已经是鹅厂的第三代大数据计算平台。</p> <p><strong><img alt="深度盘点国内四大机器学习开源平台:PaddlePaddle,Angel" src="https://simg.open-open.com/show/12c2471296c64b7532c283b3f65e585f.jpg" /></strong></p> <ol> <li> <p>第一代是基于 Hadoop 的深度定制版本“TDW”,它的重点是“规模化”(扩展集群规模)。</p> </li> <li> <p>第二代集成了 Spark 和 Storm,重点是提高速度,“实时化”。</p> </li> <li> <p>第三代自研平台 Angel,能处理超大规模数据,重点是“智能化”,专门对机器学习进行了优化。</p> </li> </ol> <p>这三代平台的演进,从使用第三方开源平台过渡到自主研发,涵盖了从数据分析到数据挖掘、从数据并行到模型并行的发展。现在 Angel 已支持 GPU 运算,以及文本、语音、图像等非结构化数据。自今年初在鹅厂内部上线以来,Angel 已应用于腾讯视频、腾讯社交广告及用户画像挖掘等精准推荐业务。另外,国内互联网行业开口闭口就要打造“平台”、“生态”的风气,鹅厂也完美继承:“Angel 不仅仅是一个只做并行计算的平台,更是一个生态”——这种话虽然不耐听,但腾讯的大数据野心可见一斑。</p> <blockquote> <p>12 月 18 日晚,马化腾在微信朋友圈写道:“AI 与大数据将成为未来各领域的标配,期待更多业界同行一起开源携手互助。”</p> </blockquote> <p>但对于机器学习社区,Angel 开源的意义是否如同鹅厂宣称的那样大?</p> <p>对此,机器学习界的“网红”、微软研究员彭河森说道:</p> <blockquote> <p>“对于小一点的公司和组织,Spark 甚至 MySQL 都已经够了(为了政治正确我提一下 PostgresQL);而对于大一点真的用得上 Angel 的企业,如阿里巴巴等,早就自主开发了自己的大数据处理平台。”</p> </blockquote> <p>因此,他总结 Angel 的发布是一个“很尴尬的时间和市场定位”。</p> <p style="text-align:center"><img alt="深度盘点国内四大机器学习开源平台:PaddlePaddle,Angel" src="https://simg.open-open.com/show/4ee159f1809b815ecf82024400a2e8cf.jpg" /></p> <p style="text-align:center">彭河森</p> <p>与百度 PaddlePaddle 相比,Angel 有一个很大的不同:它的服务对象是有大数据处理需求的企业,而不是个人开发者。可惜的是,由于 Angel 尚未正式开源,大数据、机器学习同行们无法对其进行一番评头论足。目前所有的信息都来自于鹅厂的官方宣传。关于 Angel 开放源代码后能在业界引发多大反响,请关注雷锋网后续报道。 </p> <p>最后,我们来看看蒋杰对 Angel 开源意义的官方总结:</p> <blockquote> <p>“机器学习作为人工智能的一个重要类别,正处于发展初期,开源 Angel,就是开放腾讯 18 年来的海量大数据处理经验和先进技术。我们连接一切连接的资源,激发更多创意,让这个好平台逐步转化成有价值的生态系统,让企业运营更有效、产品更智能、用户体验更好。”</p> </blockquote> <p>更多信息请看雷锋网整理的腾讯 Angel 发布会实录:<a href="/misc/goto?guid=4958997833150041859">腾讯大数据宣布开源第三代高性能计算平台 Angel </a>。</p> <p><strong>3. 阿里巴巴: 犹抱琵牌半遮面的 DTPAI</strong></p> <p style="text-align:center"><img alt="深度盘点国内四大机器学习开源平台:PaddlePaddle,Angel" src="https://simg.open-open.com/show/78578e1ec93986781cd98c4f622d6e52.jpg" /></p> <p>但凡说到平台,就不能不提阿里。</p> <p>与百度比起来,阿里的 AI 战略布局看上去更“务实”:主要是依托阿里云计算、贴近淘宝生态圈的一系列 AI 工具与服务,比如阿里小蜜。而基础研究起步较晚,相对百度和鹅厂也更低调。 2016 年阿里 AI 战略的大事件是 8 月 9 日的云栖大会,马云亲自站台发布了人工智能 ET,而它的前身是阿里“小 Ai ”。综合目前信息,阿里想要把 ET 打造成一个多用途 AI 平台:应用于语音、图像识别,城市计算(交通),企业云计算,“新制造”,医疗健康等等领域,让人不禁联想起 IBM Watson。用阿里的话来说,ET 将成为“全局智能”。</p> <p style="text-align:center"><img alt="深度盘点国内四大机器学习开源平台:PaddlePaddle,Angel" src="https://simg.open-open.com/show/a3c04ec0ab6c530c5ba3cf5d29f7c78b.jpg" /></p> <p>但是,在开源项目方面,阿里有什么布局(马云最喜欢用这样的词)?</p> <p>答案有惊喜也有失望。</p> <p>好消息是,阿里早在 2015 年就宣布了数据挖据平台 DTPAI (全称:Data technology,the Platform of AI,即数据技术—人工智能平台)。</p> <p>坏消息是,那之后就没动静了。</p> <p>当时,也就是 2015 年的八月,阿里宣布将为阿里云客户提供付费数据挖掘服务 DTPAI。当然,对它的发布免不了大谈特谈一通“生态”、“平台”——宣称 DTPAI 是“中国第一个人工智能平台”。格调定得相当高。</p> <p>它有什么特点?</p> <p>首先, DTPAI 将集成阿里巴巴核心算法库,包括特征工程、大规模机器学习、深度学习等等。其次,与百度、腾讯一样,阿里也很重视旗下产品的易用性。阿里 ODPS 和 iDST 产品经理韦啸表示,DTPAI 支持鼠标拖拽的编程可视化,也支持模型可视化;并且广泛与 MapReduce、Spark、DMLC、R 等开源技术对接。</p> <p>若仅仅如此,一个阿里云的付费数据挖据工具还不会出现在这篇文章中。雷锋网真正感兴趣的是:阿里表示 DTPAI “未来会提供通用的深度学习框架,它的算法库将在后期向社会开放”。</p> <p>嗯,有关 DTPAI 的信息到此为止。Seriously,2015 年之后它就再也没消息了。阿里云是耍猴还是在憋大招? 我们只有走着瞧。</p> <p><strong>4. 山世光:大陆学界硕果仅存的 SeetaFace</strong></p> <p style="text-align:center"><img alt="深度盘点国内四大机器学习开源平台:PaddlePaddle,Angel" src="https://simg.open-open.com/show/84d2ec0cb023dec4cd9d99d55227d769.jpg" /></p> <p>盘点了 BAT 的开源平台规划,再来看一个始于学界的项目。与国外 AI 学界百花齐放的现状不同,大多数人从未听说过始于国内学界的机器学习开源项目,这方面几乎是空白一片——说是“几乎”,因为有中科院计算所山世光老师带领开发的人脸识别引擎 SeetaFace 。</p> <p>山老师是我国 AI 界的学术大牛之一,2016 年下半年已经下海创业,创业后不久就公开了 SeetaFace。山老师的研究团队表示,开源 SeetaFace 是因为“该领域迄今尚无一套包括所有技术模块的、完全开源的基准人脸识别系统”。而 SeetaFace 将供学界和工业界免费使用,有望填补这一空白。</p> <p>SeetaFace 基于 C++,不依赖于任何第三方的库函数。作为一套全自动人脸识别系统,它集成了三个核心模块,即:人脸检测模块(SeetaFace Detection)、面部特征点定位模块(SeetaFace Alignment)以及人脸特征提取与比对模块 (SeetaFace Identification)。</p> <p>该系统用单个英特尔 i7 CPU 就可运行,成功降低了人脸识别的硬件门槛。它的开源,有望帮助大量有人脸识别任务需求的公司与实验室,在它们的产品服务中接入 SeetaFace,大幅减少开发成本。</p> <p>来自: <a href="/misc/goto?guid=4958997833277867803" id="link_source2">雷锋网</a></p>