在近日结束的 JuliaCon 2021 活动中,PyTorch 创始人 Soumith Chintala 做了 Keynote 演讲,从理念原则、范围 & 风险、度量指标、项目的扩展分享了一路走来的成长历程和经验教训。我们摘录要点如下。
理念原则
当我们编写 PyTorch 程序时,我意识到在一个有机的开源社区中,并不是每个人都支持相同的原则。我们在 Torch 社区中有一些非常重要的成员反对 Python,尽管我们以用户为中心的观点允许我们朝着这个方向前进。然后,我们必须做出决定是带他们一起发展还是把他们留下。这些都是困难的决定,因为没有正确的答案,只能领导者必须迅速做出的主观判断。
在这种情况下应该思考什么时候保持固执,什么时候保持妥协。我的观点是,你必选在理念、原则上保持固执,但其他一切都是可以改变的。
这一观点非常有用,随着时间的推移,PyTorch 带来并集成了 Caffe2 社区和 Chainer 社区,并与 Jax 和 Swift4TF 保持友好关系。
范围 & 风险
推动 Torch 社区发展是一个挑战,除此以外,面临的另一个挑战是 TensorFlow ,据了解 TensorFlow 拥有比 PyTorch 多 10 到 30 倍的开发人员。不过,TensorFlow 正在努力为所有人提供便利,这对 PyTorch 研究者来说是非常有益的。此外,TensorFlow 是一个自上而下计划的项目,需要大量的资源。
我们很自然地采取了完全相反的方法,主要是为了在现实的条件下生存和竞争。我们决定,除了 ML 研究人员,我们不关注任何人。
我们在 ML 研究市场上做了一个赌注:1,他们在未来几年所做的建模将需要更多的灵活性和可调试性;2,ML 研究市场将继续在更先进的模型架构上进行创新,它将成为未来的主流。
因此,有了这个赌注,我们需要一个非常广泛的 API 结合用户体验,以真正轻松地使用和扩展该 API。
度量指标
在 PyTorch 的发展过程中,我们从未对速度基准或者 GitHub star 量等不相关的度量指标做出回应。作为 PyTorch 的创建者,我们从未提交至 MLPerf 等行业基准。这是经过深思熟虑的,我们对此做法感到满意。
我们学到了很多关于人们如何喜欢度量事物。例如微基准、GitHub star 量、特征对比表等。当人们在社区发布了一些这样的度量和比较之后,我们不赞同其中的一些测量。但是我们从 Torch 中得到经验是过早地度量会对产品造成负面影响。
项目的扩展
在项目规模上需要考虑的另外一件事情是进行垂直整合还是水平整合。在 PyTorch 项目上,我们集成了 distributed、jit 和 quantization 包,这些包需要更深的垂直集成,因为它们与前端设计具有很深的交集。我们还将 torchvision 或 torchserve 等包分支到了各自的 GitHub 库中,因为它们不需要很多的端到端思考。
最后想谈一谈生态系统的问题。从 PyTorch 开始,我们希望开发者使用 PyTorch 并向该项目做出贡献,由此发展社区。在整个过程中,我们竭力避免任何形式的激励措施。因此,在很长一段时间里,我们没有提供任何奖品、奖金或其他经济奖励措施来鼓励研究者使用 PyTorch。我们的观点是,一旦引入经济激励措施,就会以一种不可逆转的方式塑造社区文化。
截止 2020 年底,PyTorch 项目的贡献者大约 1626 人、下游项目 45k + 个,PyTorch 论坛用户达到了 34k。
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢