PyTorch统治学术论文,TensorFlow只占4%,LeCun:还能为啥?

  萧箫发自凹非寺

  量子位公众号 QbitAI

  “对于 Python 而言,为什么 TensorFlow 正在慢慢死去?”

  这篇观点尖锐的文章一出,就被 LeCun 的转发推向风口浪尖:还能为啥,当然是因为 PyTorch 啊。

  紧接着“PyTorch 和 TensorFlow 谁更好?”这个经久不息的论战再次被掀起,网友们也纷纷开始从文章中找到共鸣、或予以反驳。

  有 TensorFlow 深度使用者现身说法:现在我改用 PyTorch 了。

  但也有尝试过好几种框架的网友表示:TensorFlow 和 Keras 做快速实验更方便,而且 TensorFlow 看起来对 Apple M1 GPU 支持更好。

  当然,在这里面也出现了一些独特的声音:JAX 不比这两个框架好多了?

  所以,文章作者究竟是如何得出这一结论的?

  “PyTorch 统治学术论文”

  这篇文章的作者Ari Joury,是法国索邦大学的粒子物理学博士生,但对将 AI 和机器学习方法应用在粒子物理学探索上很感兴趣。

  作为一个 Python 爱好者,她在接触两种框架时察觉到了二者的区别。

  好奇哪种框架目前关注度更高,她便对 Stack Overflow 上 3 种主流框架 Keras、TensorFlow 和 PyTorch 进行了一个统计:

  简单来说,就是 TensorFlow 关注度更高,Keras 陷入停滞甚至下降,而 PyTorch 虽然起步较晚,但这两年一直呈现关注度稳定上升的趋势。

  (不过,也有网友认为文章中用 Stack Overflow 数据做论据,根本不能算是统计框架的“受欢迎度”,反而只能证明这些框架“让人困惑的程度”)

  那么,为什么会得出“对 Python 爱好者来说,TensorFlow 关注度会继续下降”这一结论?

  Ari Joury 给出了几大理由。

  其一,PyTorch 用起来“Python”。

  Ari Joury 表示,她使用 Python 编写 TensorFlow 框架的工作量,可能是 PyTorch 的两倍,此外后者编写代码的感受比 TensorFlow 更自然。

  其二,PyTorch 可用模型更多,且更适合学生和研究者使用。

  据统计,在 HuggingFace 中,85% 的大模型框架是用 PyTorch 实现的。

  剩余的框架中,除了多个框架实现以外,只有8% 的大模型框架是通过 TensorFlow 实现的。

  这意味着 PyTorch 在 AI 大模型研究者中受欢迎程度更高。

  不止大模型,使用 PyTorch 实现论文研究框架的人,变得越来越多。

  这一观点也在 Papers with Code 网站统计上得到了印证。

  在代码开源的那些论文研究中,单从框架使用率来看,这 4 年来 PyTorch 占比正急剧上升。

  PyTorch 从最初和 TensorFlow 持平,到如今远超 TensorFlow、稳定成为使用率第一(占比 62%)的框架,相比之下TensorFlow 占比只有4%

  其三,PyTorch 的生态发展更快。

  虽然目前 TensorFlow 在生态体系上发展比 PyTorch 更好,但从 PyTorch 使用增长情况来看,这一趋势将在不久的将来得到逆转。

  当然,TensorFlow 自身也有一些不可取代的优势,例如部署更方便(类似 TensorFlow Serving 和 TensorFlow Lite 的工具很多)、以及对其他语言的支持更好等。

  毕竟目前对于 JavaScript、Java、C++、Julia 和 Rust 等语言来说,TensorFlow 还是更好的选择。

  PyTorch 则基本以 Python 为中心,即使有个C++ API,但其他语言的整体支持仍然比不上 TensorFlow。

  因此 Ari Joury 最终认为,这两个框架的选择,很大程度上取决于用户对 Python 的喜爱程度。

  所以,那些 AI 大牛们又是怎么站队的呢?

  AI 大牛们选择哪些框架?

  除了Yann LeCun一直是 PyTorch 的深度支持者以外(毕竟是 Meta 的人),不少 AI 大牛也都表态过自己更看好的框架。

  至少在几年前 TensorFlow 推出 2.0 的时候,“TF2.0 和 PyTorch 谁更好”这个话题就已经开始了。

  当时,前 Kaggle 总裁兼首席科学家、fast.ai 创始人Jeremy Howard,更看好 PyTorch 框架。

  Keras 创始人François Chollet,则在这个话题中投了 TensorFlow 一票,当时他认为 PyTorch 会走向下坡路。

  至少在 2020 年的时候,他的观点依旧如此:“如果你是 PyTorch 粉丝,我的工作与你无关。”

  但如今来看,PyTorch 依旧保持一个活跃的状态。

  你更看好哪个深度学习框架呢?

  [1]https://twitter.com/ylecun/status/1614186881171742720

  [2]https://levelup.gitconnected.com/why-tensorflow-for-python-is-dying-a-slow-death-ba4dafcb37e6

  [3]https://paperswithcode.com/trends