让Transformer的推理速率普及4.5倍,这个trick还能给你省十几万

发布日期:2022-06-18 17:17    点击次数:84

让Transformer的推理速率普及4.5倍,这个trick还能给你省十几万

 

本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请酌量出处。

最近,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还能给你省十几万

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

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

一个trick让Transformer推理速率普及4.5倍

先来意志一下这个体式:Transformer-deploy。

让Transformer的推理速率普及4.5倍,
<a href=女人被男人躁得好爽免费视频这个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还能给你省十几万

在本体性能测试中,jizzjizz國产免费a片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模子,都不错“开箱即用”。