編者按:機(jī)器翻譯是人工智能在實(shí)際應(yīng)用中的一個重要領(lǐng)域。在這篇文章中,F(xiàn)acebook的研究人員們展示了他們是如何讓機(jī)器翻譯速度變快,同時又能擴(kuò)展應(yīng)用的方法。
我們希望,用戶能用自己的母語體驗他們的產(chǎn)品,從而將全世界各地的用戶聯(lián)系起來。為了這一目的,我們用神經(jīng)機(jī)器翻譯(NMT)自動翻譯文章和評論的文字。此前有關(guān)這項工作的成果已經(jīng)在fairseq上開源,這是一種序列到序列的學(xué)習(xí)庫,可以讓任何人訓(xùn)練NMT、進(jìn)行文本摘要總結(jié)或者其他文本生成任務(wù)。
隨著NMT在學(xué)習(xí)大型單一語種數(shù)據(jù)上的能力逐漸提高,追求更快的訓(xùn)練速度成為了研究重點(diǎn)。為了這一目的,我們必須找到一種方法能顯著減少訓(xùn)練時間。直到目前,在一臺機(jī)器上訓(xùn)練這種類型的NMT模型都需要好幾周時間,這種速度顯然比較慢。
現(xiàn)在,經(jīng)過對模型精確度和訓(xùn)練設(shè)置的多種改變,我們可以在32分鐘內(nèi)訓(xùn)練一個強(qiáng)大的NMT模型,速度比之前快了45倍。論文地址:arxiv.org/abs/1808.09381
加速訓(xùn)練
首先,我們的重點(diǎn)在如何減少模型的訓(xùn)練時間,最終僅用了一個NVIDIA DGX-1和8個Volta GPUs就將之前將近24個小時的訓(xùn)練時間減少到了5小時以下。神經(jīng)網(wǎng)絡(luò)通常含有數(shù)百萬個參數(shù),可以在訓(xùn)練時進(jìn)行調(diào)整。這些參數(shù)通常會儲存在32位浮點(diǎn)數(shù)中。第一步,我們將訓(xùn)練從32位轉(zhuǎn)換成16位,從而減少GPU內(nèi)存,并且能使用經(jīng)過優(yōu)化的NVIDIA Tensor Cores。用精度降低的浮點(diǎn)訓(xùn)練有時會導(dǎo)致模型質(zhì)量的降低,因為浮點(diǎn)的“溢出”。在我們的工作中,我們應(yīng)用了一種常見的用于自動檢測和放置過載的技術(shù),將訓(xùn)練時間減少到了8.25個小時,速度快了2.9倍并且沒有使模型質(zhì)量損失。
接下來,我們通過所謂的“累積更新(cumulative upgrade)”來延遲模型的更新。我們對模型進(jìn)行同步訓(xùn)練,從而每個GPU保留著和模型一樣的副本,但處理訓(xùn)練數(shù)據(jù)不同的部分。處理需要反向傳播,反向傳播在網(wǎng)絡(luò)上分為前向傳遞和后向傳遞,以計算訓(xùn)練模型所需的統(tǒng)計數(shù)據(jù)。處理完每個mini-batch后,GPU會將結(jié)果(梯度)同步互相傳遞。這種方法會導(dǎo)致潛在的低效:首先,在GPU之間傳輸數(shù)據(jù)會消耗時間;第二,速度快的單元要等待速度慢的單元才能繼續(xù)訓(xùn)練。
后者是文本處理模型一個重要的挑戰(zhàn),不同長度的句子會讓問題更嚴(yán)重,這一點(diǎn)在計算機(jī)視覺領(lǐng)域是體會不到的,因為訓(xùn)練的圖像通常大小相同。針對上面提到的兩個問題,我們的解決方法是拖延同步點(diǎn),將多個mini-batch的結(jié)果聚集起來再傳播到各個處理單元中。這將訓(xùn)練時間減少到了7.5個小時,沒有損失模型質(zhì)量。
累積更新同樣增加了高效訓(xùn)練的量,或者用于每個步驟訓(xùn)練的數(shù)據(jù)。在我們的設(shè)置中,batch的大小增加了16倍,這是我們將學(xué)習(xí)率提高了一倍,從而讓訓(xùn)練時間減少到了5.2小時。
在多個步驟間進(jìn)行梯度聚集
最終,我們用多余的GPU內(nèi)存進(jìn)一步擴(kuò)大了batch的大小。通過將每個處理單元從原來的3500單詞增加到5000個單詞,我們能將整體的訓(xùn)練時間減少到4.9小時,是原來的4.9倍。
在多個機(jī)器上訓(xùn)練
我們在單一機(jī)器上的訓(xùn)練優(yōu)化同樣可以應(yīng)用在多機(jī)器訓(xùn)練中(即分布式訓(xùn)練)。將原本在單獨(dú)DGX-1機(jī)器上的訓(xùn)練擴(kuò)展到16個機(jī)器上時(有128個GPU),我們發(fā)現(xiàn)只需37分鐘就能訓(xùn)練相同的模型,這是原來的38.6倍。
在多個機(jī)器上訓(xùn)練時,另一種優(yōu)化會使GPU交流和反向傳遞重疊。反向傳遞之后,我們獲得了在其他處理單元中交流所需要的信息。通常來說,反向和交流是接連出現(xiàn)的,但是我們可以讓二者重疊從而節(jié)省時間。特別的,我們可以當(dāng)反向步驟一在某個神經(jīng)網(wǎng)絡(luò)的子集中完成,就在多個處理單元中對梯度進(jìn)行同步。GPU交流之后就會和反向傳遞重合。這就進(jìn)一步減少了訓(xùn)練時間,即達(dá)到了32分鐘。
反向傳播中的反向傳遞(back pass)可以和梯度同步重疊進(jìn)行,從而提高訓(xùn)練速度
每次模型優(yōu)化后訓(xùn)練時間的減少
在更多未翻譯的數(shù)據(jù)上訓(xùn)練
將模型的訓(xùn)練時間縮短后,我們又開始研究如何訓(xùn)練模型在更大的數(shù)據(jù)集上工作。通常來講,訓(xùn)練NMT模型需要有對應(yīng)翻譯版本的數(shù)據(jù),即雙語數(shù)據(jù)。但是這種資源十分有限,可用數(shù)據(jù)大多只有一種語言。在我們的第二篇論文中(地址:arxiv.org/abs/1808.09381),我們展示了如何讓模型在這種情況下工作,同時用大量數(shù)據(jù)訓(xùn)練可以讓精確度有所提升。
其中提高NMT在單一語言數(shù)據(jù)上效率的技術(shù)之一就是反向翻譯(back-translation)。如果我們的目的是訓(xùn)練一個英譯德的翻譯模型,那么我們首先要訓(xùn)練一個德譯英的模型,然后用它來訓(xùn)練所有單一德語的數(shù)據(jù)。之后把英譯德模型在現(xiàn)有和新數(shù)據(jù)上進(jìn)行訓(xùn)練。我們的論文表明,數(shù)據(jù)如何翻譯是很重要的,在采樣過程中并不總是選擇最佳翻譯版本是很有用的。
反向翻譯過程
如果我們在現(xiàn)有的500萬條句子中加入2.26億條反向翻譯的句子,那么模型翻譯質(zhì)量會得到顯著提高。下方的表格就展示了系統(tǒng)的精確度在不同數(shù)據(jù)上的表現(xiàn)。
更快的翻譯
我們同樣改善了翻譯速度,模型一經(jīng)訓(xùn)練好,fairseq就能翻譯出來。尤其是我們使用了智能緩存,或者從計算中算出了一經(jīng)完成的句子,并且分批處理單詞數(shù)量而不是句子。這將翻譯速度提高了將近60%。下方圖表就展示了各種方法的對比。
結(jié)語
繼續(xù)提升自動翻譯技術(shù)仍然是我們的研究重點(diǎn),希望未來有更多發(fā)現(xiàn)能讓訓(xùn)練速度更快,這樣就可以推動實(shí)驗的迭代次數(shù),讓NMT模型的發(fā)展更快。我們還希望未來能用無標(biāo)記數(shù)據(jù)解決翻譯之外的問題,例如問答或文本總結(jié)。
-
Facebook
+關(guān)注
關(guān)注
3文章
1432瀏覽量
55031 -
人工智能
+關(guān)注
關(guān)注
1796文章
47818瀏覽量
240597 -
機(jī)器翻譯
+關(guān)注
關(guān)注
0文章
139瀏覽量
14954
原文標(biāo)題:數(shù)據(jù)集更大、訓(xùn)練速度更快,F(xiàn)acebook改善機(jī)器翻譯的秘訣有哪些?
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
機(jī)器翻譯三大核心技術(shù)原理 | AI知識科普
機(jī)器翻譯三大核心技術(shù)原理 | AI知識科普 2
神經(jīng)機(jī)器翻譯的方法有哪些?
一種全新的無監(jiān)督機(jī)器翻譯方法,在BLUE基準(zhǔn)測試上取得了10分以上提升
從冷戰(zhàn)到深度學(xué)習(xí),機(jī)器翻譯歷史不簡單!
換個角度來聊機(jī)器翻譯
![換個角度來聊<b class='flag-5'>機(jī)器翻譯</b>](https://file.elecfans.com/web1/M00/8F/57/o4YBAFy_-jSALDEjAAAPB3ms0F4142.png)
機(jī)器翻譯走紅的背后是什么
MIT和谷歌開發(fā)失傳語言的機(jī)器翻譯系統(tǒng)
未來機(jī)器翻譯會取代人工翻譯嗎
多語言翻譯新范式的工作:機(jī)器翻譯界的BERT
![多語言<b class='flag-5'>翻譯</b>新范式的工作:<b class='flag-5'>機(jī)器翻譯</b>界的BERT](https://file.elecfans.com/web1/M00/E8/A8/pIYBAGBkQSeAYqS9AAAOPYzX2gs935.jpg)
基于DNN與規(guī)則學(xué)習(xí)的機(jī)器翻譯算法綜述
Google遵循AI原則減少機(jī)器翻譯的性別偏見
機(jī)器翻譯研究進(jìn)展
![<b class='flag-5'>機(jī)器翻譯</b>研究進(jìn)展](https://file1.elecfans.com/web2/M00/8C/1E/wKgaomSmM3uAI_i6AAAPBMut1Xk692.png)
評論