飞桨框架 2.0 正式版重磅发布,一次端到端的“基础设施”革新
在人工智能时代,深度学习框架下接芯片,上承各种应用,是“智能时代的操作系统”。近期,我国首个自主研发、功能完备、开源开放的产业级深度学习框架飞桨发布了 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 安装:https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/2.0/install/pip/linux-pip.html
10 分钟快速上手飞桨框架 2.0:https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/02_paddle2.0_develop/01_quick_start_cn.html
飞桨框架 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
如在使用过程中有问题,可加入官方 QQ 群进行交流:778260830。
如果您想详细了解更多飞桨的相关内容,请参阅以下文档。
·飞桨官网地址·https://www.paddlepaddle.org.cn/
·飞桨开源框架项目地址·GitHub: https://github.com/PaddlePaddle/PaddleGitee: https://gitee.com/paddlepaddle/Paddle
评论