
结果
平均推断时间测量推理
在 CPU 上,使用 GCP n1-standard-32,它有 32 个 vCPU 和 120GB 的内存。CPU 的型号是 Intel Xeon@2.3GHz:
在 GPU 上,使用了带有 12 个 vCPU、40GB 内存和一个 V100 的 GPU(16GB 的 VRAM)的定制 GCP 机器;
实验细节和最佳实践
上述测量使用的 Intel Xeon CPU 带有 AVX 和 AVX2 的扩展,而 TensorFlow 需要从源代码编译之后才能够利用这些扩展,所以只能这么做;
我们通过使用 tf.function 和预先跟踪模型来确保我们没有使用 TensorFlow 的 eager 模式;
我们比较了依赖于库和不依赖于库的工具:PyTorch的 TorchScript 和带有 GPU 的TensorFlow 的 XLA(自动聚类),后面会详细介绍这两个工具;
我们使用了原生的 Python 模块 timeit 来测量推断时间。另外,用repeat=30 和 number=3 来进行每个实验。然后求出30 个值的平均数,就会得到所期望的平均推理时间。通常超过30 个值就会获得非常稳定的结果了;
我们不会使用如 TFX 这样的生产环境,并且我们使用的测量模型的可调用方法是:PyTorch 的nn.module.forward 和 TensorFlow 的tf.keras.layers.layer.call;
对于 TensorFlow 和 PyTorch,我们会很谨慎地使用适当的 CUDA 版本;
讨论
PyTorch 和 TensorFlow
所有的模型中,在 CPU 上,PyTorch 的平均推断时间为 0.748s,而 TensorFlow 的平均推断时间为 0.823s;
所有模型中,在 GPU 上,PyTorch 的平均推断时间为 0.046s,而 TensorFlow 的平均推断时间为 0.043s;
TorchScript
XLA
模型及其精炼版本
贡献
如何做贡献
基准测试脚本
(*本文为 AI科技大本营编译文章)
PyTorch vs TensorFlow
在自然语言处理领域,PyTorch和TensorFlow哪个框架在训练和运行Transformers模型上更胜一筹?通过对多种环境下的性能对比,结果表明两者在CPU和GPU上的表现相当。

被折叠的 条评论
为什么被折叠?



