Facebook AI 近日開源了多語言機器翻譯模型 M2M-100,該模型不依賴以英語爲中心的數據,能夠實現 100 種語言之間的相互翻譯。
機器翻譯(MT)打破了人類之間的語言障礙。現在,平均天天須要在 Facebook 新聞提要上提供 200 億次翻譯,這得益於低資源機器翻譯領域的發展以及評估翻譯質量的最新進展。git
典型的 MT 系統須要爲每種語言和每種任務構建單獨的 AI 模型,但這種方法沒法在 Facebook 上進行有效推廣,由於人們在數十億個帖子中發佈超過 160 種語言的內容。先進的多語言處理系統可以同時處理多種語言,但因爲依賴英語數據來彌合源語言和目標語言之間的差距,在準確性上會有所折中。github
所以,咱們須要一種能夠翻譯任何語言的多語言機器翻譯(multilingual machine translation, MMT)模型,從而更好地服務於全球近三分之二不使用英語的人們。網絡
近日,Facebook 根據多年對 MT 的研究宣佈實現了一個重要的里程碑:首個單一的大規模 MMT 模型,該模型能夠實現 100x100 個語言對的直接翻譯,而不依賴以英語爲中心的數據。這個單一的多語言模型表現得和傳統雙語模型同樣好,而且比以英語爲中心的多語言模型提升了 10 個 BLEU 點。架構
具體而言,經過使用新的挖掘策略來建立翻譯數據,該研究構建了首個真正的多對多數據集。該數據集擁有 100 種語言的 75 億個句子。研究者使用可擴展技術來創建具備 150 億個參數的通用模型,它從相關語言中捕獲信息,並反映出更加多樣化的語言文字和詞法。目前,這項研究已經開源。性能
- 論文主頁:https://ai.facebook.com/research/publications/beyond-english-centric-multilingual-machine-translation
- GitHub 地址:https://github.com/pytorch/fairseq/tree/master/examples/m2m_100
挖掘語言方向學習
構建多對多 MMT 模型的最大障礙之一是:在任意方向翻譯大量的高質量句子對(也稱爲平行句),而不須要涉及英語。從中文到英文、從英文到法文的翻譯要比從法文到中文容易得多。更重要的是,模型訓練所需的數據量會隨着語言數量的增長而呈二次增加。例如,若是每一個方向須要 10M 句子對,咱們須要挖掘 10 種語言的 1B 句子對和 100 種語言的 100B 句子對。優化
該研究創建了多樣化的多對多 MMT 數據集:跨越 100 種語言的 75 億句子對。經過結合互補的數據挖掘資源:ccAligned、ccMatrix 以及 LASER。此外該研究還建立了一個新的 LASER 2.0 並改進了 fastText 語言識別,提升了挖掘質量,並開放了源代碼的訓練和評估腳本。全部的數據挖掘資源都利用公開數據集,而且都是開源的。編碼
多對多數據集和多語言模型示意圖。儘管如此,即便使用了像 LASER 2.0 這樣先進的底層技術,爲 100 種不一樣語言的任意對(或是 4450 種可能的語言對)挖掘大規模訓練數據仍然須要大量的計算。爲了使這種數據挖掘規模更容易管理,該研究首先關注翻譯請求最多的語言。所以,以最高質量的數據和最大數量的數據爲優先挖掘方向。該研究避開了在統計上不多須要翻譯的方向,好比冰島語到尼泊爾語翻譯,或者是僧伽羅語到爪哇語的翻譯。spa
橋樑語言策略翻譯
接着,研究者提出了一種新的橋樑挖掘(bridge mining)策略,其中按照語言分類、地域和文化類似性將 100 種語言分紅了 14 個語系。這樣作是由於,同一個語系中的人(包含多種語言)每每交流更頻繁,並將從高質量翻譯中收益。舉例而言,一個語系中將涵蓋印度境內使用的孟加拉語、印地語、馬拉地語、尼泊爾語、泰米爾語和烏爾都語等多種語言。研究者系統性地挖掘每一個語系中全部可能的語言對。
爲了連通不一樣語系的語言,研究者肯定了少許的橋樑語言(bridge language),它們一般由每一個語系中的 1 至 3 種主要語言構成。如上述印度境內所使用的語言中,印地語、孟加拉語和泰米爾語是雅利安語的橋樑語言。而後,研究者挖掘這些橋樑語言全部可能組合的並行訓練數據。經過這種方法,訓練數據集最終生成了 75 億個並行句子,對應 2200 個語言方向(direction)。
因爲挖掘的數據能夠用來訓練給定語言對的兩個不一樣方向,如 en→fr 和 fr→en,所以挖掘策略有助於實現高效、稀疏地挖掘,從而以最佳的狀態覆蓋一個模型中的全部 100×100(共計 9900)個方向。
訓練語料庫中橋樑語言的數據量。反向翻譯策略
爲了對低翻譯質量的語料匱乏語言補充並行數據,研究者使用了反向翻譯(back-translation)策略。舉例而言,若是想要訓練一個漢語 - 法語翻譯模型,則應該首先訓練一個法語到漢語的模型,並翻譯全部的單一法語數據以建立合成的反向翻譯漢語。研究者發現,反向翻譯策略在大規模語言轉換中特別有效,好比將億萬個單語句子轉換爲並行數據集。
具體而言,研究者使用反向翻譯策略做爲已經挖掘語言對方向訓練的補充,將合成反向翻譯數據添加到挖掘的並行數據中。此外,研究者還使用反向翻譯策略爲以往無人監督的語言對方向建立數據。
僅挖掘數據 VS 反向翻譯策略加持造成的語言對比較。總的來講,與單靠挖掘數據上的訓練相比,橋樑策略和反向翻譯數據的結合將 100 個反向翻譯方向上的性能提高了 1.7BLEU。有了魯棒性更強、高效和高質量的數據集,這就爲構建和擴展多對多(many-to-many)語言模型打下了堅實基礎。
在語言對無可用訓練數據的零樣本設置下,研究者也發現了使人印象深入的結果。舉例而言,若是一個模型在法語 - 英語和德語 - 瑞典語語料庫中進行訓練,則能夠實現法語和瑞典語的零樣本轉譯。在多對多模型必須實現非英語方向之間零樣本轉譯的設置下,則該模型要比以英語爲中心的多語言模型好得多。
多對多和以英語爲中心語言模型的比較。在包含英語的評估方向上,多對多模型與以英語爲中心模型的性能至關,但在非英語方向上的性能要好得多。高速度高質量地將 MMT 模型擴展到 150 億個參數
多語言翻譯中的一個挑戰是:單一模型必須從多種不一樣語言和多種腳本中捕獲信息。爲了解決這個問題,研究者發現擴展模型容量並添加特定於語言的參數的顯著優點。擴展模型大小對於高資源語言對尤爲有用,由於它們具備訓練額外模型容量的大部分數據。
最終,當將模型規模密集擴展到 120 億個參數時,研究者在全部語言方向上平均得到了 1.2BLEU 的平均提高。此後,進一步密集擴展所帶來的回報逐漸減小。密集擴展和特定於語言的稀疏參數(32 億個)的組合使得可以建立一個具備 150 億個參數的更優模型。
研究者將其模型與雙語基準和以英語爲中心的多語言模型進行比較。研究者從具備 24 個編碼器層和 24 個解碼器層的 12 億個參數基線開始,而後將以英語爲中心的模型與 M2M-100 模型進行比較。接下來,若是將 12B 參數與 12 億個參數進行比較,將得到 1.2BLEU 的提升。
爲了擴展模型的大小,研究者增長了 Transformer 網絡中的層數以及每層的寬度。研究者發現大型模型收斂迅速而且訓練高效。值得注意的是,這是第一個利用 Fairscale(一個新的專門設計用於支持管道和張量並行性的 PyTorch 庫)的多對多系統。
研究者創建了通用的基礎架構,以經過將模型並行到 Fairscale 中來容納沒法在單個 GPU 上安裝的大型模型,而且是基於 ZeRO 優化器、層內模型並行性和管道模型並行性構建的,以訓練大型模型。
可是僅將模型擴展到數十億個參數還不夠。爲了可以將此模型應用於生產,須要以高速訓練儘量高效地擴展模型。例如,許多現有研究使用多模型集成,其中訓練了多個模型並將其用於同一個源句以生成翻譯。爲了下降訓練多個模型所需的複雜度和計算量,研究者探索了多源自集成技術,該技術可將源句子翻譯成多種語言以提高翻譯質量。此外,研究者還在該研究中引入了 LayerDrop 和 Depth-Adaptive,以用常規主幹和一些語言特定參數集來共同訓練模型。
這種方法對於多對多模型很是有效,由於它提供了一種按照語言對或語言族來拆分模型的天然方法。經過將模型容量的密集擴展與特定於語言的參數結合,該研究提供了大型模型的優點以及學習不一樣語言的特定層的能力。
研究者表示,他們將繼續經過整合此類前沿研究來提高模型,探索方法以負責任地部署 MT 系統,並建立更專業的計算架構將模型投入實際使用。
原文連接:https://ai.facebook.com/blog/introducing-many-to-many-multilingual-machine-translation/