Google開源模塊化多任務訓練庫Tensor2Tensor
陳樺 編譯自 Google Research Blog
量子位 報道 | 公眾號 QbitAIGoogle 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/tensor2tensorGoogle Research Blog原文:
https://research.googleblog.com/2017/06/accelerating-deep-learning-research.html文中提到「近期幾篇論文中最優秀的模型」,這幾篇論文分別是:
Attention Is All You Need
[1706.03762] Attention Is All You NeedDepthwise Separable Convolutions for Neural Machine Translation
[1706.03059] Depthwise Separable Convolutions for Neural Machine TranslationOne Model to Learn Them All
[1706.05137] One Model To Learn Them All【完】
推薦閱讀:
※深入淺出Tensorflow(四):卷積神經網路
※利用TensorFlow搞定知乎驗證碼之《讓你找中文倒轉漢字》
※深入淺出Tensorflow(五):循環神經網路簡介
※cs20si:tensorflow for research 學習筆記2
TAG:谷歌Google | TensorFlow | 机器翻译 |