02-02-深度学习框架-飞浆

02-02-深度学习框架-飞浆

近年来深度学习在很多机器学习领域都有着非常出色的表现,在图像识别、语音识别、自然语言处理、机器人、网络广告投放、医学自动诊断和金融等领域有着广泛应用。面对繁多的应用场景,深度学习框架有助于建模者节省大量而繁琐的外围工作,更聚焦业务场景和模型设计本身。

深度学习框架优势

使用深度学习框架完成模型构建有如下两个优势:

  1. 节省编写大量底层代码的精力:屏蔽底层实现,用户只需关注模型的逻辑结构。同时,深度学习工具简化了计算,降低了深度学习入门门槛。
  2. 省去了部署和适配环境的烦恼:具备灵活的移植性,可将代码部署到CPU/GPU/移动端上,选择具有分布式性能的深度学习工具会使模型训练更高效。

深度学习框架设计思路

深度学习框架的本质是框架自动实现建模过程中相对通用的模块,建模者只实现模型个性化的部分,这样可以在“节省投入”和“产出强大”之间达到一个平衡。我们想象一下:假设你是一个深度学习框架的创造者,你期望让框架实现哪些功能呢?

相信对神经网络模型有所了解的读者都会得出如 表1 所示的设计思路。在构建模型的过程中,每一步所需要完成的任务均可以拆分成个性化和通用化两个部分。

  • 个性化部分:往往是指定模型由哪些逻辑元素组合,由建模者完成。
  • 通用部分:聚焦这些元素的算法实现,由深度学习框架完成。

img

表1:深度学习框架设计示意图

无论是计算机视觉任务还是自然语言处理任务,使用的深度学习模型结构都是类似的,只是在每个环节指定的实现算法不同。因此,多数情况下,算法实现只是相对有限的一些选择,如常见的Loss函数不超过十种、常用的网络配置也就十几种、常用优化算法不超过五种等等。这些特性使得基于框架建模更像一个编写“模型配置”的过程。

飞桨开源深度学习平台全景

飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,是中国首个开源开放、技术领先、功能完备的产业级深度学习平台,包括飞桨开源平台和飞桨企业版。飞桨开源平台包含核心框架、基础模型库、端到端开发套件与工具组件,持续开源核心能力,为产业、学术、科研创新提供基础底座。飞桨企业版基于飞桨开源平台,针对企业级需求增强了相应特性,包含零门槛AI开发平台EasyDL和全功能AI开发平台BML。EasyDL主要面向中小企业,提供零门槛、预置丰富网络和模型、便捷高效的开发平台;BML是为大型企业提供的功能全面、可灵活定制和被深度集成的开发平台。

飞桨开源平台(以下简称“飞桨”)全景图如 图2 所示。

img

图2:飞桨全景图

概览图上半部分是从开发、训练到部署的全流程工具,下半部分是预训练模型、各领域的开发套件和模型库等模型资源。

框架和全流程工具

飞桨在提供用于模型研发的基础框架外,还推出了一系列的工具组件,来支持深度学习模型从训练到部署的全流程。

1. 模型训练组件

飞桨提供了分布式训练框架FleetAPI,还提供了开启云上任务提交工具PaddleCloud。同时,飞桨也支持多任务训练,可使用多任务学习框架PALM

2. 模型部署组件

飞桨针对不同硬件环境,提供了丰富的支持方案:

  • Paddle Inference:飞桨原生推理库,用于服务器端模型部署,支持Python、C、C++、Go等语言,将模型融入业务系统的首选。
  • Paddle Serving:飞桨服务化部署框架,用于云端服务化部署,可将模型作为单独的Web服务。
  • Paddle Lite:飞桨轻量化推理引擎,用于Mobile、IoT等场景的部署,有着广泛的硬件支持。
  • Paddle.js:使用JavaScript(Web)语言部署模型,用于在浏览器、小程序等环境快速部署模型。
  • PaddleSlim:模型压缩工具,获得更小体积的模型和更快的执行性能。
  • X2Paddle:飞桨模型转换工具,将其他框架模型转换成Paddle模型,转换格式后可以方便的使用上述5个工具。

3. 其他全研发流程的辅助工具

  • AutoDL:飞桨自动化深度学习工具,旨在自动网络结构设计,开源的AutoDL设计的图像分类网络在CIFAR10数据集正确率 达到 98%,效果优于目前已公开的10类人类专家设计的网络,居于业内领先位置。
  • VisualDL:飞桨可视化分析工具,以丰富的图表呈现训练参数变化趋势、模型结构、数据样本、高维数据分布、精度召回曲线等模型关键信息。帮助用户清晰直观地理解深度学习模型训练过程及模型结构,进而实现高效的模型调优、并将算法训练过程及结果分享。
  • PaddleFL:飞桨联邦学习框架,研究人员可以很轻松地用PaddleFL复制和比较不同的联邦学习算法,便捷地实现大规模分布式集群部署,并且提供丰富的横向和纵向联邦学习策略及其在计算机视觉、自然语言处理、推荐算法等领域的应用。此外,依靠着PaddlePaddle的大规模分布式训练和Kubernetes对训练任务的弹性调度能力,PaddleFL可以基于全栈开源软件轻松部署。

他山之石