机器之心发布机器之心编辑部

11 月 5 日,在 Wave Summit+2019 秋季深度学习开发者峰会上,飞桨全新发布和重要升级了最新的 21 项进展,在深度学习开发者社区引起了巨大的反响。

很多未到场的开发者觉得遗憾,希望可以了解飞桨发布会背后的更多技术细节,因此我们特别策划了一个系列稿件,分别从核心框架、基础模型库、端到端开发套件、工具组件和服务平台五个层面分别详细解读飞桨的核心技术与最新进展,敬请关注。

今天给大家带来的是系列文章之飞桨工具组件解读。

飞桨深度学习平台工具组件,包括 PaddleHub 迁移学习、PARL 强化学习、PALM 多任务学习、PaddleFL 联邦学习、PGL 图神经网络、EDL 弹性深度学习计算、AutoDL 自动化深度学习、VisualDL 训练可视化工具等,旨在推动前沿深度学习技术的产业化落地,满足多样的产业需求。下面带来飞桨深度学习平台工具组件详细解读,核心内容 3993 字,预计阅读时间 4 分钟。

PaddleHub 迁移学习

PaddleHub 是预训练模型管理和迁移学习工具。开发者通过使用预训练模型,可以更便捷地开展迁移学习工作。PaddleHub 主要有以下特点:

丰富的预训练模型库

飞桨的预训练模型库,目前主要覆盖自然语言处理和计算机视觉两个方向,包含图像分类、目标检测、词法分析、语义模型、情感分析、语言模型、视频分类、图像生成、图像分割等 70 多个技术领先的而且经过长期的产业实践验证的优质模型,可以帮助开发者快速开始。

少量代码即可完成迁移学习

PaddleHub Fine-tune API 的开发,目的是帮助开发者降低迁移学习的门槛。在预训练模型的领域,我们可以认为模型都是标准化的,有标准化的输入,也有标准化的输出,跟软件是样的模块化。通过自定义数据集,再加上 Fine-tune API,组网的工作可以通过一行代码搞定,而且 PaddleHub 集成了工业级简单实用的策略,包括数据的预处理等,可供开发者尝试。同时,引入『模型即软件』的设计理念,通过 Python API 或者命令行实现一键预测,更方便地应用飞桨模型库。

支持超参优化,自动搜索超参数

PaddleHub AutoDL Finetuner 提供一个黑盒优化的策略,目标是用尽可能少的次数来找到一个更好的超参,使得我们的模型在验证集上的指标更好。这个问题没有很明确的公式描述,因此需要通过黑盒优化的技术来求解:通过定义一个超参的类型和范围,让机器来自动搜索,而且对于任意的机器学习的代码都可以使用黑盒优化,可以帮助开发者提高整个超参优化的效率。

通过 Hub Serving,实现一键 Module 服务化部署

Hub Serving 是为用户端到端体验打造的,从预训练模型快速的生成 API 的服务,可以实现安全可控、支持私有化的部署。开发者可以基于 PaddleHub 开放的模型在自己的企业内部搭建起预训练模型和服务,并通过 API 调用的方式快速接入。客户端的应用方式非常简单,通过我们最经典的 HTTP 的方式,可以快速的使用这些预训练模型,让更多的人能够用到预训练模型的效果。

更多内容,请参考:https://github.com/PaddlePaddle/PaddleHub

PALM 多任务学习

PaddlePALM (PAddLe for Multi-task) 是一个强大快速、灵活易用的任务级(task level)多任务学习框架,用户仅需书写极少量代码即可完成复杂的多任务训练与推理。PALM 框架实现了简洁易懂的任务实例创建与管理机制,强大易用的参数管理与复用接口,以及高效稳定的多任务调度算法。此外,框架提供了定制化接口,若内置工具、主干网络和任务无法满足需求,开发者可以轻松完成相关组件的自定义。框架中内置了丰富的主干网络及其预训练模型(BERT、ERNIE 等)、常见的任务范式(分类、匹配、机器阅读理解等)和相应的数据集读取与处理工具。框架运行的基本原理图如下图所示:

框架支持基于配置和基于 API 这两种使用方式。对于典型的多任务学习场景,用户可以从内置的 reader、backbone 和 paradigm 池中自由组合出任务实例,而后基于参数管理机制指定任务实例之间的参数复用关系,最后创建任务控制器,启动多任务训练或推理。

这里举一个实际应用场景的例子。假如有一个目标任务机器阅读理解 MRC,为了提升模型的泛化能力(获得更佳的测试集表现和模型鲁棒性),我们可以设置两个辅助任务掩码语言模型任务 MLM 和问答匹配任务 MATCH。通过 PaddlePALM 我们可以很轻松的完成这个较为复杂的多任务学习过程。

首先,我们为三个任务选取合适的共享参数的主干网络用于文本特征抽取与学习(例如 BERT、ERNIE 等),主干网络可以写入全局配置文件或由用户手动实例化。而后,我们为每个任务选取合适的数据处理工具和任务输出层,进而创建任务控制器,启动三个任务的联合训练。

为了提升易用性,PALM 多任务学习目前已经进行了一个很好的封装,只需要 20 行左右的代码,就可以同时训练多个任务来提升模型效果。基于这个模块,今年百度自研的 D-NET 的模型,实现了 EMNLP2019 阅读理解的十项冠军。

更多内容可参考:https://github.com/PaddlePaddle/PALM

PGL 图神经网络

近几年来,深度神经网络的成功推动了人工智能的发展,然而,在实际场景中,有大量的数据是在非欧式空间的,这限制了深度神经网络的应用。而图神经网络在这类数据上有着出色的处理能力,使得最近一段时间图神经网络在学界与工业界上大放光彩。

百度顺应潮流发布的 PGL 充分利用飞桨独有的 Lod Tensor 特性,实现了高度并行的图神经网络消息传递机制,在性能上超越了 DGL 等现有图学习框架 13 倍。依托于飞桨核心框架以及自研的分布式图引擎,PGL 可支持十亿节点百亿边的巨图训练。此外,PGL 原生支持异构图 Meta Path 采样以及 Message Passing 双模式,预置了 13 种业界主流图学习算法,方便开发者熟悉和使用图神经网络领域模型,包括以下技术特色:

高效:通用消息聚合性能超越业内主流框架 DGL 13 倍

图神经网络模型的独特优势在于充分捕捉数据中的结构信息。PGL 采用消息传递范式(Message Passing)构建图神经网络的接口,用户只需要简单地编写 send 和 recv 函数就能够轻松的实现一个简单的 GCN 网络:其中 send 函数被定义在节点之间的边上,负责将消息从源点发送到目标节点;recv 函数则负责将这些消息聚合起来。目前,PGL 提供两套聚合方式,一套是 Scatter-Gather 用于解决常见如求和聚合的方式,而另外一套则是基于飞桨 Lod Tensor 特性实现的并行通用的消息聚合方法。得益于并行的消息聚合能力,PGL 的速度能够达到 DGL 的 13 倍。

规模:支持十亿节点百亿边的超大规模图训练

依托于分布式图引擎以及大规模参数服务器 Paddle Fleet,PGL 可以轻松在 MPI 集群上搭建分布式超大规模图学习算法。超大规模图会以切分形式在分布式图引擎中存储,此外还提供诸如图信息访问、子图采样、游走等操作算子。在此之上则是 PGL 构建的分布式图训练模块,该模块会与参数服务器 Paddle Fleet 进行联动训练,满足用户数十亿节点 Embedding 学习需求。

易用:轻松搭建异构图学习算法

在工业应用中,许多的图网络是异构。PGL 针对异构图包含多种节点类型和多种边类型的特点进行建模,旨在为用户提供方便易用的异构图框架,让用户可以快速构建自定义的异构图模型。目前,PGL 支持异构图的 Meta Path 采样以及异构图的 Message Passing 机制。异构图存在不同类型的节点和边,为了融入 Message Passing 机制,PGL 可以在异构图中分别对不同类型的边进行消息传递。最后将同一个节点在不同边类型的表示融合在一起。

丰富:预置 13 种业界主流图学习模型

为了便于用户熟悉和使用图神经网络领域的模型,PGL 预置了 13 种主流的图学习模型。这些模型涵盖了同构与异构、图表示学习与图神经网络、分布式训练等样例,可以赋能推荐系统、知识图谱、用户画像、金融风控、智能地图等多个场景。用户可以方便地根据自己的需要选择不同的样例进行复现、修改、上线等。

更多内容,请参考:https://github.com/PaddlePaddle/PGL

PARL 强化学习

PARL(PAddle Reinfocement Learning)是高性能、灵活的强化学习框架,提供可复现性保证,大规模并行支持能力,复用性强且具有良好扩展性。

通过复用通用算法库里面已经实现好的算法,开发者可以很快地在不同算法间切换,保持了高效的迭代频率。PARL 的算法库涵盖了从经典的 DDPG,PPO, TD3 等算法,到并行的 A2C, GA3C, IMPALA 以及并行的 Evolutionary Strategy 等算法。尽管算法库包含了各种类型的复杂算法,但是其接口是相当简单的,基本上是 import 即可用的方式。

同时,基于 PARL 提供的高效灵活的并行化训练能力进行强化学习训练,可以使得训练效率得以数百倍地提升。PARL 的并行接口的设计思想是用 python 的多线程代码实现真正意义上的高并发,参赛选手只需要写多线程级别的代码,然后加上 PARL 的并行修饰符就可以调度不同机器的计算资源,达到高并发的性能。

PARL 应用了百度多年来在强化学习领域的技术深耕和产品应用经验,具有更高的可扩展性、可复现性和可复用性,强大的大规模并行化支持能力。开发者可以通过 PARL 用数行代码定制自己的模型,一个修饰符就能实现并行。此外,PARL 代码风格统一,包含了多个入门级别的强化学习算法,对初学者相当友好。

特别值得一提的,在机器学习领域顶级会议 NeurIPS 2019 主办的 Learn to Move 强化学习比赛中,百度继 2018 年夺得冠军后再度蝉联冠军。本次比赛的难度非常大,在参赛的近 300 支队伍中,仅有 3 支队伍完成了最后挑战。百度基于飞桨的强化学习框架 PARL 不仅成功完成挑战,还大幅领先第二名 143 分。显而易见,百度在强化学习领域占据了明显的优势,冠军含金量颇高。

更多内容请参考,PARL:https://github.com/PaddlePaddle/PARL

PaddleFL 联邦学习

PaddleFL(Paddle Federateddeep Learning)是开源联邦学习框架,可轻松地复制、比较不同联邦学习算法,提供众多联邦学习策略及在计算机视觉、自然语言处理、推荐算法等领域的应用。此外,PaddleFL 还将提供传统机器学习训练策略的应用,例如多任务学习、联邦学习环境下的迁移学习。依靠着飞桨的大规模分布式训练和 Kubernetes 对训练任务的弹性调度能力,PaddleFL 可以基于全栈开源软件轻松地部署。

更多内容可参考:https://github.com/PaddlePaddle/PaddleFL

AutoDL 自动化深度学习

AutoDL 包含自动网络结构设计、迁移小数据建模和适配边缘计算三部分。开源 AutoDL 设计的图像分类网络在 CIFAR10 数据集正确率达到 98%,效果优于目前已公开的 10 类人类专家设计的网络,居于业内领先位置。

更多内容可参考:https://github.com/PaddlePaddle/AutoDL

VisualDL 训练可视化工具

VisualDL 是面向深度学习任务设计的可视化工具,包含 scalar、参数分布、模型结构、图像可视化等功能。该项目正处于高速迭代中,不断增加新组件。目前,大多数 DNN 平台使用 Python 作为配置语言。VisualDL 原生支持 python 使用,在模型 Python 配置中添加几行代码,便可为训练过程提供丰富的可视化支持。

更多内容可参考:https://github.com/PaddlePaddle/VisualDL

想与更多的深度学习开发者交流,请加入飞桨官方 QQ 群:796771754

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

官网地址:

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

项目地址:

  • PaddleHub:https://github.com/PaddlePaddle/PaddleHub
  • PALM:https://github.com/PaddlePaddle/PALM
  • PGL:https://github.com/PaddlePaddle/PGL
  • PARL: https://github.com/PaddlePaddle/PARL
  • PaddleFL:https://github.com/PaddlePaddle/PaddleFL
  • AutoDL:https://github.com/PaddlePaddle/AutoDL
  • VisualDL: https://github.com/PaddlePaddle/VisualDL
  • 飞桨系列文章之核心框架揭秘
  • 飞桨系列文章之基础模型库解读
  • 飞桨系列文章之端到端开发套件揭秘
  • 飞桨系列文章之服务平台解读

神经网络代码解读_强化学习、联邦学习、图神经网络,飞桨全新工具组件详解...相关推荐

  1. 强化学习、联邦学习、图神经网络,飞桨全新工具组件详解

    2019-12-05 14:55:36 机器之心发布 机器之心编辑部 11 月 5 日,在 Wave Summit+2019 秋季深度学习开发者峰会上,飞桨全新发布和重要升级了最新的 21 项进展,在 ...

  2. 一站式学习Wireshark(七):Statistics统计工具功能详解与应用

    Wireshark一个强大的功能在于它的统计工具.使用Wireshark的时候,我们有各种类型的工具可供选择,从简单的如显示终端节点和会话到复杂的如Flow和IO图表.本文将介绍基本网络统计工具.包括 ...

  3. 飞桨全新发布,核心框架首次完整公开解读

    导读:11 月 5 日,在 Wave Summit+2019 深度学习开发者峰会上,飞桨全新发布和重要升级了最新的 21 项进展,在深度学习开发者社区引起了巨大的反响.很多未到场的开发者觉得遗憾,希望 ...

  4. 深度学习/联邦学习笔记(六)卷积神经及相关案例+pytorch

    深度学习/联邦学习笔记(六) 卷积神经及相关案例+pytorch 卷积神经网络不同于一般的全连接神经网络,卷积神经网络是一个3D容量的神经元,即神经元是以三个维度来排列的:宽度.高度和深度 卷积神经网 ...

  5. 虚拟专题:联邦学习 | 联邦学习隐私保护研究进展

    来源:大数据期刊 联邦学习隐私保护研究进展 王健宗, 孔令炜, 黄章成, 陈霖捷, 刘懿, 卢春曦, 肖京 平安科技(深圳)有限公司,广东 深圳 518063 摘要:针对隐私保护的法律法规相继出台,数 ...

  6. 【OpenI开源项目推荐-GammaGL】支持国内外主流深度学习框架的图神经网络算法库

    今天,OpenI要为大家推荐一款入驻社区的开源项目[GammaGL],它是由北邮GAMMA LAB 与鹏城实验室最新开源的图神经网络算法库Gamma Graph Library (GammaGL),支 ...

  7. 深度学习之图像分类(二十六)-- ConvMixer 网络详解

    深度学习之图像分类(二十六)ConvMixer 网络详解 目录 深度学习之图像分类(二十六)ConvMixer 网络详解 1. 前言 2. A Simple Model: ConvMixer 2.1 ...

  8. 深度学习之图像分类(二十五)-- S2MLPv2 网络详解

    深度学习之图像分类(二十五)S2MLPv2 网络详解 目录 深度学习之图像分类(二十五)S2MLPv2 网络详解 1. 前言 2. S2MLPv2 2.1 S2MLPv2 Block 2.2 Spat ...

  9. Django框架学习(一)Django框架安装和项目创建详解

    Django框架学习(一)Django框架安装和项目创建详解 文章目录 Django框架学习(一)Django框架安装和项目创建详解 一.简介 1.1介绍 1.2 URL 1.3.框架原理 二.安装 ...

最新文章

  1. 2021年KOL市场研究报告
  2. 通过接口字段名称反向猜测数据库列名
  3. CS229——NODE1part2
  4. Linux进程调度:完全公平调度器 Completely Fair Scheduler 内幕| linux-2.6
  5. Doris之DataX doriswriter
  6. JavaScript中的面向对象--对象继承
  7. 【原创】.NET读写Excel工具Spire.Xls使用(5)重量级的Excel图表功能
  8. 基于MATLAB的车牌识别(GUI)
  9. BT5的xprobe2的操作实例
  10. 微信小程序学习笔记:选项卡
  11. 拼接大屏数据展示_4K高清拼接屏大数据点对点显示解决方案
  12. windows10下F1-F11快捷键及window+Dor+E快捷键打开关闭控制
  13. PBOC规范研究之十 ---标准动态数据认证(转)
  14. [ubuntu]关闭/打开笔记本电脑触控板
  15. 蓝蓝算法第二期,T51
  16. (转帖)Redis的LRU和LFU区别
  17. 两个实体不是同个类同名字段赋值问题
  18. Delong test比较两个ROC曲线的性能
  19. ViewPager的使用及获取子view控件的操作(inflate)
  20. 开源的 IM 项目 Sealtalk

热门文章

  1. bp神经网络预测模型_【2020顶会KDD】AutoST:面向时空预测的高效神经网络学习模型...
  2. mybatis oracle 大写,解决mybatis用Map返回的字段全变大写的问题
  3. python居中对齐符号怎么打_Python字符串居中对齐
  4. 大数据人工智能物联网论文_物联网学报“大数据”相关论文汇总
  5. pythonutf8转gbk,Python实现把utf-8格式的文件转换成gbk格式的文件
  6. java新人_JAVA新人之——专有名词
  7. mysql win10 无法配置文件_MySQL设置文件无法更改的处理方案详细说明(Win10)
  8. 平板电脑连接投影仪_苹果电脑如何连接投影仪 苹果Mac连接投影仪方法【详解】...
  9. linux配置php项目路径,linux下如何修改php.ini路径
  10. linux java测试工具_Linux下Java虚拟机状态监测工具