首頁 > 生活 >

通過在該方法上施加一個小trick將Transformer的推理速度提高4.5倍!

發布時間:2022-01-04 11:46   來源:TechWeb   閱讀量:11153   

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

推理引擎為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量化。不過,和其他很多Transformer變體的論文一樣,這篇論文的標題也引發了一些吐槽:。

據我所知,目前任何OOS云服務都還沒用到過這個方法。

不過執行GPU量化需要修改模型源代碼,既容易出錯,又很無聊,并且還需自己維護修改后的代碼。

后來,他們又發現似乎只需修補模型模塊的抽象語法樹也可以自動完成。

在用戶端,在GPU上執行模型的基本量化類似這樣:

最終,該方法在Roberta—base模型和MNLI數據集上實現了4.53倍的推理速度。

當然這也犧牲了0.4個點的精度,如果一點不犧牲的話,也可以加速3.2倍左右。

最終他們用Albert,Bert,Distilbert,Roberta,Electra測試了該trick。

結果是對于任何可以導出為ONNX格式的Transformer模型,都可以開箱即用。

。
(責編:顧曉蕓)

鄭重聲明:此文內容為本網站轉載企業宣傳資訊,目的在于傳播更多信息,與本站立場無關。僅供讀者參考,并請自行核實相關內容。

版權聲明:凡注明“來源:“生活消費網”的所有作品,版權歸生活消費網 | 專注于國內外今日生活資訊網站所有。任何媒體轉載、摘編、引用,須注明來源生活消費網 | 專注于國內外今日生活資訊網站和署著作者名,否則將追究相關法律責任。

欧美人与性动交α欧美精品|国产自产一线在线视频|晚上你懂在线一区二区|久久狠狠中文字幕2020|亚洲中文字幕在线第二页