首頁  >  文章  >  科技週邊  >  Transformers回顧 :從BERT到GPT4

Transformers回顧 :從BERT到GPT4

王林
王林轉載
2023-05-10 23:25:041229瀏覽

人工智慧已成為近年來最受關注的話題之一,由於神經網路的發展,曾經被認為純粹是科幻小說中的服務現在正在成為現實。從對話代理到媒體內容生成,人工智慧正在改變我們與技術互動的方式。特別是機器學習 (ML) 模型在自然語言處理 (NLP) 領域取得了重大進展。一個關鍵的突破是引入了「自註意力」和用於序列處理的Transformers架構,這使得先前主導該領域的幾個關鍵問題得以解決。

Transformers回顾 :从BERT到GPT4

在本文中,我們將研究革命性的Transformers架構以及它如何改變NLP,我們也將全面回顧從BERT到Alpaca的Transformers模型,重點介紹每種模型的主要特徵及其潛在應用。

類似bert的文本模型

第一部分是基於Transformer編碼器的模型,用於向量化、分類、序列標記、QA(問答)、NER(命名實體識別)等。

1、BERT Google / 2018

Transformer 編碼器,wordpiece tokenization(30K 詞彙量)。輸入嵌入由三個向量組成:標記向量、可訓練位置向量和片段向量(第一個文字或第二個文字)。模型輸入是 CLS 標記嵌入、第一個文字的嵌入和第二個文字的嵌入。

BERT 有兩個訓練任務:Masked Language Modeling (MLM) 和 Next Sentence Prediction (NSP)。在 MLM 中,15% 的令牌被屏蔽,80% 被 MASK 令牌替換,10% 被隨機令牌替換,10% 保持不變。模型會預測正確的 令牌,而損失僅在這 15% 的屏蔽令牌上計算。在 NSP 中,模型預測第二個文字是否跟在第一個文字之後。預測是在 CLS 令牌的輸出向量上進行的。

為了加快訓練速度,首先90%的訓練在序列長度為 128 個標記上進行,然後剩下的10% 的時間在 512 個標記上訓練模型以獲得更有效的位置嵌入。

2、RoBERTa Facebook / 2019

BERT的改進版本,它只在MLM上訓練(因為NSP被認為不太有用),訓練序列更長(512個令牌)。使用動態屏蔽(當再次處理相同的資料時,不同的令牌被屏蔽),訓練超參數是精心選擇的。

3、XLM Facebook / 2019

訓練多語言模型的方法之一是使用不同的基本模型(目前最受歡迎的模型是基於RoBERTa的XLM-R)。在最初的XLM中,所有語言都有一個共享的BPE詞彙表。

XLM 有兩個訓練任務:MLM和翻譯。翻譯本質上與一對文本上的 MLM 相同,但文本是彼此的平行翻譯,具有隨機掩碼和段嵌入編碼語言。

4、Transformer-XL Carnegie Mellon University / 2019

此模型設計用於處理長序列,主要有兩個想法:片段的循環處理和相對位置編碼。

長文本被分成幾個片段,每次處理一個片段。前段的輸出被緩存,在計算當前段中的自我關注時,鍵和值是基於當前段和前一段的輸出計算的(只是簡單地連接在一起)。梯度也只在當前段內計算。

這種方法不適用於絕對位置。所以模型中重新參數化了注意力權重公式。絕對的位置編碼向量被固定的矩陣取代,該矩陣基於標記位置之間距離的正弦值和對所有位置共有的可訓練向量。

5、ERNIE 清華大學,華為 / 2019

將知識圖譜中有關命名實體的資訊嵌入到 BERT 中。輸入由一組文字標記和一組實體標記組成(每個標記代表整個實體)。文字標記由 BERT 編碼。在 BERT 之上,有一組 K 編碼器區塊(約佔網路參數的 3%)。在這些區塊中:

  • 文字標記的更新向量和實體標記的原始向量首先獨立地計算自註意力;
  • 實體向量與它們在文本中出現的第一個標記相符;
  • 使用GeLU 激活,並用於獲得文字標記的新隱藏表示;
  • 文字和實體標記的新向量從隱藏表示中獲得,並作為輸入傳遞給下一個編碼器塊。

在預訓練期間,計算三種損失:MLM、NSP 和來自令牌的實體預測(如自編碼器),自編碼器使用下列規則:

  • #在5% 的情況下,實體被替換為錯誤的實體,但匹配被保留,模型必須預測正確的實體;
  • 在15% 的情況下,匹配被移除,模型必須僅基於文字來預測實體;
  • 在其他情況下,是正常的。

預訓練模型可以像常規 BERT 模型一樣微調(有 CLS 令牌)。也可以使用額外的程序進行微調以確定實體及其類型之間的關係。

6、XLNet Carnegie Mellon University / 2019

因為BERT訓練過程有問題:

  • 在訓練期間,損失計算僅計算遮罩標記。
  • 只有個別標記被屏蔽,一個屏蔽標記的預測不會影響其他標記的預測。
  • 模型在訓練期間主動看到的實際應用程式中沒有 MASK 令牌。

XLNet 是基於 Transformer-XL,除了替換語言建模 (PLM) 任務外,它學習在短的上下文中預測標記,而不是直接使用 MASK。這確保了梯度會計算所有標記並消除了對特殊遮罩標記的需求。

上下文中的標記被打亂(例如:可以根據第 i-2個和第i 1個標記預測第 i 個標記),但它們的位置仍然是已知的。這無法透過目前的位置編碼(包括 Transformer-XL)來實現。當嘗試在給定上下文的一部分的情況下預測令牌的機率時,模型不應該知道本身的令牌,但應該知道令牌在上下文中的位置。為了解決這個問題,他們將self-attention 分成兩個流:

  • 在每個標記位置,有兩個向量而不是一個:內容向量和查詢向量。
  • 內容向量包含有關令牌的完整信息,而查詢向量僅包含位置資訊。
  • token 的兩個向量都是基於上下文向量計算的,但是 self-attention 中的查詢向量是使用過去的內容向量計算的,內容向量是使用過去的查詢向量計算的。
  • query vector 不接收關於相應 token 的內容的信息,但知道上下文的所有信息,而 content vector 包含完整的信息。

在微調期間,如果忽略查詢向量,模型將像常規的 Transformer-XL 一樣運作。

在實務上該模型的要求情境必須足夠長,以便模型能夠正確學習。它在與 RoBERTa 相同數量的數據上學習,結果相似,但由於實現的複雜性,該模型並沒有像 RoBERTa 那樣流行。

7、ALBERT Google / 2019

在不犧牲品質的情況下簡化BERT:

  • 在不同的編碼器區塊中使用共同的參數,並且已經證明可以共享自註意力的權重,但是分離全連接層的權重會導致品質下降。
  • 與BERT相比,使用了更小的輸入嵌入和更大的隱藏層向量。這可以透過在網路輸入處使用額外的投影矩陣來實現,這樣也可以將嵌入的大小與隱藏表示的大小解耦。
  • 模型的參數減少了18倍,運行速度提高了1.7倍。

模型在MLM和句子順序預測(SOP)上進行訓練。

8、DistilBERT Google / 2019

另一種最佳化BERT的方法是蒸餾:

  • 編碼器區塊的數量減半
  • #三個損失成分:MLM、與教師模型輸出的交叉熵,以及對應層輸出之間的餘弦距離。
  • 模型比教師模型小40%,速度快60%,並且在各種任務上保持了97%的品質。

9、LaBSE Google / 2020

基於BERT的多語言向量化模型。它在MLM和TLM上進行訓練(20%的標記被屏蔽),然後對其進行微調。它支援100多種語言,包含500K個標記的詞彙表。

10、ELECTRA Google, Stanford University / 2020

使用生成對抗方法加速BERT訓練:

  • 訓練了兩個類別bert模型:一個小型生成器和一個主鑑別器
  • 生成器在MLM上進行訓練,然後填充掩碼令牌
  • #鑑別器被訓練來預測由生成器生成的文本的原創性(替換檢測任務)
  • 訓練完成後,去掉生成器,用鑑別器進行微調

訓練資料的數量與RoBERTa或XLNet相同,並且模型比BERT、RoBERTa和ALBERT更快地學習到相似的品質水準。訓練時間越長,它的表現就越好。

11、DeBERTa Microsoft / 2020

另一種將標記向量的內容和位置分離為兩個單獨的向量的模型:

  • 位置向量在所有層之間共享,並且是相對的,即標記之間的每個可能距離都有一個。
  • 為它們增加了兩個新的權重矩陣K_pos和Q_pos。
  • 對注意力權重計算進行修改,簡化為三個乘積的和:Q_cont * K_cont Q_cont * K_pos K_cont * Q_pos
  • 與ALBERT中一樣,使用投影矩陣將嵌入大小與隱藏標記表示向量的大小解耦。

類似GPT 和T5的而模型

是基於完整Transformers的模型。它的應用範圍非常廣泛:除了上一節的任務外,它還包括會話代理、機器翻譯、邏輯和數學推理、程式碼分析和生成,以及基本上文字生成。最大和“最聰明”的模型通常是基於解碼器架構。此類模型通常在 few-shot 和 zero-shot 模式下無需微調即可表現良好。

1、GPT-2 OpenAI / 2018

解碼器在因果LM的任務上進行訓練(根據左側上下文預測下一個令牌)。從體系結構的角度來看,有一些小的變化:從每個解碼器塊中移除交叉注意層,並使用了LayerNorm

使用的標記器是位元組級BPE (50K詞彙表),沒有使用類似的子字串例如(「dog」、「dog!」、「dog.」)。最大序列長度為 1024。層輸出快取所有先前產生的標記。

2、T5 Google / 2019

在MLM上進行完整的預訓練(15%的令牌被屏蔽),跨度由程式碼遮罩(,…)屏蔽。輸出預測序列spanspan…

LayerNorm在自註意力層和全連接層輸入之前應用。使用相對位置編碼:

位置由可學習的嵌入編碼,其中每個「嵌入」只是在計算注意力權重時添加相應logit的標量。

矩陣B是跨層共享的,但對於不同的自註意力注頭是不同的。

每一層考慮令牌之間的128個距離,其餘的歸零,這樣可以對比訓練期間看到的序列更長的序列進行推理。

標記化使用sentencepece (32K詞彙表)完成,在預訓練期間最大序列長度為512。

3、BART Facebook / 2019

另一個完整的transformers,但用GeLU取代了ReLU。訓練它從雜訊文本(AE去雜訊)中預測原始文本,雜訊類型如下:

  • 令牌屏蔽
  • 刪除令牌
  • ##令牌填充
  • 句子中令牌順序顛倒
  • 使隨機令牌成為序列的開始
#使用位元組級BPE(詞彙表大小為50K)

4、CTRL Salesforce / 2019

使用前綴碼令牌(例如,

input text…)控制產生的解碼器。在訓練期間將程式碼分配給適當的文本,然後在推理期間使用程式碼產生相應樣式的文本。該模型是在因果LM上訓練的,並且沒有使用額外的損失。使用的標記化是BPE,詞彙表大小為250K。

5、GPT-3 OpenAI / 2020

這是一個具有Sparse Transformer架構的GPT-2模型,並且增加了2048個令牌的序列長度。還記的那句話嗎:別問,問就是GPT3

6、mT5 Google / 2020

基於T5模型,有類似的訓練,但使用多語言資料。 ReLU活化被替換為GeGLU,詞彙表擴展到250K個標記。

7、GLAM Google / 2021

這個模型在概念上類似於Switch Transformer,但更著重於在少樣本的模式下工作,而不是微調。不同規模的模型使用32到256個專家層,K=2。使用來自Transformer-XL的相對位置編碼。在處理令牌時,只有不到10%的網路參數被啟動。

8、 LaMDA Google / 2021

#類似gpt的模型。該模型是一個會話模型,在因果LM上進行了預訓練,並在生成和判別任務上進行了微調。此模型還可以對外部系統(搜尋、翻譯)的呼叫。

9、GPT-NeoX-20B EleutherAI / 2022

這個模型類似GPT-J,也使用旋轉位置編碼。模型權重使用float16表示。最大序列長度為2048。

10、BLOOM BigScience / 2022

這是46種語言和13種程式語言的最大開源模型。為了訓練模型,使用一個名為ROOTS的大型聚合資料集,其中包括大約500個開放資料集。

11、PaLM Google / 2022

這是一個大型多語言解碼器模型,使用Adafactor進行訓練,在預訓練時禁用dropout,在微調時使用0.1。

12、LLaMA Meta / 2023

用於科學研究的開源大型gpt類別LM,已用於訓練多個指令模型。模型使用了pre-LayerNorm、SwiGLU活化和RoPE位置嵌入。因為開源所以這是彎道超車的主要模型之一。

文本的指導模型

這些模型抓喲用於校正模型輸出(例如 RLHF)以提高對話和任務解決期間的反應品質。

1、InstructGPT OpenAI / 2022

這項工作調整GPT-3以有效地遵循指示。該模型在一個由提示和答案組成的資料集上進行微調,這些提示和答案是人類根據一套標準認為好的。基於InstructGPT,OpenAI 創建了一個我們現在熟知的模型ChatGPT。

2、Flan-T5 Google / 2022

適用於T5的指導模型。在某些任務中,Flan-T5 11B在沒有這種微調的情況下優於PaLM 62B。這些模型已經作為開源發布。

3、Sparrow DeepMind / 2022

基本模型是透過在選定的高品質對話上對Chinchilla進行微調而獲得的,前80%的層被凍結。然後模型被進一步訓練,使用一個大提示來引導它進行對話。有幾個獎勵模型也在Chinchilla的基礎上進行訓練。該模型可以存取搜尋引擎並檢索最多500個字元的片段,這些片段可以成為回應。

在推理過程中,獎勵模型用於對候選人進行排序。候選項要么由模型生成,要么從搜尋中獲得,然後最好的一個成為回應。

4、Alpaca Stanford University / 2023

上面LLaMA 的指導模型。主要重點是使用GPT-3建構資料集的過程:

  • 目標是取得一組Task-Input-Output三元組,其中Input可以為空。
  • 人類會產生175個帶有答案的任務提示,這些提示被輸入到GPT-3中,GPT-3會產生新的任務。
  • 生成過程是迭代的,在每個步驟中,都提供了一些來自人類的任務範例和一些來自先前生成的任務範例。
  • GPT-3將產生的任務分為分類任務或非分類任務,並根據此產生不同的輸入和輸出。
  • 三元組根據品質和與資料庫中現有三元組的不相似度進行過濾。

總共產生了52K個唯一的三元組,並對LLaMA 7B進行了微調。

5、Koala Berkeley University / 2023

這是在指令資料上對LLaMA進行微調,但與上面的Alpaca不同的是,它不僅在GPT-3等大型模型生成的數據上進行微調。也資料集的組成為:

  • 30k個關於數學、詩歌和對話的說明和回答樣本;
  • 52K個Alpaca 資料集的樣本;
  • # 160K對使用者對有用性和危害偏好的模型回應;
  • 20K對使用者問題和評分的模型回答;
  • 93K個總結,使用者對其品質評分;

與GPT-3相比,沒有質量的增加。但在盲測中,使用者更喜歡Koala 的回答,而不是Alpaca 的回答。

從文字產生圖像的模型

基於文字描述的圖像生成器。擴散模型與transformers 結合在這一領域佔據主導地位,不僅可以產生影像,還可以進行內容操作和解析度增強。

1、DALL-E OpenAI / 2021

這項工作分兩個階段進行:對圖像的標記進行訓練,然後學習文字和圖像的聯合生成模型。

在第一階段,訓練dVAE,其中將圖像從256x256x3空間轉換為32x32xdim並返回,其中dim是隱藏表示向量的維度。總共有8192個這樣的標記向量,這些標記向量將在模型中進一步使用。

使用的主要模型是稀疏transformer 解碼器。文字令牌和圖像令牌作為輸入,模型學習聯合分佈(Causal LM),之後可以基於文字產生圖像令牌。 dVAE基於這些相同的令牌產生一個映像。文字標記的損失權重是1/8,圖像標記的權重損失是7/8。

對於文字標記,有常規嵌入和位置嵌入,對於圖像標記,有常規的、按列定位的和按行定位的嵌入。文本標記序列的最大長度為256,標記化為BPE (16K詞彙表)。

2、GLIDE OpenAI / 2021

一種在像素層級操作並由文字控制的擴散模型(DM)。它基於U-Net架構,具有捲積、注意和殘差連接。使用不同的方法來控制生成。使用CLIP獲得的圖像向量和文字向量的標量積

3、Latent Diffusion [Stable Diffusion] CompVis [Stability AI] / 2021 [2022]

在像素空間中工作的擴散模型,主要包含2個模型:

  • 一種用於從潛在空間降維和產生的VAE自編碼器
  • 內部表徵的DM

自編碼器以類似gan的方式進行訓練,在其結果上使用鑑別器,並將額外的正則化表示與標準正態分佈的接近程度。

結果在潛在空間中進入DM解碼:如果條件是一個向量,則在步驟的輸入處與潛在向量連接,如果是一個向量序列,則用於不同U-Net層的交叉注意。對於文字提示使用CLIP向量。

這個通用的模型可以被訓練用於不同的任務:文字到圖像,著色,繪畫,超解析度。

4、Imagen Google / 2022

Imagen背後的主要想法是增加文字編碼器的大小比增加DM的大小可以為生成模型帶來更多的好處。所以CLIP被替換為T5-XXL。

從圖像生成文字的模型

本節中的模型通常被稱為多模態模型,因為它們在生成文字的同時能夠分析不同性質的資料。產生的文字可以是自然語言,也可以是一組命令,例如機器人的命令。

1、CoCa Google / 2022

一個單獨的圖像編碼器(ViT或CNN) 一個共享解碼器,其中前半部分處理文本,後半部分與圖像編碼器的輸出共同處理文字。

288x288的圖像被切成18x18的區塊,編碼器將其轉換為向量 基於所有這些向量的共享注意力池向量。

解碼器的前半部的輸出是文字向量和序列末端的CLS標記向量,使用sentencepece (64K詞彙表)進行標記化。文字和圖像向量透過交叉注意在解碼器的後半部分合併。

兩個損失的權重分別:

  • 圖像的注意力池向量與圖像描述對的文字的CLS標記向量之間的相似性。
  • 整個解碼器輸出的自回歸損失(以影像為條件)。

在微調過程中,影像編碼器可以被凍結,只有註意力池可以被微調。

2、PaLM-E Google / 2023

圖片由ViT編碼,輸出向量以及文字令牌和指令被輸入PaLM, PaLM產生輸出文字。

PaLM-E用於所有任務,包括 VQA、物件偵測和機器人操作。

3、GPT-4 OpenAI / 2023

這是一個具有少量已知細節的封閉模型。據推測,它有一個具有稀疏注意力和多模態輸入的解碼器。它使用自回歸訓練和微調RLHF,序列長度從8K到32K。

它已經在人類考試中進行了零樣本和少樣本的測試,並達到了類似人類的水平。它可以立即和逐步解決基於圖像的問題(包括數學問題),理解和解釋圖像,並可以分析和生成程式碼。也適用於不同的語言,包括小語種。

總結

以下是簡短結論。它們可能不完整,或者根本不正確,所以僅供參考。

自動顯示卡不能挖礦以後,各種大型模型蜂擁而至,模型的基數一直在增長,但是簡單的層的增加和數據集的增長被各種更好的技術替代,這些技術允許品質改進(使用外部資料和工具,改進網路結構和新的微調技術)。但是越來越多的工作表明訓練資料的品質比數量更重要:正確選擇和形成資料集可以減少訓練時間並提高結果品質。

OpenAI現在正在走向閉源,他們已經嘗試過不釋放GPT-2的權重但沒有成功。但是GPT4是黑盒,近幾個月來改進和優化開源模型的微調成本和推理速度的趨勢在很大程度上降低了大型私有模型作為產品的價值,開源模型在質量上也正迅速趕上巨頭,這又可以彎道超車了。

最後開源模型的總結如下:

  • 在編碼器模型區塊中,XLM-RoBERTa 和LaBSE 模型被認為是可靠的多語言解決方案;
  • # 在開放的生成模型中,最有趣的是LLaMA 和來自EleutherAI 的模型(都有它們所有的微調版本)、Dolly-2、BLOOM(同樣有指令微調選項);
  • 程式碼方面, SantaCoder的模型還不錯,但是整體來說品質也明顯落後於ChatGPT/GPT-4;
  • Transformer-XL 和Sparse Transformer 實現了其他模型中使用的技術,可以仔細研究;

以上,僅供參考。

以上是Transformers回顧 :從BERT到GPT4的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除