机器之心原创
作者:思
近日,PaddlPaddl1.0正式发布,这一适合国内开发者的框架为我们提供了超全的官方模型支持和最完善的移动端硬件支持。在PaddlPaddl走向成熟的这些历程中,它为机器学习社区贡献了非常多的实现及应用。机器之心访问了百度深度学习技术平台部总监马艳军和PaddlPaddl总架构师于佃海,他们向我们介绍了PaddlPaddl的「成熟韵味」都体现在哪。
自深度学习以分层逐步学习的奇思妙想崛起以来,深度学习框架就在不停地发展。在AlxNt还没有携带深度学习亮相ImagNt之前,由蒙特利尔大学LISA实验室所编写的Thano框架就已经开源,它可用来支持高效机器学习算法。Thano是目前DL框架中的元老,它开启了深度神经网络高效编程的先河,后来开源的框架都受益于Thano的先行探索。
自AlxNt之后,深度卷积神经网络在图像数据展现出无与伦比的能力,而伯克利大学AI研究中心维护的Caff也在年底正式开源。Caff支持非常多的计算机视觉领域算法,目前仍然有非常多的卷积神经网络模型还都依赖于这个框架。
此后随着深度学习在各种任务都以「暴力美学」的方式频频打破纪录,科技巨头也开始逐步开源内部的深度学习框架,包括Facbook主要维护的Torch、谷歌主要维护的TnsorFlow(年)和百度主要维护的PaddlPaddl(年)等。
因为学术研究机构主导维护的框架比较适合完成模型原型,但在大数据或大规模分布式计算等情况下很难有比较好的性能,因此由科技巨头主导维护的框架变得越来越流行。年4月19日发布1.0后的Caff不再更新版本,9月19日走过10年的Thano不再有官方维护。但与此同时,具有业务基础的TnsorFlow、PaddlPaddl和PyTorch等框架获得了更广泛的应用。
在这些根植业务的稳定框架中,由百度开发并维护的PaddlPaddl是适合中国开发者和企业的深度学习工具,而最近发布的PaddlPaddl1.0又标志着它已经走向成熟。成熟的PaddlPaddl官方所维护的模型数量基本上是最多的,包括自然语言处理、计算机视觉和推荐等领域的成熟模型。这些模型很多都是根据百度自身业务积累而开源的,甚至还会提供对应的预训练资源。例如在NLP中的情感分析任务上,PaddlPaddl就会提供基于中文的预训练模型,这对于开发者而言是非常有意义的。
成熟也就意味着PaddlPaddl能为开发者和企业提供从训练到部署的整套流程。从框架开发环境、AutoDL2.0自动设计深度模型、大规模并行训练框架到覆盖90%以上的移动端GPU加速,新发布的PaddlPaddl在数据预处理、模型搭建、模型训练和部署这一系列流程都展示了成熟的味道:
支持真正能解决企业问题的模型,所有成熟的模型都必须完备;
运行稳定、可靠且高效;
代码简洁,方便二次开发。
作为国内唯一成熟的深度学习框架,PaddlPaddl目前已经更新到了1.1.0。机器之心在本文中将从整体开发套件、官方模型、移动端支持以及并行计算等方面介绍成熟的PaddlPaddl目前已经走到哪了。
PaddlPaddlSuit
PaddlPaddlSuit是以深度学习框架为核心的套件,它从数据预处理到模型部署为深度学习的整个开发和应用流程提供了完整的工具。其中核心框架是从头构建模型的基础,而模块与组件可以帮助我们快速训练与试验模型。最后的平台会为开发者提供整体流程支持,例如AIStudio提供了各种竞赛教程与免费GPU资源,而EasyDL可以为完全没有基础的用户提供自动化的机器学习模型。
马艳军表示这三部分都是相互有联系的,模块与组件都是依托核心框架所做的工具,而平台是基于核心框架与组件所搭建的系统。例如在组件中,VisualDL能可视化整个训练和测试过程,包括损失函数的变化、模型计算图和中间生成的图像等。而PARL是深度强化学习框架性质的组件,它相当于提供了一套强化学习模型、算法和函数等,这些都还是基于核心框架的。
此外核心框架与组件又为平台提供了底层支持,例如我们可以在平台上直接可视化训练过程,或者在平台调用核心框架搭建模型。值得注意的是,使用深度学习设计深度学习的AutoDL2.0可以基于核心框架自动构建出非常优秀的模型。例如AutoDL在Cifar-10数据集上自动设计的神经网络能获得当前最优的测试集准确度97.9%,同比一般的RsNt-只能获得93.5%的准确率。
官方模型
PaddlPaddl1.0为推荐系统、视觉和自然语言处理任务提供了大量的官方模型,这对于开发者而言是非常难得的资源。马艳军表示为了吸引研究者与开发者,百度首先会开源一些比较经典的算法,这些算法在业界上已经有比较广的应用,且它们已经非常稳定。其次百度会开源一些前沿高性能模型,尤其是在各种竞赛获得第一的强大模型。特别是在NLP等百度传统强项,其开放的经典模型很多都包含一些百度特有的技术,这些技术在实际产品线上都已发挥了很大的作用。
百度在搜索和推荐等实际产品应用中积累的一些自然语言处理相关的核心技术都有开放出来,例如文本匹配和推荐的整套系列模型,包括对整个任务流程的支持。另外还有一些前沿模型,例如百度自研的人脸检测PyramidBox,该模型在WIDERFACE的多项评测中均获得第一名。
此外PaddlPaddl还会提供一些模型的简洁实现,例如在机器翻译中,百度会「精简」整个Transformr的模型代码,将本来很复杂的实现通过高级API或封装变得直观与易懂。
Transformr开源模型,开发者可以快速理解直观代码并完成二次开发。
马艳军表示其实现在Transformr的很多实现都非常复杂,开发者需要大量时间理解代码才能继续二次开发和部署模型。而PaddlPaddl相当于把实现做到足够简单,因此修改、训练、测试或部署都不会有太复杂的工作。
我们注意到,如果用户使用Tnsorflow来来开发Transformr翻译模型,需要在10万行Tnsor2tnsor代码中找出他需要的部分,而在PaddlPaddl下的Transformr翻译模型代码仅余行,开发者可以快速理解代码并完成二次开发。
其实除了PaddlPaddl官方维护的这些模型,很多具体领域也都会有一系列类似的工具,例如自然语言处理中的NLTK或计算机视觉领域的Dtctron等。于佃海表示,这些第三方的库很多时候都只是把各种算法整理出来,并以一种近似黑盒的方式提供使用。但是对于Paddl来说,它本身就是深度学习框架,因此搭上这些模型也会有很好的扩展性,我们可以直接调用这些模型,也可以对它们做二次开发。
此外,Paddl支持的开源模型还有另外一个特点,它们会基于百度在中文上的大数据做一些预训练模型,这对于中文文本处理或推荐系统都有很大的帮助。例如对于词法分析模型,Paddl提供的预训练模型已经在大规模汉语数据集上训练得非常好,开发者可以直接调用并用于自己的任务。
除了上面模型的挑选、简化和中文预训练等特点,Paddl支持的官方模型还有另一大特色,即覆盖了推荐、视觉和文本的大部分的任务和模型。
Paddl主要覆盖的任务,每一种任务有多个最优模型,例如目标检测中的SSD、PyramidBox和FastrR-CNN等。更详细的模型列表情查看开源地址。
Paddl官方模型
转载请注明:http://www.0431gb208.com/sjszlfa/259.html