金财晚报

金财晚报

当前位置:首页>投资理财>

通过在该方法上施加一个小trick将Transformer的推理速度提高4.5倍!

来源:TechWeb 作者:安靖 发布时间:2022-01-05 21:49   阅读量:5065   

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

通过在该方法上施加一个小trick将Transformer的推理速度提高4.5倍!

但是,厉害归厉害,还是有点贵mdash,mdash,1年至少要十几万块。。

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

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

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

帖子发布不到一天就收获了250+热度

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

一个trick让Transformer推理速度提高4.5倍

先来认识一下这个方法:Transformer—deploy。

它可以用一行命令优化和部署Hugging Face上的Transformer模型,并支持大多数基于Transformer编码器的模型,比如Bert,Roberta,miniLM,Camembert,Albert,XLM—R,Distilbert等。infin;-former的整体架构如下图1所示。

Transformer—deploy推理服务器用的是Nvidia Triton。

推理引擎为Microsoft ONNX Runtime和Nvidia TensorRT。

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

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

在实际性能测试中,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。为了使模型能够处理长程上下文,研究者提出用一个连续LTM来扩展原始transformer,这个LTM存储前面步骤的输入嵌入和隐藏状态。他们还考虑了有两种记忆的可能性:LTM和STM(短期记忆),类似于transformer-XL的记忆。

那前面说的能让Transformer的推理性能进一步提高的小trick是什么呢。

GPU量化。

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

不过执行GPU量化需要修改模型源代码,既容易出错,又很无聊,并且还需自己维护修改后的代码。

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

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

最终,该方法在Roberta—base模型和MNLI数据集上实现了4.53倍的推理速度。

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

最终他们用Albert,Bert,Distilbert,Roberta,Electra测试了该trick。

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

郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。

mangren

财经视界

财经图文

热门推荐

金财晚报仅作为用户获取信息之目的,并不构成投资建议。市场有风险 投资需谨慎。

网站地图

Copyright 2018- 金财晚报 All Rights Reserved 联系我们: 备案号:蜀ICP备13010463号