雷鋒網(公眾號:雷鋒網) AI 科技評論按:近期,谷歌拓展了機器翻譯系統的邊界:用所有可用的數據訓練一個超大規模的多語言神經機器翻譯系統。這不僅是一次大膽的嘗試,也更新了我們對機器翻譯模型的一些認識。雷鋒網 AI 科技評論把谷歌的這篇介紹博客編譯如下。另外,這篇介紹博客也提到了許多相關論文,我們在文中標出的同時,也在文末提供了統一說明和打包下載,方便各位仔細閱讀。
「也許語言翻譯的奧妙,就在於從每種語言往下挖掘,一直挖到人類溝通的共同基礎——那種真實存在但是尚未被發現的通用語言——然後從那裡重新衍生出方便的具體路徑。」 —— Warren Weaver, 1949
尋找新的挑戰
過去幾年中,得益於神經機器翻譯(NMT)技術的流行,機器翻譯的質量越來越高。不過神經機器翻譯的成功也同時依賴於大量的有監督訓練數據。所以對於只能找到很少標註數據、甚至找不到標註數據的語言要怎麼處理呢?人們有一個歸納偏倚,認為「對於學習某一個語言有用的信號也能提高翻譯到其它語言的質量」,這種補救方法似乎有一些潛力,也就帶來了多語言神經機器翻譯。
多語言機器翻譯是用單個翻譯模型處理多種不同的語言。對於缺少標註數據的語言而言,多語言訓練的方法已經在谷歌的自動語音識別和文本轉語音系統中發揮了效果,此前的多語言翻譯論文(論文 1、論文 2、論文 3)中也有體現。谷歌自己曾經做過一次實驗,研究讓單個網絡學習更多的語言會如何影響它的表現(論文 4)。不過在那次的研究中谷歌限制了每種語言的訓練數據的多少,如果訓練模型的時候不再考慮不同語言的數據多少、複雜度和領域,反正把找得到的數據都用上,效果會如何呢?
在最新的論文《Massively Multilingual Neural Machine Translation in the Wild: Findings and Challenges》(論文 5)以及緊接著的幾篇論文中(論文 6、論文 7、論文 8 、論文 9),谷歌做了一個逼近極限的實驗,他們用超過 100 種語言對英語、一共超過 250 億組句子對的數據上,訓練了一個有 500 億參數的多語言機器翻譯模型。結果表明這種做法不僅可以產出一個在低資源語言和高資源語言上都有更好表現的模型,而且它還可以輕鬆地改造成單個語言對的模型,還在下遊的跨語言遷移任務中也有很好的表現。他們把這個超多語言、超大神經網絡模型(massively multilingual, massive neural machine translation)稱作 M4。
大規模多語言機器翻譯
雖然不同的語言有不同的語料數量是神經機器翻譯方法中的一大挑戰,但這種狀況同時也是研究遷移的理想環境,也就是研究訓練提升了對某一種語言的翻譯能力以後能否用它來提高對其他語言的翻譯能力。在語言-語料分布的一端,有英語對法語、德語、西班牙語這種語料非常豐富的,很容易找到十億級的平行語料樣本,而英語對約魯巴語、信德語、夏威夷語這種小語種的平行語料就非常缺乏,可能只有成千上萬而已。
不同語言的資源數量(縱軸是 log 尺度),以及只使用各自的雙語語料訓練翻譯模型得到的 BLEU 分數
在用所有找得到的數據(103 種語言對英語的句子對,一共超過 250 億組)訓練模型之後,谷歌的研究人員們觀察到越低資源的語言就有越明顯的提升,資源最低的 30 種語言的翻譯質量平均提升了 5 BLEU。這種效果是此前就得到過研究、這次也在預料之中的,不過這個結果仍然讓人感到欣喜,畢竟這個多語言模型中對於每種語言的具體表徵容量和一個一般的雙語模型是一樣的。這個發現表明大規模多語言模型的泛化能力很強大,而且可以在眾多不同的語言之間找到表徵的相似性。
相比於用雙語語料分別訓練的模型,單個大規模多語言翻譯模型能大大提升低資源語言的翻譯質量;但高資源語言的翻譯質量反而有所下降
在谷歌的 EMNLP 2019 論文《Investigating Multilingual NMT Representations at Scale》(論文 7)中,他們也比較了這個多語言模型為不同語言生成的表徵。他們發現,不需要施加外部的約束,多語言翻譯模型就能夠為語法類似的語言學習到共享的表徵,以便利用這些相似性。在論文《Evaluating the Cross-Lingual Effectiveness of Massively Multilingual Neural Machine Translation》(論文 8)中,谷歌的研究人員們進一步在跨語言的下遊遷移任務上表明了這些學習到的表徵的有效性。
根據表徵相似性對所有 103 種語言的編碼表徵進行聚類的結果。圖中帶顏色的橢圓是語言學分類的結果 —— 和根據表徵的聚類基本相符
構建大規模神經網絡
隨著谷歌的研究人員們增加模型要學習的低資源語言的數量,高資源語言的翻譯質量反而開始下降。這種衰減現象可以在多任務設置下觀察到,可能由於任務間的補全以及遷移固有的方向性(總是從高資源語言向低資源語言遷移)。換用更好的學習算法(論文 10)和更好的容量控制算法(論文 11)可以緩解這種負向遷移的作用,他們同時還嘗試了把網絡擴大,增加網絡的參數、提升網絡的容量,以便提升高資源語言的翻譯質量。
為了提升網絡容量,谷歌的研究人員們其實使用了很多技巧,包括增加更多的層、讓隱層的表徵更寬。在之前的嘗試更深的翻譯網絡的研究(論文 12)的基礎上,他們使用了 GPipe 庫來訓練一個 128 層的 Transformer 模型,其中含有超過 60 億個參數。增加模型容量大幅提升了模型在所有語言中的表現,平均提升了 5 BLEU。他們還探究了非常深的網絡的其它特性,比如網絡深度寬度間的取捨、網絡的可訓練性,甚至嘗試了進一步把網絡拓展到超過 1500 層、含有超過 840 億個參數。
提升模型容量的方法也並不只有直接增加深度一種,還有一種很有意義的補充方案是探索新的架構,以便更好地利用這個問題的「多任務」這個特點。谷歌的研究人員們嘗試了把 Transformer 架構本來的正常的前饋層替換成多個專家模型混合組成的稀疏門(論文 13),也大幅提高了模型的容量、成功訓練了這樣的模型,模型含有的參數也超過了 500 億;這都讓模型的翻譯質量繼續得到全方面的提高。
用容量更大的模型,配合增加更多語料,高資源語言的翻譯質量也能和低資源語言一樣繼續得到提升
把 M4 模型變得實用
為不同的語言、不同的任務或者遷移任務分別訓練不同的大規模模型本來就是很消耗資源、很低效率的一件事,這次谷歌的多語言機器翻譯模型更是一個強力的模型,可以作為向單個語言、單個任務遷移的基礎。谷歌也設計了一些方法(論文 9)提高 M4 模型的實用性,比如可以通過容量可調的層讓 M4 模型可以適應到針對某個語言或者某個人物,而不需要改變原有的模型。
下一步邁向哪裡?
有語言學家估計,目前全世界存在的大約 7000 種語言中,在 2100 年以前就會消失一半。多語言翻譯技術能起到一定的拯救作用嗎?谷歌認為 M4 模型就是在目前的基礎上再多拯救 1000 種語言的一個很有希望的辦法,把這樣的多語言翻譯模型作為基礎,可以很輕鬆地拓展到新語言、新領域、新的下遊任務上去,甚至當我們沒有平行語料的時候都可以做出成果。當然了,我們面對的挑戰還有不少,想要得到真正通用的多語言機器翻譯模型也還需要一些跨領域的合作。不過,對於機器學習開發者和理論研究者來說,多語言機器翻譯模型都是一個多任務學習、元學習、機器學習動力學研究的有趣的實驗環境。我們未來還可以做得更好。