訂閱
糾錯(cuò)
加入自媒體

中科院計(jì)算所副研究員馮洋:神經(jīng)機(jī)器翻譯的訓(xùn)練改進(jìn)和解碼提速

解碼

1. CubePruning

下面介紹在解碼方面的兩個(gè)工作,第一個(gè)工作要解決的是beam search每一步要計(jì)算BeamSize*|V|的問(wèn)題,這個(gè)計(jì)算量大大降低了inference時(shí)候解碼的速度。

這是解碼過(guò)程中每個(gè)步驟的時(shí)間消耗,對(duì)于GPU來(lái)說(shuō),大部分的時(shí)間消耗在的計(jì)算上,其它三個(gè)步驟比較節(jié)省時(shí)間,對(duì)于CPU來(lái)說(shuō),最耗費(fèi)時(shí)間的是最后兩個(gè)步驟,因?yàn)椋黇|比較大。

傳統(tǒng)的方法使用的是Beam Search,傳統(tǒng)的 Beam Search其實(shí)是一個(gè)二維的搜索方法。其中第一維就是已經(jīng)生成的部分的譯文,假設(shè)Beam Size = 4,那么就是四個(gè)譯文。第二維度是這四個(gè)譯文都要進(jìn)行下一步的Token預(yù)測(cè)計(jì)算。總共就需要計(jì)算4*|V|的概率。因?yàn)椋黇|的個(gè)數(shù)通常是幾千上萬(wàn)級(jí)別的,所以這個(gè)部分的計(jì)算量就非常大。

我們的做法是將二維的搜索擴(kuò)展成三維的搜索,具體的做法分為以下幾步:

1.  Beam分組:假設(shè)我們要解碼第11步,我們就將第10步解碼出來(lái)相同Token的候選序列歸為一組。

2.  分組預(yù)測(cè)第11步的候選Token:只用每個(gè)組得分最高的哪個(gè)候選序列來(lái)計(jì)算當(dāng)前的Token分布。

3.  近似組員的Token分布:由上一步已經(jīng)知道本組最優(yōu)的候選序列的下一個(gè)token的預(yù)測(cè)分布,對(duì)于組員來(lái)說(shuō),也將共享其老大計(jì)算出來(lái)的Token分布score,然后和自身的序列score相加,得到自身擴(kuò)展一個(gè)Token后的score。這個(gè)score作為自身的近似分。

4.  查找Top-K:經(jīng)過(guò)上面的計(jì)算之后,這樣每個(gè)組就是得分其實(shí)是一個(gè)二維矩陣,我們將矩陣橫軸作為每個(gè)組員,縱軸表示當(dāng)前步預(yù)測(cè)的token,然后保證右上角score最大,往右,往下都是減小。這樣便于我們查找Top-K。具體請(qǐng)看下一張slides。

對(duì)于近似的score這里有兩個(gè)選擇,1) 如果取到的candidate是預(yù)測(cè)的score,那么用真實(shí)的狀態(tài)來(lái)重新計(jì)算一下這個(gè)score,這時(shí)候也順便更新了一下自己的隱狀態(tài),2)直接用預(yù)測(cè)的score,不使用更新的方式,這時(shí)候和老大哥共享隱狀態(tài)。

這個(gè)是GPU上的結(jié)果,橫軸是速度,縱軸是BLEU值,可以看出在取得最優(yōu)的BLEU值的情況下,我們的方法所用的時(shí)間是更短的。速度可以提升3.3倍。在CPU下,提速可以達(dá)到3.5倍。

在Beam Size=40的情況下,GPU上速度提升3.8倍,CPU上提升4.2倍。

聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

    掃碼關(guān)注公眾號(hào)
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號(hào)