『』微信也在用的Transformer加速推理工具,现在腾讯开源了


十三 发自 凹非寺量子位 报道 | 公众号 QbitAI
近年来 , 基于Transformer的模型 , 可以说是在NLP界杀出了一片天地 。
虽然在提高模型模型精度上 , Transformer发挥了不容小觑的作用 , 但与此同时 , 却引入了更大的计算量 。
那么 , 这个计算量有多大呢?
来看下数据 。
『』微信也在用的Transformer加速推理工具,现在腾讯开源了
本文插图
因此 , 实现一个能充分发挥CPU/GPU硬件计算能力的Transformer推理方法 , 就成了急需解决的问题 。
近日 , 腾讯便开源了一个叫TurboTransformers的工具 , 对Transformer推理过程起到了加速作用 , 让你的推理引擎变得更加强大 。
『』微信也在用的Transformer加速推理工具,现在腾讯开源了
本文插图
这个工具已经在微信、腾讯云、QQ看点等产品中广泛应用 , 在线上预测场景中可以说是“身经百战” 。
Turbo具有如下三大特性:

  • 优异的CPU/GPU性能表现 。
  • 为NLP推理任务特点量身定制 。
  • 简单的使用方式 。
值得一提的是 , TurboTransformers , 是腾讯通过Github对外开源的第100个项目 。
那么 , 具有如此“纪念意义”的开源工具 , 到底有多厉害?
接下来 , 我们将一一讲解 。
多项性能测试“摘桂冠”
Turbo在CPU/GPU性能上的表现可以说是非常优异 。
在多种CPU和GPU硬件上获得了超过pytorch/tensorflow和目前主流优化引擎的性能表现 。
『』微信也在用的Transformer加速推理工具,现在腾讯开源了
本文插图
CPU上的测试结果
首先 , 是在CPU 硬件平台上 , 测试了 TurboTransformers 的性能表现 。
选择 pytorch、pytorch-jit 和 onnxruntime-mkldnn 和 TensorRT 实现作为对比 。
性能测试结果为迭代 150 次的均值 。 为了避免多次测试时 , 上次迭代的数据在 cache 中缓存的现象 , 每次测试采用随机数据 , 并在计算后刷新的 cache 数据 。
下图是Intel Xeon 6133 CPU的性能测试结果 。

『』微信也在用的Transformer加速推理工具,现在腾讯开源了
本文插图
『』微信也在用的Transformer加速推理工具,现在腾讯开源了
本文插图
GPU上的测试结果
其次 , 是在GPU硬件平台上 , 测试了 TurboTransformers 的性能表现 。
选择对比的对象分别是:pytorch、NVIDIA Faster Transformers、onnxruntime-gpuTensorRT 。
性能测试结果为迭代 150 次的均值 。
下图是在NVIDIA RTX 2060 GPU的性能测试结果 。
『』微信也在用的Transformer加速推理工具,现在腾讯开源了
本文插图
【『』微信也在用的Transformer加速推理工具,现在腾讯开源了】
『』微信也在用的Transformer加速推理工具,现在腾讯开源了
本文插图
接下来 , 是在NVIDIA P40 GPU的性能测试结果 。
『』微信也在用的Transformer加速推理工具,现在腾讯开源了
本文插图
『』微信也在用的Transformer加速推理工具,现在腾讯开源了
本文插图
最后 , 是在NVIDIA V100 GPU的性能测试结果 。
『』微信也在用的Transformer加速推理工具,现在腾讯开源了
本文插图
『』微信也在用的Transformer加速推理工具,现在腾讯开源了