新报教育网 学前教育基础教育考试招生高等教育职业教育出国留学素质教育教育创新地方教育家长智库要闻资讯教育智囊滚动新闻最新政策 加入收藏夹
adtop01

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

作者:肖鸥    栏目:滚动新闻    来源:TechWeb    发布时间:2022-01-05 21:49 阅读量:19015   

最近,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等。。

Transformer—deploy推理服务器用的是Nvidia Triton。为了使模型能够处理长程上下文,研究者提出用一个连续LTM来扩展原始transformer,这个LTM存储前面步骤的输入嵌入和隐藏状态。

推理引擎为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。

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

GPU量化。

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

不过执行GPU量化需要修改模型源代码,既容易出错,又很无聊,并且还需自己维护修改后的代码。他们还考虑了有两种记忆的可能性:LTM和STM(短期记忆),类似于transformer-XL的记忆。

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

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

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

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

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

结果是对于任何可以导出为ONNX格式的Transformer模型,都可以开箱即用。infin;-former的整体架构如下图1所示。

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

adl03
adr1