百度 PaddlePaddle
在和几款最常用的深度学习框架TensorFlow、Torch、Caffe比较之前,我们先重点介绍新出现的PaddlePaddle。
Paddle其实已经有多年历史了。早在 2013
年,百度就察觉到传统的基于单GPU的训练平台,已经无法满足深度神经网络在搜索、广告、文本、语音、图像等领域的训练需求,于是在徐伟的带领下开始搭建Paddle——一个多机并行的CPU/GPU混布的异构计算平台。Paddle从最早的开发到如今的开源,就一直以大规模数据处理和工业化的要求不断改进。我们可以看到PaddlePaddle有很多优异的特性。
Github上介绍,PaddlePaddle有以下特点:
· 灵活
PaddlePaddle支持大量的神经网络架构和优化算法,支持任意复杂RNNs结构,高效处理batch,无需数据填充。简单书写配置文件即可实现复杂模型,比如拥有注意力(Attention)机制、外围记忆层(External
Memory)或者用于神经机器翻译模型的深度时序快进网络。
· 高效
为了利用异构计算资源的能力,PaddlePaddle中的每一级都会进行优化,其中包括计算、内存、架构和通信。以下是几个例子:
1.使用SSE/AVX内联函数、BLAS数据库(例如MKL、ATLAS、cuBLAS)和定制化的CPU/GPU Kernal来优化数学运算。
2.高度优化RNNs网络,在没有Padding的情况下,也能处理不同长度的序列。
3.优化的本地和分布式训练,同时支持高纬稀疏模型。
· 可扩展
有了PaddlePaddle,使用多个CPU和GPU以及机器来加速训练可以变得很轻松。 PaddlePaddle能通过优化通信,获得高吞吐量和性能。
· 与产品的连接
PaddlePaddle的部署也很简单。在百度,PaddlePaddle已经被用于产品和服务中,拥有大量用户。应用场景包括预估外卖的出餐时间、预判网盘故障时间点、精准推荐用户所需信息、海量图像识别分类、字符识别(OCR)、病毒和垃圾信息检测、机器翻译和自动驾驶等等。
在PaddlePaddle简单、可扩展的逻辑下,徐伟评价说:“这将使工程师们能够快速、轻松地将深度学习技术应用到他们的产品当中,我们想让更多的人使用人工智能,人工智能对于我们的未来生活是非常重要的。”