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