投稿|PyTorch打败Google( 四 )


 
TensorFlow一开始选择的是静态图,PyTorch是动态图,这就是产品差异化背后的技术原因 。
 
不过这种技术选择带来的影响是长期的,因为图的构建方式确定了,框架的API也就随之确定了 。
 
API是框架和用户之间的接口,像汽车的方向盘和刹车 。同时就像汽车不能随便升级成用刹车挂档、方向盘加油一样,API也必须力求稳定 。
 
事实上所有严肃的基础软件都会把避免breaking change(破坏式升级)当作API设计的首要原则 。
 
所以TensorFlow在看到PyTorch靠动态图不停抢占市场的时候,自己却动弹不得,因为它升级就需要改变API,而它的用户基数越大,它就越难作出改变 。
 
只能缝缝补补往里继续加东西,比如Keras 。
 
但PyTorch并没闲着,它站稳脚跟后开始向工业界扩张 。2018年,PyTorch借助合并Caffe2,在性能和部署上大大前进了一步 。
 
这相当于打到了TensorFlow的大本营 。
 
TensorFlow终于坐不住了,于是以壮士断腕的决心,不顾breaking change的恶名,2019年把TensorFlow升级到了2.0,重构API,增加动态图 。
 
有人说这体现了Google的傲慢,它视开发者如草芥 。还有人建议Google出一个技术团队,把原来在TensorFlow1.0上的能跑的东西在2.0上重新实现一遍 。
 
但可能它也是没办法,总不能坐以待毙吧 。
04 后记仔细想想,PyTorch的三点其实是一点,叫一点的三个方面可能更加准确 。
 
这样的分析或许有点马后炮的意思,但不管PyTorch是有意为之还是纯属巧合,这个边缘崛起的故事还是相当值得一看 。
 
那是不是说TensorFlow就这样输掉了?
 
并不是,前边提到,只是决战会在他们两个之间展开,现在功能上两者几乎齐平,但从用户存量来说,TensorFlow的绝对值应该比PyTorch还要多不少 。
 
而且未来还有新变量,那就是云 。
 
云作为一种新的软件分发机制,势必对软件的市场格局产生深远影响 。根据Google的测算,2029年,77%的企业IT将以云为主 。
 
谁在云上做的好,谁才是最终赢家 。
 
不过我觉得真正精彩的是框架背后的人 。框架的分分合合叫趋势,人的流动才是故事 。
 
比如Torch的创始人里,Ronan Collobert在Facebook,而Samy Bengio去了Google;比如Caffe的作者贾扬清,读博时自己开发了Caffe,毕业后去Google参与了TensorFlow,之后又到Facebook,在这里不仅开发了Caffe2,还推动了PyTorch跟Caffe2的合并……
 
颇有东汉末年群雄并起,有识之士纵横天下的意味 。
 
【投稿|PyTorch打败Google】而所谓最终格局,与其说是趋势上的客观必然,不如说是他们推动下的主观偶然 。

推荐阅读