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 评价道:

  1. "很高质量的 GPU 代码"

  2. "非常好的 RNN 设计"

  3. "设计很干净,没有太多的 abstraction,这一点比 TensorFlow 好很多"

  4. "设计思路有点老"

  5. "整体的设计感觉和 Caffe ‘心有灵犀’,同时解决了 Caffe 早期设计当中的一些问题”

  最后,贾表示 PaddlePaddle 的整体架构功底很深,是下了功夫的。这方面,倒是赢得了开发者的普遍认同。

  总结起来,业内对 PaddlePaddle 的总体评价是“设计干净、简洁,稳定,速度较快,显存占用较小”。

  但是,具有这些优点,不保证 PaddlePaddle 就一定能在群雄割据的机器学习开源世界占有一席之地。有国外开发者表示, PaddlePaddle 的最大优点是快。但是,比 TensorFlow 快的开源框架其实有很多:比如 MXNet,Nervana System 的 Neon,以及三星的 Veles,它们也都对分布式计算都很好的支持,但都不如 TensorFlow 普及程度高。这其中有 TensorFlow 庞大用户基础的原因,也得益于谷歌自家 AI 系统的加持。

results matching ""

    No results matching ""