最近,NLP明星公司Hugging Face發布了一個叫做Infinity的產品,可以以1ms延時完成Transformer的推理,性能相當高了。
但是,厲害歸厲害,還是有點貴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模型,都可以開箱即用。
。鄭重聲明:此文內容為本網站轉載企業宣傳資訊,目的在于傳播更多信息,與本站立場無關。僅供讀者參考,并請自行核實相關內容。
2023年2月15日,湯臣倍健與美團買藥在北京舉辦了2023
2021年收入增長目標應能確保實現,2022年收入增長預計將
具體來看,一是簡化業務流程和材料,便利北京冬奧會相關區域內境
炒股就看金麒麟分析師研報,權威,專業,及時,全面,助您挖掘潛
,據索尼官方消息,新星粉,銀河紫,星光藍,三款全新配色Dua
,新氧數據顏究院發布《2021醫美行業白皮書》,白皮書顯示,