互联网资讯 / 人工智能 · 2023年12月30日

Transformer推理速度提升4.5倍,节省十多万

最近,NLP明星公司Hugging FACE发布了一个叫做InfinITy的产品,可以以1Ms延时完成TRansfoRMeR的推理,性能相当高了。

让Transformer的推理速度提高4.5倍,这个trick还能给你省十几万

但是,厉害归厉害,还是有点贵—1年至少要十几万块(2万美元)。

那有没有什么平替的方法呢?

有的!还是开源的、“不费吹灰之力”就可以达到InfinITy一些公共基准的那种。

让Transformer的推理速度提高4.5倍,这个trick还能给你省十几万

并且现在,通过在该方法上施加一个小tRick,将TRansfoRMeR的推理速度提高4.5倍!

让Transformer的推理速度提高4.5倍,这个trick还能给你省十几万

那么,一个“平替”到底为什么能达到“付费”的效果呢?

一个tRick让TRansfoRMeR推理速度提高4.5倍

先来认识一下这个方法:TRansfoRMeR-deploy。

让Transformer的推理速度提高4.5倍,这个trick还能给你省十几万

它可以用一行命令优化和部署Hugging FACE上的TRansfoRMeR模型,并支持大多数基于TRansfoRMeR编码器的模型,比如BeRt、RobeRta、miniLM、CaMeMbeRt、AlbeRt、XLM-R、DistilbeRt等。

让Transformer的推理速度提高4.5倍,这个trick还能给你省十几万

TRansfoRMeR-deploy推理服务器用的是NVIDIA TRITon。

推理引擎为MicRosoft ONNX RuntiMe(用于CPU和GPU推理)和NVIDIA TensoRRT(仅限 GPU)。

如果想在GPU上获得一流的性能,NVIDIA TRITon+NVIDIA TensoRRT这样的组合无疑是最佳选择。

虽然TensoRRT用起来有点难,但它确实能比用PyTorch快5~10倍。

让Transformer的推理速度提高4.5倍,这个trick还能给你省十几万

在实际性能测试中,TRansfoRMeR-deploy在BATch size为1、Token分别为16和128的输入序列中的推理速度,都比付费的Hugging FACE InfinITy要快:

TRansfoRMeR-deploy在Token为16时要1.52Ms,InfinITy则需要1.7Ms;Token为128时需要1.99Ms,InfinITy则需要2.5Ms。

让Transformer的推理速度提高4.5倍,这个trick还能给你省十几万

那前面说的能让TRansfoRMeR的推理性能进一步提高的小tRick是什么呢?

GPU量化(quantization)。

作者表示:

据我所知,目前任何OOS云服务都还没用到过这个方法。

不过执行GPU量化需要修改模型源代码(需在矩阵乘法等代价高昂的操作上添加一些叫做QDQ的特定节点),既容易出错,又很无聊,并且还需自己维护修改后的代码。

因此作者已经为多个基于TRansfoRMeR的模型手动完成了这项工作。

后来,他们又发现似乎只需修补模型模块的抽象语法树(AST)也可以自动完成。

在用户端,在GPU上执行模型的基本量化类似这样:

让Transformer的推理速度提高4.5倍,这个trick还能给你省十几万

最终,该方法在RobeRta-base模型和MNLI数据集(分类任务)上实现了4.53倍的推理速度。

让Transformer的推理速度提高4.5倍,这个trick还能给你省十几万

当然这也牺牲了0.4个点的精度;如果一点不牺牲的话,也可以加速3.2倍左右。

作者表示,与TRansfoRMeR-deploy原来的版本相比,这已经是一个很大的改进了,毕竟原版本的加速成本需要超过1个点的精确度。

最终他们用AlbeRt、BeRt(包括MiniLM)、DistilbeRt、RobeRta(包括 CaMeMbeRt、XLM-R、DistilRobeRta等)、ElectRa测试了该tRick。

结果是对于任何可以导出为ONNX格式的TRansfoRMeR模型,都可以“开箱即用”。

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.