文|张艺得底层创新者,得天下。智能手机时代,PC巨头微软,试图与苹果iOS、谷歌Android进行“三国杀”;AI时代,在深度学习底层框架的江湖中,谷歌和Meta你追我赶,互不
文|张艺
得底层创新者,得天下。
智能手机时代,PC巨头微软,试图与苹果iOS、谷歌Android进行“三国杀”;AI时代,在深度学习底层框架的江湖中,谷歌和Meta你追我赶,互不让步。
由于AI底层框架投入资金量大、风险大,所以几乎只有不差钱的科技巨头才有实力投入重金,如国外谷歌的TensorFlow和Meta的PyTorch,国内百度的PaddlePaddle。
“实力雄厚的美国互联网巨头对AI底层技术战略性投入力度较大,但中国的AI产业主要受需求拉动,大多数AI公司布局应用层。国内大部分公司的AI研发都选择使用外资巨头开源的TensorFlow、PyTorch等深度学习底层框架。”中金基金在研究报告中表示。
AI底层框架之争,纵有TensorFlow、PyTorch、Keras、Caffe、MxNet百花齐放,但最终还属谷歌和Meta两分天下。如今,TensorFlow与PyTorch几乎平分春色。
近日,外媒Business Insider采访了一系列开发人员、硬件专家、云供应商以及与谷歌机器学习工作关系密切的人,获得了同样的观点:2015年诞生的TensorFlow,曾经辉煌一时,而Meta在2017年开源的PyTorch正在成为该领域的霸主,在此战争中,谷歌开始押宝JAX。
随后,TensorFlow官方博客回应,没有放弃TensorFlow,将与JAX 并肩发展。
虽然谷歌否认,但这个曾经帮谷歌打赢李世石,让谷歌AI一战成名的AI框架,已经开始跌落神坛。
不过,谷歌试图通过“自我革命”来重现当年TensorFlow一统天下的雄风,这个艰巨的任务则由新的深度学习框架JAX实现。Google Brain、DeepMind、DALL·E Mini等等的背后都有JAX的身影。据《商业内幕》透露,预计在未来几年内,JAX将覆盖谷歌所有采用机器学习技术的产品。
从TensorFlow到JAX, 随着AI发展阶段的变化,底层框架的创新和上层应用的关系也在发生微妙的变化。
“传统的技术研究是从底层入手,逐渐发展,最后形成demo或产品业务,但现在应用层的业务需求可以反馈影响到底层设计。”作为技术人员,林吉向光锥智能分享了对AI行业阶段性变化的观察。人工智能科学LeCun也曾公开表示,深度学习框架之间的激烈竞争,已经进入了一个新的阶段。
大厂的AI底层框架之争,是一场与时俱进的AI基础设施建设军备赛。
01
迎战PyTorch
TensorFlow落寞
曾几何时,Tensorflow有多红?数据显示,截止到2020年11月,TensorFlow的下载次数已经达到了1.6亿次。
“孩子今年开学已经上小学五年级了,现在报课外班学Tensorflow 还来得及吗?”
2018年,知乎上一个提问吸引了亚马逊首席科学家李沐的回答:“有点晚。我家娃一岁开始就开始读读paper,现在已经可以熟练敲键盘写MXNet代码,虽然语法错误还比较多。他妈妈在Google上班是用Tensorflow,但他对MXNet兴趣更大一点。不过比起敲代码,调参他更在行。”
图:李沐在知乎上的回答截图
AI大牛亲自下场造梗,引得众人讨论。
2015年10月,Tensorflow面世,不到半年就名声大噪。2016年3月,AlphaGo与围棋世界冠军、职业九段棋手李世石进行围棋人机大战,以4比1的总比分获胜,背后的核心底层框架Tensorflow火速出圈,成为AI领域的崭新黑马。2017年5月,在中国乌镇围棋峰会上,AlphaGo与排名世界第一的世界围棋冠军柯洁对战,以3比0的总比分获胜。
彼时,Tensorflow发展如日中天,AI江湖以其为旗帜,打开任意一家AI创业公司的官网产品技术介绍信息,“Tensorflow”都可能出现在显著位置。
但是,Tensorflow独占鳌头的高光时期很快收到来自当时Facebook人工智能研究院的“战书”。2017年,后者基于Torch推出了PyTorch。
如果说Tensorflow是AI底层框架领域的阳春白雪,PyTorch就是下里巴人。
图片来源于网络
“做个类比,PyTorch就像Python,TensorFlow就像Java。从使用者的角度看,我特别不喜欢Java,因为干一个事之前要干很多事,上手门槛比较高,部署起来也比较麻烦,但是其底层运行效率非常高,Python则是任何一个学生都特别容易上手,但Python对于服务器,对于计算资源的协调使用效率其实非常低。”
人工智能企业Voilà!的创始人尚可总结道:TensorFlow性能高但门槛也高,PyTorch的优势则是更易用。“圈内有句玩笑话:TensorFlow什么都好,就是不好用。实际上一旦部署起来,整体运行效率比PyTorch高。”
因为“好用”的优势,PyTorch迅速成为TensorFlow的强劲对手。据量子位报道的数据显示,2019年,有55%的TensorFlow使用者“叛逃”到PyTorch阵营。PyTorch官方Twitter的关注者里,谷歌大神Jeff Dean也悄悄成了“粉丝”。
图片来源于The Gradient
行业普遍认为TensorFlow在工业届广泛应用,而PyTorch在学术圈赫赫有名。根据Paper with Code数据的统计,PyTorch论文比例达到了60%,TensorFlow的份额仅剩11%。
TensorFlow诞生之时,尚可也是建设团队成员之一。
“起初,谷歌内部的AI团队主要希望面向内部打造一个有通用价值、广而全的一套底层深度学习算法框架。当时,也没有TPU,GPU也比较贵,所以开发TensorFlow 1.0时,团队就意识到:因为要通用,训练效率必须高,不能吃掉太多的加速资源,保证最终成本经济实用。”他回忆道,这也是TensorFlow推出后就迅速被工业届广泛应用的核心原因。
随着谷歌推出TPU,并在2019年开放后,形成软硬件组合矩阵,这为TensorFlow带来了新的竞争力,然而这还不足以令其回到一家独大的巅峰时刻。
“TensorFlow 1.0版本,模型训练比较费劲,写代码的复杂度会高一点,需要自己提前把整个的网络图写出来,然后再给数据去做内容优化。PyTorch的代码写起来比较简单,构建图时就可以把数据填进去,类似于写普通的代码去调一个函数一样。”
从应用端的体验上,Voilà! CTO 苏勇(Steve Su)透露,对于商业化公司来说,TensorFlow的应用频率更高,但实际运用过程中,操作复杂依旧是“老大难”问题。对于大多数开发者来说,Meta没有自己的云服务,也没有在硬件方向做太多工作,主要以纯软件的方式做的,所以更加简单友好。
针对1.0版本“bug”的修复迭代升级,也是对PyTorch的第一次反击,2019年,TensorFlow 2.0版本上线。
图:TensorFlow 2.0
“很多人说2.0版本的推出是谷歌革了自己的一次命。但2.0版本时,却发现1.0版的模型代码基本上不能用。此外,在2.0版,如果遇到问题搜索解决方案时,出现的也是1.0版时的答案,得不到想要的信息。此时,很多使用者就会出走,转向PyTorch。”苏勇称。
迎战PyTorch,TensorFlow逐渐跌下神坛,谷歌试图重回巅峰。
02
AI大规模商业化
底层框架也要“接地气”
打不过就加入,JAX是吸收了PyTorch和TensorFlow精华的融合产物。
“PyTorch的人数在上涨,TensorFlow的使用者在逐渐逃离。所以,谷歌直接将TensorFlow两个版本融合,打出了新的名号——JAX。”苏勇表示,JAX是PyTorch和TensorFlow显著特点的结合体:容易上手,计算效率高。
JAX主要对于NumPy的性能优化做的较多,简单来说性能相比原来的方式提升几十倍以上。“NumPy本身是对于矩阵运算提升了很多,JAX基于NumPy再提升,这形成一个非常大的优势。”
据悉,JAX的计算函数API则全部基于NumPy,可以让模型很轻松在GPU和TPU上运行。简而言之,JAX计算速度很“快”。
“因为PyTorch易用性高,所以在高校学术届风靡。但是当学术圈和商业界破壁后,学术研究可以商业化后,工程师发现在PyTorch上的东西还要在TensorFlow上重新写一遍。”他表示,这个操作上的转移空间也是JAX的机会。
据谷歌官方表示:JAX生态系统开发中,也会考虑确保其与现有TensorFlow库的设计尽可能保持一致。这也是由于TensorFlow两个版本更新替代时,有过前车之鉴。
不过,随着AI从神话落入凡尘,应用的落地以及商业价值是核心。此时,对于底层框架来说,相比于技术之上的比拼,生态层面的竞争显得更为核心。
“从技术角度看,最终使用者对技术差距的感知会比较弱,反而能感知比较深的是生态,比如:身边有多少好友在用,研究的领域大多数人用的是哪一个,使用过程中反馈的问题能不能及时得到解决,有没有可以寻求帮助的一些渠道。”苏勇解释道。
就像手机系统,一些人最开始选择微软,但是最后微软的操作系统却悄无声息地淡出人们视野。因为开发者选择操作系统时,开发者不仅考虑上手的难度,还需要考虑做出来以后这个APP能不能活下来?
随着进入以商业化、规模化为导向的AI阶段,底层框架并非炫技之作,各大科技巨头都在“接地气”。
除了谷歌推出JAX外,如国内百度的飞桨平台也在强调,基于飞桨平台,AI开发和应用门槛不断降低,人人都可以成为智能应用的开发者。据百度CTO王海峰公开分享的成绩:飞浆平台已积累了477万开发者,创建了56万个模型。
图:全球AI开源框架Star数4月、5月榜TOP2
图片来源于OSS Insight数据
得开发者亲睐者,得天下。
科技巨头在底层框架上做主导,拥有较强的话语权,为了保证独立性,国内大厂会基于自己的平台持续去优化,也有一些大厂在研发探索底层框架,但中小企业可以不用做底层研究,直接依附大厂做开发。
“中小厂一般直接用开源的框架,否则跟不上时代。”苏勇认为,站在“巨人的肩膀上可以看得更高,走得更快”。
“对于底层框架的选择,我们希望和商业化形成正循环。”他解释道,今年3月,公司获得了SOSV中国加速参与的千万级融资后,商业化需求进一步激发。上层加速规模化的同时,底层框架作为地基是否牢固尤为重要。
“我们核心的一个场景是面向用户的搜索推荐场景,每秒查询率非常高,对结果的精准度要求也高,所以,工业届成熟应用的底层平台更加适合。”
所以,对于苏勇来说,如果JAX能在性能、易用性方面展现优势,相对于PyTorch,前者或将是一个确定性较高的新方案。“毕竟我们好多服务是用的是Google的,包括他们的云计算和TPU,整体适配度会高一些。”
原创文章,作者:谷歌,如若转载,请注明出处:https://www.kaixuan.pro/news/390597/