Py学习  »  机器学习算法

14.8K Star,一款网友高赞的深度学习框架,体验超好,相见恨晚!

OSC开源社区 • 3 年前 • 265 次点击  

喜欢就关注我们吧!

近期,百度飞桨发布了深度学习框架2.0,成熟完备的动态图、全新升级的API体系,帮助开发者更高效地进行AI开发;业内首个通用异构参数服务器,支持训练更大规模的模型,让模型训练更高效;全面深度适配各种人工智能硬件,实现更广泛的部署,可谓是一次“基础设施”的全面更新换代!

飞桨框架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产业的广泛应用离不开各种各样的人工智能硬件的繁荣,飞桨可以说深谙其道,持续努力打造繁荣的硬件生态。当前包括英特尔、英伟达、ARM等诸多芯片厂商纷纷开展对飞桨的支持。飞桨还跟飞腾、海光、鲲鹏、龙芯、申威等CPU进行深入适配,并结合麒麟、统信、普华操作系统,以及百度昆仑、海光DCU、寒武纪、比特大陆、瑞芯微、高通、英伟达等AI芯片深度融合,与浪潮、中科曙光等服务器厂商合作形成软硬一体的全栈AI基础设施。当前飞桨已经适配和正在适配的芯片或IP型号达到29种,处于业界领先地位。




立即体验




飞桨框架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

·飞桨开源框架项目地址·

GitHub: https://github.com/PaddlePaddle/Paddle 

Gitee: https://gitee.com/paddlepaddle/Paddle


微软终于对JDK下手了!

2021-04-07

十年拉锯战终结束,Google赢得Java API版权诉讼

2021-04-06

最新开源指数发布:VSCode成为第一代码编辑器、百度Apollo增长最快

2021-04-07



觉得不错,请点个在看

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/111221
 
265 次点击