查看原文
其他

能否挑战TensorFlow?3月国产开源深度学习框架集中爆发

伊红-美蓝 开源中国 2020-09-02

2016 年,百度发布深度学习开源框架 PaddlePaddle(飞桨);

2020 年 3 月,

华为开源自研全场景 AI 计算框架 MindSpore;

旷视开源深度学习框架 MegEngine(天元);

清华大学发布基于元算子和动态编译的深度学习框架 Jittor(计图) ;

……

2016 年百度推出深度学习开源框架 PaddlePaddle,此后长时间内,似乎没有出现一款让人惊艳的同量级与同类型的国产开源框架。然而,今年 3 月份,突然的爆发打破了宁静——华为、旷视与清华大学在今年 3 月相继开源各自研发的深度学习框架,吸引了众多国内外开发者的关注——深度学习开源框架这把火在开源大浪潮的今天要在国内燎原了。 

深度学习框架对人工智能的发展来说意义重大。要知道,AI 开发者不能每开发一个功能就从最底层重新来过,所以想要进行算法训练、模型开发、应用部署,就必须在一定的开发平台上来完成。从前,主流的深度学习框架都由国外机构或公司研发,从最开始蒙特利尔大学与伯克利大学推出的 Theano、Caffe 框架,到现在谷歌维护的 TensorFlow、Facebook 推出的 PyTorch,人工智能产业在前人的积累上得以快速发展。

当前 TensorFlow 与 PyTorch 仍然占据着该领域的制高点,而 3 月份国内的几大框架齐发让我们看到了国产框架的崛起。趁着这一难得的机会,我们在这里分享一下相关项目,以及它们的背景与现状,希望大家对该领域有一些基础了解。

Theano

作为深度学习框架的祖师爷,Theano 的诞生为人类叩开了新时代人工智能的大门。Theano 的开发始于 2007 年的蒙特利尔大学,早期雏形由两位传奇人物 Yoshua Bengio 和 Ian Goodfellow 共同打造,并于开源社区中逐渐壮大。

Theano 基于 Python,是一个擅长处理多维数组的库,十分适合与其它深度学习库结合起来进行数据探索。它设计的初衷是为了执行深度学习中大规模神经网络算法的运算。其实,Theano 可以被更好地理解为一个数学表达式的编译器:用符号式语言定义你想要的结果,该框架会对你的程序进行编译,在 GPU 或 CPU 中高效运行。

    Theano 的出现为人工智能在新时代的发展打下了强大的基础,在过去的很长一段时间内,Theano 都是深度学习开发与研究的行业标准。往后也有大量基于 Theano 的开源深度学习库被开发出来,包括 Keras、Lasagne 和 Blocks,甚至后来火遍全球的 TensorFlow 也有很多与 Theano 类似的功能。

    随着更多优秀的深度学习开源框架陆续涌现,Theano 逐渐淡出了人们的视野。2013 年,Theano 创始者之一 Ian Goodfellow 加入 Google 开发 TensorFlow,标志着 Theano 正式退出历史舞台。目前仅有部分研究领域的学者会使用 Theano 进行一些学术研究。 

    Caffe

    另一个元老级的深度学习开源框架同样来自高校,它就是 2013 年诞生于加州大学伯克利分校的 Caffe。Caffe 的创始者想必很多人都知道,就是去年加盟阿里任技术副总的 AI 界华人之光贾扬清。很多人以为 Caffe 是开发者凭兴趣取的名字,但它其实是 Convolutional Architecture for Fast Feature Embedding,即“快速特征嵌入的卷积结构”的缩写(意外地简单粗暴),它咖啡形状的图标非常经典。

    Caffe 是一个卷积神经网络框架,把 Matlab 执行快速卷积网络的方式带到 C 和 C++,同时带有Python 接口。Caffe 在 AI 界非常知名,项目在 GitHub 上有高达 30.1k 的 star 数。Caffe 在诞生之后被许多大型科技公司采用,曾广泛应用于学术研究、初创原型、视觉、语音、多媒体、大规模工业部署等项目领域。雅虎还将 Caffe 与 Apache Spark 集成在一起,创建了一个分布式深度学习框架 CaffeOnSpark。2017 年 4 月,Facebook 发布 Caffe2,加入了递归神经网络等新功能。2018 年 3 月底,Facebook 将 Caffe2 并入 PyTorch,一度引起轰动。

    诞生于高校的 Theano 与 Caffe 是早期人工智能领域最具代表性的两大深度学习开源框架,二者在人工智能发展史上都留下了浓墨重彩的一笔。此后人工智能的发展重心逐渐向大型科技公司转移(其实是这些大佬们纷纷毕业进了大公司),更多优秀的企业级开源框架被开发出来,并取而代之地成为业内主流框架(TensorFlow 与 PyTorch)。值得一提的是,Theano 与 Caffe 的创始人(Ian Goodfellow 和贾扬清)都曾先后加盟 Google,与其他 AI 专家联手打造了如今世界上最为火热的深度学习开源框架 —— TensorFlow。  


    TensorFlow 

    TensorFlow 是 Google 于 2015 年开源的深度学习框架。TensorFlow 前身是谷歌的神经网络算法库 DistBelief,由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护,拥有包括 TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud 在内的多个项目以及各类应用程序接口。TensorFlow 让用户可以快速设计深度学习网络,将底层细节进行抽象,而不用耗费大量时间编写底层 CUDA 或 C++ 代码。TensorFlow 在很多方面拥有优异的表现,比如设计神经网络结构的代码的简洁度,分布式深度学习算法的执行效率,还有部署的便利性(能够全面地支持各种硬件和操作系统)。

    PyTorch

    另一个最为火热的深度学习开源框架就是由 Facebook 推出的 PyTorch。PyTorch 的前身是 Torch,其底层和 Torch 框架一样,但是使用 Python 重新写了很多内容,不仅更加灵活,支持动态图,而且提供了 Python 接口。PyTorch 不仅能够实现强大的 GPU 加速,同时还支持动态神经网络。

    作为目前全球范围内最火热的两大深度学习开源框架(业内使用者占比近 90%),TensorFlow 与 PyTorch 之间的竞争也成为了业内的热门话题。目前在 GitHub 上 TensorFlow 的 Star 数量高达 143k,而 PyTorch 则为 37.3k。

    由于 TensorFlow 在 CPU 上的矩阵运算库使用了 Eigen 而不是 BLAS 库,使其能够基于 ARM 架构编译和优化,因此在移动设备(Android 和 iOS)上表现得也很好,这让 TensorFlow 能够在前期力压众多其它框架成为工业、商用领域最受欢迎的深度学习开源框架。

    PyTorch 的特点则与 Numpy 类似,非常具有 Python 风格,可以轻松地与其他 Python 生态系统集成,同时还拥有很棒的 API。据说与 TensorFlow 的 API 相比,大多数研究人员更喜欢 PyTorch 的 API,甚至还有传闻说 PyTorch 的速度快于 TensorFlow 。这使得 PyTorch 在科研人员中比 TensorFlow 更受欢迎。它的缺点则是前期缺乏对移动端的支持,因此在商用领域的普及度不及 TensorFlow 。而在 2019 年,Facebook 推出 PyTorch Mobile 框架,弥补了 PyTorch 在移动端的不足,使得其在商用领域的发展有望赶超 TensorFlow 。

    当 TensorFlow 与 PyTorch “激斗正酣”时,国内的人工智能研究也逐渐崛起。2016 年,百度推出深度学习平台 PaddlePaddle ,成为第一个开源自研深度学习框架的中国厂商,此后又有一批优秀的国产深度学习开源框架陆续发布,打破了国外对这一领域的统治局面。 

    PaddlePaddle(飞桨)

    PaddlePaddle 的前身是百度于 2013 年自主研发的深度学习平台 Paddle,且一直为百度内部工程师研发使用。PaddlePaddle 在深度学习框架方面,覆盖了搜索、图像识别、语音语义识别理解、情感分析、机器翻译、用户画像推荐等多领域的业务和技术。在 2016 年 9 月 1 日举行的百度世界大会上,前百度首席科学家 Andrew Ng(吴恩达)首次宣布将百度深度学习平台对外开放,命名 PaddlePaddle,中文译名“飞桨”。

    目前,PaddlePaddle 已实现 CPU/GPU 单机和分布式模式,同时支持海量数据训练、数百台机器并行运算,以应对大规模的数据训练。此外,PaddlePaddle 具备高质量 GPU 代码,提供了Neural Machine Translation、推荐、图像分类、情感分析、Semantic Role Labelling 等 5 个 Task,每个 Task 都可迅速上手,且大部分任务可直接套用。

    2019 年,百度还推出了多平台高性能深度学习引擎 Paddle Lite(Paddle Mobile 的升级版),为 PaddlePaddle 生态完善了移动端的支持。

    讲完了 4 年前开源的 PaddlePaddle(国内第一个开源的深度学习框架),接下来看看最近突然引起热议的几个开源框架。它们都在近期宣布开源,甚至还有最近几天才刚刚开源的。

    MindSpore

    MindSpore 就是上周末宣布开源的一个全场景 AI 计算框架,出自华为。早在去年 8 月,华为发布自研 AI 芯片昇腾的同时就发布了 MindSpore,它的特性是可以显著减少训练时间和成本(开发态)、以较少的资源和最高能效比运行(运行态),同时适应包括端、边缘与云的全场景(部署态),强调了软硬件协调及全场景部署的能力。

    MegEngine (天元)

    近期宣布开源的还有 MegEngine ,出自旷视,这是旷视 AI 算法平台 Brain++ 的核心组件,负责 AI 三要素(算法,算力,数据)中的“算法”。该框架主要用于旷视内部进行计算机视觉领域的算法开发工作,包括大规模的图像检测、分割、识别任务等,具有训练推理一体、动静结合、兼容并包、灵活高效等特点。

    MegEngine 的诞生还有一个有趣的小插曲。据说 2015 年旷视正在热火朝天地搞自研框架的时候,Google 正好在 11 月发布了 TensorFlow 并将其开源,结果发现后者在接口、理念等设计思路上与 MegEngine 不谋而合,这也让旷视的工程师们哭笑不得。当时旷视内部就开始犹豫是否还要继续自研框架,在研究了一番 TensorFlow 后还是决定继续做了(因为当时开源的 TensorFlow 性能并不理想)。这才诞生了这个据说目前在主流计算机视觉模型训练中表现领先的国产框架。

    Jittor(计图)

    Jittor 出自清华大学,是国内第一个由高校开源的深度学习框架,同时也是继 Theano、Caffe 之后,又一个由高校主导的框架。

    Jittor 前端语言为 Python,使用了模块化的设计,类似于 PyTorch、Keras;后端则使用高性能语言编写,如 CUDA、C++。Jittor 是一个完全基于动态编译(Just-in-time)、内部使用创新的元算子和统一计算图的深度学习框架。元算子和 Numpy 一样易于使用,而统一计算图则是融合了静态计算图和动态计算图的诸多优点,在易于使用的同时,提供高性能的优化。基于元算子开发的深度学习模型,可以被计图实时地自动优化并且运行在指定的硬件上,如 CPU、GPU。

    2020 年对国内人工智能产业发展来说注定是不平凡的一年。从 2016 年的百度“飞桨”横空出世,再到如今的国产深度学习开源框架百花齐放,国内的开源深度学习框架经历了从无到有,再到多元化发展的过程,同时也见证了中国科研力量的崛起与开源生态的发展。期待在未来,这些国产项目的开源社区能够蓬勃发展,在广大开发者的共同努力下,让国产深度学习框架享誉全球。


    推荐阅读

    Django采用新的项目治理模型

    开源:从“复兴”走向“商业化”

    苹果招兵买马,或在开源领域有大动作?

    Eclipse Theia 1.0发布,VS Code真正的开源替代方案

    Linus谈居家办公:不要在家中重新搞一个办公室

      您可能也对以下帖子感兴趣

      文章有问题?点此查看未经处理的缓存