Facebook 開源增強版 LASER 庫:可實現 93 種語言的零樣本遷移

2020-12-17 雷鋒網

雷鋒網 AI 科技評論按:去年 12 月份,Facebook 在論文中提出了一種可學習 93 種語言的聯合多語言句子表示的架構,該架構僅使用一個編碼器,就可以在不做任何修改的情況下實現跨語言遷移,為自然語言處理領域帶來了較大的突破性進展。而近日,Facebook 開源了擴展和改進後的 LASER 工具包,該工具包可應用於使用 28 種不同的字符串編寫的 90 多種語言。 LASER 開源「大禮包」中一同開源的還有多語言編碼器、PyTorch 代碼,以及面向 100 多種語言的多語言測試集。Facebook 將這項成果在其官網上進行了報導,雷鋒網(公眾號:雷鋒網) AI 科技評論編譯如下。

為了加速 NLP 應用在更多語言上的部署,Facebook 對 LASER (Language-Agnostic SEntence Representations)工具包進行了擴展和改進。LASER 是首個可探索多語言句子表示的工具包,Facebook 日前對其實現了開源並共享在 NLP 社區。該工具包現在可應用於使用 28 種不同的字符串編寫的 90 多種語言,也就是說,它將所有語言一同嵌入到一個獨立的共享空間中(而不是為每一種語言都創建一個單獨的模型),從而實現在 90 多種語言中的應用。此外,一同開源的還有多語言編碼器、PyTorch 代碼,以及面向 100 多種語言的多語言測試集。

LASER 開源地址(含多語言編碼器、PyTorch 代碼、面向 100 多種語言的多語言測試集):https://github.com/facebookresearch/LASER

LASER 為實現 NLP 模型從一種語言(如英語)到其他許多種語言(包括訓練數據極度有限的語言)的零樣本遷移帶來了可能。它是首個可以使用單個模型來處理多種語言(包括低資源語言,如卡拜爾語、維吾爾語以及吳語等方言)的開發庫。有朝一日,這項工作或許有助於 Facebook 以及其他公司推出特定的 NLP 功能,例如將某種語言的電影評論分類為正面或負面評論,並隨後將這些評論用其他 100 多種語言展示出來。

性能和功能亮點

針對 XNLI 語料庫的 14 種語言,LASER在其中 13 種語言的零樣本跨語言自然語言推理任務上實現了當前最佳的準確率。同時,它還在跨語言文本分類((MLDoc 語料庫)上取得了很不錯的結果。基於 LASER,句子嵌入在平行語料庫的挖掘上的表現也很強大,並在 BUCC 4 個語言對中的 3 個語言對的共享任務上取得了最佳表現(BUCC 即 2018 Workshop on Building and Using Comparable Corpora)。除了 LASER 工具包以外,Facebook 還共享了一個基於 Tatoeba 語料庫的 100 多種語言的對齊句子的新測試集。句子嵌入通過使用該數據集,可以在多語言相似性搜索上得到很好的結果,即使是在低資源的語言中也是如此。

此外,LASER 還具有以下幾個優勢:

  • 它的運行速度非常快,在 GPU 上每秒能處理約 2000 個句子;

  • 只需要很少的外部依賴,就能使用 PyTorch 實現句子編碼器;

  • 資源有限的語言可以從多種語言的聯合訓練中收益;

  • 模型支持在一個句子中使用多種語言;

  • 隨著新語言的增加以及系統學習識別該語言語系的特徵,相關的任務性能能夠得到增強。

通用的和語言無關的句子嵌入

LASER 的句子向量表示對於輸入語言和 NLP 任務都是通用的,它將任一語言的句子映射到高維空間中的一個點,目標是讓所有語言同樣的表述落在相同的區域內。這種表示可以被視作語義向量空間的一種通用語言。Facebook 觀察到在該空間中的句子距離與句子語義接近度非常相關。

圖左展示了一個單語嵌入空間;圖右則展示了 LASER 的方法——將所有語言嵌入到一個獨立的共享空間中。

 LASER 的方法建立在於神經機器翻譯相同的底層技術上:編碼器/解碼器方法,也就是序列到序列處理。Facebook 為所有的輸出語言使用一個共享編碼器,並使用一個共享解碼器來生成輸出語言,其中,編碼器是一個五層雙向的 LSTM 網絡(長短時記憶網絡)。與神經機器翻譯相比,LASER 這一方法不使用注意力機制,而是使用 1024 維固定大小的向量來表示輸出句子,這個向量則是通過對 BiLSTM 最終的狀態進行最大池化所獲得的。這使得研究人員可以比較句子表示並將它們直接輸入到分類器中。

這張圖展示了 LASER 的架構。

這些句子嵌入通過線性變換對解碼器 LSTM 進行初始化,並在每個時間步連接到它的輸入嵌入上。編碼器和解碼器之間沒有其他的連接,因為 Facebook 希望通過句子嵌入來捕獲輸入序列的所有相關信息。

解碼器需要被告知生成哪種語言,同時獲取一個在每個時間步都連接到輸入和句子嵌入上的語言標識嵌入。Facebook 使用聯合字節對編碼(BPE)詞彙表,來進行在所有訓練語料庫的連接上訓練的 5000 項操作。由於編碼器沒有指示輸入語言的顯式信號,因而該方法鼓勵它去學習與語言無關的表示。Facebook 在與英語和西班牙語對齊的公共平行數據中的 2.23 億個句子上訓練他們的系統,對於每個小批量,他們都隨機選擇一種輸入語言,並訓練系統將句子翻譯成英語或者西班牙語。大多數語言都與目標語言保持對齊,不過並不要求它們必須對齊。

這項工作開展之初,Facebook 只在不到 10 種歐洲國家的語言上訓練模型,並且這些語言都用相同的拉丁語腳本進行編寫。隨著 Europarl 語料庫中的語言逐漸增加到 21 種語言,Facebook 發現增加的語言越多,多語言遷移的表現就越好。這個系統也學到了語系的通用特徵。通過這些方法,低資源的語言可以從同語系的高資源語言的資源中受益。

通過使用在所有語言的連接上進行了訓練的共享 BPE 詞彙表,這一切成為可能。對每種語言的 BPE 詞彙分布之間的對稱化的 Kullback-Leiber 距離進行的分析和分類,展現出其與從語言上定義的語系是完全相關的。

這張圖片展示了 LASER 自動發現的各種語言之間的關係,它們與語言學家人為定義的語系分類高度一致。

之後,Facebook 的研究人員意識到單個共享 BiLSTM 編碼器可以處理多個腳本,並逐漸將其擴展到所有他們確定可以免費獲得平行文本的語言。融入到 LASER 的 93 種語言包括主動賓(SVO)順序的語言(如英語)、主賓動(SOV)順序的語言(如孟加拉語和土耳其語)、動主賓(VSO)順序的語言(如塔加路語和柏柏爾語),甚至是動賓主(VOS)順序的語言(如馬達加斯加語)。

該編碼器能夠泛化到訓練期間沒有用到過(即便被用作單語言文本)的語言上,Facebook 的研究人員觀察到這一編碼器在方言以及地域性的語言上(如阿斯圖裡亞斯語、法羅語、弗裡西語、卡舒比語、北摩鹿加語、皮埃蒙特語、斯瓦比亞語、索布語)的表現也非常強大。這些語言與其他主要語言都有不同程度上的相同點,不過它們各自的語法和特定詞彙都不相同。

上表展示了 LASER 在 XNLI 語料庫上的零樣本遷移性能(資料來源:Conneau 等人所作的論文 Evaluating Cross-lingual Sentence Representations,EMNLP 2018收錄論文,論文查看地址:https://aclweb.org/anthology/D18-1269)。BERT 模型的結果提取自它的 GitHub README。(注意:這些結果是通過 PyTorch 1.0 實現獲得的,因此數值上會和使用了 PyTorch 0.4 的論文中的數據有所不同)。

零樣本、跨語言的自然語言推理

該模型在跨語言自然語言推理(NLI)上獲得了出色的結果,其在這一任務上的表現也表明了該模型能夠很好地表示句子的意義。Facebook 的研究人員考慮進行零樣本設置,換句話說,就是研究人員在沒有微調或者目標語言資源的情況下,在英語上訓練 NLI 分類器,然後將它應用到目標語言中。對於 14 種語言,使用零樣本的模型在其中的 8 種語言(包括與英語關係很遠的俄語、漢語以及越南語等)上的性能是其在英語上的性能的 5% 以內。同時,該模型也在斯瓦希裡語和烏爾都語等低資源的語言上表現出色。最終,對於 14 種語言,LASER 在其中的 13 種語言上的零樣本遷移表現,都超越了此前的所有方法。

與此前要求句子一定要用英語表示的方法相比,Facebook 的系統完全可以使用多種語言,並且還支持任意組合不同語言的前提和假設。

這張圖展示了 LASER 是如何確定 XNLI 數據集中不同語言的句子之間關係的。以前的方法只會考慮同一語言的前提和假設。

這一完全相同的句子編碼器同樣也被應用於挖掘大型單語言文本集的平行數據。Facebook 研究人員僅需要計算出所有句子對之間的距離並選擇出離得最近的那一對。這種方法通過考慮最臨近的句子以及其他最臨近的相鄰句子之間的間隔而得到進一步改進。這一搜索通過使用 Facebook 的 FAISS 開發庫(開發庫地址:https://code.fb.com/data-infrastructure/faiss-a-library-for-efficient-similarity-search/)得以高效完成。

該方法在共享的 BUCC 任務上的表現明顯超越了當前最好的結果。這個獲勝的系統就是專為該任務所設計的,基於這個系統,Facebook 研究人員把德/英的 F1 分數從 85.5 提高到了 96.2、法/英的 F1 分數從 81.5 提升到了 93.9、俄/英從 81.3 改進到 93.3、中/英從 77.5 到 92.3。這些案例表明了,Facebook 所實現的結果在所有語言上都高度均勻。

同樣的方法也適用於使用任意語言對來挖掘 90 多種語言的平行數據。這一方法有望顯著地改進大量依賴於平行訓練數據的 NLP 應用,包括低資源語言的神經機器翻譯。

未來的應用

LASER 開發庫也可被應用於其他相關任務,例如多語言語義空間的屬性可被應用於在 LASER 所支持的同一種語言或者其他 93 種語言中,對句子進行意譯或者搜索意義相似的句子。Facebook 表示,未來還將將會繼續改進模型,為開發庫增加這 93 種語言以外的更多語言。

via:https://code.fb.com/ai-research/laser-multilingual-sentence-embeddings/

另附:

大家如果想對該方法進行更具體的了解,可前往閱讀 Facebook 與 Mikel Artetxe 合作的研究論文 Massively Multilingual Sentence Embeddings for Zero-Shot Cross-Lingual Transfer and Beyond

論文地址:https://arxiv.org/abs/1812.10464

論文簡介:

本文介紹了一種可學習 93 種語言(這些語言屬於 30 多個不同語族,且用 28 種不同的腳本編寫)的聯合多語言句子表徵的架構。該系統使用單個 BiLSTM 編碼器和所有語言共享的 BPE 詞彙表,其中,編碼器與一個輔助解碼器耦合,並在公開的平行語料庫上進行訓練。這使得研究人員能夠基於最終句子嵌入,僅使用英文標註數據就學習一個分類器,並且在不做任何修改的情況下將該分類器遷移到 93 種語言中的任意一種中。在 XNLI 數據集上的 14 種語言(1 種語言除外)中,該方法在零樣本跨語言自然語言推斷上的表現取得了當前最佳成績,並且在跨語言文本分類(MLDoc 數據集)上也取得了頗具競爭力的結果。該研究中的句子嵌入在平行語料庫挖掘上的表現也非常強大,在 BUCC 共享任務的共 4 個語言對中的 3 個中都獲得了當前最佳表現。最後,研究人員引入了一個基於 Tatoeba 語料庫創建的包含 122 種語言的對齊句子的新測試集,並證明此項研究中的句子嵌入在多語言相似性搜索中取得了非常出色的結果,即使是在低資源的語言中也是如此。論文中提到的 PyTorch 實現、預訓練編碼器和多語言測試集將免費開放。雷鋒網

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 讓AI觸類旁通93種語言:Facebook最新多語種句嵌入來了
    夏乙 發自 凹非寺量子位 出品 | 公眾號 QbitAI搞定一種語言之後,是不是很希望算法能在近百種語言上無縫遷移?AI真能無師自通,對於我們這些「因為語言不通而分散在各處」的人們來說,簡直是天大的福音。新鮮出爐的Facebook「多語種句嵌入」,就是這樣一種「神器」。他們提出了一種新架構,為橫跨34個語族、28種不同文字寫成的的93種語言,學習了統一的聯合多語種句嵌入。
  • 【乾貨】去年最火的機器學習開源項目集錦(上)
    2016年 8 月,Facebook 將這一技術開源。2017年,Facebook進一步拓展了 FastText 的應用範圍,他們發布了支持 294 種語言的預訓練矢量文件包,並配有兩個快速入門教程,為學生、軟體開發者和機器學習研究人員提供了更多支持。同時,隨著 FastText 模型內存使用量的減少,它現在已經可以裝進手機和樹莓派這樣的小型計算設備中了。
  • Facebook AI 用深度學習實現程式語言轉換,代碼庫遷移不再困難!
    【新智元導讀】從舊式程式語言(例如COBOL)到現代替代語言(例如Java或C ++)的代碼庫遷移是一項艱巨的任務,Facebook AI開發了Transcoder,這是一個完全自監督的神經轉編譯器系統,可以使代碼遷移變得更加輕鬆和高效。
  • Facebook開源多款AI工具,支持遊戲、翻譯
    、Caffe 等深度學習框架之外,此次開源的還包括 DensePose(可用於人體姿態估計)、Translate(可翻譯 48 種語言)、ELF(可通過遊戲來教機器推理)等諸多 Facebook 內部使用的庫和模型。
  • 不以英語為中心,百種語言互譯,FB開源首個單一多語言MT模型
    機器之心報導機器之心編輯部Facebook AI 近日開源了多語言機器翻譯模型 M2M-100,該模型不依賴以英語為中心的數據,可以實現 100 種語言之間的相互翻譯。機器翻譯(MT)打破了人類之間的語言障礙。
  • 重磅 Facebook賈揚清宣布新機器學習系統Caffe2Go:可在行動裝置上實現實時風格遷移
    李飛飛團隊開源快速神經網絡風格遷移代碼 》、《谷歌增強型風格遷移新算法:實現基於單個網絡的多種風格實時遷移 》。今天,Facebook 又在其官方博客上宣布了一種可以用在行動裝置實現實時風格的深度學習系統 Caffe2Go,自稱能在眨眼之間完成處理的任務,而且還能實現高質量的視頻風格遷移。Facebook 還表示該項目將會在未來幾個月內進行部分開源。
  • [開源推薦]谷歌開源Gumbo:純C語言實現的HTML5解析庫
    在探討完Google背後的開源力量後,今天向大家介紹Google開源的一款用C語言實現的HTML5解析庫Gumbo,作為一款純C99庫,Gumbo解析時無需任何外部依賴。它主要是用來成為其他工具或庫的一個構建塊,如linters、驗證器、模板語言、重構和分析工具。
  • 阿里雲開源EasyTransfer:業界首個面向NLP場景深度遷移學習框架
    開源連結:https://github.com/alibaba/EasyTransfer該框架由阿里雲機器學習 PAI 團隊研發,讓自然語言處理場景的模型預訓練和遷移學習開發與部署更加簡單和高效。框架六大亮點簡單高性能的框架:屏蔽複雜的底層實現,用戶只需關注模型的邏輯結構,降低了 NLP 和遷移學習的入門門檻;同時,框架支持工業級的分布式應用場景,改善了分布式優化器,配合自動混合精度,編譯優化,和高效的分布式數據 / 模型並行策略,做到比社區版的多機多卡分布式訓練在運算速度上快 4 倍多;語言模型預訓練工具鏈:支持完整的預訓練工具鏈,方便用戶預訓練語言模型如
  • WWW2021–OntoZSL:利用本體知識和生成模型增強零樣本學習
    在這篇工作中,我們提出了在訓練樣本存在缺失的條件下,利用知識本體(Ontology)及生成對抗網絡解決零樣本學習問題的模型框架,該框架在零樣本圖像分類及零樣本知識圖譜補全等任務中均取得了顯著效果。近年來,深度學習技術依託強大的計算資源、複雜的神經網絡和大規模的標註數據集在視覺、語言、醫學、金融等廣泛的研究領域取得了顯著的成就。
  • 庫、教程、論文實現,這是一份超全的PyTorch資源列表(Github 2.2K星)
    項目地址:https://github.com/bharathgs/Awesome-pytorch-list列表結構:NLP 與語音處理計算機視覺概率/生成庫其他庫教程與示例論文實現PyTorch 其他項目自然語言處理和語音處理
  • 2016AI巨頭開源IP盤點 50個最常用的深度學習庫
    SyntaxNet是一個在TensoFlow中運行的開源神經網絡框架,提供自然語言理解系統基矗谷歌公開了所有用用戶自己的數據訓練新SyntaxNet模型所需要的代碼,以及谷歌已經訓練好的,可用於分析英語文本的模型Paesey McParseface。  Paesey McParseface建立於強大的機器學習算法,可以學會分析句子的語言結構,能解釋特定句子中每一個詞的功能。
  • Facebook推出首個無需依賴英語即可翻譯100種語言的AI模型
    Facebook AI 將推出 M2M-100,這是首個多語言機器翻譯(MMT)模型,它可以在 100 種語言中的任意兩種之間進行翻譯,而無需依賴英語數據。它是 開源 的。在翻譯時,比如中譯法,大多數以英語為中心的多語言模型都進行中譯英和英譯法兩種訓練,因為英語訓練數據使用最廣泛。我們的模型直接在中譯法數據上進行訓練,以便更好地保留意義。
  • Facebook開源新AI語言模型,「可對100種語言實現一對一翻譯」
    根據《siliconangle》消息:Facebook表示其利用AI技術在不依賴英語數據的情況下翻譯任意兩種語言的嘗試,已經取得了實質性進展。Facebook正在開源一種名為M2M-100的新AI語言模型,該模型可以在100種語言中的任何一對之間進行翻譯。
  • Facebook 100種語言互譯模型原始碼公開!機器翻譯再也不用英語當...
    智東西(公眾號:zhidxcom)編 | 子佩智東西10月23日消息,Facebook近期開源其M2M-100原始碼,這是首個可以不依賴英語數據而可以實現100個語言對互相翻譯的機器翻譯模型(如中文-法文互譯為一個語言對)。
  • Facebook 發布開源程式語言——Hack
    據國外媒體報導,Facebook周四發布一款名為「Hack」的全新程式語言,並聲稱該語言將能使代碼的編寫和測試更加高效快速。 Facebook已在公司內部使用該語言超過一年時間,現在將以開源的形式將其正式發布。
  • 上海交大提出零樣本語義分割:像素級別特徵生成|已開源
    這篇論文提出了一種新的零樣本語義分割方法,相比較現有方法在性能上有大幅提升(平均50%的相對提升),並且具備現有方法不具備的一些附加功能,比如生成帶有特定上下文信息的像素級別特徵,判斷影響每個像素級別特徵的上下文範圍大小。另外本論文資料庫、代碼、模型都已經開源。
  • Facebook 發布無梯度優化開源工具 Nevergrad,可應用於各類機器...
    為了使得參數/超參數的調整更快、更簡單,Facebook 創建了一個名叫 Nevergrad(https://github.com/facebookresearch/nevergrad)的 Python 3 庫,並將它開源發布。Nevergrad 提供了許多不依賴梯度計算的優化算法,並將其呈現在標準的問答 Python 框架中。此外,Nevergrad 還包括了測試和評估工具。
  • 阿里雲開源的業界首個面向NLP場景深度遷移學習框架EasyTransfer
    近日,阿里雲正式開源了深度遷移學習框架EasyTransfer,這是業界首個面向NLP場景的深度遷移學習框架。該框架由阿里雲機器學習PAI團隊研發,讓自然語言處理場景的模型預訓練和遷移學習開發與部署更加簡單和高效。
  • Facebook開源DL模塊帶給我們什麼?
    現在,深度學習的愛好者可以通過Facebook的福利消除這一障礙:日前, Facebook人工智慧研究院 (FAIR)宣布開源了一組深度學習軟體庫,是針對Torch機器學習框架的插件,基於NVIDIA的GPU,大大提升了神經網絡的性能,可以用於計算機視覺和自然語言處理(NLP)等場景。那麼,具體而言,Facebook開源深度學習軟體庫有哪些內容?它會是誰的菜?
  • 國產信息基礎軟硬體行業深度報告:開源、遷移、上雲、生態
    外部開發者 參與開源項目的貢獻,可以作為重要的履歷也可作為發揮個人創意的方式。適度的使用開源資源, 是企業和開發者的雙贏局面。3. 遷移:適應生態現狀的必要舉措,影響實際推進順利程度 遷移成本將成為國產軟硬體信創推廣的重要考量,本質取決於生態建設的進度。