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

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

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

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

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

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

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

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

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

PyTorch:赢了当下,难顶未来

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

如今在事关开发效率的深度学习平台问题上,百度的落地意识也觉醒最早&实践最深。先是成功跻身世界三大深度学习框架的“国货之光”飞桨,凭借简洁的设计和出色的大规模训练&部署方面的性能优势,在工业落地方面丝毫不输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开发流程非常顺滑。

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

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

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

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

点击阅读原文或者自己百度直接搜索EasyDL,就能访问他的官网参与活动,去释放一下自己的想象力吧!

好了,只能帮你到这里了,快去试试吧!

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

深度学习平台的未来:谁会赢得下半场?相关推荐

  1. 统信 UOS 适配支持百度飞桨 AI 深度学习平台;阿里回应“马云遭印度法院传唤”;fastjson 1.2.73 发布 | 极客头条

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 一分钟 ...

  2. AI如何变革家居软装?拍图就能搜商品,深度学习平台飞桨新玩法

    允中 发自 凹非寺 量子位 编辑 | 公众号 QbitAI 随着消费互联网流量红利的逐渐殆尽,移动互联网的主战场转向产业互联网,家居行业3D数字化进程高歌猛进,行业开始沉淀下了大量的与真实商品对应3D ...

  3. 第九章:深度学习平台及框架

    目录 ➢ Part One.深度学习平台概览 ➢一.深度学习平台框架对照 ➢ Part Two.TensorFlow ➢一.TensorFlow的起源 ➢二.TensorFlow中的张量 ➢三.Ten ...

  4. 推动量子计算与AI融合,飞桨成为中国首个支持量子机器学习的深度学习平台

    "新基建"给中国"产业智能化"带来强劲的新引擎.飞桨作为智能时代的操作系统与技术底座,也再次迎来高光时刻.5月20日,由深度学习技术及应用国家工程实验室与百度联 ...

  5. 推动量子计算与AI融合,飞桨成为中国首个支持量子机器学习的深度学习平台...

    "新基建"给中国"产业智能化"带来强劲的新引擎.飞桨作为智能时代的操作系统与技术底座,也再次迎来高光时刻.5月20日,由深度学习技术及应用国家工程实验室与百度联 ...

  6. 【深度学习】老师木讲架构:深度学习平台技术演进

    新智元推荐   来源:OneFlow [新智元导读]近日,袁进辉(老师木)代表OneFlow团队在全球互联网架构大会上海站做了<深度学习平台技术演进>的报告.报告包括深度学习的计算力问题. ...

  7. 百度CTO王海峰:深度学习平台+大模型,夯实产业智能化基座

    2月27日,中国人工智能学会首届智能融合产业论坛在成都顺利举办.本届论坛由中国人工智能学会(CAAI)主办,中国人工智能学会智能融合专委会.百度公司.深度学习技术及应用国家工程研究中心和电子科技大学联 ...

  8. 饿了么 python_饿了么深度学习平台 elearn

    Deep Learning.AI.Machine Learning 关于"深度学习.AI.Machine Learning",基本上这三个词同时都听得见,但是大家不太清楚其中的关系 ...

  9. 腾讯云机器学习平台技术负责人:揭秘深度学习平台DI-X背后的秘密

    本文转自:https://news.cnblogs.com/n/566061/ 腾讯正式发布了旗下深度学习平台 DI-X(Data Intelligence X),这是继今年 1 月推出 FPGA 云 ...

最新文章

  1. 内存泄露排查之线程泄露
  2. 71《SQL学习指南(第二版)》mysql 的数据类型和范围
  3. java中,字符串和集合判断是否为空
  4. win8.1注册表-修改资源管理器的默认路径regedit
  5. Python重现创业板指数行情
  6. Anaconda 安装操作及遇到的坑
  7. 自动化集成:Pipeline整合Docker+K8S
  8. iptables官方文档
  9. 21、List遍历时修改元素的问题
  10. 基于ARM-contexA9-Linux驱动开发:如何获取板子上独有的ID号
  11. Shape Correspondence and Functional Maps
  12. Cut Curve randomly
  13. JSP 页面传值方法总结(转)
  14. Windows电脑微信多开方法
  15. 谈谈时间管理--陶哲轩
  16. BZOJ 2429: [HAOI2006]聪明的猴子|最小生成树kruskal
  17. 制作一个简单的选项卡插件
  18. 贝壳IPO背后最别致的光彩:看不见的价值观
  19. 抖音小店运营规则;;超详细小店违规处罚条例;丨国仁网络资讯
  20. java入门软件安装教程,PDPS软件-安装入门教程 20200406

热门文章

  1. PHP操作excel类 PHPExcel
  2. SQL Server 2008R2数据库文件导入到SQL Server 2008数据库中
  3. 简单的C语言程序合集-2
  4. 一个风骚的C语言操作
  5. TQ210 —— S5PV210 gboot设计
  6. nyoj187 快速查找素数
  7. python 微信机器人_Python 微信机器人
  8. LeetCode 1791. 找出星型图的中心节点(图出入度)
  9. LeetCode 1726. 同积元组(排列组合)
  10. [Kaggle] Spam/Ham Email Classification 垃圾邮件分类(RNN/GRU/LSTM)