五年時間被引用3.8萬次,Transformer宇宙發(fā)展成了這樣
自 2017 年提出至今,Transformer 模型已經(jīng)在自然語言處理、計算機視覺等其他領域展現(xiàn)了前所未有的實力,并引發(fā)了 ChatGPT 這樣的技術(shù)突破,人們也提出了各種各樣基于原始模型的變體。
由于學界和業(yè)界不斷提出基于 Transformer 注意力機制的新模型,我們有時很難對這一方向進行歸納總結(jié)。近日,領英 AI 產(chǎn)品戰(zhàn)略負責人 Xavier Amatriain 的一篇綜述性文章或許可以幫助我們解決這一問題。
在過去的幾年里,陸續(xù)出現(xiàn)了數(shù)十個來自 Transformer 家族模型,所有這些都有有趣且易懂的名字。本文的目標是為最流行的 Transformer 模型提供一個比較全面但簡單的目錄和分類,此外本文還介紹了 Transformer 模型中最重要的方面和創(chuàng)新。
論文《Transformer models: an introduction and catalog》:
論文鏈接:
?https://arxiv.org/abs/2302.07730?
GitHub:https://github.com/xamat/TransformerCatalog
簡介:什么是 Transformer
Transformer 是一類由一些架構(gòu)特征定義的深度學習模型。首次出現(xiàn)在谷歌研究人員于 2017 年發(fā)表的著名論文《Attention is All you Need》中(這篇論文在短短 5 年就被引用了 3.8 萬余次)以及相關的博客文章中。Transformer 架構(gòu)是編碼器 - 解碼器模型 [2] 的一個特定實例,該模型在 2 - 3 年前開始流行起來。然而,在此之前,注意力只是這些模型使用的機制之一,這些模型主要基于 LSTM(長短期記憶)[3] 和其他 RNN(循環(huán)神經(jīng)網(wǎng)絡)[4] 變體。Transformers 論文的關鍵見解是,正如標題所暗示的那樣,注意力可以被用作推導輸入和輸出之間依賴關系的唯一機制。討論 Transformer 體系結(jié)構(gòu)的所有細節(jié)超出了本博客的范圍。為此,本文建議參考上面的原論文或 Transformers 的帖子,內(nèi)容都十分精彩。話雖如此,本文將簡要敘述最重要的方面,下面的目錄中也會提到它們。本文將先從原始論文中的基本架構(gòu)圖開始,繼而展開敘述相關內(nèi)容。
編碼器 / 解碼器架構(gòu)
通用編碼器 / 解碼器體系架構(gòu) (參見圖 1) 由兩個模型組成。編碼器接受輸入并將其編碼為固定長度的向量。解碼器獲取該向量并將其解碼為輸出序列。編碼器和解碼器聯(lián)合訓練以最小化條件對數(shù)似然。一旦訓練,編碼器 / 解碼器可以生成給定輸入序列的輸出,或者可以對輸入 / 輸出序列進行評分。在最初的 Transformer 架構(gòu)中,編碼器和解碼器都有 6 個相同的層。在這 6 層中的每一層編碼器都有兩個子層:一個多頭注意層和一個簡單的前饋網(wǎng)絡。每個子層都有一個殘差連接和一個層歸一化。編碼器的輸出大小是 512。解碼器添加了第三個子層,這是編碼器輸出上的另一個多頭注意層。此外,解碼器中的另一個多頭層被掩碼。
圖 1:Transformer 體系架構(gòu)
圖 2:注意力機制
注意力
從上面的描述可以清楚地看出,模型體系架構(gòu)唯一的特別元素是多頭注意力,但是,正如上面所描述的,這正是模型的全部力量所在。那么,注意力到底是什么?注意力函數(shù)是查詢和一組鍵值對到輸出之間的映射。輸出是按值的加權(quán)和計算的,其中分配給每個值的權(quán)重是通過查詢與相應鍵的兼容性函數(shù)計算的。Transformers 使用多頭注意力,這是一個被稱為縮放點積注意力的特定注意力函數(shù)的并行計算。關于注意力機制如何工作的更多細節(jié),本文將再次參考《The Illustrated Transformer》的帖文,將在圖 2 中再現(xiàn)原始論文中的圖表,以便了解主要思想。與循環(huán)網(wǎng)絡和卷積網(wǎng)絡相比,注意力層有幾個優(yōu)勢,最重要的兩個是它們較低的計算復雜性和較高的連通性,特別是對于學習序列中的長期依賴關系非常有用。
Transformer 的用途是什么,為什么它們?nèi)绱耸軞g迎
最初的 Transformer 是為語言翻譯而設計的,特別是從英語到德語。但是,通過原先的研究論文就可以看出,該架構(gòu)可以很好地推廣到其他語言任務。這一特別的趨勢很快就引起了研究界的注意。在接下來的幾個月里,大多數(shù)與語言相關的 ML 任務排行榜完全被某個版本的 Transformer 架構(gòu)所主導(比方說,著名的 SQUAD 排行榜,其中所有位于頂部的模型都是 Transformer 的集合)。Transformer 能夠如此迅速地占據(jù)大多數(shù) NLP 排行榜的關鍵原因之一是它們能夠快速適應其他任務,也就是遷移學習。預訓練的 Transformer 模型可以非常容易和快速地適應它們沒有經(jīng)過訓練的任務,這具有巨大的優(yōu)勢。作為 ML 從業(yè)者,你不再需要在龐大的數(shù)據(jù)集上訓練大型模型。你所需要做的就是在你的任務中重新使用預訓練的模型,也許只是用一個小得多的數(shù)據(jù)集稍微調(diào)整它。一種用于使預訓練的模型適應不同任務的特定技術(shù)被稱為微調(diào)。
事實證明,Transformer 適應其他任務的能力是如此之強,以至于盡管它們最初是為與語言相關的任務而開發(fā)的,但它們很快就被用于其他任務,從視覺或音頻和音樂應用程序,一直到下棋或做數(shù)學。
當然,如果不是因為有無數(shù)的工具,任何人都可以輕松地編寫幾行代碼,那么所有這些應用程序都不可能實現(xiàn)。Transformer 不僅能被迅速整合到主要的人工智能框架(即 Pytorch8 和 TF9)中,甚至基于此創(chuàng)建起整個公司。Huggingface 是一家迄今為止已經(jīng)籌集了 6000 多萬美元的初創(chuàng)公司,幾乎完全是圍繞著將開源 Transformer 庫商業(yè)化的想法建立的。
最后,有必要談談 Transformer 普及初期 GPT-3 對其的影響。GPT-3 是 OpenAI 在 2020 年 5 月推出的 Transformer 模型,是他們早期 GPT 和 GPT-2 的后續(xù)產(chǎn)品。該公司通過在預印本中介紹該模型而引起了很大的轟動,他們聲稱該模型非常強大,以至于他們無法向世界發(fā)布它。從那以后,該模型不僅發(fā)布了,而且還通過 OpenAI 和微軟之間的大規(guī)模合作實現(xiàn)了商業(yè)化。GPT-3 支持 300 多個不同的應用程序,是 OpenAI 商業(yè)戰(zhàn)略的基礎 (對于一家已經(jīng)獲得超過 10 億美元融資的公司來說,這是很有意義的)。
RLHF
最近,從人類反饋(或偏好)中強化學習(RLHF(也稱作 RLHP)已成為人工智能工具包的一個巨大補充。這個概念已經(jīng)在 2017 年的論文《Deep reinforcement learning from human preferences》中提出。最近,它被應用于 ChatGPT 和類似的對話智能體,如 BlenderBot 或 Sparrow。這個想法很簡單:一旦語言模型被預先訓練,用戶就可以對對話生成不同的響應,并讓人類對結(jié)果進行排序。人們可以在強化學習環(huán)境中使用這些排名(也就是偏好或反饋)來訓練獎勵(見圖 3)。
擴散
擴散模型已經(jīng)成為圖像生成中的新 SOTA,顯然將之前的方法如 GANs(生成對抗網(wǎng)絡)推到了一邊。什么是擴散模型?它們是一類經(jīng)過變分推理訓練的潛變量模型。以這種方式訓練的網(wǎng)絡實際上是在學習這些圖像所代表的潛在空間(參見圖 4)。
擴散模型與其他生成模型有關系,如著名的 [生成對抗網(wǎng)絡 (GAN)] 16,它們在許多應用中已經(jīng)被取代,特別是與(去噪)自動編碼器。有些作者甚至說擴散模型只是自編碼器的一個具體實例。然而,他們也承認,微小的差異確實改變了他們的應用,從 autoconder 的潛在表示到擴散模型的純粹生成性質(zhì)。
圖 3:帶有人類反饋的強化學習。
圖 4:概率擴散模型架構(gòu)摘自《Diffusion Models: A Comprehensive Survey of Methods and Applications》
本文介紹的模型包括: