机器学习框架之争:PyTorch vs TensorFlow学术论文中被引用和实现的数据分析

田海立@**** 2020-11-07

机器学习框架之争由来已久,如果是两年(2018)前你让推荐或比较机器学习框架,那可能会有好多种,2019年已经有些明晰就是PyTorch和TensorFlow之争了,今年形势更加明朗了。本文从研究领域各大顶级会议上被引用的次数数据看这两大框架的发展趋势。两种框架被用来实现论文中的算法的次数数据,更直接反应了框架的实际地位。

 

一、背景

在顶级会议上被引用的次数是评价机器学习框架在研究领域被接纳程度的最重要最直接的指标之一。不深究数据,在AI工作人员的印象中,PyTorch已经超越TensorFlow成为研究人员的第一选择应根深蒂固,问ta原因,不是有很多数据吗,不是都这样报道吗?我也是这样的印象。

搜索了中文/英文(甚至还有俄文的,看不懂就翻译成英文看)的网页和图片,发现几乎所有文章其实最近的关于PyTorch与TF的数据也就出自两个地方:

  1. Horace He The Gradient The State of Machine Learning Frameworks in 2019. 2019-10-10
  2. Nathan Benaich and Ian Hogarth State of AI Report 2020 《2020AI全景报告》. 2020-10-01

 

二、数据来源与有效性

再深究比较发现《AI全景报告》里的相关的图表数据,引用的就是Horace在The Gragient里的数据。

机器学习框架之争:PyTorch vs TensorFlow学术论文中被引用和实现的数据分析

 

而这些数据具体如何获取,Horace的文章里是有描述的,不过默认是隐藏的,要点开才能查看

机器学习框架之争:PyTorch vs TensorFlow学术论文中被引用和实现的数据分析

也就是这些数据:

  • 收集过去几年顶级ML会议上发表的论文;
  • 按照是否提及PyTorch或TensorFlow来归类,并排除掉与Google或Facebook有关联的作者,也排除掉同时提及TF与PyTorch的论文。

这些规则看起来很合理很公允啊,TensorFlow是Google的;PyTorch是Facebook的。

不过再看《AI全景报告》里的一个数据——研究机构发表论文的数量:

机器学习框架之争:PyTorch vs TensorFlow学术论文中被引用和实现的数据分析

Google的论文数量比Facebook要多很多(90+ vs 20+),如果基于前面剔除的假设自家的研究人员都用自家的框架,这一下剔除了很多数据,而这些数据Google是很庞大的。

这里分析,

  • 并不是要质疑什么,而是说明要有探究数据本源含义之心;
  • 尽管无论如何趋势是PyTorch已经在研究领域占有主导地位。但如果读者仅记住了PyTorch占比75%了,这数据解读出入也太大了。

 

三、数据再更新

Horace在The Gradient上的文章里的内容到2019,在他个人的空间里数据进行了更新,这里采用最新的数据(截至2020-11-07)。

 

需要强调的是:这数据是仅提及TensorFlow或PyTorch并且排除作者单位是Google/Facebook之后的论文中,提及PyTorch的占比(规则同The Gradient上的文章里)。

机器学习框架之争:PyTorch vs TensorFlow学术论文中被引用和实现的数据分析

 

下面是PyTorch和TensorFlow在所有论文中被提及的比例。(但不知道是否有PyTorch与TensorFlow排他性或其他因素)

机器学习框架之争:PyTorch vs TensorFlow学术论文中被引用和实现的数据分析

 

四、论文实现数据

网站https://paperswithcode.com/trends统计了公开论文中,在github上被实现的代码所采用的框架的统计数据。更真实反应了学术领域实际在用的两种框架的占比。

机器学习框架之争:PyTorch vs TensorFlow学术论文中被引用和实现的数据分析

机器学习框架之争:PyTorch vs TensorFlow学术论文中被引用和实现的数据分析

机器学习框架之争:PyTorch vs TensorFlow学术论文中被引用和实现的数据分析

选取Sep 18、Sep 19、Sep 20三组数据,基本反应了趋势:

  1. 18年开始基本上就是TensorFlow、PyTorch及其其他了;标出的其他中没有再超出5%,应是other中的细分不准确,比如可能Caffe还有一定比重,但你标出的JAX是什么?
  2. 18、19、20的趋势基本就是PyTorch挤压TensorFlow的空间、挤压其他框架的空间。

 

总结

  1. 我们在查看或引用数据时,要弄清数据来源,怎么筛选的,及其根本含义;
  2. 从顶级会议论文被引用次数上看,PyTorch确实在研究领域已经占主导地位;
  3. 从论文被实现的github上的代码数量上看,PyTorch也确实在研究领域已经占主导地位。

 


参考资料

数据都有时效性,这里总结一下相关数据或文章的时间:

  1. Horace He The Gradient The State of Machine Learning Frameworks in 2019. 2019-10-10
  2. Nathan Benaich and Ian Hogarth State of AI Report 2020 《2020AI全景报告》. 2020-10-01
  3. Horace He 在个人空间里的数据截取时间 2020-11-07
  4. https://paperswithcode.com/trends  2020-11-07获取数据