PyTorch 是目前最受欢迎的深度学习框架之一,初始版本于 2016 年 9 月由 Adam Paszke、Sam Gross、Soumith Chintala 等人创建,并于 2017 年在 GitHub 上开源。因其简洁、易用、支持动态计算图且内存使用高效,PyTorch 受到众多开发者的喜爱,并被广泛应用于支持科学研究以及 ChatGPT 等应用的开发。此外,PyTorch 有一个活跃的大型开源社区,提供了丰富的教程、示例代码和问题解答,给予成员帮助和支持。

Soumith Chintala 是 Meta 副总裁以及 PyTorch 的联合创始人。Soumith 对 PyTorch 的发展过程和最终用户体验产生了重要影响,并主导塑造了 PyTorch 开源社区的运营理念。

在《进击的 PyTorch,与它背后的开源领袖》一文中,Soumith 分享了 PyTorch 的开源历程,以及他所信奉的开源之道。在本文中,Weights & Biase 创始人 Lukas Biewald 与他讨论了 PyTorch 的内部运作机制、管理开源社区的方法,以及当前流行的其他机器学习库。

(以下内容经授权后由 OneFlow 编译发布,转载请联系授权。原文链接:https://www.youtube.com/watch?v=2wprKvXnErE)

来源 | Weights & Biases

OneFlow编译

翻译|杨婷、宛子琳

1 PyTorch的发展历程

Lukas Biewald:PyTorch从Torch发展而来,能简单讲讲它的发展历程吗?

**Soumith Chintala:**2012年左右,我开始参与Torch开源社区的工作。Torch是一个科学计算库,具备加速功能,使用Lua语言,这是一种常用于编写视频游戏和微型软件的语言。Torch与Lua非常适配,Torch的创始人在2005年至2009年间用Lua编写了两个Torch版本,由于支持神经网络研究,当时一些最优秀的研究实验室(包括DeepMind、Facebook AI Research(FAIR)、Twitter以及许多大学)都使用Torch。

随着科学领域的不断发展,人们开始需要新工具,旧工具逐渐过时,因此我们希望编写一个更符合当时(2015 年左右)人们实际需求的新工具。于是,我们决定重构Torch的新版本,因为人们已经普遍将Python作为主要的科学计算语言,因此,我们重新用Python设计了一个Torch的新版本,最终成就了PyTorch。

Lukas Biewald:还记得我们刚开始创建Weights and Biases时,TensorFlow的发展正势不可挡。当时你是否看到了TensorFlow的不足之处?是什么激励了你,让你决定开发一个与之相抗衡的系统?

**Soumith Chintala:**TensorFlow于2015年12月发布,当时市面上大约有15到20个深度学习框架,那时TensorFlow还未像现在这样占据主导地位。TensorFlow在混乱的竞争局面中登场,在发布时进行了全面营销。谷歌是当时最好的研究实验室,TensorFlow利用谷歌云预算进行了大规模营销,以一种其他深度学习框架意料之外的强势方式打入市场。

当时,每个新的深度学习框架都需要一个shell脚本来进行编译和安装,缺乏经过精心设计的工程,单元测试可能仅在HPR上运行。因此,TensorFlow具有极大优势,向深度学习框架领域展示出高质量的工程实践。

但TensorFlow缺少对开源激励机制的关注以及与开源社区的互动,包括回答低级提问、满足用户各种需求以及及时处理用户发送的PR等。

我们认为,与社区互动、向社区提供有效帮助并逐步建立社区的过程在 TensorFlow中有所欠缺。而与社区互动的方式非常契合Torch的理念,我们一直在延续并以更大的规模不断发展这一理念。

2 社区驱动的开源项目

Lukas Biewald:你好像在说PyTorch的成功与技术水平差异无关,更多的是社区建设和互动,就像有人指出,PyTorch的及时评估反馈是你们成功的主要原因?

**Soumith Chintala:**我坚信,TensorFlow是一个在技术方面具有相当高成功率的代表性编程模型,Jax就是一个最直观的例子,这说明,技术方向并不是导致TensorFlow未能达到预期的原因。Jax在编程模型方面与TensorFlow非常类似,只需提前跟踪一个程序,然后在辅助运行时(runtime)运行它,人们使用Jax的体验非常好。