簡介:
在自然語言處理中,將預訓練的上下文詞嵌入模型微調到受監督的下游任務已變得司空見慣。但是,此過程通常很脆弱:即使具有相同的超參數值,不同的隨機種子也可能導致結果截然不同。為了更好地理解這種現象,我們嘗試使用GLUEbenchmark中的四個數據集,每個BERT都微調了數百個時間,同時僅改變了隨機種子。與先前報告的結果相比,我們發現性能有了實質性的提高,并且我們量化了最佳發現模型的性能如何隨微調試驗次數的變化而變化。此外,我們研究了隨機種子選擇影響的兩個因素:權重初始化和訓練數據順序。我們發現這兩者都對樣本外性能的差異做出了可比的貢獻,并且在所有探索的任務中,一些權重初始化都表現良好。在小型數據集上,我們觀察到許多微調試驗在整個訓練過程中存在差異,并且我們為從業者提供最佳實踐,以便盡早停止訓練不太理想的跑步。我們公開發布了我們的所有實驗數據,包括2100個試驗的訓練和驗證分數,以鼓勵在微調過程中進一步分析訓練動力學。
最近,NLP見證了大型預訓練模型使用的激增。用戶下載在大型數據集上預先訓練的模型的權重,然后在他們選擇的任務上微調權重。這就提出了一個問題:下載未經訓練的不可信的權重是否會造成安全威脅。在這篇論文中,我們證明了構造“權重中毒”攻擊是可能的,即預先訓練的權重被注入漏洞,在微調后暴露“后門”,使攻擊者能夠通過注入任意關鍵字來操縱模型預測。我們證明,通過應用正則化方法(我們稱之為RIPPLe)和初始化過程(我們稱之為嵌入手術),即使對數據集和微調過程的了解有限,這種攻擊也是可能的。我們在情感分類、毒性檢測、垃圾郵件檢測等方面的實驗表明,該攻擊具有廣泛的適用性和嚴重的威脅。最后,我們概述了針對此類攻擊的實際防御。復制我們實驗的代碼可以在//github.com/neulab/RIPPLe找到。
基于語言模型的預訓練模型,如BERT,在不同的NLP任務中提供了顯著的收益。在本文中,我們研究了不同類型的基于自回歸模型(GPT-2)、自編碼器模型(BERT)和seq2seq模型(BART)等用于條件數據增強的預訓練transformer 模型。我們表明,將類標簽前置到文本序列提供了一種簡單而有效的方法來設置預訓練模型的條件,以便進行數據擴充。在三個分類基準上,預先訓練的Seq2Seq模型優于其他模型。此外,我們還探討了不同的基于預訓練模型的數據擴充在數據多樣性方面是如何不同的,以及這些方法如何很好地保存類標簽信息。
最近的研究表明,神經網絡學習的許多重要方面都發生在訓練的最早階段。例如,稀疏的、可訓練的子網絡出現(Frankle et al., 2019),梯度下降移動到一個小的子空間(guri - ari et al., 2018),網絡經歷一個關鍵時期(Achille et al., 2019)。在這里,我們檢查了深層神經網絡在早期訓練階段所經歷的變化。在這些早期的訓練迭代中,我們對網絡狀態進行了廣泛的測量,并利用Frankle等人(2019)的框架來定量探測權重分布及其對數據集各個方面的依賴。我們發現,在這個框架中,深度網絡在保持符號的同時,對隨機權值的重新初始化不夠健壯,并且即使經過幾百次迭代,權值的分布仍然是非獨立的。盡管存在這種行為,使用模糊輸入或輔助自監督任務的預訓練可以近似監督網絡中的變化,這表明這些變化并不是固有的標簽依賴,盡管標簽顯著地加速了這一過程。綜上所述,這些結果有助于闡明在學習的關鍵初始階段所發生的網絡變化。
過去幾年間,遷移學習給 NLP 領域帶來了豐碩的成果,掀起了新一波的發展浪潮。 而遷移學習之所以如此有效,得益于其利用自監督任務(如語言建模或填充缺失詞)在大量可用的無標注的文本數據上對模型進行預訓練;接著,又在更小的標注數據集上對模型進行微調,從而讓模型實現比單單在標注數據上訓練更好得多的性能。 遷移學習在2018年出現的GPT、ULMFiT、ELMo以及 BERT等成果上初露鋒芒,之后又在2019年大顯身手,推動了領域內多種新方法的發展,其中就包括XLNet、RoBERTa、ALBERT、Reformer 和 MT-DNN 等等。 隨著 NLP 領域的發展迅猛,評估其中的哪些發展成果最具有意義以及這些成果結合起來會發揮出怎樣的效果,已不是易事。
論文地址://arxiv.org/abs/1910.10683
谷歌研究者在論文《使用統一的文本到文本的Transformer 來探索遷移學習的局限性》中,提出了一個大規模的實證評估,以確定哪些遷移學習技術效果最好,并大規模應用這些遷移學習技術來創建一個新模型,作者將這個新模型稱之為文本到文本的遷移Transformer (Text-To-Text Transfer Transformer,T5)。與此同時,他們還引入了一個新的開源預訓練數據集——Colossal Clean Crawled Corpus(C4)。 作者在C4數據集上對T5 模型進行預訓練,讓模型在許多 NLP 基準上都實現了最佳結果,與此同時還擁有足夠的靈活性,進行微調后可應用到多個重要的下游任務上。
一、共享的文本到文本框架
創建了T5模型后,作者將所有的 NLP 任務都重新構建為統一的文本到文本格式,輸入和輸出都始終是文本字符串,與只能輸出類標簽或者輸入范圍的 BERT 式的模型截然不同。 該文本到文本的框架讓他們可以在任何 NLP 任務上都使用相同的模型、損失函數以及超參數,包括機器翻譯、文檔摘要、問答和分類任務(如情感分析)等等。 T5 模型甚至可以被應用到回歸任務上,具體方式是訓練 T5 模型來預測一個數字的字符串表示,而不是這個數字本身。
文本到文本框架圖。對于每個任務,作者都考慮使用文本作為模型的輸入,并訓練模型生成一些目標文本。這讓他們能夠在多個任務上使用相同的模型、損失函數和超參數,包括翻譯(綠色框)、語言可接受性(紅色框)、句子相似性(黃色框)和文檔摘要(藍色框)。它也為實證評估中所包含的方法提供了一個標準的試驗臺。
二、大型預訓練數據集(C4)
遷移學習的一個重要部分,便是用于模型預訓練的未標注的數據集。為了準確地評估擴大預訓練規模的效果,我們需要一個不僅高質量、多樣化而且規模龐大的數據集。 現有的預訓練數據集無法滿足上述三點要求,例如來自維基百科的文本是高質量的,并且格式統一,但是規模相對而言較小,而從Common Crawl 網站上爬取的文本雖然規模較大并且多樣化程度高,但是質量相當低。 為了滿足這三點要求,作者開發了一個Colossal Clean Crawled Corpus數據集 (C4),該數據集是比維基百科大兩個數量級的 Common Crawl 的清潔版本。他們的清潔處理過程涉及到刪除重復數據、去除不完整的句子以及消除冒犯性或有噪音的內容。 這一過濾可以讓模型在下游任務上獲得更好的表現,與此同時額外規模的數據集也讓模型在預訓練期間不過擬合的情況下,增加其大小。 C4數據集地址:
三、遷移學習方法的系統研究
作者使用T5 文本到文本框架和新的預訓練數據集C4,評估了在過去幾年間為NLP 遷移學習引入的大量思想和方法。詳盡的評估細節可前往論文查看,其中包括以下實驗:
模型架構的實驗中,他們發現編碼—解碼模型通常比“僅解碼”的語言模型,性能更優; 預訓練目標的實驗中,他們證實了填空式的去噪目標(即訓練模型來復原輸入中缺失的詞)的效果更好,并且其中最重要的因素是計算成本。 未標注數據集的實驗中,他們展示了在域內數據集上訓練模型是有益的,而在更小的數據集上對模型進行預訓練則會導致不利的過擬合; 訓練策略的實驗中,他們發現多任務學習可以與“先預訓練再微調”的方法相媲美,但是要求更細致地選擇模型在每個任務上訓練的頻率。 模型規模的實驗中,他們對比了不同大小的模型、訓練時間以及集成模型的數量,以確定如何才能最好地利用固定的計算能力。
四、遷移方法+數據規模=性能最佳
為了探索NLP目前遷移學習的局限性,作者進行了最后一組實驗,結合系統研究中的所有最佳方法,并利用Google Cloud TPU加速器進行了優化。 其中最大規模的模型有110億個參數,在GLUE、Superglue、Team和CNN/Daily Mail基準測試中都能夠達到SOTA。另外,在SuperGLUE 自然語言理解的基準測試中獲得了接近人類水平的分數。
五、擴展到其他任務,表現也同樣可喜
T5非常靈活,可以非常容易的進行修改,除了作者論文中的一些任務,在其他任務中也能取得了巨大的成功。例如在下面兩個新任務中,模型表現也不錯。
1、封閉數據問答
在閱讀理解問題中往往可以使用文本到文本的框架。給模型提供上下文信息以及一個問題,訓練其在上下文信息中找到問題的答案,例如可以向模型提供維基百科文章中關于康尼颶風的文本,并提問“康妮颶風在哪天發生?”然后訓練模型,讓其找到文章中的日期。事實上,作者使用這種方法在斯坦福問答數據集(SQuAD)中取得了最先進的結果。 在作者的Colab demo和后續論文中,其訓練了T5在一個更加困難的封閉的環境中回答瑣碎的問題,而且不需要接觸任何外部知識。 換句話說,T在回答問題時只能用其在無監督預訓練期間訓練出的參數和知識。
在預訓練期間,T5學習如何從C4文檔中填充文本的丟失跨度。對模型進行了微調,在無需輸入任何信息或者上下文的情況下,將其應用于已經封閉式問答。 T5非常擅長這項任務,其110億參數模型分別在TriviaQA、Web問題(WebQuestions)和自然問題(Natural Questions)對50.1%、37.4%和34.5%的答案進行了精確生成。 為了客觀看待此類問題,T5團隊在酒吧瑣事挑戰(pub trivia challenge)與訓練好的模型并肩作戰,但不幸的是慘敗而歸。如下動圖所示
2、完形填空 第二個任務是完形填空。像GPT-2這種大型語言模型在文本生產方面非常擅長。模型在經過訓練之后,能夠根據輸入預測出下一個單詞,如此將模型集成,便會產生非常創新性的應用程序,例如基于文本的游戲“AI地下城”。
T5使用的預訓練目標與填空任務非常相似,在填空任務中,模型預測文本中缺少的單詞,但是此目標是對“繼續任務”(continuation task)的概括,因為填空任務中的空白有可能出現在文本的末尾。 為了完成目標,創建了一個名為“填充空白”的新任務,并要求模型用指定數量的單詞替換空白。例如給模型輸入:我喜歡吃花生醬和—4—三明治。大概會訓練模型用4個單詞進行填空。 用C4對模型進行了微調,效果良好,尤其是模型對缺失文本的預測非常棒!例如下列對于輸入:“我喜歡花生醬和—N—三明治”,輸出結果如下所示:
預訓練模型:
代碼: Colab Notebook