翻譯:劉小芹 【新智元導讀】引起熱議的兩篇谷歌大腦的論文《一個模型解決所有問題》和《你只需要注意力機制》,,其背后是一個名為 Tensor2Tensor 的模塊化深度學習系統(tǒng)?,F(xiàn)在,谷歌將Tensor2Tensor開源,,包含各種數(shù)據(jù)集和模型,,用戶可以使用來運行模型或實驗自己的新想法。 在新智元公眾號回復【Tensor2Tensor】下載文中提到的3篇論文 GitHub地址:https://github.com/tensorflow/tensor2tensor 播放GIF 谷歌前幾天連續(xù)發(fā)表的幾篇“標題黨”論文引起較多討論,,《一個模型解決所有問題》(One Model To Learn Them All)和《你只需要注意力機制》(Attention Is All You Need),,兩篇論文發(fā)表時間相近,作者是來自谷歌大腦,,Google Research 和多倫多大學的同一批人,,新智元對兩篇論文都進行了介紹。 尤其 One Model To Learn Them All 這篇論文,,提出如何創(chuàng)造一個單一的深度學習模型,,很好地處理多種不同的任務。 谷歌的研究人員稱這個模型為 MultiModel,,并在多種任務上進行訓練,,包括翻譯,語法分析,,語音識別,,圖像識別和物體檢測等。雖然結果跟現(xiàn)有方法相比并沒有非常顯著的改進,,但這些結果表明,,在各種任務上訓練機器學習系統(tǒng)可能有助于提高整體的性能。雖然谷歌沒有說能得到可以一次學習所有任務的主算法,,但這項研究確實表明,,谷歌采用的方法可能對未來開發(fā)解決不同領域問題的類似系統(tǒng)有幫助,。 現(xiàn)在,谷歌宣布這個模型背后的系統(tǒng) Tensor2Tensor 已經(jīng)開源,,作為 TensorFlow 開源項目的一部分,,所有人都可以使用其實驗自己的模型或驗證谷歌的結果,驗證此研究是否可以推廣到其他更多領域,。
下面是來自谷歌博客的介紹,。
深度學習(DL)已經(jīng)推進了許多有用的技術,例如機器翻譯,,語音識別和物體檢測。在研究社區(qū),,我們可以找到很多作者開源的研究,,復制他們的結果,然后進一步推動深度學習,。但是,,這些DL系統(tǒng)大多數(shù)使用獨特的設置,需要大量的工程工作,,并且可能僅在特定的問題或架構工作,,這使得難以運行新的實驗并比較結果。
今天,,我們很高興地發(fā)布Tensor2Tensor(T2T),,這是一個用于在 TensorFlow上訓練深度學習模型的開源系統(tǒng)。T2T有助于為各種機器學習應用創(chuàng)建最優(yōu)的模型,,例如翻譯,,語法分析,圖像說明等等,,讓開發(fā)者能夠更快地探索各種新想法,。本次開源的版本還包括數(shù)據(jù)集和模型的庫,包含了我們最近幾篇論文(Attention Is All You Need, Depthwise Separable Convolutions forNeural Machine Translation, 以及 One Model to Learn Them All)中最優(yōu)的一些模型,,以幫助用戶快速啟動自己的深度學習研究,。 在標準 WMT英語-德語翻譯任務上,各個翻譯模型的的BLEU得分(得分越高越好),。
T2T可以對深度學習研究提供什么樣的改進,,我們將其應用于機器翻譯作為一個示例。如上表所示,,兩個不同的T2T模型,,SliceNet 和Transformer,二者的性能均優(yōu)于此前 state-of-the-art 的 GNMT+MoE 模型,。最好的 Transformer 模型比標準 GNMT 模型得分高3.8分,,而GNMT 模型就比基于短語的 MOSES 翻譯系統(tǒng)高4分,。值得注意的是,使用T2T,,你可以在1天內(nèi)使用單個GPU就能達到此前state-of-the-art的結果:在單個GPU訓練1天之后,,一個小型的 Transformer 模型的BLEU得分可以達到24.9分(上表中未顯示)。現(xiàn)在,,只有有一個GPU,,每個人都可以自己來修改出優(yōu)秀的翻譯模型。我們在 GitHub repo 中給出了應該怎樣做的指南,。
T2T庫采用我們熟悉的TensorFlow工具構建,,并對深度學習系統(tǒng)所需的多個部分進行定義,包括:數(shù)據(jù)集,,模型架構,,優(yōu)化器,學習速率衰減方案,,超參數(shù),,等等。更重要的是,,它規(guī)定了所有這些部分之間的標準接口,,并實現(xiàn)了當前ML的最佳實踐性能。因此,,你可以選擇任何的數(shù)據(jù)集,、模型、優(yōu)化器和一組超參數(shù),,然后運行訓練來檢查其性能,。我們使架構模塊化了,因此輸入數(shù)據(jù)和預測的輸出之間的每個部分都是一個張量到張量的函數(shù),。如果你對模型的架構有新的想法,,那么不需要替換整個的設置。你可以保留嵌入部分,,損失函數(shù),,以及其他所有內(nèi)容只需將自己的函數(shù)替換到模型中,該函數(shù)仍將張量作為輸入,,輸出也是張量,。
因此,T2T是非常靈活的,,訓練不再需要綁定在特定的模型或數(shù)據(jù)集上,。它非常簡單,即使像LSTM序列到序列模型這樣的著名架構也可以用幾十行代碼來定義。而且,,還可以在不同的領域對一個單一的多任務模型進行訓練,。你甚至可以同時在所有數(shù)據(jù)集訓練一個單一的模型。我們很高興地得出報告,,我們的多任務模型就是像這樣訓練的(見論文介紹:One Model To Learn Them All),,已經(jīng)在許多任務上得到非常好的結果。該模型同時用 ImageNet(圖像分類),,MS COCO(圖像說明),,WSJ(語音識別),WMT(翻譯),,以及 Penn Treebank 語法分析語料庫上訓練,,包含在T2T上。這是首次得到證明,,一個單一的模型能夠同時執(zhí)行所有這些任務,。 在這個開源的初始版本中,我們還提供腳本用于生成研究社區(qū)中廣泛使用的許多數(shù)據(jù)集[1],,許多模型[2],一些超參數(shù)配置,,以及其他重要技巧的一個表現(xiàn)良好的實現(xiàn),。雖然在這里很難全部列舉,但假如你決定使用T2T來運行模型,,就能免費獲取序列的正確填充和相應的交叉熵損失,,Adam優(yōu)化器的調(diào)優(yōu)好的參數(shù),自適應批處理,,同步分布式訓練,,圖像的調(diào)優(yōu)好的數(shù)據(jù)增量,標簽平滑,,以及一系列的工作得非常好的超參數(shù)配置,,包括上面提到的取得當前最好結果的翻譯模型,這也能幫助你取得很好的結果,。
舉個例子,,比如說將英語句子解析成語法樹的任務。這個問題已經(jīng)有幾十年的研究,,并且開發(fā)了許多有競爭力的方法,。它可以表示為一個序列到序列的問題,然后用神經(jīng)網(wǎng)絡來解決,,但是需要大量的調(diào)優(yōu),。使用T2T,我們只需要幾天的時間來添加語法解析數(shù)據(jù)集生成器(parsing datasetgenerator),然后調(diào)整 attention transformer 模型來訓練這個問題,。令我們驚喜的是,,我們只用一周的時間就取得了非常好的結果。 上表是在標準測試集(WSJ的section 23)上進行語法解析的F1得分,。在這里我們只比較了分別在Penn Treebank WSJ訓練集上訓練的模型結果,,更多結果可以參看我們的論文(AttentionIs All You Need)。
除了探索現(xiàn)有的模型和數(shù)據(jù)集外,,你還可以輕松定義自己的模型,,并且將自己的數(shù)據(jù)集添加到Tensor2Tensor中。我們相信,,Tensor2Tensor中已經(jīng)包含的模型能在許多NLP任務上表現(xiàn)很好,,所以只要添加數(shù)據(jù)集就可能產(chǎn)生非常有趣的結果。通過使T2T模塊化,,你也很容易貢獻自己的模型,,然后看看它在各種任務中的表現(xiàn)。通過這種方式,,整個研究社區(qū)可以從一個基線庫受益,,并加速深度學習研究。請參考我們的GitHub倉庫,,嘗試新的模型,,并貢獻自己的模型!
致謝
在許多工程師和研究人員的廣泛合作下,,我們得以發(fā)布Tensor2Tensor,。我們想在此致謝核心團隊成員(按字母順序排列):Samy Bengio,Eugene Brevdo, Francois Chollet, Aidan N. Gomez, Stephan Gouws, Llion Jones,?ukasz Kaiser, Nal Kalchbrenner, Niki Parmar, Ryan Sepassi, Noam Shazeer, JakobUszkoreit, Ashish Vaswani。 [1] 我們包含了一些圖像分類數(shù)據(jù)集(MNIST,,CIFAR-10,,CIFAR-100,ImageNet),,圖像說明數(shù)據(jù)集(MSCOCO),,翻譯數(shù)據(jù)集(包括英語-德語、英語-法語在內(nèi)的多種語言的WMT),,語言建模數(shù)據(jù)集(LM1B),,語法分析數(shù)據(jù)集(PennTreebank),自然語言推理數(shù)據(jù)集(SNLI),,語音識別數(shù)據(jù)集(TIMIT),,算法問題數(shù)據(jù)集,等等,。我們將加入更多數(shù)據(jù)集,,并歡迎你的提供.?
[2] 包括LSTM序列到序列RNN模型,具有可分離卷積(如Xception)的卷積神經(jīng)網(wǎng)絡,最近的ByteNet或Neural GPU模型,,以及我們在本文中提到的一些state-of-the-art的模型,。我們將在開源庫中積極更新更多模型。
原文:https://research.googleblog.com/2017/06/accelerating-deep-learning-research.html
|
|