編輯整理:魏瑾
出品平臺:DataFunSummit
導(dǎo)讀:目前,多語言神經(jīng)機器翻譯受到越來越多的研究人員的關(guān)注,多語言預(yù)訓(xùn)練模型對神經(jīng)機器翻譯可以起到非常重要的作用。預(yù)訓(xùn)練模型自身的跨語言遷移能力,可幫助機器翻譯減少標(biāo)注和訓(xùn)練成本,提高機器翻譯的跨語言遷移能力。我們提出了一個新的多語言預(yù)訓(xùn)練模型——DeltaLM,該模型基于Encoder-Decoder架構(gòu),最大限度繼承了pretrained encoder的跨語言遷移能力,降低了訓(xùn)練成本。DeltaLM采用了全新的架構(gòu),設(shè)計了全新的預(yù)訓(xùn)練任務(wù)。在多語言神經(jīng)機器翻譯中,提出了two-stage fine-tuning,對多語言預(yù)訓(xùn)練模型進行微調(diào),減少對不同語言和位置的依賴,實現(xiàn)了跨語言翻譯和零樣本的遷移能力。經(jīng)多項實驗證明:與現(xiàn)有模型相比,采用較少的數(shù)據(jù),我們采用預(yù)訓(xùn)練模型的多語言神經(jīng)機器翻譯就可以達(dá)到較好的效果。
今天的介紹會圍繞以下問題展開:針對一個機器翻譯任務(wù),如何設(shè)計一個好的預(yù)訓(xùn)練模型,有了一個好的預(yù)訓(xùn)練模型后,如何有效地運用到機器翻譯任務(wù)中去。內(nèi)容如下:
機器翻譯技術(shù)路線圖回顧
多語言神經(jīng)機器翻譯框架
預(yù)訓(xùn)練模型(Pretrained Model): DeltaLM
預(yù)訓(xùn)練模型(DeltLM)與多語言神經(jīng)機器翻譯(MNMT)
DeltaLM與神經(jīng)機器翻譯(NMT)零樣本的跨語言遷移
結(jié)論
統(tǒng)計機器翻譯(SMT):需要大量的特征工程。
降低部署和訓(xùn)練成本,一個模型搞定多個語言之間的相互翻譯;
一個模型內(nèi)部支持多語言之間互相遷移,比如高資源語言方向支持低資源語言的翻譯。
多語言神經(jīng)機器翻譯的訓(xùn)練語料具有如下特點:
多語言句對語料的融合,作為一個統(tǒng)一的訓(xùn)練語料;
不同語言翻譯方向的語料規(guī)模不一樣,有些比較多,比如中→英,有些比較少,比如中→印第語;
多語言神經(jīng)機器翻譯框架有如下特點:
一個統(tǒng)一的模型:所有的語言共享相同的參數(shù),由encoder-decoder組成;Encoder對輸入文本進行建模;Decoder生成輸入文本所對應(yīng)的翻譯。
跨語言遷移的能力:高資源語言幫助低資源語言。
與傳統(tǒng)神經(jīng)機器翻譯相比,多語言神經(jīng)機器翻譯的輸入前需要預(yù)設(shè)語言標(biāo)簽,控制語言翻譯的方向,如上圖中最下方“I want to read a book.”的例子。
3. 預(yù)訓(xùn)練模型
通常,多語言機器翻譯在正式翻譯前面臨兩個問題:
怎樣獲得更好的文本表示;
怎樣把多種不同語言的文本映射到同一個空間。
這兩個問題可通過語言預(yù)訓(xùn)練模型實現(xiàn)。過去的語言預(yù)訓(xùn)練模型更多的關(guān)注自然語言的理解,我們最近針對語言文本的生成和翻譯提出了一個新的語言預(yù)訓(xùn)練模型:DeltaLM。
DeltaLM模型是基于encoder-decoder 框架的模型,由兩部分組成:
預(yù)訓(xùn)練的encoder:利用已有的預(yù)訓(xùn)練模型,比如XLM-R;
加入一個decoder,作為pretrained encoder的額外的Task Layer。
1. DeltaLM框架
DeltaLM主要通過以下步驟實現(xiàn):
Encoder初始化;
設(shè)定專門的預(yù)訓(xùn)練任務(wù),對整個Encoder—Decoder模型預(yù)訓(xùn)練。
① 為什么需要一個pretrained encoder,而不是一個隨機初始化的encoder?
效率上的考慮:因為已有的pretrained encoder已在一個的大規(guī)模語料上進行了很長時間的無監(jiān)督訓(xùn)練,具備了一定的文本理解能力。如果繼續(xù)在這個基礎(chǔ)上訓(xùn)練,能夠加快模型收斂的過程,提升了轉(zhuǎn)化速度,降低訓(xùn)練成本,比如DeltaLM訓(xùn)練一周就可以收斂。
有效性上的考慮:對文本生成和機器翻譯而言,一個強壯的解碼器非常重要,業(yè)內(nèi)已有的工作和我們的實驗證明了這點;pretrained encoder已具備了良好的跨語言間的遷移能力,多語言機器翻譯利用這些多語言的pretrained encoder,可以繼承這種能力,這點非常重要。
② 為什么需要一個單獨的Decoder?
首先,一個單獨的Decoder可以很大程度上解耦開Encoder和Decoder,因為在多語言機器翻譯中,輸入和輸出不同的語言,共享同樣的參數(shù)空間或者文本表示空間是非常困難的,解耦開Encoder和Decoder可以避免這種困難,也有利于后續(xù)的微調(diào)。
另外,擁有一個單獨的Decoder,可以更加靈活的選擇和設(shè)定Decoder架構(gòu)。
擁有pretrained encoder和decoder后,我們可以通過encoder-decoder pre-training 任務(wù)將兩者融合起來,得到一個好的預(yù)訓(xùn)練encoder-decoder模型。
實際設(shè)計一個預(yù)訓(xùn)練模型,需要解決的問題之一是:如何初始化解碼器(Decoder)?
初始化Encoder比較簡單,因為網(wǎng)絡(luò)架構(gòu)相同,只是參數(shù)不同。但是解碼器與編碼器構(gòu)造不同,初始化較為復(fù)雜,需要精細(xì)調(diào)整,以適應(yīng)pretrained encoder。
另一個問題是:如何設(shè)定預(yù)訓(xùn)練任務(wù)實現(xiàn)Encoder-Decoder pretraining?
通常需要考量兩個問題:首先,最大程度上保留pretrained encoder原有的能力;另外,要有效地融合已有的大量的雙語語料數(shù)據(jù),進一步增強預(yù)訓(xùn)練模型的效果。
初始化為pretrained encoder → self-attn + FFN,隨機初始化cross-attn;
它的缺點是架構(gòu)與預(yù)訓(xùn)練的編碼器不一致,可能無法繼承encoder原有能力。
每一個attention有一個FFN;
交替初始化self-attn / cross-attn;
完全利用了預(yù)訓(xùn)練encoder的所有參數(shù),加快了訓(xùn)練進程,也可以利用pretrained encoder的跨語言遷移能力。
我們設(shè)計了一個新的預(yù)訓(xùn)練任務(wù),能夠同時很好的利用大規(guī)模單語言文本和雙語言文本。
為利用單語言文本,我們采用了與google同樣的預(yù)訓(xùn)練任務(wù)——Span Corruption Tasks (T5)。該任務(wù)目的是重建輸入單語言文本,輸入含有mask片段的文本span,預(yù)測對應(yīng)的masked的文本片段span,如上圖中的第一個例子。
針對雙語數(shù)據(jù),我們采用了一個新的預(yù)訓(xùn)練任務(wù):Translation Pair Span Corruption Task。將雙語數(shù)據(jù)拼到一起,輸入含有mask片段的文本,預(yù)測mask的文本片段,比如上圖第二個例子。該任務(wù)可以很好的利用雙語語料數(shù)據(jù),找到不同語言之間的對應(yīng)關(guān)系。
設(shè)計了預(yù)訓(xùn)練任務(wù)之后,我們可以訓(xùn)練初始化的encoder-decoder模型,得到一個很好的預(yù)訓(xùn)練模型。
初始化Encoder,采用Span Corruption Task和Translation Pair Span Corruption Task對DeltaLM進行預(yù)訓(xùn)練,最后使用多個不同語言方向的雙語數(shù)據(jù)對整個模型進行微調(diào),就可以進行翻譯任務(wù)了。
2. 使用DletaLM進行的機器翻譯任務(wù)實驗
① 實驗:DeltaLM模型在多語言機器翻譯中的應(yīng)用
X→E:不同語言到英語的翻譯;E→X:英語到不同語言的翻譯
可以看到,DeltaLM基于11種語言的語料,微調(diào)后的 FB m2m支持101種語言。與已有的模型相比,我們的DeltaLM效果非常不錯。
與mt5相比,僅給了30%參數(shù)的DeltaLM就可以達(dá)到類似的效果。
WikiLingua數(shù)據(jù)集
輸入:西班牙語/俄語/越南語/土耳其語文檔
輸出:英語摘要
僅擁有360M的參數(shù),DeltaLM超出了mt5 XL(3.7B)。
輸入:一系列的零散描述數(shù)據(jù)
輸出:輸入數(shù)據(jù)的連貫性總結(jié)
跨越不同的任務(wù)/語言,DeltaLM獲得了持續(xù)的提升。
實驗設(shè)置:
問題的生成能力(XOG)
輸入:中文答案和相應(yīng)的文檔
輸出:對應(yīng)的中文問題
摘要總結(jié)(XGiga)
輸入:法語文檔
輸出:法語摘要
DeltaLM在零樣本的跨語言遷移表現(xiàn)出色。與現(xiàn)有模型相比,使用較少的參數(shù),DeltaLM就能達(dá)到同樣的效果。
實驗設(shè)置:
摘要提煉能力(XGiga)
訓(xùn)練:英語文檔→英語總結(jié)
測試:漢語文檔→漢語總結(jié);法語文檔→法語總結(jié)
設(shè)想:利用已訓(xùn)練好的多語言的預(yù)訓(xùn)練模型,實現(xiàn)零樣本的神經(jīng)機器翻譯。
上圖展示了沒有任何訓(xùn)練數(shù)據(jù)支持的情況下,直接翻譯。
什么是零樣本翻譯?
訓(xùn)練:一個語言對,比如德語→英語
建模:統(tǒng)一的機器翻譯模型,跨語言轉(zhuǎn)換
測試:零樣本(Zero-shot),使用看沒見過的語言,比如日語→英語
針對上述任務(wù),我們提出了新的兩階段微調(diào)方法。
第一階段:
固定編碼器&嵌入解碼器的參數(shù)
- 最大程度的保留預(yù)訓(xùn)練模型自帶的跨語言遷移能力
微調(diào)解碼器層
- 在這基礎(chǔ)上,我們會用訓(xùn)練數(shù)據(jù)集中的雙語數(shù)據(jù)微調(diào)解碼器層,使解碼器適應(yīng)pretrained
第二階段:
微調(diào)編碼器層和解碼器
- 進一步fine-tuning,提升翻譯質(zhì)量。我們的大量實驗發(fā)現(xiàn)這個策略最好。
去掉self-attn殘差連接
- 使編碼器輸出與語言和位置無關(guān),進一步阻斷project embedding 對encoder輸出的影響,提高整個模型的跨語言遷移能力。
兩個階段的切換時機:兩階段使用語料相同,第一階段fine-tuning decoder layer模型收斂后,放開更多的參數(shù),就可以進入第二階段。
數(shù)據(jù)集:
在德語→英語平行數(shù)據(jù)集上訓(xùn)練
- WMT19 43M平行語料
在多語言→英語的語料上測試
- 包括:德語組,拉丁語組,斯拉夫組,烏拉爾族,突厥語組(德語(De),荷蘭語(NI),西班牙語(Es),羅馬尼亞語(Ro),芬蘭語(Fi),土耳其語(Tr),俄語(Ru),波蘭語(PI))。
結(jié)果如下圖:
以上可以得出結(jié)論:與已有模型相比,我們的預(yù)訓(xùn)練模型只要較少的數(shù)據(jù),就可以達(dá)到不錯的效果,不需要大規(guī)模的訓(xùn)練數(shù)據(jù)。
由上圖數(shù)據(jù)可以得出結(jié)論:
相似語言間比距離較遠(yuǎn)的語言之間,神經(jīng)機器翻譯(NMT)的遷移能力更強;
一個語族中的一個語言可以幫助族中的其他語言,將來的機器翻譯中,一個語族只要一個語言能實現(xiàn)富資源的語言的翻譯,就可以實現(xiàn)整個族中的語言的翻譯,減少標(biāo)注和訓(xùn)練成本。
對多語言神經(jīng)機器翻譯的有監(jiān)督學(xué)習(xí),可提高學(xué)習(xí)效果;
提高機器翻譯零樣本的跨語言遷移能力,利用預(yù)訓(xùn)練模型自身的跨語言遷移能力,可幫助機器翻譯減少標(biāo)注和訓(xùn)練成本。
通過大量實驗(支持100種語言)驗證,我們提出的預(yù)訓(xùn)練模型DeltaLM有很好的跨語言遷移能力和文本生成能力,這些都能很大程度上改善機器翻譯效果。
DeltalM模型有著與現(xiàn)有模型不同的架構(gòu),使用pretrained encoder,一個全新的decoder,充分繼承encoder的跨語言遷移能力。并且采用了新的預(yù)訓(xùn)練任務(wù)來更好地利用雙語數(shù)據(jù)。
在多語言神經(jīng)機器翻譯中,我們使用了DeltaLM模型,對其進行了微調(diào),提出了two-stage fine-tuning,減少對不同語言和位置的依賴,實現(xiàn)了跨語言翻譯和零樣本的遷移能力。
聯(lián)系客服