更多內容:XiaoJ的知識星球
目錄
- 2.4 基于 Encoder-Decoder 架構的大語言模型
- 2.4.1 Encoder-Decoder 架構
- 2.4.2 T5 語言模型
- 1)T5 模型結構
- 2)T5 預訓練方式
- 3)T5 下游任務
- 2.4.3 BART 語言模型
- 1)BART 模型結構
- 2)BART 預訓練方式
2.4 基于 Encoder-Decoder 架構的大語言模型
Encoder-Decoder 架構在 Encoder-only 架構的基礎上引入 Decoder 組件,以完成機器翻譯等序列到序列(Sequence to Sequence, Seq2Seq)任務。
.
2.4.1 Encoder-Decoder 架構
Encoder-Decoder架構:編碼器+解碼器
編碼器Encoder:
-
多個編碼模塊組成,每個編碼模塊包含:一個自注意力模塊、一個全連接前饋模塊。
-
模型的輸入序列在通過編碼器部分后,會被轉變為固定大小的上下文向量,這個向量包含了輸入序列的豐富語義信息。
解碼器Decoder:
-
多個解碼模塊堆組成,每個解碼模塊包含:一個帶掩碼的自注意力模塊、一個交叉注意力模塊和一個全連接前饋模塊。
-
帶掩碼的自注意力模塊:引入掩碼機制防止未來信息的“泄露”,確保解碼過程的自回歸特性。
-
交叉注意力模塊:實現了解碼器與編碼器之間的信息交互,對生成與輸入序列高度相關的輸出至關重要。
圖 2.10: Encoder-Decoder 架構
自注意模塊在編碼器和解碼器中的注意力目標不同的。
-
在編碼器中,采用雙向注意力機制以全面捕捉上下文信息。
-
在解碼器中,自注意力機制則是單向的,僅以上文為條件來解碼得到下文。通過掩碼操作避免解碼器“窺視”未來的信息。
交叉注意力通過將解碼器的查詢(query) 與編碼器的鍵(key) 和值(value) 相結合,實現了兩個模塊間的有效信息交流。
通過自注意力和交叉注意力機制的結合,Encoder-Decoder 架構能夠高效地編碼輸入信息并生成高質量的輸出序列。
-
自注意力機制:確保了輸入序列和生成序列內部的一致性和連貫性。
-
交叉注意力機制:確保解碼器在生成每個輸出 Token 時都能參考輸入序列的全局上下文信息,從而生成與輸入內容高度相關的結果。
在這兩個機制的共同作用下,Encoder-Decoder 架構不僅能夠深入理解輸入序列,還能夠根據不同任務的需求靈活生成長度適宜的輸出序列,在機器翻譯、文本摘要、 問答系統等任務中得到了廣泛應用。
本節將介紹兩種典型的基于 Encoder-Decoder 架構的代表性大語言模型:T5 和 BART。
.
2.4.2 T5 語言模型
T5(Text-to-Text Transfer Transformer)
通常,每種自然語言處理任務都需要對訓練數據、模型架構和訓練策略進行定制化設計。這不僅耗時耗力,而且模型難復用。
為了解決這一問題,Google 提出基于 Encoder-Decoder 架構的大型預訓練語言模型 T5(Text-to-Text Transfer Transformer), 其采用統一的文本到文本的轉換范式來處理多種任務。
1)T5 模型結構
T5 模型的核心思想:將多種 NLP 任務統一到一個文本轉文本的生成式框架中。
在此統一框架下,T5 通過不同的輸入前綴來指示模型執行不同任務,然后生成相應的任務輸出,這種方法可以視為早期的提示(Prompt)技術。
圖 2.11: 傳統語言模型和 T5 統一框架
在模型架構方面,T5 與原始的包括一個編碼器和一個解碼器的 Transformer 架構相同。每個編碼器和解碼器又分別由多個編碼模塊和解碼模塊堆疊而成。
T5 模型根據不同的參數,提供 T5-Small、T5-Base、T5- Large、T5-3B 以及 T5-11B 五個版本
2)T5 預訓練方式
T5收集了C4 數據集(Colossal Clean Crawled Corpus)進行訓練,其覆蓋了各種網站和文本類型。
T5 提出了名為 Span Corruption 的預訓練任務。從輸入中選擇 15% 的 Token 進行破壞,每次都選擇連續三個 Token 作為一 個小段(span)整體被掩碼成 [MASK]。
與 BERT 模型中采用的單個 Token 預測不同,T5 模型需要對整個被遮擋的連續文本片段進行預測。這一設計要 求模型不僅等理解局部詞匯的表面形式,還要可以捕捉更深層次的句子結構和上 下文之間的復雜依賴關系。
3)T5 下游任務
T5 模型可以在完全零樣本(Zero-Shot)的情況下,利用 Prompt 工程技術直接適配到多種下游任務。
同時,T5 模型也可以通過微調(Fine-Tuning)來適配到特定的任務。
如今,T5 模型已 經衍生了許多變體,例如,mT5[43] 模型擴展了對 100 多種語言的支持,T0[31] 模型通過多任務訓練增強了零樣本學習(Zero-Shot Learning) 能力,Flan-T5[8] 模型專注于通過指令微調,以實現進一步提升模型的靈活性和效率等等。
.
2.4.3 BART 語言模型
BART(Bidirectional and Auto-Regressive Transformers)
-
中文解釋:雙向自回歸Transformers
-
通過多樣化的預訓練任務,來提升模型在文本生成任務和文本理解任務上的表現。
1)BART 模型結構
BART 的模型結構同 Transformer 架構,包括一個編碼器和一個解碼器。每個編碼器和解碼器分別由多個編碼模塊和解碼模塊堆疊而成。
BART 模型有兩個版本,分別是 BART-Base 以及 BART-Large。
2)BART 預訓練方式
在預訓練數據上,BART 使用了與 RoBERTa 相同的語料庫。
在預訓練任務上,BART 以重建被破壞的文本為目標。
通過以下五個任務來破壞文本,然后訓練模型對原始文本進行恢復。
-
Token 遮擋任務(Token Masking):在原文中隨機將一部分 Token 替換為 [MASK],從而訓練模型推斷被刪除的 Token 內容的能力。
-
Token 刪除任務(Token Deletion):在原文中隨機刪除一部分 Token,從而訓練模型推斷被刪除的 Token 位置以及內容的能力。
-
連續文本填空任務(Text Infilling):在原文中選擇幾段連續的 Token(每段作為一個 span),整體替換為 [MASK]。span 長度服從 λ = 3 的泊松分布,如長度為 0 則直接插入一個 [MASK]。 這一任務旨在訓練模型推斷一段 span 及其長度的能力。
-
句子打亂任務(Sentence Permutation):將給定文本拆分為多個句子,并隨機打亂句子的順序。旨在訓練模型推理前后句關系的能力。
-
文檔旋轉任務(Document Rotation):從給定文本中隨機選取一個 Token,作為文本新的開頭進行旋轉。旨在訓練模型找到文本合理起始點的能力。
BART 不僅在文本生成任務上表現出色,也能適應文本理解類任務的挑戰。
.
小結:
綜上所述,基于 Encoder-Decoder 架構的大語言模型,在生成任務中展示了良好的性能表現。表2.2從模型參數量和預訓練語料規模的角度對本章提到的基于 Encoder-Decoder 架構的模型進行了總結。可以看出此時模型參數數量的上限已達 110 億。
表 2.2: Encoder-Decoder 架構代表模型參數和語料大小表。
模型 | 發布時間 | 參數量(億) | 語料規模 |
---|---|---|---|
T5 | 2019.10 | 0.6-110 億 | 750GB |
mT5 | 2020.10 | 3-130 億 | 9.7TB |
T0 | 2021.10 | 30-110 億 | 約 400GB |
BART | 2019.10 | 1.4-4 億 | 約 20GB |
mBART | 2020.06 | 0.4-6.1 億 | 約 1TB |
在模型結構和參數規模的雙重優勢下,相較于基于 Encoder-only 架構的模型,這些模型在翻譯、摘要、問答等任務中取得了更優的效果。
.
其他參考:【大模型基礎_毛玉仁】系列文章
聲明:資源可能存在第三方來源,若有侵權請聯系刪除!