深度学习框架太复杂、太难学?百度EasyDL零门槛上手AI开发

此文无意引战,只想从历史发展的角度来谈谈深度学习大背景下的开发工具变迁,以及对未来发展趋势的想象。

TensorFlow:无力回天的深度学习里程碑

不知道有多少小伙伴是2017年以前入坑深度学习的,那时候人工智能概念火热,炼丹术方兴未艾,无论是学术界还是工业界,炼丹师们普遍处于在魔改神经网络结构,疯狂调参上分的阶段。

那时候PyTorch还仅仅是个玩具,NLPer普遍钟爱TensorFlow,CVer还在坚守Caffe。尽管当时TensorFlow存在API臃肿、静态图机制反人类、速度慢等种种槽点,但是总比用NumPy手写反向梯度传播来得强。而这个空窗期也正是TensorFlow最为巅峰的时期,一时间,CV、NLP、Speech乃至其他用到深度学习技术的应用领域的研究成果绝大多数都选择了TensorFlow作为开源代码。

图片1.png

那时候的深度学习开发者,是幸运的,也是不幸的。

幸运的是,人们不用纠结框架的选择,学习TensorFlow基本不会出错。

不幸的是,由于历史包袱,TensorFlow的API过于臃肿复杂,哪怕是有NumPy等数值计算经验的专业从业者也往往要耗费一两个月的时间才能入门,对于普通开发者和学生群体而言,甚至会出现耗费近半年的时间来学习深度学习框架的使用的情况。

对于学生来说,这是一个学期的珍贵时间,对从业人员来说,更是难以忍受的代价。有几个公司能忍受自己的员工消耗半年时间去学习一个框架,之后再去干活呢?企业往往是投入大量人力和资源去搞人工智能,但是却发现能在真实场景中应用的产品寥寥无几。甚至连能够真正运行的Demo都产出困难。

不过还好,几年前的AI时代不太讲求落地,能讲好故事就好了。所以尽管深度学习框架的学习门槛极其高,真正熟练掌握能用于工业级模型产出的人不多,不过由于不需要大规模落地,大家学不会也没关系,会做PPT就可以了。

PyTorch:赢了当下,难顶未来

有人说,PyTorch似乎解决了TensorFlow的痛点。

图片2.png

2018年-2019年,风云骤变,PyTorch凭借干净的API、与Python完美融合的动态图机制成功俘获了大量开发者的芳心,开发者调整深度学习模型底层结构、调试模型的代价明显降低了。不过事后开发者也发现了PyTorch的缺陷:多机多卡大规模训练速度慢、实现复杂,模型部署困难,依然免不了学习底层理论等。因此可以说,PyTorch的突破更多的是造福了致力于深度学习底层创新的研究者,对于迫切需要将想法快速变成AI产品的业界从业者来说,PyTorch并没有真正解决他们的痛点问题。而对于数学基础较为薄弱的学习者和爱好者来说,PyTorch的实际使用门槛也无疑还是太高了。

安卓、IOS开发之所以能大规模普及带来移动APP的爆发式增长,一个非常重要的原因就是安卓、IOS的开发者套件屏蔽了来自底层操作系统和硬件驱动的复杂细节,使得开发者能够非常快速、低成本的将想法变成真实可用的APP。显然,PyTorch并没有完成这个重要的里程碑式的任务,它依然需要开发者去直面众多繁杂的底层细节,且依赖足够的人工智能理论、数学基础和系统优化功底才能稳定完成各类可用的模型开发和部署。

总之,PyTorch相对TensorFlow是深度学习历史上的一大进步,赢得了当下。但是从人工智能当下发展趋势和对未来的预判来说,显然PyTorch是无法支撑起未来时代的想象力的。

飞桨:厚积薄发,抓住预训练时代

尽管PyTorch提升了框架的易用性和Debug效率,但是随着以BERT为代表的预训练技术的诞生,开发者们很快就发现了问题:

预训练模型几乎限定死了模型结构,导致PyTorch的灵活性似乎变得无用武之地了。

预训练模型的训练、微调和推理都要消耗大量算力,而速度慢、显存开销大、多机多卡支持差是PyTorch的天然劣势。

尽管深度学习社区在拼命为PyTorch打补丁,写踩坑记录,但是却依然难顶PyTorch特性对预训练时代的不适应。与此同时,TensorFlow却在着急让自己变得更像PyTorch,这无疑更让开发者们头大。学TensorFlow还是PyTorch?这是一个问题。

这时候,一个新的身影出现了——飞桨(PaddlePaddle)。作为深度学习框架的“国货之光”,百度七年磨一剑,终于在这个预训练时代厚积薄发,势如破竹般地迅速俘获了广大开发者的芳心。

图片3.png

一方面,它兼具PyTorch的灵活易用,又具备完全不逊TensorFlow的大规模训练与部署能力,此外,飞桨具有比PyTorch和TensorFlow更硬核且易用的显存管理能力和多机多卡训练能力,使得飞桨可以更加无压力的训练和部署大型预训练模型。更加值得一提的是,飞桨还通过内置的混合精度训练技术(2017年百度研究院提出)、显存重计算技术、Sharding机制等,使得单张图形卡训练大型BERT Large也成为了可能。

可以说,学术界受限于算力资源,飞桨通过硬核的底层优化,很好的缓解了预训练模型大量消耗计算资源问题,解决预训练时代的学术界刚需;工业界需要业务落地和大规模部署,飞桨则通过易用性和禁得起百亿流量冲击的部署能力,解决预训练时代的工业界刚需。

前不久,权威数据调研机构IDC也公布了2020年下半年深度学习框架平台市场份额报告。数据显示,在中国深度学习平台市场综合份额中,Google、百度、Facebook稳居前三,占据70%以上市场份额。其中,百度占比提升3.38%,增速第一,综合市场份额位列第二,与位列第一的Google几乎持平。

接下来,还有没有更大想象力的划时代产品呢?

我们先来探讨开发者与研究者的区别,造成区别最重要原因是两者的目标不同:

研究者的直接优化目标是人工智能基础设施,包括具备一定普适性的模型结构研究、训练方法优化、计算复杂度优化、理论模型完善等,使得未来人们开发人工智能产品的门槛尽可能低,效果尽可能好,速度尽可能快。

开发者的直接目标是人工智能产品,需要将预期的产品功能又快又好的开发实现,至于产品背后的理论优化工作和领域的普适研究工作,不应作为开发者的第一追求目标。

可惜的是,无论TensorFlow还是PyTorch,主要目标均放在了研究者,对于开发者更多是提供额外的模块或工具来打补丁,反而进一步增加了开发者的学习和使用负担。

如今,人工智能已经进行到了下半场,资本市场对人工智能技术的期待已经从PPT转移到了实际产品的落地上。然而落后的生产工具却让开发者感到异常难顶,既缺乏精力和基础来大力学习深度学习底层理论和PyTorch这类面向研究人员的复杂深度学习框架,又面临繁重的AI产品、模块开发压力。

提高开发人员的生产力,真的没有办法了吗?

AI圈子内流传一句俗话:学术研究看谷歌,工业落地看百度。比如,尽管最早提出神经机器翻译的不是百度,但是百度确是全球最早克服重重困难,将该前沿技术落地到机器翻译产品的公司。百度在搜索、信息流、智能交互等AI技术的重要落地场景早已前沿技术遍地开花,CV、NLP、语音技术等基于深度学习再升级,赋予更多业务场景新的生命力。

图片4.png

如今在事关开发效率的深度学习平台问题上,百度的落地意识也觉醒最早&实践最深。先是成功跻身世界三大深度学习框架的“国货之光”飞桨,凭借简洁的设计和出色的大规模训练&部署方面的性能优势,在工业落地方面丝毫不输TensorFlow和PyTorch,更加充分的发挥了工业界的算力优势和部署资源优势。

此外,其基于飞桨的BML全功能AI开发平台(Baidu Machine Learning,简称BML)则似乎满足了人们对人工智能产品开发的各种想象。它具备多种模型构建方式,开发者可以选择尽可能少地屏蔽不必要的复杂的底层API,也能够依靠自己的代码能力打造AI模型,同时,在部署问题上最大化减轻开发者的压力,强调“一站式部署应用”。一切为了帮助开发者最快速度完成一个人工智能产品模块的开发和真正的落地应用。

基于BML将想法变成现实可以有多快呢?

在BML中选择脚本调参模型构建模式,无需再像使用PyTorch、TensorFlow底层框架那样自己定义网络结构、从零开始手写训练流程等诸多细节,也无需再将训练得到的模型剪枝、量化等,进而使用专用的部署工具部署。对于BML平台来说,AI想法的从0到1只需要如下四步:

Step 1 创建训练任务

确定任务名称,记录希望模型实现的功能。

Step 2 上传并标注数据

通过EasyData支持图像、文本、音频、视频等多类数据的管理与标注,如:

分类功能的模型:只需按分类(如合格图片vs不合格图片)上传图片即可。

检测功能的模型:上传数据后,需要在数据中标注出需要检测的具体目标。

分割功能的模型:上传数据后,需要在数据中标注出需要识别物体的轮廓。

Step 3 启动训练并校验效果

在这一步中,百度BML独家预置了百度超大规模预训练模型,包括视觉超大规模预训练模型及NLP预训练模型ERNIE 2.0。只需选择预训练模型及网络,进行基本参数配置,即可启动模型训练。同时在这个环节里,脚本调参的建模方式还支持自动数据增强及自动超参搜索,减少工程师通宵达旦的调参成本,高效获取高精度模型效果。

Step 4 部署模型

根据训练时选择的部署方式,将模型以云端API、设备端SDK、私有化等多种方式发布使用。特别是随着端计算的成熟,端模型的转换和部署成为很多开发者的痛点,目前BML的端部署方案上已经支持四大操作系统,15+芯片类型,在设备端的预测速度可提升10倍。

使用百度BML,用户可以根据自己的能力和需求选择开发方式,在保证精度的前提下尽可能减少代码调整,从数据上传、模型训练、模型管理到模型的部署,一站式的AI开发流程非常顺滑。

图片5.png

如果脚本调参对与AI小白来说还是太难,飞桨还推出了EasyDL零门槛AI开发平台,专门面向零算法基础的AI应用开发者,零代码、最快15分钟搞定模型训练与部署,进一步降低AI应用的门槛。

与BML不同,EasyDL提供了全自动化的模型训练机制。担心精度不够?大可不必,因为EasyDL底层结合了百度 AutoDL/AutoML技术,针对用户数据能够自动获得最优模型和最优超参组合,进而基于少量数据就能获得出色性能和模型效果。可以说,使用EasyDL不仅可以快速实现“95%+准确率模型”,甚至连最后一公里的深度调参优化都能直接完成十之八九!

此外,EasyDL的想象力不仅在于彻底释放了AI开发者的生产力,使其可以专注在idea的实现上,而且,EasyDL提供了非常丰富实用的模型部署方案。使得开发者得到的模型不仅具备惊艳的效果,还直接具备实用能力,创造真实价值。训练完成后,开发者可将模型部署在公有云服务器、私有服务器上。通过使用EasyDL,已有来自工业、零售、政务、物流、互联网等超过20个行业的用户实现了智能化转型,将人工智能的力量赋予生产生活的各种场景。

图片6.png

对了还有个事情,现在百度EasyDL还正在搞一个「万有引力」活动,只要你通过EasyDL完成了业务模型的定制训练、部署和应用,就可以领取万元的专项代金券。如果你的模型落地效果还非常好,还有机会获得最高十万元的特殊补贴。

百度搜索EasyDL就能访问官网参与活动,去释放一下自己的想象力吧!

(0)
上一篇 2021年1月19日 11:44
下一篇 2021年1月19日 13:11