在人工智能时代,深度学习框架下接芯片,上承各种应用,是“智能时代的操作系统”。近期,我国首个自主研发、功能完备、开源开放的产业级深度学习框架飞桨发布了2.0正式版,实现了一次跨时代的升级。
这次2.0版本的发布对于飞桨来说,可以说是一次“基础设施”的全面更新换代!生活中,我们看到过很多基础设施建设工程,例如西电东送、南水北调、高铁建设等等,这些在保证生产生活设施正常运行、推动整个社会的经济发展和人们生活水平改善的过程中,以一种 “润物细无声”的形式扮演着关键基础性角色!此次飞桨升级就是以这样方式悄然为整个产业及生态的发展繁荣奠定基础、积蓄能量、增添后劲!下面将为广大开发者详细介绍飞桨都做了哪些“基础设施”级别的关键工程。
使用飞桨框架2.0更高效地开发AI模型
成熟完备的动态图模式
此次升级,飞桨将默认的开发模式升级为命令式编程模式,即大家常说的动态图。飞桨框架2.0支持用户使用动态图完成深度学习相关领域全类别的模型算法开发。动态图模式下可以让开发者随时查看变量的输入、输出,方便快捷的调试程序, 带来最佳的开发体验。为了解决动态图的部署问题,飞桨提供了全面完备的动转静支持,在Python语法支持覆盖度上达到领先水平。开发者在动态图编程调试的过程中,仅需添加一个装饰器,即可无缝平滑地自动实现静态图训练或模型保存。同时飞桨框架2.0还做到了模型存储和加载的接口统一,保证动转静之后保存的模型文件能够被纯动态图加载和使用。
在飞桨框架2.0版本上,官方支持的动态图算法数量达到了200+,涵盖计算机视觉、自然语言处理、语音、推荐等多个领域,并且在动态图的训练效率和部署效率方面都有所提升。2.0版本的动态图支持了自动混合精度和量化训练功能,实现了比静态图更简洁灵活的混合精度训练接口,达到媲美静态图的混合精度和量化训练效果。无论从功能还是性能角度,飞桨的动态图在国产深度学习框架中都处于领先地位!
同时,为了推进各个主流场景的产业级应用,飞桨的系列开发套件也随飞桨框架2.0完成了升级,全面支持动态图开发模式。从开发、训练到预测部署提供优质体验。如视觉领域的图像分割套件PaddleSeg,随飞桨框架2.0升级后,涵盖了高精度和轻量级等不同特点的大量高质量分割模型,采用模块化的设计,提供了配置驱动和API调用两种应用方式,帮助开发者更便捷地完成全流程图像分割应用;又如自然语言处理领域的PaddleNLP,与飞桨框架2.0深度适配,拥有覆盖多场景的网络模型、简洁易用的全流程API,以及动静统一的高性能分布式训练能力,非常便于二次开发,大大提升建模效率。具体可以参见下面链接中的项目示例。
飞桨框架2.0动态图模型:
https://github.com/PaddlePaddle/models/tree/develop/dygraph
全新PaddleSeg项目应用实例:
https://aistudio.baidu.com/aistudio/projectdetail/1339458
全新PaddleNLP项目应用示例:
https://aistudio.baidu.com/aistudio/projectdetail/1329361
API体系全新升级
API是用户使用深度学习框架的直接入口,对开发者使用体验起着至关重要的作用,飞桨一直以来对API设计以及整体API体系的完善给予高度重视。飞桨框架2.0对 API体系进行了全新升级,让开发者们在使用飞桨研发的过程中可以体验到随心所欲、畅通无阻的愉悦感觉。
- 体系化: 基于长期的产业实践积累与用户使用习惯的洞察,飞桨重新梳理和优化了API的体系结构,使其更加清晰、科学,让广大开发者可以更容易地根据开发使用场景找到想要的API。此外可以通过class和functional两种形式的API来模块化的组织代码和搭建网络,提高开发效率。同时,API的丰富度有了极大的提升,共计新增API 217个,优化修改API 195个。
- 简洁化:提供更适合低代码编程的高层API。像数据增强、建立数据流水线、循环批量训练等可以标准化的工作流程,以及一些经典的网络模型结构,在飞桨框架2.0中,都被封装成了高层API。基于飞桨高层API,开发者只需10行左右代码就可以编写完成训练部分的程序。最为重要的是,高层API与基础API采用一体化设计,即在编程过程中可以同时使用高层API与基础API,让用户在简捷开发与精细化调优之间自由定制。新API体系完全兼容历史版本,同时飞桨提供了升级工具,帮助开发者降低升级迁移成本。
飞桨开源框架2.0 API参考文档:
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
使用飞桨框架2.0更高效地训练AI模型
训练更大规模的模型
众所周知,飞桨框架的英文名Paddle便是并行分布式训练学习的缩写,分布式可以说是飞桨与生俱来的特性。飞桨支持包括数据并行、模型并行、流水线并行在内的广泛并行模式和多种加速策略。在飞桨框架2.0版本中,新增支持了混合并行模式,即数据并行、模型并行、流水线并行这三种并行模式可以相互组合使用,更高效地将模型的各网络层甚至某一层的参数切分到多张GPU卡上进行训练,从而实现支持训练千亿参数规模的模型。
业内首个通用异构参数服务器架构
飞桨框架2.0推出了业内首个通用异构参数服务器技术,解除了传统参数服务器模式必须严格使用同一种硬件型号Trainer节点的枷锁,使训练任务对硬件型号不敏感,即可以同时使用不同的硬件进行混合异构训练,如CPU、GPU(也包括例如V100、P40、K40的混合)、AI专用加速硬件如昆仑芯片等,同时解决了搜索推荐领域大规模稀疏特征模型训练场景下,IO占比过高导致的计算资源利用率过低的问题。通过异构参数服务器架构,用户可以在硬件异构集群中部署分布式训练任务,实现对不同算力的芯片高效利用,为用户提供更高吞吐,更低资源消耗的训练能力。
图 异构参数服务器架构示意图
通用异构参数服务器架构之所以被称之为通用,主要在于其兼容支持三种训练模式:
- 可兼容全部由CPU机器组成的传统参数服务器架构所支持的训练任务。
- 可兼容全部由GPU或其他AI加速芯片对应机器组成的参数服务器,充分利用机器内部的异构设备。
- 支持通过CPU机器和GPU或其他AI加速芯片对应机器的混布,组成机器间异构参数服务器架构。
异构参数服务器拥有非常高的性价比,如下图所示,仅用两个CPU机器加两个GPU机器就可以达到与4个GPU机器相仿的训练速度,而成本至少可以节约35%。
分布式训练教程:
https://fleet-x.readthedocs.io/en/latest/paddle_fleet_rst/distributed_introduction.html
使用飞桨框架2.0更广泛地部署AI模型到各种硬件
全面深度适配各种人工智能硬件
AI产业的广泛应用离不开各种各样的人工智能硬件的繁荣,飞桨可以说深谙其道,持续努力打造繁荣的硬件生态。当前包括英特尔、英伟达、ARM等诸多芯片厂商纷纷开展对飞桨的支持。飞桨还跟飞腾、海光、鲲鹏、龙芯、申威等CPU进行深入适配,并结合麒麟、统信、普华操作系统,以及百度昆仑、海光DCU、寒武纪、比特大陆、瑞芯微、高通、英伟达等AI芯片深度融合,与浪潮、中科曙光等服务器厂商合作形成软硬一体的全栈AI基础设施。当前飞桨已经适配和正在适配的芯片或IP型号达到29种,处于业界领先地位。
图 飞桨硬件生态路线图
立即体验飞桨开源框架2.0版本
飞桨框架2.0安装:
10分钟快速上手飞桨框架2.0:
飞桨框架2.0使用教程:
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/index_cn.html
飞桨框架2.0应用实践:
https://www.paddlepaddle.org.cn/documentation/docs/zh/tutorial/index_cn.html
如果您想详细了解更多飞桨的相关内容,请参阅以下文档。
·飞桨官网地址·
https://www.paddlepaddle.org.cn/
·飞桨开源框架项目地址·
GitHub: https://github.com/PaddlePaddle/Paddle
Gitee: https://gitee.com/paddlepaddle/Paddle
想了解更多有关飞桨框架2.0的信息,记得关注百度深度学习趣味案例实战营,3月15日-19日晚19:00,每天一小时,手把手带你使用CV、NLP领域最常用模型及应用,即学即用,做项目还能获取积分兑换京东卡。