飞桨开源框架2.0四大亮点抢先看: 全新升级的API体系,成熟完备的动态图模式

5月20日的“WAVE SUMMIT”峰会上,飞桨开源框架发布了1.8版本(www.ngjd.com.cn)。如今飞桨即将进入了2.0时代。飞桨2.0的四大创新带来体验变革,助力 AI 产业应用和科研创新再次升级!

1. 全新升级的 API 体系,让深度学习技术的创新和应用更简单

深度学习框架可以说是开发者们在人工智能的海洋中乘风破浪的动力引擎,而 API 就是这个引擎的控制面板上的按钮。因此,API 是深度学习框架威力发挥的直接入口,对开发者使用体验起着至关重要的作用,飞桨一直以来对 API 设计以及整体 API 体系的完善给予足够重视,持续完善优化。飞桨开源框架2.0对 API 体系进行了全新升级,让开发者们可以在使用飞桨研发探索的过程中体验到随心所欲、畅通无阻的愉悦感觉。

  • 体系化:基于长期的产业实践积累与用户使用习惯的洞察,飞桨重新梳理和优化了 API 的体系结构,使其更加清晰、科学,让广大开发者可以更容易地根据开发使用场景找到想要的 API 。此外可以通过 class 和 functional 两种形式的 API 来模块化的组织代码和搭建网络,提高开发效率。同时, API 的丰富度有了极大的提升,共计 新增 API 217个,优化修改 API 195个 。

经过实际验证,开发者使用全新体系的 API 可以高效复现最前沿的论文中的算法,开发体验进一步提升。

  • 简洁化:提供更适合低代码编程的高层 API。像数据增强、建立数据流水线等可以标准化的工作流程,以及一些经典的网络模型结构。在飞桨开源框架2.0中,都被封装成了高层 API ,开发者只需10行代码就可以编写完成训练部分的程序。

最为重要的是,与它框架相比,飞桨高层 API 和基础 API 并不是相互独立的两个体系,二者完全可以灵活地交叉使用,这一特点称为“高低融合”。对于希望高效完成代码开发的开发者,仅需要使用高层 API;而对于想要在高效的开发过程中做定制化调整的开发者,可以将高层 API 和基础 API 混合使用,从而满足差异化的需求。

此外,新版本的 API 完全兼容历史版本,给开发者提供了宽裕的升级缓冲期。但建议开发者在使用飞桨开源框架2.0及之后版本时,使用全新的 API,以便在飞桨的不断优化改进中受益。

2. 成熟完备的动态图模式,带来最佳编码体验

经过长时间的打磨与技术积累,飞桨的命令式编程模式,也就是大家常说的动态图模式已趋于成熟。此次升级,飞桨将默认的开发模式升级为动态图模式,支持用户使用动态图模式完成视觉、文本、推荐、语音、强化学习等全类别的模型算法开发。

动态图可以为开发者带来最佳的用户体验,可以帮助开发者随时查看变量的输入、输出,方便快捷的调试程序;可以使用 Python 原生的控制流(如:if,for等)灵活组网。在一些复杂开发场景诸如构建权重共享网络或尝试更加新颖的网络结构时都会更加便捷。

但是动态图的模型在使用 C++ 部署时会面临巨大的挑战,这主要是因为 Python 程序原生的控制逻辑保存成静态网络结构比较困难。鱼和熊掌真的不可以兼得吗?这个真的可以有!

飞桨开源框架2.0完美地实现了动静统一,提供了全面完备的动转静支持,在 Python 语法支持覆盖度上达到领先水平。开发者使用飞桨可以到达动态图编程调试,自动转静态图训练部署的“理想国度”。

动静转换的操作也非常简单,仅需添加一个装饰器(to_static),框架就会自动将动态图的程序,转换为静态图的 program,并使用该 program 训练并可保存静态模型以实现推理部署。同时飞桨还做到了模型存储和加载的兼容统一,保证动转静之后保存的模型文件能够被纯动态图加载和使用。

此次升级后,飞桨动态图支持的模型数量达到了100+,涵盖计算机视觉,自然语言处理,推荐等多个领域,并且动态图整体的训练和部署的效率都有提升。新版本的动态图支持了自动混合精度和量化训练功能,实现了比静态图更简洁灵活的混合精度训练接口,达到媲美静态图的混合精度和量化训练效果。无论从功能还是性能角度,飞桨的动态图在国产深度学习框架中都处于领先地位

3. 更强大的分布式训练能力,易用性与灵活性双发力

分布式训练技术是应对大规模深度学习模型训练最有效的方法,同时也是飞桨的核心技术之一。在新版本中,飞桨从易用性和技术突破两个维度,进一步提升了分布式训练能力。

统一的分布式训练 Fleet API。在全新的API体系下,分布式训练的 API 也有较大的调整。飞桨将用户常用的通信策略和启动方式等操作,以及原先分散各处的分布式优化策略相关的API统一归纳到 paddle.distributed.fleet 之下,形成了 Fleet API。

开发者可以通过统一的策略配置,实现多种并行模式和加速策略,并且可以通过一行代码启动自动混合精度、多机优化算法或通信优化策略等功能,开发过程更加灵活、便捷,同时也兼容支持动态图模式

而对于一些 AI 科研人员,如果希望可以灵活的完成一些高级开发工作,则可以使用 paddle.distributed.下的其它 API。这些 API 主要包含了通信的基础操作和启动方式等操作,如 broadcast 等集合通信算子和 send/recv 操作,以及 spawn 方式动态图多卡简易启动等。

此外,分布式训练自动化能力也得到了进一步提升。由于优化策略的数量较多,为了让用户更加方便的使用这些令人眼花缭乱的优化策略,飞桨提供了自动并行功能,仅需要一行配置就可以自动组合出较优并行优化策略,为开发者带来了更好的使用体验。

推出异构参数服务器训练架构。该训练架构一举解除了传统参数服务器必须严格使用同一种硬件型号 Trainer 节点的枷锁,使训练任务对硬件型号不敏感,即可以同时使用不同型号的硬件高效组合进行训练,如 CPU、v100、P40、K40、昆仑芯片等。

  • 同时还可以解决搜索推荐领域大规模稀疏特征模型训练场景下, IO 占比过高导致的芯片资源利用率过低的问题

  • 通过异构参数服务器架构,用户可以在硬件异构集群中部署分布式训练任务,例如云服务器集群,实现对不同算力的芯片高效利用,为用户提供更高吞吐,更低资源消耗的训练能力

发布分布式训练扩展工具包 FleetX。FleetX 基于飞桨原生提供的分布式训练能力,提供了面向不同的模型的最佳分布式训练实践,在保证收敛效果的前提下最大化用户的集群使用效率。此外, FleetX 将分布式训练场景下数据集读取、标准公开数据集和常用模型实现了接口封装,使用户可以实现一键式部署分布式训练任务,大大提升了易用性,欢迎广大开发者体验!

4. 硬件生态 “芯芯向荣”,软硬一体深度优化

作为技术领先、功能完备的深度学习平台,飞桨对于人工智能硬件做了全面且深度的适配。

在训练端,飞桨一直与 Intel 和 NVIDIA 有着深入紧密的合作,能够完整支持全系列的 Intel CPU 和NVIDIA GPU。在推理端,飞桨依托原生推理库 Paddle Inference 和轻量化推理引擎 Paddle Lite,实现了对服务器、移动端和边缘端全场景多种硬件的全面支持。

升级后的飞桨在硬件生态方面又做了进一步的拓展。CPU 方面更好地支持了飞腾( FT1500/200 )和华为鲲鹏,并新增了百度昆仑和曙光公司的海光 DCU 支持;支持的操作系统包括麒麟、统信和普华。此外,对于华为昇腾310、 MTK NeuroPilot APU 等硬件飞桨也在持续适配和优化。

当前,飞桨已经实现了完备的芯片支持,对国产硬件支持的全面性居于业界首位。截至2020年9月,飞桨已经与共计19家厂商的27种芯片/ IP 完成了适配或者处于适配过程中,引领深度学习软硬一体深度融合优化。

以上就是飞桨2.0的几个重要“进化”点,在未来,飞桨还将会不断演进升级,提升开发者的使用体验,让飞桨在深度学习开发过程中成为广大开发者们身体的一部分。

如在使用过程中有问题

可加入飞桨官方 QQ 群进行交流:1108045677。

如果您想详细了解更多飞桨的相关内容,请参阅以下文档。

飞桨开源框架项目地址:

GitHub:

https://github.com/PaddlePaddle/Paddle

Gitee:

https://Gitee.com/PaddlePaddle/Paddle

飞桨官网地址:

https://www.paddlepaddle.org.cn/

飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,是中国首个开源开放、技术领先、功能完备的产业级深度学习平台,包括飞桨开源平台和飞桨企业版。

飞桨开源平台包含核心框架、基础模型库、端到端开发套件与工具组件,持续开源核心能力,为产业、学术、科研创新提供基础底座。飞桨企业版基于飞桨开源平台,针对企业级需求增强了相应特性,包含零门槛 AI 开发平台 EasyDL 和全功能 AI 开发平台 BML。

  • EasyDL 主要面向中小企业,提供零门槛、预置丰富网络和模型、便捷高效的开发平台;

  • BML 是为大型企业提供的功能全面、可灵活定制和被深度集成的开发平台。

微信号 : PaddleOpenSource

主营产品: 高压模块电源,高压电源