众所周知,经历了计算机科学过去几十年没有突破的瓶颈期之后,人工智能技术这些年由于算法和算力(并行计算)革命,迈入了一个高速发展的时期。不仅如此,在编程语言和开发者环境不断演化的今天,人工智能算法领域已悄然形成了两大阵营——TensorFlow与PyTorch互相角逐的格局。
随着竞争日趋激烈,先入为主的TensorFlow被后来者PyTorch迎头追上,前者逐渐显现颓势而棋输一着,业内有一鲜明比喻:“PyTorch吃掉了TensorFlow的午餐!”不久前有科技媒体证实,谷歌内部正押注一个新框架JAX来力求改变与PyTorch竞争不利的局面,而谷歌大脑和DeepMind也很大程度上放弃了TensorFlow转而使用JAX,这意味着AI框架之争进入了一个新的阶段。
● 人工智能框架TensorFlow和PyTorch的起源
在此之前,我们先了解一下框架的概念。“框架”源于计算机软件开发术语,由于上世纪编程语言模块化资源的匮乏,框架的概念少有流行,随着后来开发者环境的改善,生产力工具的极大丰富,框架的应用随之普及,概念也逐渐清晰。
框架作为编程语言伴生的集成化工具,在开发者环境中处于一种中间地位:语言->库->框架->引擎,越往后集成度越高,理论上开发者可以利用的效率也越高。知名的框架比如基于JAVAScript的前端工具React,一个熟练的开发者可以运用此类工具快速构建软件项目的原型基础,这也是常见的敏捷开发思想。
人工智能框架TensorFlow的初始版本源于2015年,由谷歌大脑团队开发并发布在Apache 2.0开源许可证下。TensorFlow是谷歌大脑的第二代机器学习工具,谷歌旗下部署的商业应用包括搜索、图片、地图、广告、翻译等等都与此有关。一个显著地例子是,近年来深度学习神经网络的发展,各国语言文字翻译(机翻)准确度的提高,TensorFlow在其中起到了重要作用。
PyTorch是由科技公司Meta人工智能团队开发的开源Python/ target=_blank class=infotextkey>Python机器学习工具,它的出现比TensorFlow晚了近一年,但它兼收并蓄地改进了当时主流的包括其他几个AI框架Caffe、Torch,由此开发的基于自动微分,且使用动态计算图的新一代AI框架。PyTorch起步之初就迎合了大量开发者的需求与习惯,逐渐成长为与TensorFlow并列最受欢迎的两大AI框架之一。
● 框架战争:PyTorch崛起和TensorFlow的衰退
原本先入为主的TensorFlow缘何被PyTorch后来居上?须知道,在人工智能机器学习深度学习神经网络领域,谷歌团队已经历了第一代专有机器学习系统DistBelief(TensorFlow的前身)的部署,所以当TensorFlow进入工业领域的时候,优势非常之大。但是后来的市场变化,PyTorch在开发者社区大受欢迎,以至于其在学术研究领域全面胜出,而TensorFlow的优势也正逐渐为之蚕食。
据开发者社区数据统计,TensorFlow和PyTorch框架的论文公开代码库两者数量差距从2021年3月的1:4扩大到2022年的1:6。如今各大顶会论文数量都是PyTorch对TensorFlow的绝对碾压,就连谷歌自家的论文也只有Torch和JAX,以及零星的TF1.0开源代码。全球范围看,经过几年发展PyTorch在学术圈的主导地位已基本站稳,一方面得益于PyTorch一开始主打的动态图机制,有益于实验室和研究中心快速迭代模型;另一方面得益于吸收了TF1.0和其他主流框架的优点、摒弃缺陷,尊重开发者意见并给予便利操作,赢得受众青睐。
TensorFlow的衰退源自许多科技巨头常有的弊病——追求自利的生态膨胀。一开始TensorFlow凭借先入为主获取市场稳操工业界的盘子,谷歌也凭借Android/ target=_blank class=infotextkey>安卓系统大量开发者和数据的支撑令TF1.0日臻成熟,大量企业项目落地。但作为科技巨头,谷歌过于执着自家生态的一系列操作致使TensorFlow日后变成了一个不那么适合开源的项目。TF1最大的缺点在于混乱的API设计和难以调试的静态图,许多原本可以顺手解决的问题谷歌团队视而不见,以至于开源的TensorFlow出现了大量交叉版本,厂商开始各自为政。
后来的TF2也不那么成功,反而破坏了TF1的生态,TF2不兼容TF1,TF1继续适配新设备,TF2想办法兼容TF1。恶性循环,开发者大量流失到更为开放、更容易听取意见的PyTorch阵营。而推出JAX实属谷歌的自救,它的做法也就是尽可能不全盘否定TensorFlow的基础上向PyTorch贴近。
最后
框架之争的结果是势均力敌,趋势互为接近,倘若一方因管理团队决策失误导致开发者大量流失,那么另一方将占据垄断地位。目前来看TensorFlow的工业基本盘暂时不会丢失,但随着建立在PyTorch之上的特斯拉自动驾驶、优步Pyro等项目落地,TensorFlow的优势领域也正面临日益增长的压力。
AI框架之争是21世纪的新鲜事,这也是技术文明发展进程中的必经之路。随着人工智能产研基数的不断扩大,该领域技术演化与形态碰撞将持续催生优胜劣汰、与时俱进的生产力工具。
文/陈徐毅 高级工程师,科技专栏作者,中国计算机学会会员。