PyTorch&TensorFlow跑分对决:哪个平台运行NLP模型推理更快

关于谁更好的争论从未停止。

开源社区的支持和开始的困难是重要的参考。其他人说:学术界使用PyTorch,工业界使用TensorFlow。

PyTorchTensorFlow跑分对决:哪个平å°è¿è¡ŒNLP模型推ç†æ›´å¿«

然而,还有一个不可忽视的因素,那就是两者的实际表现。

没关系,你不跑题吗?

最近,一位来自“拥抱脸”的工程师使用自然语言处理程序中的转换器模型分别在两个平台上测试一组推理速度。

虽然Huggingface只是一家初创公司,但它在自然语言处理领域享有很高的声誉。对于他们在GitHub上的开源项目,他们可以用一个应用编程接口调用27个NLP模型,已经获得了15,000颗星。“PyTorch”和“TensorFlow”哪个更快?以下是对要告诉您的数据的详细评估。

作者分别在PyTorch 1.3.0和TenserFlow2.0上测试了CPU和GPU的推理性能。

两种不同环境中的具体硬件配置如下:

PyTorchTensorFlow跑分对决:哪个平å°è¿è¡ŒNLP模型推ç†æ›´å¿«

操作环境

在测试期间,推理时间是通过使用本地Python模块的timeit来测量的。每个实验重复30次,然后对30个值进行平均以获得平均推断时间。

NLP模型的批量分别设置为1、2、4和8,序列长度为8、64、128、256、512和1024。

不要说太多,从分数开始:

PyTorchTensorFlow跑分对决:哪个平å°è¿è¡ŒNLP模型推ç†æ›´å¿«

在大多数情况下,两个平台可以得到相似的结果。与PyTorch相比,PyTorch在CPU上通常较慢,但在GPU上较快:

在CPU上,PyTorch的平均推理时间是0.748秒,而TenSorrow的平均推理时间是0.823秒,

在GPU上,PYtorch的平均推理时间是0.046秒,而TenSorrow的平均推理时间是0.043秒,

以上数据是所有模型的总平均结果。结果表明,输入大小(批量×序列长度)越大,对最终结果的影响越大。

当输入太大时,PyTorch将耗尽内存。作者从结果中删除了这些部分,因此这将使结果偏向PyTorch。

总的来说,PyTorch模型比TensorFlow模型更容易耗尽内存。除了蒸馏模型之外,当输入批量8和序列长度1024时,PyTorch将耗尽内存。

有关更完整和详细的列表,请参考本文末尾的谷歌文档链接。

除了初步测试之外,作者还使用了两个平台独有的加速工具来查看它们提高模型推理速度的速度。

PyTorchTensorFlow跑分对决:哪个平å°è¿è¡ŒNLP模型推ç†æ›´å¿«

TorchScript是PyTorch创建可序列化模型的方法,这些模型可以在不同的环境中运行,而不依赖于Python,例如C环境。

TorchScript似乎非常依赖于模型和输入大小:

使用TorchScript可以在XLNet上产生永久的性能提升,而在XLM使用它是不可靠的。

在XLM,火炬脚本可以提高较小输入时的性能,但降低较大输入时的性能。

平均而言,TorchScript跟踪的模型比同一PyTorch跟踪的模型快20%。

PyTorchTensorFlow跑分对决:哪个平å°è¿è¡ŒNLP模型推ç†æ›´å¿«

XLA是一个加速张量流模型的线性代数编译器。作者仅在基于张量流自动聚类函数的图形处理器上使用,该函数编译一些模型的子图。结果显示:

启用XLA提高了速度和内存使用,并且所有模型的性能都得到提高。

大多数基准测试运行速度比以前快1.15倍。在某些极端情况下,推理时间减少了70%,尤其是当输入很小时。

最后,作者还在谷歌文档列表中添加了一个“培训”标签。也许他很快就能看到两个平台上训练测试的对比。这项测试面临的唯一障碍可能是资金。

极牛网精选文章《PyTorch&TensorFlow跑分对决:哪个平台运行NLP模型推理更快》文中所述为作者独立观点,不代表极牛网立场。如若转载请注明出处:https://geeknb.com/3379.html

(35)
打赏 微信公众号 微信公众号 微信小程序 微信小程序
主编的头像主编认证作者
上一篇 2019年10月21日 下午1:12
下一篇 2019年10月21日 下午1:47

相关推荐

发表回复

登录后才能评论
扫码关注
扫码关注
分享本页
返回顶部