0
雷鋒網(wǎng)AI科技評論按:6月19日,谷歌發(fā)布了T2T(Tensor2Tensor)深度學習開源系統(tǒng),這個系統(tǒng)的一大優(yōu)點是模塊化,這也就意味著系統(tǒng)更加靈活,適應性更強。深度學習的研究進度也會因此而加速。以下內(nèi)容為雷鋒網(wǎng)整理編輯。
深度學習(DL)讓很多技術(shù)領(lǐng)域都得以迅速發(fā)展,比如機器翻譯,語音識別,以及物體檢測。在研究社區(qū),人們可以找到研究作者開源的代碼,復制他們的結(jié)果,幫助自己做進一步深度學習研究。然而,大多數(shù)深度學習系統(tǒng)使用了需要耗費大量工程開發(fā)的特殊設置,可能只對特定的問題或結(jié)構(gòu)起作用。這使得在新實驗中運行以及進行實驗結(jié)果對比變得比較困難。
可喜的是,谷歌終于找到了解決這一問題的辦法,發(fā)布了T2T(Tensor2Tensor),一個用于在TensorFlow上訓練深度學習模型的開源系統(tǒng)。T2T方便了對各種各樣的機器學習應用的模型進行創(chuàng)新,比如翻譯,句法分析,圖像說明等等。這次發(fā)布也包含數(shù)據(jù)集庫和模型庫,包括最近幾篇論文中提到的最好模型。
在標準WMT英語-德語翻譯任務中,各模型的BLEU分數(shù)(越高越好)
作為舉例,谷歌將T2T庫用于機器翻譯。如上表所示,兩種不同T2T模型,SliceNet和Transformer,性能表現(xiàn)勝過之前業(yè)界表現(xiàn)最好的模型GNMT+MoE。其中最好的T2T模型Transformer,高出GNMT模型3.8分。而GNMT本身已經(jīng)高出MOSES 4分(以短語翻譯系統(tǒng)MOSES為最低標準)。值得注意的是,使用單塊GPU在一天內(nèi)訓練就可以達到之前最好的結(jié)果,一個小型的Transformer模型在單GPU訓練一天后可以得分24.9(上圖表格并沒有顯示)。可見使用T2T效果非常明顯?,F(xiàn)在所有人都可以自己用一塊GPU來訓練這個翻譯模型了。Github有操作說明。(地址見文末)
T2T庫是用人們熟悉的TensorFlow工具和深度學習系統(tǒng)中所需的定義多個組件:如數(shù)據(jù)集,模型結(jié)構(gòu),算法,學習速率衰減方案,超參數(shù)等等開發(fā)出來的。關(guān)鍵是,它在所有這些組件之間執(zhí)行了一個標準接口,實現(xiàn)了當前機器學習的最佳效果。所以你可以拿走任何一個數(shù)據(jù)集,模型,算法,或一組超參數(shù),來執(zhí)行訓練并觀察它的性能表現(xiàn)。通過使架構(gòu)模塊化,輸入數(shù)據(jù)和預測輸出之間的每一部分都是T2T函數(shù)。這意味著如果對模型架構(gòu)有了新的想法,則不需要替換整個設置。你可以保留需要嵌入的部分,損失函數(shù)和其他所有部分。
這就意味著T2T很靈活,訓練不再依賴于特定的模型或數(shù)據(jù)集。甚至連比較有名的LSTM序列模型都可以用幾十行代碼來定義。此外還可以對不同領(lǐng)域的多個任務進行單個模型的訓練。甚至還可以在所有數(shù)據(jù)集上同時運行單個模型。MultiModel就可以這樣訓練并包含在T2T中,在很多任務上都產(chǎn)生了良好的效果。即使在ImageNet(圖像分類)MS COCO(圖像說明)WSJ(語音識別)WMT(翻譯)以及Penn Treebank(解析語料庫)聯(lián)合訓練也依然表現(xiàn)良好。這也是第一次證明了單個模型可以同時執(zhí)行多個任務。
這次的首次發(fā)布也提供了腳本,用來生成大量數(shù)據(jù)集,廣泛用于研究社區(qū),一些模型和大量超參數(shù)配置。trade的其他重要技巧在執(zhí)行中表現(xiàn)良好。把他們?nèi)苛谐鰜砗茈y,如果你決定用T2T運行你的模型,你將得到序列的正確填充(padding)和相應的交叉熵損失,調(diào)試良好的Adam優(yōu)化器參數(shù),自適應批處理,同步的分布式訓練,調(diào)試良好的圖像數(shù)據(jù)增強,標簽平滑和大量的超參數(shù)配置。
例如,考慮把英語句子解析成語法選區(qū)樹(grammatical constituency trees)的任務。這個問題已經(jīng)研究了幾十年才找到可靠的方法。它可以表示為一個序列到序列的問題,可以用神經(jīng)網(wǎng)絡求解,但是在過去需要調(diào)試很多次?,F(xiàn)在運用T2T,只需要幾天就可以添加解析數(shù)據(jù)集生成器,并且調(diào)節(jié)注意力轉(zhuǎn)化器模型來訓練解決這個問題。令人興奮的是,只用了一周的時間就得到了非常好的結(jié)果。
在WSJ 23節(jié)的標準數(shù)據(jù)集上解析F1分數(shù)。只在Penn Treebank WSJ訓練集上比較了文本中經(jīng)過特殊訓練過的模型。更多結(jié)果詳見論文(https://arxiv.org/abs/1706.03762)
除了探索現(xiàn)有的模型和數(shù)據(jù)集,還可以輕松地定義自己的模型,并添加自己的數(shù)據(jù)集到T2T。谷歌相信已有的模型將很好的執(zhí)行諸多NLP任務,所以只需添加你的數(shù)據(jù)集,也許就會得到一個有趣的結(jié)果。通過構(gòu)建T2T模塊,還可以很容易構(gòu)建你自己的模型,并觀察其如何執(zhí)行不同任務。通過這樣的方式,整個社區(qū)都可以從基線庫(library of baselines)中受益,并加速深度學習研究。所以,來Github庫,嘗試一些新模型,來為T2T做點貢獻吧!
提及表格內(nèi)模型的三篇論文(雷鋒網(wǎng)此前也做過覆蓋與報道):
Depthwise Separable Convolutions for Neural Machine Translation
Github操作說明:https://github.com/tensorflow/tensor2tensor
via Google;雷鋒網(wǎng)整理編譯
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。