图片来源@视觉中国

文|郭华
2015年,谷歌发布了机器学习框架TensorFlow,凭借其技术上无可争议的支配地位,TensorFlow迅速成为该领域的霸主。
2017年,在TensorFlow全天之际,Facebook发布了PyTorch。 谁也没想到,仅仅四年后,终于把前者从王座上拉了下来。
在剥除了正义和邪恶之后,从某种意义上说,这是大卫推翻巨人歌利亚的故事。
01机器学习框架什么是简史机器学习框架?
这必须从机器学习开始。
你可能听说过人工智能,机器学习是人工智能的实现手段。 机器学习之父Tom Mitchell定义了“如果某个程序在任务t中,且效果p随着经验e的增加而同时增加,则该程序可以学习”。
这里有两个要点。 第一是程序,第二是经验。 程序的核心是模型,经验表现为数据。 其实这个定义也涵盖了大数据的概念。 但是,大数据一般强调数据,机器学习强调模型。
简而言之,机器学习框架是一组用于机器学习服务的工具,用于加速模型的开发和应用。
为了能用乐高快速制作房子和车等各种模型,乐高是一种框架。
因此机器学习框架与机器学习的关系就像生产关系和生产力一样,机器学习技术的发展决定了框架的形态,框架反过来可以促进前者的发展。
虽然是有名的框架,但根据诞生时间进行排序,主要有2002年的Torch、2007年的Theano、2013年的Caffe、2015年的TensorFlow、Keras和2017年的PyTorch个。
当然,这些只是与本主题相关,还有很多其他传统的AI框架和库,每个都满足了某个特定的场景,但从整体上看,可以说是多点分发。
直到2016年阿尔法go大战的李世石,这似乎是一个奇点事件。
我记得第一局的李世石认输了。 当时我们在云南共建,阿尔法go不仅打败了李世石,也打败了云南的美景,一路上人人都在谈论它。
用李安的话来说,“我不知道,但我很受打击。 ”
受到冲击的不仅是我们,全世界的人和资本也受到了冲击。
alpha go的技术是深度学习,深度学习是一种机器学习,其特征在模型上,深度学习的模型是神经网络模型。
从Alpha GO开始,机器学习的方向开始统一于深度学习。
对底层框架来说,这相当于吹响了冲锋的号角。
经过反复分裂,它们逐渐形成了两个大阵营。
一个是TensorFlow阵营。
tensorflow于2015年被谷歌开放源代码化。 由于其设计理念与Theano非常相似,谷歌参与的TensorFlow问世后,Theano就不太需要存在了。 而且Theano的主要创始人Ian Goodfellow也在谷歌工作。 2017年,Theano官宣停止了维护,同年,Keras被添加到了TensorFlow。 这构成了实力雄厚的第一阵营。
一个是PyTorch阵营。
pytorch于2017年由Facebook开放源代码化。 PyTorch的设计当初可以看作是Torch的Python版。 和Theano一样,Torch的主要创始人也在Facebook上。 Caffe创始人贾扬清在完成Caffe后,首先去了谷歌开发了TensorFlow,然后去了Facebook。 在Facebook上,他开发了Caffe2。 2018年,Torch被标记为不再活跃,其主要维护者宣布将主要关注PyTorch,同年,Caffe2也集成到了PyTorch中。 这构成了第二阵营。
在一个要素自由流动的市场中,行业成熟的标志是出现头部公司。
所以,TensorFlow和PyTorch的差异化意味着决战将在它们之间展开。
从时间上看,TensorFlow总是比PyTorch早,开源时间早,集成时间也早。
但从趋势来看,TensorFlow的领先优势越来越明显,据谷歌trends称,甚至PyTorch也超过了这一点。
图1谷歌趋势: pytorchvstensorflow
02巨人歌莉娅谷歌确实是技术歌莉娅。
既不说安卓,也不说搜索,也不说谷歌地图。
熟悉的人应该还记得大数据的故事。
从2003年开始,谷歌将自己内部使用的几种数据处理技术陆续整理成论文,并公开发表。 其中具有基础性的有3个,分别是计算框架MapReduce、文件系统GFS、表存储器BigTable。
很多人利用这一瞬间扩大了视野。
在读论文的很多人当中,有一个叫Doug Cutting的青年。 他觉得这些技术具有通用性,就像论文里说的那样自己制作了里面的系统。
谷歌的话,我心中有戚杨。
于是,有名的、马上成为大数据事实标准的Hadoop诞生了。
你可能听说过AlibabaCloud (阿里巴巴云)的飞天5K的故事。 在王坚的助力下,AlibabaCloud (阿里巴巴云)参考Hadoop开发了自己的大数据系统。 飞天5K意味着该系统成功支撑了5千个节点。
但是,飞天5K发生在2013年,Hadoop发生在2006年,谷歌论文发生在2003年。 不知道谷歌内部系统的启用时间是哪一年。
什么叫技术代差,这叫技术代差。
Doug Cutting后来被称为“盗火者”,其三篇论文被称为“谷歌三驾马车”。
所以在技术领域,谷歌隐藏了很多黑科技,随意拿出自己已经很久没用或者没用的系统发布,给人一种江湖上要下血雨的印象。 例如,我在蚂蚁的时候,经常听到某个谷歌的伟人回国后,用蚂蚁再次实现了谷歌使用的系统,登上了顶点。 我恨视野太窄了,不在其中。
而且,TensorFlow不仅是谷歌直接开放源代码化自己的内部系统,也是在优化版——TensorFlow之前。 谷歌还有2011年开始的DistBelief。 TensorFlow是将DistBelief的许多问题集中升级而成的。
而且,alpha go也是谷歌的东西,而且在TensorFlow上运行。
因此,TensorFlow应该比真人版的Hadoop更容易成功,但Hadoop出来后成为了大数据的事实标准,但TensorFlow上没有。
不,好像还在走下坡路。
IT行业有大卫定律,称市场上的第一代产品总是自动获得50%的市场份额。 TensorFlow比PyTorch早,技术上没有世代差异,但在有明显优势的情况下被PyTorch所吸引。
确实不可思议。 可以毫不夸张地说,谷歌输了。
03大卫的战略是,PyTorch做了什么?
我知道两者有相当大的争议,但主要集中在技术比较上。
确实,技术是一切的基础,但毕竟被比较的是谷歌,在这个领域有杰夫德恩、深度学习图灵奖获得者以及一系列顶级专家。 引用腾讯机器学习平台负责人潘欣的原话,谷歌将在2015年后的几年中,在TPU、Transformer、BERT、Neural Machine Translation、Inception等全球范围内Neural Architecture Search、GAN、Adverserial Training、bidrectionalrnn……谷歌的技术不行,似乎很难成立。
所以我倾向于认为问题出在其他地方。
周其仁说自己观察经济现象有两个法门。 一个叫远,一个叫简,远就是看大势,简永远是选择最简单的指标。
我认为PyTorch大势所趋的战略才是问题的关键。
具体来说,有三点:差异化的产品定位、顺应了用户的趋势、抓住了TensorFlow的反关节。
三点环结合在一起,构成了PyToch的竞争战略。
首先谈谈差异化的产品定位。
任何挑战者进入市场时,都需要通过差异化找到自己的立足之地。
PyTorch也不例外。
市场用户可以分为工业界和学术界两组,发现两者有不同的需求。 工业界关注模型的应用,如配置、性能等,学术界关注模型的开发。 不难看出,工业界基本诉求稳定,一般模式上线后会跑很久,但学术界以研究为中心,频繁修改模型验证思路,对性能要求不高,不介意引进。
TensorFlow的优点在于模型的应用。
在谷歌强大的开发能力下,TensorFlow不仅性能出色,而且支持多端部署,无论是云端分布式还是边缘手机端都没有问题。 但是,谷歌的开发能力太强了,TensorFlow可能不太关注模型开发的易用性。
PyTorch意识到这是一个机会,在自己的官方论文中明确表达了自己的定位——将研究者放在首位( put researchers first )。
图2 Facebook论文《PyTorch : An Imperative Style,High-Performance Deep Learning Library》
于是很快就占领了学术界。
据paperswithcode统计,截至2021年10月,论文中PyTorch与TensorFlow的应用比例为86:14,TensorFlow回落明显。
图3 paperswithcode--论文适用的框架比例
这个时候的市场结构是这样的。
图4 PyTorch VS TensorFlow市场结构1
除了用户趋势外。
地产界有一种说法,短期看金融,中期看土地,长期看人口。
机器学习框架的用户也有趋势。
工程师是怎么来的? 高中毕业进入大学,大学毕业了。本科,获得硕士和博士学位后,毕业上班,进入工业界。
这个朴素的道理决定了用户基本上从学术界流向工业界。
所以PyTorch相当于占领了学术界,占领了上游。 熟悉PyTorch的人带着PyTorch进入工业界,同时新同学陆续进入学术界,又组成了增量用户。
用发展的眼光看问题,市场是这样的。
图5 PyTorch VS TensorFlow市场结构2
最后谈谈TensorFlow的反关节。
周鸿祎在《我的互联网方法论》中提到了反关节这个词,小公司如果有大公司的反关节,大公司的优势就会不堪重负,越阻力越痛,只能看着你扩张。
PyTorch有TensorFlow的反关节。
建立神经网络有两种技术路线,分别是静态图和动态图,静态图性能好,便于动态图调试。
TensorFlow最初选择的是静止图像,PyTorch是视频。 这就是产品差异化背后的技术原因。
但是,这样的技术选择带来的影响是长期的,因为确定了图的构建方法,所以框架的API也是确定的。
API是框架和用户之间的接口,例如汽车方向盘和刹车。 同时,API也要力求稳定,避免汽车不能像刹车挂档、方向盘加油一样随意升级。
事实上,所有认真的基础软件都将避免破坏性升级作为API设计的首要原则。
因此,当TensorFlow看到PyTorch在动态图中不断占领市场时,它自己就动弹不得。 因为,升级需要变更API,用户基数越大,进行变更就越难。
只能缝缝补补,继续往里面放东西。 比如说Keras。
但是,PyTorch没有闲着,而是站稳了脚跟,开始向工业界扩大。 2018年,PyTorch通过集成Caffe2在性能和部署方面迈出了重大步伐。
这相当于进入了TensorFlow的大本营。
TensorFlow终于坐不住了。 于是,壮士决定切断手臂,无视breaking change的恶名,2019年将TensorFlow升级到2.0,重构API,增加了动态图表。
据说这体现了谷歌的傲慢。 那个被认为开发者像拟南芥一样。 也有人提议向谷歌推出技术团队,用2.0再次实现原本在TensorFlow1.0上跑的东西。
但是,那也可能没办法。 不能坐以待毙吧。
04后文仔细想想,PyTorch的三点其实是一点,被称为一点的三点也许更准确。
这样的分析可能有点后劲,但无论PyTorch是有意为之还是偶然,这个边缘崛起的故事都相当值得一看。
那就是说TensorFlow就这样输了吗?
不,如上所述,决战在他们俩之间展开。 现在,虽然在功能上两者几乎是同一面,但从用户库存来说,TensorFlow的绝对值应该比PyTorch多很多。
而且未来会有新的变量。 那就是云。
云作为一种新的软件分发机制,必须对软件的市场结构产生巨大的影响。 据谷歌估算,2029年,77%的企业IT以云为中心。
是谁在天上做的,谁是最终的胜利者?
但我认为真正棒的是框架背后的人。 框架的分合被称为趋势,人流才是故事。
例如,在Torch创始人中,Ronan Collobert在Facebook,Samy Bengio去了谷歌; 例如,Caffe的作者贾扬清在读博时自己开发了Caffe,毕业后去谷歌参加了TensorFlow,之后去了Facebook。 在这里不仅开发了Caffe2,还推进了PyTorch和Caffe2的合并……
相当东汉末年群雄齐发,寓意有识之士纵横天下。
而最终的结构,与其说是趋势上的客观必然,不如说是他们推动的主观偶然。
光遇1.23每日任务该怎么完成呢?在光遇世界有着各种精彩有趣的任务内容,玩家可以完成后获取大量的游戏奖励,小编
《云顶之弈》这游戏中卢安娜的飓风这件武器最近版本更新中被强化了,分裂攻击的伤害效果大大提升。有些小伙伴
迷你世界激活码2023是哪些呢?在精彩有趣的全新挑战活动中,玩家可以体验到更多丰富的游戏奖励。小编今天准备了
很多传奇的老玩家关心关于贪玩蓝月祝福油怎么用的相关问题,今天柠檬友玩小编给大家搜集整理了如下内容,希望对
《魔兽世界怀旧服》中存在着多样的公会制度,DKPROLL团就是其中之一,关于这个制度的意思好优劣势,本文将为你解
斗罗大陆魂师对决阵容最佳搭配2023,新版本上线了很多魂师,我们应该如何搭配呢?以下为大家分享新版本顶级阵容大
时间:2022-12-22
时间:2022-12-22
时间:2022-12-22
时间:2022-12-22
时间:2022-12-22
时间:2022-12-22
时间:2022-12-22
时间:2022-12-22
时间:2022-12-22
时间:2022-12-22