加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 酷站推荐 > 酷站 > 正文

演讲实录:百度大规模深度学习应用实践和开源AI框架PaddlePaddle

发布时间:2019-02-20 19:33:25 所属栏目:酷站 来源:谢涛
导读:导语:本文根据PaddlePaddle技术负责人、百度NLP技术委员会主席于佃海在今年英特尔人工智能大会上的演讲——《百度大规模深度学习应用实践和开源AI框架PaddlePaddle》整理而成。 PaddlePaddle技术负责人、百度NLP技术委员会主席于佃海 正文: 很高兴能有机

  从前面的介绍,我们也可以看到不同场景下深度学习的特点和规模化都存在着一定的差异。比如像图像这类的任务,很多模型的特色是非常的深,对于文本任务而言,它的特点在于基本上是通过一个Word Embedding的机制来支持深度学习建模,每个词语有几十到上千维的向量表示,这就给文本的任务带来了很大的差异性,因为光Word Embedding这个参数量就会达到非常大的规模。到实际应用任务场景下,像刚才我们讲到的Feed信息流和广告搜索的场景,我们可以设计使得这个模型的参数量更加巨大,在我们的实际应用当中,刚才讲到我们可以达到千亿级别这样的特征,再加上这样一个Embedding的表示,整个的模型是非常巨大的,给并行带来了更大的挑战。

  我们考虑大规模深度学习的问题不只是说数据量大,网络比较复杂,其实我们要同时考虑特征量以及计算特异性的问题。可以看到虽然有这样的一些差异,这些给深度学习框架的设计带来了挑战,但是整体上而言,神经网络的计算模式相对还是统一的,所以我们可以通过精巧的设计来打造更好的深度学习框架,支持广泛的深度学习应用任务。

  百度深度学习框架PaddlePaddle

  下面我介绍一下百度打造的深度学习框架PaddlePaddle,首先回顾一下,PaddlePaddle的原形要追溯到2013年,当时的它的名字叫做Paddle,这个名字表示是一个并行分布式深度学习。2013年的时候,工业界的深度学习框架还并不多见,我们当时也是刚刚在几个大产品线上成功应用了深度学习技术,在这样一个时刻,我们决定去打造一个通用的深度学习框架,就看到了这个框架对未来深度学习发展和应用的巨大意义。另一方面,在我们建设Paddle之初就提出了并行分布式这样的概念,也注意到在工业界大规模训练的重要性。

演讲实录:百度大规模深度学习应用实践和开源AI框架PaddlePaddle

  在2016年我们进行了开源,当时这个品牌名字升级为PaddlePaddle,希望大家一起来共建这样深度学习框架。到了今年我们Paddle整体在公司的战略地位更加明确,我们进行更多的投入,在前些天百度事业大会上我们发布了PaddlePaddle的套件。

  下面我会更详细的来介绍Paddle框架。对于PaddlePaddle而言,从开源之初我们就希望它能够具有易学易用、安全高效这样的特色。我们分别制定了相应的策略来使得这样的目标可以达成,希望能够提供更灵活、更快捷的Modeling,能够更高效并行的训练,以及广泛快速的部署能力。

  关于Paddle框架,我们可以回顾一下,最早的深度学习框架是基于Layer的概念,后来出现了Graph of Operators的组合,对于Paddle而言,保留了底层基于Tensor的表示和基于Operator的计算单元,但是我们在网络的定义上使用了Program的概念,希望能够比Graph在定义阶段可以更加简洁,让编程的同学可以使用深度学习。

  我们一开始就把Paddle定位为真正支持实际应用的深度学习框架,非常重视它的预测和部署能力,我们现在实现了多平台预测部署的能力,包括Paddle Serving和Paddle Mobile,我们分别针对服务器端和移动端做了不同的优化,然后在移动端我们现在支持广泛的硬件平台,我们未来也希望Paddle能够部署到更多的场景当中。

  除了框架之外,从利于开发者的角度,我们建立了一个平台层面的设施,也包含了像底层的模型库,像自动的AutoDL的网络搜索技术。进一步,我们又开发了和深度学习相关的组件,形成全功能的套件。对于PaddlePaddle整个套件的布局大体是这样的结构,分为核心框架、服务平台和模块组件三个部分。

  ·特色模型库,我们把它作为核心框架的一个特色功能。Paddle支持的官方模型在同类框架模型中支持数量最多,也是希望通过我们持续的维护,一些经典高频模型能够给开发者带来更大的便利。

  另外,是我们最近做的一个深度强化学习的框架PARL,它的意思是PaddlePaddle强化学习框架,它主要是两个功能:一是大规模的深度学习+强化学习的训练框架,二是提供了计算任务模型和算法的丰富组件。

  在NIPS 2018的强化学习评测中,百度参赛队伍使用基于PARL的系统获得第一名,比第二名领先非常多的分数。这个任务还是非常困难的,是戴假肢人体运动的控制,计算量非常大,竞争也非常激烈,前五名的队伍都是非常强的竞争对手。PARL在这个框架的支持下,我们通过算法优化和近千台CPU和GPU组合并行训练的框架下,非常出色地完成了这个任务。

  ·配套组件,我们也进行了丰富的建设,包括VisualDL这种看得见的深度学习,以及EDL作为Linux Foundation的深度学习基因会的创始项目而实现容错可伸缩的弹性的深度学习。

  ·服务平台,我们针对不同的场景需求,也是打造了不同特色的一些服务平台,像针对小白用户更零成本的EasyDL和针对更全面的一站式开发的开发平台。在平台层面之上我们着力建设了AutoDL,希望能进一步降低大家在网络建模这方面的工作难度。我们希望AutoDL实现三个目标:一是可以自动的设计学习网络,二是进行数据迁移建模,三是能够适配边缘计算,可以自动进行模型的裁减压缩来适配移动端的场景。可以看到在图像分类的Benchmark上,我们用AutoDL来自动设计的网络效果已经全面超越了专家手工设计的网络效果。

  前面我对PaddlePaddle整个套件的关键部分做了一个介绍,最后我还是想强调一下,对于PaddlePaddle,我们立志打造一个支撑工业级应用的高性能AI框架。

  最近很多人提到算力就是生产力,对于机器学习框架而言,它的性能优化是非常重要的,因为对于算力而言,不只是丰富的硬件资源,还需要软硬结合来更好的发挥硬件资源的能力以实现更好的计算能力。对于PaddlePaddle,我们是采用了自上而下的推进策略,除了通用的技术框架的高效设计之外,我们会投入比较多的精力在底层的优化包括通用底层优化,以及和硬件相关的一些优化。

  与英特尔强强联手,优化深度学习

  英特尔拥有丰富的强大的芯片能力,在芯片能力之上他们也在自下而上构建他们的AI栈,特别是在AI高性能计算库指令集合这一块非常有特色。在这个层次上,我们的合作空间非常的广泛。过去一段时间,我们也是和英特尔多地团队在多个方向上进行了深入的工作配合,截至目前,英特尔工程师对PaddlePaddle的代码贡献已经超过了一万行。

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读