<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          讓Transformer的推理速度提高4.5倍,這個(gè)小trick還能給你省十幾萬(wàn)

          共 1736字,需瀏覽 4分鐘

           ·

          2022-01-01 09:15

          點(diǎn)擊上方視學(xué)算法”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          豐色 發(fā)自 凹非寺
          量子位 報(bào)道 | 公眾號(hào) QbitAI

          最近,NLP明星公司Hugging Face發(fā)布了一個(gè)叫做Infinity的產(chǎn)品,可以以1ms延時(shí)完成Transformer的推理,性能相當(dāng)高了。

          但是,厲害歸厲害,還是有點(diǎn)貴——1年至少要十幾萬(wàn)塊?(2萬(wàn)美元)。

          那有沒(méi)有什么平替的方法呢?

          有的!還是開(kāi)源的、“不費(fèi)吹灰之力”就可以達(dá)到Infinity一些公共基準(zhǔn)的那種。

          并且現(xiàn)在,通過(guò)在該方法上施加一個(gè)小trick,將Transformer的推理速度提高4.5倍!

          ?帖子發(fā)布不到一天就收獲了250+熱度

          那么,一個(gè)“平替”到底為什么能達(dá)到“付費(fèi)”的效果呢?

          一個(gè)trick讓Transformer推理速度提高4.5倍

          先來(lái)認(rèn)識(shí)一下這個(gè)方法:Transformer-deploy。

          它可以用一行命令優(yōu)化和部署Hugging Face上的Transformer模型,并支持大多數(shù)基于Transformer編碼器的模型,比如Bert、Roberta、miniLM、Camembert、Albert、XLM-R、Distilbert等。

          Transformer-deploy推理服務(wù)器用的是Nvidia Triton。

          推理引擎為Microsoft ONNX Runtime(用于CPU和GPU推理)和Nvidia TensorRT(僅限 GPU)。

          如果想在GPU上獲得一流的性能,Nvidia Triton+Nvidia TensorRT這樣的組合無(wú)疑是最佳選擇。

          雖然TensorRT用起來(lái)有點(diǎn)難,但它確實(shí)能比用Pytorch快5~10倍。

          在實(shí)際性能測(cè)試中,Transformer-deploy在batch size為1、token分別為16和128的輸入序列中的推理速度,都比付費(fèi)的Hugging Face Infinity要快:

          Transformer-deploy在token為16時(shí)要1.52ms,Infinity則需要1.7ms;token為128時(shí)需要1.99ms,Infinity則需要2.5ms。

          那前面說(shuō)的能讓Transformer的推理性能進(jìn)一步提高的小trick是什么呢?

          GPU量化(quantization)。

          作者表示:

          據(jù)我所知,目前任何OOS云服務(wù)都還沒(méi)用到過(guò)這個(gè)方法。

          不過(guò)執(zhí)行GPU量化需要修改模型源代碼(需在矩陣乘法等代價(jià)高昂的操作上添加一些叫做QDQ的特定節(jié)點(diǎn)),既容易出錯(cuò),又很無(wú)聊,并且還需自己維護(hù)修改后的代碼。

          因此作者已經(jīng)為多個(gè)基于Transformer的模型手動(dòng)完成了這項(xiàng)工作。

          后來(lái),他們又發(fā)現(xiàn)似乎只需修補(bǔ)模型模塊的抽象語(yǔ)法樹(shù)?(AST)也可以自動(dòng)完成。

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

          最終,該方法在Roberta-base模型和MNLI數(shù)據(jù)集(分類任務(wù))上實(shí)現(xiàn)了4.53倍的推理速度。

          當(dāng)然這也犧牲了0.4個(gè)點(diǎn)的精度;如果一點(diǎn)不犧牲的話,也可以加速3.2倍左右。

          作者表示,與Transformer-deploy原來(lái)的版本相比,這已經(jīng)是一個(gè)很大的改進(jìn)了,畢竟原版本的加速成本需要超過(guò)1個(gè)點(diǎn)的精確度。

          最終他們用Albert、Bert(包括miniLM)、Distilbert、Roberta(包括 Camembert、XLM-R、DistilRoberta等)、Electra測(cè)試了該trick。

          結(jié)果是對(duì)于任何可以導(dǎo)出為ONNX格式的Transformer模型,都可以“開(kāi)箱即用”。

          參考鏈接:
          https://www.reddit.com/r/MachineLearning/comments/rr17f9/p_45_times_faster_hugging_face_transformer/

          本文系網(wǎng)易新聞?網(wǎng)易號(hào)特色內(nèi)容激勵(lì)計(jì)劃簽約賬號(hào)【量子位】原創(chuàng)內(nèi)容,未經(jīng)賬號(hào)授權(quán),禁止隨意轉(zhuǎn)載。


          點(diǎn)個(gè)在看 paper不斷!

          瀏覽 20
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲一区影音先锋 | 就爱干一区二区三区 | 人人妻人人澡欧美91精品 | 亚洲在看| 国产香蕉精品视频 |