深度学习高级主题--首场

一、为什么要精通深度学习的高级内容

在前面章节中,我们首先学习了神经网络模型的基本知识和使用飞桨编写深度学习模型的方法,再学习了计算机视觉、自然语言处理和推荐系统的模型实现方法。至此,读者完全可胜任各个领域的建模任务。

但在人工智能的战场上取得胜利并不容易,我们还将面临如下挑战:

  • 需要针对业务场景提出建模方案;
  • 探索众多的复杂模型哪个更加有效;
  • 探索将模型部署到各种类型的硬件上。

如果大家仅仅掌握基础的模型编写能力,就像一个不带武器上阵的士兵,战斗力十分有限,难以应对复杂多变的战场环境。在本章高级内容中,将全面介绍各种模型资源和辅助工具,让大家在人工智能的战场上武装到牙齿,和“AI大师”一样无往不利。

二、高级内容包含哪些武器

1. 模型资源

如今深度学习应用已经在诸多领域落地,研发人员建模的首选方案往往不是自己编写,而是使用现成的模型,或者在现成的模型上优化。这一方面会极大地减少研发人员的工作量,另一方面现成的模型一般在精度和性能上经过精进打磨,效果更好。

那么,去哪里找现成的模型资源呢?

飞桨提供了三种类型的模型资源:

  • 预训练模型工具(PaddleHub);
  • 特定场景的开发套件,遍布计算机视觉、自然语言处理、语音、推荐系统等领域的十几个任务(如飞桨图像分割套件PaddleSeg,飞桨语义理解套件ERNIE等);
  • 开源的模型库(Paddle Models)

2. 设计思想与二次研发

当读者挑战一些最新的模型时,少数情况下会碰到模型需要的算子飞桨没有实现的情况。本章会告诉大家为飞桨框架增加自定义算子的方法,并通过讲述动态图和静态图的实现原理,让大家对飞桨框架的设计思路有一个更深入的认知。

3. 工业部署

与模型的科研和教学不同,工业应用中的模型是需要部署在非常丰富的硬件环境上的,比如将模型嵌入用C++语言写的业务系统,将模型作为单独的Web服务,或将模型放到摄像头上等等。本章会介绍Paddle Inference、Paddle Serving和Paddle Lite来满足上面这些需求场景,并介绍模型压缩工具Paddle Slim,可以让模型在有限条件的硬件上以更快的速度运行。

4. 飞桨全流程研发工具

飞桨为大家提供了这么多的模型资源和工具组件,如何串联这些组件,并研发一个适合读者所在行业的可视化建模工具? 本章会以一个官方出品的Demo为案例,向读者展示PaddleX可以为用户提供的全流程服务

5. 行业应用与项目案例

“我所在的行业太传统,人工智能没有用武之地吧?”
本章以能源行业为例,分析一家典型的电力企业在业务中可以用人工智能优化的环节,并展示基于飞桨建模的真实项目。

三、飞桨开源组件使用场景概览

接下来我们通过一张概览图回顾下飞桨提供的全套武器。飞桨以百度多年的深度学习技术研究和业务应用为基础,集深度学习核心框架、基础模型库、端到端开发套件、工具组件和服务平台于一体,为用户提供了多样化的配套服务产品,助力深度学习技术的应用落地。飞桨支持本地和云端两种开发和部署模式,用户可以根据业务需求灵活选择。
图1:飞桨PaddlePaddle组件使用场景概览
图1:飞桨PaddlePaddle组件使用场景概览

在这里插入图片描述

概览图上半部分是从开发、训练到部署的全流程工具,下半部分是预训练模型、各领域的开发套件和模型库等模型资源。

1、 框架和全流程工具

飞桨在提供用于模型研发的基础框架外,还推出了一系列的工具组件,来支持深度学习模型从训练到部署的全流程。

  • 模型训练组件
    飞桨提供了分布式训练框架FleetAPI,还提供了开启云上任务提交工具PaddleCloud。同时,飞桨也支持多任务训练,可使用多任务学习框架PALM

  • 模型部署组件
    飞桨针对不同硬件环境,提供了丰富的支持方案:

    Paddle Inference:飞桨原生推理库,用于服务器端模型部署,支持Python、C、C++、Go等语言,将模型融入业务系统的首选。(飞桨原生推理库,如果今天你有一套业务系统,如果这个业务系统中,需要使用我们这个模型,可以使用Paddle Inference,它其实会追求很好的这个服务器的一个性能。)
    Paddle Serving:飞桨服务化部署框架,用于云端服务化部署,可将模型作为单独的Web服务。(可以把部署的模型迅速变成一个web服务,可以通过网络的形式去访问它。)
    Paddle Lite:飞桨轻量化推理引擎,用于 Mobile 及 IoT 等场景的部署,有着广泛的硬件支持。(现在很多模型,其实要部署到一些相对硬件条件不是那么好的端侧的设备上。比如说,手机、摄像头、厂商的生产制造的设备上等,这些场景下,它对模型的尺寸和性能有要求,所以会用Paddle Lite做专门的部署处理。)
    Paddle.js:使用 JavaScript(Web)语言部署模型,用于在浏览器、小程序等环境快速部署模型。(今天我们都知道我们在网络上,去打开网页或者是在的app中去看它的公众号,那些都是js语言去实现的,那么在这个环境中,怎么去用更多的AI的技术。其实是Paddle.js会支持这些模型部署到那些的场景中去。)
    PaddleSlim:飞桨模型压缩工具,获得更小体积的模型和更快的执行性能。
    X2Paddle:飞桨模型转换工具,将其他框架模型转换成Paddle模型,转换格式后可以方便的使用上述5个工具。

  • 其他全研发流程的辅助工具
    AutoDL:飞桨自动化深度学习工具,自动搜索最优的网络结构与超参数,免去用户在诸多网络结构中选择困难的烦恼和人工调参的繁琐工作。
    VisualDL:飞桨可视化分析工具,不仅仅提供重要模型信息的可视化呈现,还允许用户在图形上进一步交互式的分析,得到对模型状态和问题的深刻认知,启发优化思路。(可以实时的查看数据情况,模型训练的过程的情况,可视化,一些作图和分析)
    PaddleFL:飞桨联邦学习框架,可以让用户运用外部伙伴的服务器资源训练,但又不泄露业务数据。
    PaddleX:飞桨全流程开发工具,可以让用户方便的基于PaddleX制作出适合自己行业的图形化AI建模工具。

2、模型资源

飞桨提供了丰富的端到端开发套件、预训练模型和模型库。

PaddleHub:预训练模型管理和迁移学习组件,提供100+预训练模型,覆盖自然语言处理、计算机视觉、语音、推荐四大领域。模型即软件,通过Python API或者命令行工具,一行代码完成预训练模型的预测。结合Fine-tune API,10行代码完成迁移学习,是进行原型验证(POC)的首选工具。

开发套件:针对具体的应用场景提供了全套的研发工具,例如在图像检测场景不仅提供了预训练模型,还提供了数据增强等工具。开发套件也覆盖计算机视觉、自然语言处理、语音、推荐这些主流领域,甚至还包括图神经网络和增强学习。与PaddleHub不同,开发套件可以提供一个领域极致优化(State Of The Art)的实现方案。其实,每一个开发套件都是一个小的系统,而不仅仅是一个模型而已,一些典型的开发套件包括:

  • ERNIE:飞桨语义理解套件,支持各类训练任务的Fine-tuning,保证极速推理的Fast-Inference API,兼具灵活部署的ERNIE Service和具备轻量方案的ERNIE Tiny系列工具集。
  • PaddleClas:飞桨图像分类套件,目的是为工业界和学术界提供便捷易用的图像分类任务模型和工具集,打通模型开发、训练、压缩、部署全流程,助力开发者训练更好的图像分类模型和应用落地。
  • PaddleDetection:飞桨目标检测套件,目的是帮助开发者更快更好地完成检测模型的训练、精度速度优化到部署全流程。以模块化的设计实现了多种主流目标检测算法,并且提供了丰富的数据增强、网络组建、损失函数等模块,集成了模型压缩和跨平台高性能部署能力。具备高性能、模型丰富和工业级部署等特点。
  • PaddleSeg:飞桨图像分割套件,覆盖了U-Net、DeepLabv3+、ICNet、PSPNet和HRNet等主流的分割模型。通过统一的配置,帮助用户更便捷地完成从训练到部署的全流程图像分割应用。具备丰富的数据增强、主流模型覆盖、高性能和工业级部署等特点。
  • PLSC:飞桨海量类别分类套件,为用户提供了大规模分类任务从训练到部署的全流程解决方案。提供简洁易用的高层API,通过数行代码即可实现千万类别分类神经网络的训练,并提供快速部署模型的能力。
  • ElasticCTR:飞桨弹性计算推荐套件,提供了分布式训练CTR预估任务和Serving流程一键部署方案,以及端到端的CTR训练和二次开发的解决方案。具备产业实践基础、弹性调度能力、高性能和工业级部署等特点。
  • Parakeet:飞桨语音合成套件,提供了灵活、高效、先进的文本到语音合成工具套件,帮助开发者更便捷高效地完成语音合成模型的开发和应用。
  • PGL:飞桨图学习框架,原生支持异构图,支持分布式图存储及分布式学习算法,覆盖业界大部分图学习网络,帮助开发者灵活、高效地搭建前沿的图学习算法。
  • PARL:飞桨深度强化学习框架,夺冠NeurIPS 2019和NeurIPS 2018。具有高灵活性、可扩展性和高性能的特点,支持大规模的并行计算,覆盖DQN、DDPG、PPO、IMPALA 、A2C、GA3C等主流强化学习算法。

模型库:包含了各领域丰富的开源模型代码,不仅可以直接运行模型,还可以根据应用场景的需要修改原始模型代码,得到全新的模型实现。

比较三种类型的模型资源,PaddleHub的使用最为简易,模型库的可定制性最强且覆盖领域最广泛。读者可以参考“PaddleHub->各领域的开发套件->模型库”的顺序寻找需要的模型资源,在此基础上根据业务需求进行优化,即可达到事半功倍的效果。

在上述概览图之外,飞桨还提供云端模型开发和部署的平台,可实现数据保存在云端,提供可视化GUI界面,安全高效。

原文目前链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值