查看原文
其他

TensorFlow败给PyTorch,谷歌:未来就靠你了,JAX!

CSDN 2022-06-23

整理 | 彭慧中       责编 | 屠敏
出品 | CSDN(ID:CSDNnews)

谷歌是机器学习领域的开拓者,它于2015年发布开源深度学习框架TensorFlow,开创了现代机器学习的生态系统TensorFlow一经发布便迅被开发者热捧,谷歌也由此成为了主流AI产品的领导者。

然而好景不长,在2017年Meta(前身Facebook)发布AI框架PyTorch之后,TensorFlow便逐渐失去了开发人员的青睐。如今,谷歌内部正押宝在一个取代TensorFlow的新AI项目——JAX。


PyTorch的后来居上


TensorFlow的人气近年来停滞不前,而PyTorch的人气持续攀升。在各个开发者社区,“PyTorch真香”论声势浩大,又在顶会数据上实力压倒TensorFlow,仅在工业界,TensorFlow尚能守住阵地。

据CSDN最热AI框架排名显示,尽管TensorFlow在中国开发者心中仍然排在PyTorch之前,但使用频率去年的48%,下降至今年的37%。

尽管PyTorch和TensorFlow都是基于Python开发的,但在外界看来,Meta则更注重维护开源社区,甚至不惜大量投入资源。而且,Meta关注到了谷歌的问题所在,认为不能重蹈覆辙。他们专注于一小部分功能,并把这些功能做到最好。

如今,开发人员、硬件专家、云服务供应商以及熟悉谷歌机器学习项目的人士一致认为:“TensorFlow已经失去了开发人员的芳心。”其中一些人更是放言:“PyTorch吃掉了TensorFlow的午餐”,这样的比喻可谓一语中的。

专家们表示,由于谷歌犯下一系列战术失误、制定了错误的开发决策以及在开源社区中败给Meta,谷歌在互联网上引导机器学习未来的机会可能正在逐渐消失。PyTorch已俨然成为业余开发人员和科学研究人员的首选机器学习开发工具。

这种疯狂的“猫捉老鼠”游戏是许多率先进入市场的公司经常遇到的问题。例如,谷歌不是第一家建立搜索引擎的公司,却能够从Alta Vista或雅虎等先行者所犯的错误中汲取教训。


JAX是否能帮谷歌扳回一局?

既然TensorFlow这个“大号”已经练废了,那么是时候改换个“小号”上场了!

熟悉谷歌机器学习工作的人士说,最初,JAX曾面临来自内部的巨大反对。谷歌员工过去一直使用TensorFlow,尽管它使用起来可能很困难,但它早已占领谷歌员工的心智,并融入了他们的习惯。虽然JAX的使用方法要简单得多,但它还是改变了谷歌内部构建软件的方式。

然而,哪有革命不付出代价的呢?JAX现在不仅在谷歌中铺开来,并且很多大厂及其研究团队中也采用了它,譬如2020年DeepMind就正式投入JAX的怀抱。现在,JAX有望在未来几年成为所有使用机器学习的谷歌产品的主流,就像曾经的“老大哥”TensorFlow那样。

JAX有望胜出的秘密武器则是提供了一个更直接的方法用于处理机器学习中最复杂的问题之一:多核处理器调度问题。根据所应用的情况,JAX会自动地将若干个芯片组合而成一个小团体,而不是让一个去单打独斗。如此带来的好处就是,让尽可能多的TPU片刻间就能得到响应,从而解决了谷歌内部的一个心头大患:快速访问TPU。

“JAX是一项工程壮举!”Julia 编程语言创建者 Viral Shah 说道,“我认为JAX是一种通过Python实例化的独立编程语言。如果你遵守JAX想要的规则,它就可以发挥它的魔力,这真是令人惊叹。”

现在,谷歌希望在这场竞赛中打个漂亮的“翻身仗”,同时也从开发TensorFlow时所犯的错误中吸取教训,但这将是一个巨大的挑战。毕竟JAX尚且年轻,作为实验性的框架,远没有达到一个成熟的谷歌产品的标准。例如,JAX在一些问题上仍然要依赖于其他框架,距离成为理想的“一站式”框架还有很长一段路要走;除了完善了TPU的优化外,对GPU和CPU的支持还没跟上。同时,JAX和前两个框架差别也很大,因此迁移到JAX对于大多数人来说可能还需要考虑迁移成本的问题。

但很明显,谷歌决定豪赌这一把。那么各位读者,你们怎么看呢?

参考资料:https://www.businessinsider.com/facebook-pytorch-beat-google-tensorflow-jax-meta-ai-2022-6?IR=T

— 推荐阅读 —

☞论软件定义GPU对AI数据中心优化的必要性
☞AI 界著名“嘴炮”发声:鬼扯,LaMDA 不可能觉醒!
☞GitLab 打脸“Ruby on Rails 已死”言论:我还在用呢!

一键三连 「分享」「点赞」「在看」

成就一亿技术人

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存