到目前為止,在我們的圖像分類和機器翻譯實驗中,模型是在具有輸入輸出示例的數據集上從頭開始訓練的,以執行特定任務。例如,Transformer 使用英法對(第 11.7 節)進行訓練,因此該模型可以將輸入的英文文本翻譯成法文。因此,每個模型都成為一個特定的專家,即使是數據分布的微小變化也很敏感(第 4.7 節)。對于更好的泛化模型,或者更勝任的通才,可以在有或沒有適應的情況下執行多項任務,大數據的預訓練模型越來越普遍。
給定更大的預訓練數據,Transformer 架構在模型大小和訓練計算增加的??情況下表現更好,展示了卓越的縮放行為。具體而言,基于 Transformer 的語言模型的性能與模型參數、訓練標記和訓練計算的數量成冪律關系 (Kaplan等人,2020 年)。Transformers 的可擴展性還可以通過在更大數據上訓練的更大視覺 Transformers 的顯著提升性能得到證明(在第 11.8 節中討論 )。最近的成功案例包括 Gato,這是一個可以玩 Atari、字幕圖像、聊天并充當機器人的多面手模型(Reed等。, 2022 )。Gato 是一個單一的 Transformer,在對不同模式(包括文本、圖像、關節力矩??和按鈕按下)進行預訓練時可以很好地擴展。值得注意的是,所有此類多模態數據都被序列化為一個扁平的標記序列, Transformers可以將其處理為類似于文本標記(第11.7 節)或圖像補丁(第 11.8 節)。
在為多模態數據預訓練 Transformers 取得令人矚目的成功之前,Transformers 使用大量文本進行了廣泛的預訓練。最初提出用于機器翻譯,圖 11.7.1中的 Transformer 架構由一個用于表示輸入序列的編碼器和一個用于生成目標序列的解碼器組成。基本上,Transformer 可以用于三種不同的模式: encoder-only、encoder-decoder和decoder-only。作為本章的總結,我們將回顧這三種模式并解釋預訓練 Transformers 的可擴展性。
11.9.1。僅編碼器
當僅使用 Transformer 編碼器時,一系列輸入標記被轉換為相同數量的表示,這些表示可以進一步投影到輸出(例如,分類)。Transformer 編碼器由自注意力層組成,其中所有輸入標記相互關注。例如,圖 11.8.1中描述的視覺 Transformers 僅是編碼器,將一系列輸入圖像塊轉換為特殊“”標記的表示。由于這種表示依賴于所有輸入標記,因此它被進一步投射到分類標簽中。這種設計的靈感來自早期在文本上預訓練的僅編碼器 Transformer:BERT(Bidirectional Encoder Representations from Transformers)(Devlin等人,2018 年)。
11.9.1.1。預訓練 BERT
BERT 使用掩碼語言建模在文本序列上進行預訓練:帶有隨機掩碼標記的輸入文本被送入 Transformer 編碼器以預測掩碼標記。如圖11.9.1所示 ,原始文本序列“I”、“love”、“this”、“red”、“car”前面加上“”標記,“” token隨機替換“love”;那么在預訓練期間,掩碼標記“love”與其預測之間的交叉熵損失將被最小化。請注意,Transformer 編碼器的注意力模式沒有約束( 圖 11.9.1右側)) 所以所有的代幣都可以互相關注。因此,“愛”的預測取決于序列中它前后的輸入標記。這就是 BERT 是“雙向編碼器”的原因。無需人工標注,可以使用書籍和維基百科中的大規模文本數據來預訓練 BERT。
11.9.1.2。微調 BERT
預訓練的 BERT 可以針對涉及單個文本或文本對的下游編碼任務進行微調。在微調期間,可以使用隨機參數向 BERT 添加額外的層:這些參數和那些預訓練的 BERT 參數將被更新以適應下游任務的訓練數據。
圖 11.9.2說明了用于情緒分析的 BERT 微調。Transformer 編碼器是一個預訓練的 BERT,它將文本序列作為輸入并將“”表示(輸入的全局表示)饋送到額外的全連接層以預測情緒。在微調期間,通過基于梯度的算法最小化預測和情感分析數據標簽之間的交叉熵損失,其中從頭開始訓練附加層,同時更新 BERT 的預訓練參數。BERT 做的不僅僅是情緒分析。3.5 億參數 BERT 從 2500 億個訓練標記中學習到的通用語言表征提升了自然語言任務的最新水平,例如單一文本分類、文本對分類或回歸、文本標記和問答。
您可能會注意到這些下游任務包括文本對理解。BERT 預訓練還有另一個損失,用于預測一個句子是否緊跟另一個句子。然而,后來發現在對 20000 億個令牌預訓練相同大小的 BERT 變體 RoBERTa 時,這種損失沒有用(Liu等人,2019 年)。BERT 的其他衍生產品改進了模型架構或預訓練目標,例如 ALBERT(強制參數共享)(Lan等人,2019 年)、SpanBERT(表示和預測文本跨度)(Joshi等人,2020 年)、DistilBERT(輕量級通過知識蒸餾) (桑等人。, 2019 )和 ELECTRA(替代令牌檢測) (Clark等人,2020)。此外,BERT 啟發了計算機視覺中的 Transformer 預訓練,例如視覺 Transformers ( Dosovitskiy et al. , 2021 )、Swin Transformers ( Liu et al. , 2021 )和 MAE (masked autoencoders) ( He et al. , 2022 )。
11.9.2。編碼器-解碼器
由于 Transformer 編碼器將一系列輸入標記轉換為相同數量的輸出表示,因此僅編碼器模式無法像機器翻譯那樣生成任意長度的序列。正如最初為機器翻譯提出的那樣,Transformer 架構可以配備一個解碼器,該解碼器可以自動回歸預測任意長度的目標序列,逐個標記,以編碼器輸出和解碼器輸出為條件:(i)對于編碼器輸出的條件,編碼器-解碼器交叉注意力(圖 11.7.1中解碼器的多頭注意力)允許目標標記關注所有輸入標記;(ii) 對解碼器輸出的調節是通過所謂的因果關系實現的注意(這個名稱在文獻中很常見,但具有誤導性,因為它與正確的因果關系研究幾乎沒有聯系)模式(圖 11.7.1中解碼器的屏蔽多頭注意),其中任何目標標記只能關注過去并在目標序列中呈現標記。
為了在人工標記的機器翻譯數據之外預訓練編碼器-解碼器 Transformer,BART (Lewis等人,2019 年)和 T5 (Raffel等人,2020 年)是兩個同時提出的在大規模文本語料庫上預訓練的編碼器-解碼器 Transformer。兩者都試圖在其預訓練目標中重建原始文本,而前者強調噪聲輸入(例如,掩蔽、刪除、排列和旋轉),后者則強調通過綜合消融研究實現多任務統一。
11.9.2.1。預訓練T5
作為預訓練的 Transformer 編碼器-解碼器的示例,T5(文本到文本傳輸轉換器)將許多任務統一為相同的文本到文本問題:對于任何任務,編碼器的輸入都是任務描述(例如, “總結”、“:”)之后是任務輸入(例如,文章中的一系列標記),解碼器預測任務輸出(例如,一系列標記對輸入文章的總結)。為了執行文本到文本,T5 被訓練為根據輸入文本生成一些目標文本。
為了從任何原始文本中獲取輸入和輸出,T5 被預訓練以預測連續的跨度。具體來說,來自文本的標記被隨機替換為特殊標記,其中每個連續的跨度被相同的特殊標記替換。考慮圖 11.9.3中的示例 ,其中原始文本是“I”、“love”、“this”、“red”、“car”。標記“love”、“red”、“car”隨機替換為特殊標記。由于“red”和“car”是連續的跨度,因此它們被相同的特殊標記替換。結果,輸入序列為“I”、“”、“this”、“”,目標序列為“”、“love”、“”、“ red”,“car”,“”,其中“”是另一個標記結束的特殊標記。如圖 11.9.3,解碼器有一個因果注意模式,以防止自己在序列預測期間關注未來的標記。
在 T5 中,預測連續跨度也稱為重建損壞的文本。為了實現這一目標,T5 使用來自 C4(Colossal Clean Crawled Corpus)數據的 10000 億個標記進行了預訓練,該數據由來自 Web 的干凈英文文本組成(Raffel等人,2020 年)。
11.9.2.2。微調T5
與 BERT 類似,T5 需要在任務特定的訓練數據上進行微調(更新 T5 參數)以執行此任務。與 BERT 微調的主要區別包括:(i)T5 輸入包括任務描述;(ii) T5 可以通過其 Transformer 解碼器生成任意長度的序列;(iii) 不需要額外的層。
圖 11.9.4以文本摘要為例解釋了微調 T5。在這個下游任務中,任務描述標記“Summarize”、“:”和文章標記被輸入到編碼器。
經過微調后,110 億參數的 T5 (T5-11B) 在多個編碼(例如分類)和生成(例如摘要)基準測試中取得了最先進的結果。自發布以來,T5在后期研究中得到了廣泛的應用。例如,開關 Transformer 的設計基于 T5 以激活參數子集以提高計算效率(Fedus等人,2022 年)。在名為 Imagen 的文本到圖像模型中,文本被輸入到具有 46 億個參數的凍結 T5 編碼器 (T5-XXL) (Saharia等人,2022 年)。圖 11.9.5中逼真的文本到圖像示例建議即使沒有微調,單獨的 T5 編碼器也可以有效地表示文本。
11.9.3。僅解碼器
我們已經回顧了僅編碼器和編碼器-解碼器 Transformers。或者,僅解碼器的 Transformer 從圖 11.7.1中描繪的原始編碼器-解碼器架構中移除了整個編碼器和具有編碼器-解碼器交叉注意力的解碼器子層 。如今,只有解碼器的 Transformer 已經成為大規模語言建模(第 9.3 節)中的實際架構,它通過自監督學習利用世界上豐富的未標記文本語料庫。
11.9.3.1。GPT 和 GPT-2
GPT(生成預訓練)模型以語言建模為訓練目標,選擇 Transformer 解碼器作為其主干 (Radford等人,2018 年)。
按照第 9.3.3 節中描述的自回歸語言模型訓練 ,圖 11.9.6 說明了使用 Transformer 編碼器進行 GPT 預訓練,其中目標序列是輸入序列移位一個標記。請注意,Transformer 解碼器中的注意力模式強制每個標記只能關注其過去的標記(無法關注未來的標記,因為它們尚未被選擇)。
GPT 有 1 億個參數,需要針對個別下游任務進行微調。一年后推出了更大的 Transformer-decoder 語言模型 GPT-2 (
評論
查看更多