TensorFlow和PyTorch已经吵了很久了。最近一则新闻让PyTorch阵营“添了个大将”。OpenAI表示,他们已经全面转向PyTorch,并统一了他们所有模型的框架标准。对于深度学习框架的使用,整个人工智能界大致可以分为两大阵营:TensorFlow和PyTorch。有观点认为PyTorch更适合研究领域,而实际工业应用可能更偏向于TensorFlow。PyTorch具有用户友好的API和对Python生态系统的良好支持,使其更适合学术界。TensorFlow因为用户惯性和对工业生产环境的支持,更适合工业。最近的一则新闻确实印证了这一说法。研究AI打Dota2的人工智能研究机构OpenAI,推出NLP预训练模型GPT-2,让机器人单手还原魔方,宣布全面转向PyTorch。从2017年TensorFlow的绝对霸主到两个框架的相对平衡,双方的开发团队可能都没有想到PyTorch会如此受到社区的欢迎。使用PyTorch统一项目标准在一篇简短的博文中,OpenAI表示他们将使用PyTorch作为统一的深度学习框架。在此之前,他们会根据框架本身的特点和优势,在不同的项目中使用不同的框架。OpenAI认为,为了让团队更轻松地创建和共享模型及其应用程序,使用PyTorch是更好的选择。通过标准化的PyTorch框架,OpenAI可以基于它构建平台,使其各种模型和应用程序能够重用框架和工具。选择PyTorch的另一个重要原因是用它很容易实现各种新想法,尤其是在GPU集群上。OpenAI在博客中表示,自从选择PyTorch以来,他们可以将从研究想法到生成模型的迭代开发时间从几周压缩到几天。这样可以节省很多时间。更重要的是,PyTorch背后还有一个活跃的开发社区,包括FaceBook等大型研究机构。OpenAI在文章中也表示,他们的大部分团队已经完成了迁移工作。除非有特定的技术原因,基本上PyTorch是主要的深度学习框架。例如,OpenAI最近推出了PyTorch版本的深度强化学习库——“SpinningUp”。此外,OpenAI将在后续的开源计划中公开更多基于PyTorch的项目,例如“Block-SparseGPUKernels”。这是一种新的内核架构,比cuBLAS和cuSPARSE更快。TF问题多,用户转向PyTorch诚然,与TensorFlow相比,PyTorch在性能和产业生态支持方面仍有短板。但不可否认的是,TensorFlow的诸多问题促使用户选择了PyTorch。首先是可用性问题。TensorFlow刚出来的时候有一个陡峭的学习曲线。掌握这个框架的难度不亚于学习一门新的编程语言。而PyTorch在设计之初就非常“Pythonic”,和Python一样简单易用。二是API的稳定性。自从TensorFlow诞生以来,业界和学术界对深度学习框架的设计经验都很少,因此在API的定义、设计、功能实现等方面存在很多不同的理解,开发者也走了很多弯路。更何况深度学习本身也在快速发展,新的算法需要快速的API实现。这导致TensorFlow的API变来变去,增加了很多contribAPI。相比之下,PyTorch的API迭代更稳定,不存在命名混乱的问题。基于以上两点原因,PyTorch相比于TensorFlow的上手成本更低,实施速度更快。因此,经常有新想法的学术界更喜欢PyTorch。毕竟,他们需要的是一个能够快速实现想法、快速迭代的深度学习框架。OpenAI作为一个经常出各种算法和想法的研究机构,使用PyTorch自然更加合理。网友评论OpenAI全面拥抱PyTorch的消息,不少Reddit网友提出了自己的看法。一位网友认为,在被TensorFlow激怒之后,转而使用PyTorch毫无意义。同时,他认为TF2.0确实在“拨乱反正”。另一个赞同,说PyTorch在慢慢变好,TF2.0其实没有人们想象的那么好。此外,与TensorFlow相比,PyTorch的设计者和维护者知道如何平衡灵活性、易用性和新技术的采用。接下来,社区的其他成员会做出怎样的选择?TensorFlow需要加强!
