百度PaddlePaddle入门-3(框架)
深度学习在很多机器学习领域均有非常出色的表现,在图像识别、语音识别、自然语言处理、机器人、网络广告投放、医学自动诊断和金融等各大领域有着广泛的应用。面对繁多的应用场景,深度学习框架可以节省大量而繁琐的外围工作,使建模者关注业务场景和模型设计本身。
使用深度学习框架完成建模任务有两个显著优势。
- 节省大量编写底层代码的精力:屏蔽底层实现,用户只需关注模型的逻辑结构,降低了深度学习入门门槛。
- 省去了部署和适配环境的烦恼:飞桨框架具备灵活的移植性,可将代码部署到CPU/GPU/移动端上,选择具有分布式性能的深度学习工具会使模型训练更高效,预测端也针对大量的硬件进行了适配和优化工作。
在实现建模的过程中,每一步所需要完成的任务均可以拆分成个性化的部分和通用化的部分。个性的往往是指定模型由哪些逻辑元素组合,而通用的部分则是这些元素的算法实现。无论是计算机视觉任务还是自然语言处理任务,使用的深度学习模型结构均是类似的,只是在每个环节指定的实现算法不同。多数情况下,这些实现只是相对有限的一些选择,比如常见的Loss函数不超过十种,常用的网络配置也就十几种,常用优化算法不超过五种等等。这些特性使得基于框架建模更像一个编写“模型配置”的过程。
飞桨(PaddlePaddle)不仅包含深度学习框架,还提供了一整套紧密关联、灵活组合的工具组件和服务平台,助力深度学习技术的应用落地。飞桨框架除了支持用户编写深度学习模型外,还对于自然语言处理、计算机视觉、语音和推荐有大量的预训练模型,可以通过PaddleHub工具直接使用。此外,飞桨基于核心框架提供了支持可视化界面建模的EasyDL和教育培训平台AI studio等,对不同层次的用户提供了多样化的配套服务。
与其它框架和平台相比,使用飞桨有五个方面的优势。
- 支持两种业界流行的编程方案:更容易调试的动态图和训练速度更快的静态图。
- 大量的官方模型库:多数任务可以在官方模型的基础上少许修改,即可上线应用。
- 大规模分布式训练:基于百度每日上亿用户使用的应用场景打磨,天然具备大规模工业实践能力。
- 端到端部署:速度全面领先的推理引擎,适配多种类硬件芯片,尤其是国产芯片。
- 唯一提供系统化深度学习技术服务的平台:为用户和企业提供7*24小时服务,高效解决各种使用难题。
以其中的模型库为例,大量工业实践任务并不是从头编写,而是在相对标准化的模型上进行微调和优化。飞桨框架已经提供了主流深度学习任务的模型实现(如下图),并且在多数模型的效果上达到业界领先。如下表所示,飞桨的自然语言处理模型库ERNIE在自然语言推断、语义匹配、命名实体识别、情感分析和检索式问答等任务上全面领先竞品。
飞桨在自然语言处理、计算机视觉和推荐领域的模型库
随着深度学习技术在更行业的应用落地,多种多样的应用场景存在多种多样的硬件设备。训练好的模型需要能够嵌入到各类型的硬件芯片中,大到在机房中存放的服务器,小到摄像头中芯片。在中美贸易战时隐时现的情况下,训练框架对国产芯片的支持尤其重要。国产化的飞桨框架走在这方面的前列,提供了专门的预测端部署工具 Paddle lite。
既然飞桨如此强大,我们没必要从头到尾编写深度学习模型的完整实现,基于飞桨可以更高效的完成建模。在进入实践之前,首先需要在服务器或个人电脑上安装飞桨。在飞桨官网上访问快速安装说明的页面(https://www.paddlepaddle.org.cn/install/quick)。
整个页面分为两个部分,上部分是用户选择其安装环境的配置,比如笔者选择在笔记本电脑上安装飞桨,那么点选(windows系统+pip+Python3+CPU版本)的配置组合。其中,windows系统和CPU版本是个人笔记本电脑的软硬件配置,Python3是需要事先安装好的Python版本(Python有2和3两个主流版本,两者的API接口不兼容),pip是命令行安装的指令。
在点选好安装的配置条件后,页面的下方会出现该配置下的安装方式和步骤。按照该说明一步步执行即可安装成功。