Google開源模塊化多任務訓練庫Tensor2Tensor

陳樺 編譯自 Google Research Blog

量子位 報道 | 公眾號 QbitAI

Google Brain團隊昨天發布的「一個模型學會一切」論文背後,有一個用來訓練MultiModel模型的模塊化多任務訓練庫:Tensor2Tensor。

今天,Google Brain高級研究員?ukasz Kaiser就在官方博客上發文,詳細介紹了新開源的T2T庫。

以下內容編譯自Google Research的官方博客:

深度學習推動了許多技術的快速發展,例如機器翻譯、語音識別和對象檢測。在科研領域,人們可以查找作者開源的代碼,從而復現他們的研究成果,推動深度學習技術的進一步發展。

然而,這些深度學習系統大部分都採用了獨特配置,需要大量的工程開發,並且可能只適用於特定的問題或架構,導致很難嘗試新的實驗並比較結果。

今天,我們很高興發布Tensor2Tensor (T2T),一個用於在TensorFlow中訓練深度學習模型的開源系統。

T2T有助於開發頂尖水平的模型,並適用各類機器學習應用,例如翻譯、分析和圖像標註等。這意味著,對各種不同想法的探索要比以往快得多。

此次發布的這個版本還提供了由數據集和模型構成的庫文件,包括近期幾篇論文中最優秀的模型(文末列舉了這幾篇論文),從而推動你自己的深度學習研究。

為了證明T2T可以帶來的改進,我們將庫文件應用於機器翻譯。正如上表所顯示的,兩個不同的T2T模型,SliceNet和Transformer,超過了此前表現最好的系統GNMT+MoE。

我們最優秀的T2T模型Transformer,比標準GNMT模型高出3.8分,而GNMT自身要比作為基準的翻譯系統MOSES高出4分。

值得注意的是,通過T2T,你可以使用單個GPU,在一天時間裡獲得此前最漂亮的結果:小規模Transformer模型基於單個GPU在一天的訓練後獲得了24.9 BLEU。

目前,所有擁有GPU的研究者都可以自行探索最強大的翻譯模型。我們在Github上介紹了如何去做。

模塊化的多任務訓練

T2T庫利用TensorFlow工具來開發,定義了一個深度學習系統中需要的多個部分:數據集、模型架構、優化工具、學習速率衰減計劃,以及超參數等等。

最重要的是,T2T在所有這些部分之間實現了標準介面,並配置了當前機器學習的最佳行為方式。

因此,你可以選擇任意數據集、模型、優化工具,以及一套超參數,隨後運行訓練,看看效果如何。

我們實現了架構的模塊化,因此輸入數據和預期輸出結果之間所有部分都是張量到張量的函數。

如果你對模型的架構有新想法,那麼不需要替換所有設置。你可以保留嵌入的部分,用自己的函數來替換模型體。這樣的函數以張量為輸入,並返回張量。

這意味著T2T很靈活,訓練不再局限於特定模型或數據集。

這也非常簡單,例如知名的LSTM序列到序列模型可以用幾十行代碼來定義。你也可以用不同類型的多任務來訓練單個模型。在一定的限制下,單個模型甚至可以使用所有數據集來訓練。

例如,我們的MultiModel模型用這種方式在T2T中進行了訓練,在許多任務中取得了良好的結果。這一模型使用的訓練數據集包括ImageNet(圖像分類)、MS COCO(圖像標註)、WSJ(語音識別)、WMT(翻譯),以及Penn Treebank分析語料庫。

這是首次證明,單個模型能同時執行所有這些任務。

內置的最佳行為方式

在最初版本中,我們還提供了腳本,用於生成在研究領域廣泛使用的數據集,少量模型,大量的超參數配置,以及其他一些技巧的配置。

考慮一下這樣的任務:將英語語句解析為語法選區樹。這個問題的研究已有幾十年歷史,並誕生了許多有競爭力的解決辦法。這可以被視為一個序列到序列問題,並使用神經網路來解決。不過,這需要大量的調節優化。通過T2T,我們只需幾天時間,就可以添加解析數據集生成器,並調整我們的注意力轉換模型,針對這個問題來訓練。驚喜的是,我們在一周時間裡就取得了很好的結果。

相關資源

Tensor2Tensor GitHub:

tensorflow/tensor2tensor

Google Research Blog原文:

research.googleblog.com

文中提到「近期幾篇論文中最優秀的模型」,這幾篇論文分別是:

Attention Is All You Need

[1706.03762] Attention Is All You Need

Depthwise Separable Convolutions for Neural Machine Translation

[1706.03059] Depthwise Separable Convolutions for Neural Machine Translation

One Model to Learn Them All

[1706.05137] One Model To Learn Them All

【完】


推薦閱讀:

深入淺出Tensorflow(四):卷積神經網路
利用TensorFlow搞定知乎驗證碼之《讓你找中文倒轉漢字》
深入淺出Tensorflow(五):循環神經網路簡介
cs20si:tensorflow for research 學習筆記2

TAG:谷歌Google | TensorFlow | 机器翻译 |