2016 年 9 月 1 日的百度世界大会上,百度首席科学家吴恩达宣布,该公司开发的异构分布式深度学习系统 PaddlePaddle 将对外开放。这标志着国内第一个机器学习开源平台的诞生。
PaddlePaddle 的开发与应用已经有段时日:它源自于 2013 年百度深度学习实验室创建的 “Paddle”。当时的深度学习框架大多只支持单 GPU 运算,对于百度这样需要对大规模数据进行处理的机构,这显然远远不够,极大拖慢了研究速度。百度急需一种能够支持多 GPU、多台机器并行计算的深度学习平台。而这就导致了 Paddle 的诞生。自 2013 年以来,Paddle 一直被百度内部的研发工程师们所使用。
从 “Paddle” 到 “PaddlePaddle” 的命名还有一个小插曲:Paddle 是“Parallel Distributed Deep Learning”的缩写,意为“并行分布式深度学习”。而去年 9 月发布时,吴恩达认为 “PaddlePaddle” (英语意为划船——“让我们荡起双~昂~桨,小船儿推开波浪。。。”)其实更郎朗上口、更好记,于是就有了这么个可爱的名字。
PaddlePaddle 有什么特点?
支持多种深度学习模型 DNN(深度神经网络)、CNN(卷积神经网络)、 RNN(递归神经网络),以及 NTM 这样的复杂记忆模型。
基于 Spark,与它的整合程度很高。
支持 Python 和 C++ 语言。
支持分布式计算。作为它的设计初衷,这使得 PaddlePaddle 能在多 GPU,多台机器上进行并行计算。
相比现有深度学习框架,PaddlePaddle 对开发者来说有什么优势?
首先,是易用性。
相比偏底层的谷歌 TensorFlow,PaddlePaddle 的特点非常明显:它能让开发者聚焦于构建深度学习模型的高层部分。项目负责人徐伟介绍:
“在 PaddlePaddle 的帮助下,深度学习模型的设计如同编写伪代码一样容易,设计师只需关注模型的高层结构,而无需担心任何琐碎的底层问题。未来,程序员可以快速应用深度学习模型来解决医疗、金融等实际问题,让人工智能发挥出最大作用。”
抛开底层编码,使得 TensorFlow 里需要数行代码来实现的功能,可能在 PaddlePaddle 里只需要一两行。徐伟表示,用 PaddlePaddle 编写的机器翻译程序只需要“其他”深度学习工具四分之一的代码。这显然考虑到该领域广大的初入门新手,为他们降低开发机器学习模型的门槛。这带来的直接好处是,开发者使用 PaddlePaddle 更容易上手。
其次,是更快的速度。
如上所说,PaddlePaddle 上的代码更简洁,用它来开发模型显然能为开发者省去一些时间。这使得 PaddlePaddle 很适合于工业应用,尤其是需要快速开发的场景。
另外,自诞生之日起,它就专注于充分利用 GPU 集群的性能,为分布式环境的并行计算进行加速。这使得在 PebblePebble 上,用大规模数据进行 AI 训练和推理可能要比 TensorFlow 这样的平台要快很多。
业内对 PaddlePaddle 怎么看?
首先不得不提的是 Caffe,许多资深开发者认为 PaddlePaddle 的设计理念与 Caffe 十分相似,怀疑是百度对标 Caffe 开发出的替代品。这有点类似于谷歌 TensorFlow 与 Thano 之间的替代关系。
知乎上,Caffe 的创始人贾杨清对 PaddlePaddle 评价道:
"很高质量的 GPU 代码"
"非常好的 RNN 设计"
"设计很干净,没有太多的 abstraction,这一点比 TensorFlow 好很多"
"设计思路有点老"
"整体的设计感觉和 Caffe ‘心有灵犀’,同时解决了 Caffe 早期设计当中的一些问题”
最后,贾表示 PaddlePaddle 的整体架构功底很深,是下了功夫的。这方面,倒是赢得了开发者的普遍认同。
总结起来,业内对 PaddlePaddle 的总体评价是“设计干净、简洁,稳定,速度较快,显存占用较小”。
但是,具有这些优点,不保证 PaddlePaddle 就一定能在群雄割据的机器学习开源世界占有一席之地。有国外开发者表示, PaddlePaddle 的最大优点是快。但是,比 TensorFlow 快的开源框架其实有很多:比如 MXNet,Nervana System 的 Neon,以及三星的 Veles,它们也都对分布式计算都很好的支持,但都不如 TensorFlow 普及程度高。这其中有 TensorFlow 庞大用户基础的原因,也得益于谷歌自家 AI 系统的加持。