2024-12-21 科技 0
从深度学习开始流行,到深度学习框架的迭代,到各类实际应用的出现,不过短短几年时间。如今,诸如 TensorFlow、PaddlePaddle等深度学习框架风靡一时,也迭代了许多个版本。作为国际两大搜索引擎研发的深度学习框架,使用侧重点不同,却同样提供了优雅简洁的设计架构,并且还在不断发展。
为什么选用 PaddlePaddle而非 TensorFlow,主要是因为在用户实现上的一些差异性。尤其是针对传统互联网引入 AI模块的集成,可以较轻松地和企业分散式架构结合。并且其清晰的设计也可以在研究方面有所助力。
如果你不是 AI行业的“深度学习”者,但是却想借助 AI技术帮你实现项目目标,那么百度的分散式深度学习平台 PaddlePaddle或许是个不错的选择。
1
PaddlePaddle和 TensorFlow的使用差异
我们从以下几个角度来对比下 PaddlePaddle和 TensorFlow在使用体验上有哪些不同:
算法封装程度
PaddlePaddle对自己的定位是 easy to use,因此对很多算法进行了完整的封装,不仅针对目前现成的 CV、NLP等算法 (如 VGG、ResNet、LSTM、GRU等),它在模型库 models模块下封装了词向量、RNN语言模型、点击率预估等 N个技术领域人工智能的通用解决方案。特别是 NLP自然语言处理上有很多现成的应用,比如情感分类,神经机器翻译,阅读理解、自动问答等,使用起来相对简单,并且没有向用户暴露过多的 python界面。所以跟适合快速开发和新入门的开发者。
而 TensorFlow相对偏底层,使用 TensorFlow 需要编写大量的代码,使用上手困难,更适用于相对偏科研的人群。
文档友好性
因为 PaddlePadddle 是国内巨头百度开源的框架,他的本土性不仅非常符合国人的使用习惯,而且非常重视主流互联网技术的使用场景和解决方法。它的中文文档相对友好,适合普通开发使用。它的文档比较注重怎么用它已经实现好的网络,比较适合需要成熟稳定的模型来处理新数据的情况。
开发效率
PaddlePaddle 上的代码和设计更加简洁,占内存小。用它来开发模型显然能为开发者省去一些时间。加之百度自主研发的深度学习平台 paddle,已经内部使用很多年,成熟稳定,这使得 PaddlePaddle 很适合于工业应用,尤其是需要快速开发的场景。
TensorFlow虽然一直在围绕着算法推出各种配套服务。但也许由于 TensorFlow扩张的太快,做优化的人不够多,导致现在运行效率就算是分散式版本都比其他框架都要慢,而且版本间有时候函数界面经常出现不兼容的现象。
分散式架构
PaddlePaddle和 TensorFlow的分散式部署都做的很好,在活跃度、稳定性上都是一流,并且在代码质量上也不分伯仲。同时都与 Kubernetes紧密结合。从设计理念和实现思路来看,Paddle EDL和 KubeFlow有非常多的相似之处。从开源的时间来看 ,二者也是同一时段。
但是,PaddlePaddleEDL对 Kubernetes的整合更深入些,比如利用可定制的资源分配方式,和自定义逻辑与 Kubernetes API交互。而 KubeFlow似乎直接使用 Kubernetes一般性的功能。因此,在弹性调度这个功能上,PaddlePaddle采取的是前文讨论的 EDL方式,而 KubeFlow现在是 HPA方式。
另外,虽然二者都支持一般的 Kubernetes+docker环境,KubeFlow和 Google在深度学习生态系 统中的开源项目一样,非常推崇在 GCE上布署,深度整合 Google云服务。而 Paddle EDL并没有强调布署云的供应商服务。
支持多种集群方式
PaddlePaddle和 TensorFlow都具备一个特点是其他框架无法匹敌的:他们都支持模型并行和数据并行,就算手头没有 GPU也可以跑起来大数据的 DeepLearning。但是,paddlepaddle支持多机多卡训练,并且本身支持多种集群方式。而 TensorFlow并不支持多机 CPU并行。
总之,相比于 TensorFlow,PaddlePaddle更加本土化,具备易学易用、高效灵活等特点,提供丰富的算法服务,包括机器视觉、自然语言理解、推荐系统等,为用户提供了直观、灵活的数据界面和模型配置界面,支持 CNN、RNN等多种神经网络结构和优化算法。简单书写配置文件即可实现复杂模型,此外,在计算、储存、通信、架构等方面实现高效优化,有助于充分发挥各种资源的性能,而且全面支持多核、多 GPU、多机环境,能够轻松应对大规模训练需求。
2
分桃子和分黄瓜的天壤之别
举一个具体的例子,去年 9月北京工业大学的学生利用百度深度开源框架 PaddlePaddle,为平谷的桃农制造了一台智能桃子分拣机,可以根据桃子的颜色、大小、光亮等诸多特征,为其实现分拣 。在此之前,日本开发者 Koike用 TensorFlow开发了黄瓜分拣机。 二者看似一样,实际大有不同。
首先,开发者成本相差很大。日本开发者在用 TensorFlow进行不同分类的黄瓜图像录入时,其用到了 7000张照片,依靠全家成员耗时三个月最终才完成了录入工作。而北工大 PaddlePaddle的分桃项目这边,用到了 6400张照片,但是所有数据的采集和标注,只用了一个人不到一天时间完成,相比于 TensorFlow减轻了巨大的工作量。
其次,官方介入的深度不同。谷歌仅仅对项目做了营销宣传,而 PaddlePaddle收到北工大学生发现的问题反馈后,及时回复以及解决,百度方面更为积极的介入到开发者的开发过程中。
再次,二者开源的目的不同。谷歌有着广撒网的基因,旗下拥有至少超过 60个开源项,其更倾向于打造更多的开源项目,以占领未来市场。 而百度的目的并非面面俱到,而是对开源项目进行更专注的投入,抬高其战略重要性。 因此,PaddlePaddle更为务实,除了提供基本的框架源码之外,还提供了整体解决方案,融合机械领域的相关经验,直接为开发者提供跨行业的解决能力,可以更好的融合,并进一步实现商业化落地。
最后,商业化潜力不同。由于前三个方面的差异,最终决定了 PaddlePaddle与 TensorFlow的商业潜力差异。TensorFlow由于对开发者支持少,因此,其从开发者到商业落地,时间也自然会更长。而百度的的 PaddlePaddle,由于战略级较高,并且赋予了更多支持,因此开发者更容易成功,并最终实现更大规模的商业化。
3
PaddlePaddle落地项目现场免费体验学习
除了本文提到的一些应用场景,PaddlePaddle在深度学习框架方面,还覆盖了搜索、图像识别、语音语义识别理解、情感分析、机器翻译、用户画像推荐等多领域的业务和技术,并且在不断更新和拓展。同时也提供了大量的机会和培训,供开发者学习和使用指导。
一篇文章所能表达的范围实在有限,不如现场动与 PaddlePaddle技术专家和使用者切磋一下,手动体验更真实!
百度 AI 开发者实战营第二季全新开设“深度学习公开课”,由深度学习专家深入解读 PaddlePaddle的特性、模型与应用案例,为 AI工程师与希望进入人工智能领域的资深开发者打造一条快速进阶之路。
百度深度学习公开课·深圳站将于 2018年 5月 12日在深圳科兴科学园国际会议中心举行。
活动时间:5月 12日 9:30-16:00
活动地点:科兴科学园国际会议中心三层
活动地址:广东省深圳市南山区科苑路 15号科兴科学园 B4单元
活动议程:
09:30-10:00 签到
10:00-11:00 PaddlePaddle基础与 EDL/VDL
11:00-12:00 PaddlePaddle Workshop+Q&A
12:00-13:30 午餐、自由交流
13:30-14:20 PaddlePaddle模型:目标检测 -航拍图像检测
14:20-15:10 PaddlePaddle与计算广告点击率预估
15:10-15:20 小测试
15:00-15:50 现代人工智能的新趋势
15:50-16:00 授予结课证书