思源原创

赠V100算力卡 | 百度首次公开PaddlePaddle全景图,11项模块新发布

4 月 23 日,首届 WAVE SUMMIT 2019 深度学习开发者峰会在北京举办,现场超千位开发者与来自百度英特尔、清华大学等的科学家,就框架与深度学习展开了详细的讨论。在 WAVE 上,百度从建模、训练到部署,首次对外公布了 PaddlePaddle 全景图。
  • PaddlePaddle新特性完整PPT:https://pan.baidu.com/s/100iWwz-JDvX1dQ2XcJMJQg

  • 提取码:9cxi

此外,百度还重磅推出算力支持计划,宣布为开发者提供总计 1 亿元免费算力。免费算力主要以两种模式提供,第一种是一人一卡模式,V100 的训练卡包括 16G 的显存,最高 2T 的存储空间。另外一种是远程集群模式,PaddlePaddle 提供高性能集群,供开发者免费使用。其中最吸引人的是是一人一卡,而我们正好获得了一张算力卡,它提供 Tesla V100 GPU 这种强大的计算力资源。

这张算力卡提供了一个邀请码,在 AI Studio 的单机模式中输入邀请码就能获得基础的 48 小时 V100 算力,而且该卡可以获得 3 个新的邀请码,对方每接受一次则增加 24 小时的 V100 算力。所以总的而言,这张算力卡可获得 120 小时的 Tesla V100 使用时间。

现在这张算力卡免费赠送机器之心读者啦~只要你在微信中留言最期待的 PaddlePaddle 更新或改进,那么截至 26 号中午 12 点,获得点赞量最多的留言将获得这张算力卡。

PaddlePaddle 全景图

正如百度深度学习技术平台部总监马艳军所言:「PaddlePaddle 其实从去年开始就有一个核心理念的变化,即将其定位为端到端的深度学习平台,而不仅仅是框架。」这也就意味着,PaddlePaddle 从底层框架、模型库,到基于它们构建的各种工具,再到完整的开发和服务平台,整个流程应该是端到端的,是一种『智能时代的操作系统』。」

会上,百度首次对外公布了 PaddlePaddle 的全景图,它从三个层面囊括了众多工具与组件。在这次 WAVE 中,百度发布了众多新工具与模块,下图黄色框的组件就是这次发布的重点。

总体而言,PaddlePaddle 是集核心框架、工具组件和服务平台为一体的端到端开源深度学习平台。此次,PaddlePaddle 发布了 11 项新特性及服务,包含 PaddleNLP、视频识别工具集、Paddle Serving、PaddleSlim 等多种深度学习开发、训练、预测的便捷方法,也包含 PaddleHub 和 Auto Design 等面向具体领域的高效用具。

值得注意的是,百度还在 WAVE 现场宣布了「1 亿元」的 AI Studio 算力支持计划,通过提供 Tesla V100 免费使用时长,帮助使用者获得更强大的算力。最后,百度还公布了 PaddlePaddle 的中文名「飞桨」,它的寓意是「PaddlePaddle 是一个快速成长、性能优异的深度学习平台」。

新特性概览

PaddlePaddle 发布的新特性可以分为开发、训练、预测、工具和服务五大部分。其中开发主要是构建深度学习的过程,它需要更简洁与易于理解的编写方式。而训练与预测主要追求的是「快」,即在不影响性能的情况下,训练越快越好、预测越快越好。后面的工具则具体针对某些问题提出了一系列解决方案,从而简化开发过程。

1. 开发:

  • PaddleNLP

  • 视频识别⼯工具集 

PaddleNLP 是百度发布的完整 NLP 工具包,NLP 领域开发者可以方便地复现 baseline 模型,也可以进行二次开发,解决自己的问题。而百度发布的视频识别工具集能够为开发者提供处理视频理解、视频编辑、视频生成等一系列任务的解决方案。该工具集包含 7 个主流视频识别模型,下图中标黄的 3 个模型为百度独有的优秀模型。

PaddlePaddle 视频识别⼯工具集。

我们知道百度一直特别注重 NLP 方面的研究,这次 PaddleNLP 将很多 NLP 模型做了一套共享的骨架代码,这样跑不同模型用一套 API 和模式就行了。

除了发布已有的官方模型,如下图所示 PaddleNLP 还提供了针对一系列任务的处理工具,包括预处理和后处理,并且这块功能也是百度持续完善的点。

2. 训练:

  • 分布式训练 

  • ⼯业级数据处理

第一个是大规模分布式训练相关的能力升级,包括多机多卡的全面、全方位的支持;CPU 下的大规模稀疏参数服务器;以及各种容器下的高速大规模分布式训练。其次工业级的数据处理主要关注数据吞吐量,百度优化了分布式 IO,并增加远程文件系统流式读取能力。

如下所示为不同线程的数据吞吐能力,它们近似成线性增长,这种属性对于可扩展性非常重要。

3. 预测:

  • Paddle Serving

  • PaddleSlim

基于多硬件的支持,全新发布的 Paddle Serving 已支持服务器端的快速部署。Paddle Serving 目前在百度的很多产品线都在使用,它提供非常完备的在线服务能力。其次 PaddleSlim 是一个模型压缩工具库,它能够在精度损失较⼩的情况下高效进⾏模型的计算和体积压缩。

如下所示为 Paddle Serving 的整体架构图,它分为离线和在线两种基本实现。Server 端最上面部署了不同硬件的推理引擎。此外 Paddle Serving 还有基本的 Built-in 预处理执行器,是一套完整的模型部署框架。

4. 工具:

  • AutoDL Design

  • PARL

  • PaddleHub

正式发布的 AutoDL Design 利用强化学习实现神经网络架构搜索,搜索的结果在很多特定场景下都优于人类设计的网络,百度也开源了 6 个自动搜索到的模型。PARL 是一个强化学习的工具,这次升级在算法的覆盖、高性能通讯以及并行训练方面做了大量的支持和扩展。

最后发布的工具 PaddleHub 是预训练的一站式管理平台,它提供了非常好的封装,方便用户基于大模型做迁移学习。一般只需 10 行代码左右,我们就可以实现一次迁移学习,将其应用到我们自己的任务场景。

AutoDL Design 设计的网络在 CIFAR-10 上达到当前最优的 98.01% 准确率

最后的服务则主要通过 AI Studio 支持免费算力,我们可以获得单人单卡(Tesla V100)的强大计算力,也可以获得远程集群模式免费算力。

以上仅概览了 PaddlePaddle 的新特性,而其中很多特性值得详细介绍。下面我们就从开发者的角度,了解 PaddleSlim、PaddleHub 和动态计算图等新特性。

一个优雅的模型压缩模块 PaddleSlim

PaddleSlim 是 PaddlePaddle 框架的一个子模块,它首次在 PaddlePaddle 1.4 版本中发布。该模块是非常优雅的模型压缩工具包,不仅保证了性能,同时还兼顾了易用性,只需几行代码就能 work。

PaddleSlim 中实现了目前主流的网络剪枝、量化、蒸馏三种压缩策略,主要用于压缩图像领域模型。在后续版本中,百度会添加更多的压缩策略,以及完善对 NLP 领域模型的支持。

PaddleSlim 示例和文档:https://github.com/PaddlePaddle/models/tree/develop/PaddleSlim

如上所示,这三种最常见的压缩方法都建立在复杂的基础架构上,从而提供更好的压缩效果。如右图所示,即使是非常精简的 MobileNet,也能得到很可观的压缩效果。尽管底层比较复杂,但它在实际使用起来却非常简单,我们只需要几行代码就能调用自动化的模型压缩能力。

如下所示为剪枝示例,具体过程可查看前面的 PaddleSlim 文档地址。我们可以直接调用压缩脚本,并给出对应的压缩配置,PaddlePaddle 就能自动在训练过程中对模型完成压缩。

# for sensitivity filter pruning
#---------------------------
export CUDA_VISIBLE_DEVICES=0
python compress.py \
--model "MobileNet" \
--pretrained_model ./data/pretrain/MobileNetV1_pretrained \
--compress_config ./configs/filter_pruning_sen.yaml

PaddleSlim 的使用很简单,不论是我们想降低运算量(FLOPS),还是想降低模型大小(权重所占空间),它都能快速办到。

新颖的 PaddleHub

现在介绍一个新颖的工具 PaddleHub,它是基于 PaddlePaddle 开发的预训练模型管理工具,可以借助预训练模型更便捷地开展迁移学习工作。

PaddleHub 项目地址:https://github.com/PaddlePaddle/PaddleHub

以下展示了 PaddleHub 的完整架构图,百度封装了一系列 NLP 和 CV 的数据集,还提供了 Reader 以快速便捷地处理数据。除了数据集,更多的就是预训练模型了,包括拿来就用的 Transformer 和目标检测等模型。此外,还能针对不同的任务实现迁移学习,包括文本分类、序列标注、图像分类等。

在用 pip 安装 paddlehub 后,我们可以快速体验 PaddleHub 无需代码、一键预测的命令行功能:

# 使用百度LAC词法分析工具进行分词
$ hub run lac --input_text "今天是个好日子"

# 使用百度Senta情感分析模型对句子进行预测
$ hub run senta_bilstm --input_text "今天是个好日子"

# 使用SSD检测模型对图片进行目标检测,检测结果如下图所示
$ wget --no-check-certificate https://paddlehub.bj.bcebos.com/resources/test_img_bird.jpg
$ hub run ssd_mobilenet_v1_pascal --input_path test_img_bird.jpg

通过命令行,我们可以快速使用预训练模型进行预测。同时借助 PaddleHub Finetune API,使用少量代码就能完成迁移学习。例如我们可以使用 PaddleHub Finetune API 以及图像分类预训练模型完成分类任务,当然,我们也可以只调整几个超参数

--batch_size: 批处理大小,请结合显存情况进行调整,若出现显存不足,请适当调低这一参数。默认为16
--num_epoch: finetune迭代的轮数。默认为1
--module: 使用哪个Module作为finetune的特征提取器,脚本支持{resnet50/resnet101/resnet152/mobilenet/nasnet/pnasnet}等模型。默认为resnet50
--checkpoint_dir: 模型保存路径,PaddleHub会自动保存验证集上表现最好的模型。默认为paddlehub_finetune_ckpt
--dataset: 使用什么数据集进行finetune, 脚本支持分别是{flowers/dogcat/stanforddogs/indoor67/food101}。默认为flowers
--use_gpu: 是否使用GPU进行训练,如果机器支持GPU且安装了GPU版本的PaddlePaddle,我们建议您打开这个开关。默认关闭

令人期待的动态计算图

除了会上介绍的新特性,我们在最新版的 Paddle Fluid 1.4 文档中还发现一种全新的动态计算图模块 DyGraph。目前 DyGraph 还处于预览阶段,但它标志着 PaddlePaddle 也开始同时兼顾静态计算图与动态计算图。

DyGraph 文档地址:http://paddlepaddle.org/documentation/docs/zh/1.4/user_guides/howto/dygraph/DyGraph.html

我们一般认为静态计算图在高效训练和部署上有非常大的优势,而动态计算图在开发效率与易用性上也无可替代。只有将动态计算图与静态计算图之间的兼容性做好,才能兼顾训练速度与简单易用两大特点。

总的来说,PaddlePaddle 的 DyGraph 模式是一种动态的图执行机制,可以立即执行结果,无需构建整个图。同时,和以往静态的执行计算图不同,DyGraph 模式下您的所有操作可以立即获得执行结果,而不必等待所构建的计算图全部执行完成,这样可以让您更加直观地构建 PaddlePaddle 下的深度学习任务,以及进行模型的调试,同时还减少了大量用于构建静态计算图的代码,使得您编写、调试网络的过程变得更加便捷。

下面我们可以简单地体会一下 DyGraph 的魅力,我们可以在 fluid.dygraph.guard() 上下文环境中使用 DyGraph 的模式运行网络,DyGraph 将改变以往 PaddlePaddle 的执行方式,现在这些代码可以立即执行,并且将计算结果返回给 Python。如下所示,在最后打印损失函数的梯度时,可以直接获得结果:

x = np.ones([2, 2], np.float32)
with fluid.dygraph.guard():
    inputs = []
    for _ in range(10):
        inputs.append(fluid.dygraph.base.to_variable(x))
    ret = fluid.layers.sums(inputs)

    loss = fluid.layers.reduce_sum(ret)
    loss.backward()
    print(loss.gradient())

目前 DyGraph 还是预览版,PaddlePaddle 计划在今年 7 月份完善动态图的基本功能、新增流水线并行的能力,与此同时还要优化显存占用与静态计算图的训练速度。PaddlePaddle 计划在今年 11 月完成动态图实现与静态图的灵活转换,并全面优化动态图的训练速度。

所以对于 PaddlePaddle 的进一步发展,我们还是非常期待的。

产业百度PaddlePaddle建模
相关数据
英特尔机构

英特尔是计算创新领域的全球领先厂商,致力于拓展科技疆界,让最精彩体验成为可能。英特尔创始于1968年,已拥有近半个世纪产品创新和引领市场的经验。英特尔1971年推出了世界上第一个微处理器,后来又促进了计算机和互联网的革命,改变了整个世界的进程。如今,英特尔正转型成为一家数据公司,制定了清晰的数据战略,凭借云和数据中心、物联网、存储、FPGA以及5G构成的增长良性循环,提供独到价值,驱动日益发展的智能互联世界。英特尔专注于技术创新,同时也积极支持中国的自主创新,与产业伙伴携手推动智能互联的发展。基于明确的数据战略和智能互联全栈实力,英特尔瞄准人工智能、无人驾驶、5G、精准医疗、体育等关键领域,与中国深度合作。面向未来,英特尔致力于做中国高价值合作伙伴,在新科技、新经济、新消费三个方面,着力驱动产业协同创新,为实体经济增值,促进消费升级。

相关技术
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

剪枝技术

剪枝顾名思义,就是删去一些不重要的节点,来减小计算或搜索的复杂度。剪枝在很多算法中都有很好的应用,如:决策树,神经网络,搜索算法,数据库的设计等。在决策树和神经网络中,剪枝可以有效缓解过拟合问题并减小计算复杂度;在搜索算法中,可以减小搜索范围,提高搜索效率。

文本分类技术

该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。

SSD技术

一种计算机视觉模型。论文发表于 2015 年(Wei Liu et al.)

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

词法分析技术

词法分析是计算机科学中将字符序列转换为标记序列的过程。进行词法分析的程序或者函数叫作词法分析器,也叫扫描器。词法分析器一般以函数的形式存在,供语法分析器调用

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

操作系统技术

操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

迁移学习技术

迁移学习是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。迁移学习是通过从已学习的相关任务中转移知识来改进学习的新任务,虽然大多数机器学习算法都是为了解决单个任务而设计的,但是促进迁移学习的算法的开发是机器学习社区持续关注的话题。 迁移学习对人类来说很常见,例如,我们可能会发现学习识别苹果可能有助于识别梨,或者学习弹奏电子琴可能有助于学习钢琴。

推理引擎技术

推理机是实施问题求解的核心执行机构,常见于专家系统。它是对知识进行解释的程序,根据知识的语义,对按一定策略找到的知识进行解释执行,并把结果记录到动态库的适当空间中去。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

百度机构

百度(纳斯达克:BIDU),全球最大的中文搜索引擎、最大的中文网站。1999年底,身在美国硅谷的李彦宏看到了中国互联网及中文搜索引擎服务的巨大发展潜力,抱着技术改变世界的梦想,他毅然辞掉硅谷的高薪工作,携搜索引擎专利技术,于 2000年1月1日在中关村创建了百度公司。 “百度”二字,来自于八百年前南宋词人辛弃疾的一句词:众里寻他千百度。这句话描述了词人对理想的执着追求。 百度拥有数万名研发工程师,这是中国乃至全球最为优秀的技术团队。这支队伍掌握着世界上最为先进的搜索引擎技术,使百度成为中国掌握世界尖端科学核心技术的中国高科技企业,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

推荐文章
暂无评论
暂无评论~