小13箩利洗澡无码视频免费网站-亚洲熟妇无码av另类vr影视-国产精品久久久久乳精品爆-宅女午夜福利免费视频

熱文:后GPT書:從GPT-3開始,續(xù)寫Transformer龐大家族系譜
時(shí)間:2023-04-16 18:38:59  來源:引領(lǐng)外匯網(wǎng)  
1
聽新聞

一文帶你了解Transformer 大家族。

編者按:本文來自微信公眾號 機(jī)器之心(ID:almosthuman2014),作者:王子嘉,編輯:H4O,創(chuàng)業(yè)邦經(jīng)授權(quán)轉(zhuǎn)載,頭圖來源攝圖網(wǎng)

最近,大語言模型軍備戰(zhàn)爭占據(jù)了朋友圈的大部分篇幅,關(guān)于這些模型能做什么和有什么商業(yè)價(jià)值,已經(jīng)有很多文章探討。然而,作為一個(gè)在人工智能領(lǐng)域浸淫多年的小小研究員,我更關(guān)注的是這場軍備競賽背后的技術(shù)原理,以及這些模型是如何工程化并造福人類的。相比于看這些模型怎樣賺錢和工程化以便為更多人帶來好處,我更想探索的是這個(gè)現(xiàn)象背后的原因,以及在 AI 取代人類之前,我們這些研究員還能為實(shí)現(xiàn) “被 AI 取代然后光榮退休” 做些什么。


(資料圖)

三年前,當(dāng) GPT-3 在技術(shù)界掀起軒然大波時(shí),我曾嘗試以史書的方式剖析 GPT 背后的龐大家族。我按時(shí)間順序梳理了 GPT 背后的技術(shù)脈絡(luò)(圖 1),并試圖解釋 GPT 的成功背后的技術(shù)原理。今年,GPT-3 的小兒子 ChatGPT 似乎更加聰明,能夠用聊天的方式與人交流,這讓更多人了解了自然語言處理領(lǐng)域的最新進(jìn)展。在這個(gè)歷史性的時(shí)刻,作為 AI 史官,我們或許應(yīng)該花些時(shí)間回顧一下最近幾年發(fā)生了什么。第一篇文章是以 GPT-3 作為起點(diǎn),所以這個(gè)系列其實(shí)是對于后 GPT 時(shí)代的記錄(后 GPT 書),而在探索 GPT 家族的變化時(shí),我意識到大多數(shù)故事都與 Transformer 有關(guān),因此這篇文章的名字就是 Transformer 世家。

圖 1. GPT 舊族譜

前情回顧

在正式開始介紹 Transformer 世家前,我們先按照圖 1 回顧一下過去發(fā)生了什么。從 Word Embedding [1,2] 開始,向量(一串?dāng)?shù)字)以一種奇特但有效的方式將文字的語義包含了進(jìn)來,圖 2 展示這種表征方式的說明:用數(shù)字表示的(國王 - 男人 + 女人 = 女王)。以這個(gè)為基礎(chǔ),這一支龐大的 NLP(自然語言處理)家族就創(chuàng)立了。

圖 2. Word2Vec 圖解 (King - Man + Woman = Queen)

在這之后,他的大兒子 ELMo [3] 發(fā)現(xiàn)了語境的重要性,比如以下兩句話:

與此同時(shí),Word Embedding 的一個(gè)遠(yuǎn)房表親發(fā)現(xiàn)了另一個(gè)問題 —— 人在理解一句話的時(shí)候,是會有重點(diǎn)的關(guān)注一部分詞的,一個(gè)很明顯的現(xiàn)象就是我們在讀自己母語的時(shí)候很多錯(cuò)別字會被輕易地忽略掉,這是因?yàn)槲覀冊诶斫膺@段話的時(shí)候注意力并不在這上面。因此,他提出了 Attention(注意力)機(jī)制 [4],但是此時(shí)的 Attention 機(jī)制很初期,并不能單獨(dú)工作,因此只能依附在類似于 RNN,LSTM 這種序列模型上。圖 3 展示了 attention 機(jī)制與 RNN 的結(jié)合過程,也說明了為什么 Attention 自身無法單獨(dú)工作。這里簡單說一下 NLP 模型的工作過程,首先我們有一句話,比如 “我愛你中國”,這就是五個(gè)字符,可以變成圖 3 里的 x_1-x_5,然后每個(gè)字符會變成剛剛所說的 word embedding (一串?dāng)?shù)字),也就是圖 3 里的 h_1-h_5,然后他們再最后變成輸出,比如 “I love China”(翻譯任務(wù)),也就是圖 3 里的 x_1’-x_3’。圖 3 里剩下沒說的部分就是 attention 機(jī)制了,也就是圖 3 里的 A,他相當(dāng)于給每個(gè) h 賦予了一個(gè)權(quán)重,這樣我們就知道在轉(zhuǎn)換當(dāng)前這個(gè)詞的時(shí)候,哪些字比較重要了。具體的細(xì)節(jié)可以參考我最開始寫的那篇文章(從 word2vec 開始,說下 GPT 龐大的家族系譜 )??梢钥闯?,這里的數(shù)字表征是整個(gè)任務(wù)的基礎(chǔ),這也是為什么 Attention 機(jī)制無法單獨(dú)工作的原因。

圖 3. 早期照片 - Attention 與 RNN 強(qiáng)強(qiáng)聯(lián)合(source: Attention for RNN Seq2Seq Models (1.25x speed recommended) - YouTube)

此時(shí),作為驕傲的皇族直系親屬,Transformer 不認(rèn)可這種依附他人的工作方式,在論文 “Attention is all you need”(你只需要注意力機(jī)制就夠了)[5] 中提出了自己獨(dú)立的方式, 將 “注意力機(jī)制” 加了一個(gè)字變成了 “自注意力機(jī)制”,只用注意力機(jī)制就能生成那串?dāng)?shù)字。我們用中醫(yī)開藥來說明這個(gè)變化。最開始的 Attention 機(jī)制可以說是每種材料的劑量,但是最終去拿藥的時(shí)候,藥品是存在 RNN 或者 LSTM 這種采藥者手里的,我們開出的藥方當(dāng)然也要基于藥房(RNN、LSTM)里有什么藥。Transformer 做的只是將采藥權(quán)要了回來(加入了 value 矩陣),然后換了一種開藥方的方式(加入 key 和 query 矩陣)。此時(shí),Source 可以看作一個(gè)中藥鋪?zhàn)拥膬ξ锵?,儲物箱里的藥品由地?Key(藥品名)和值 Value(藥品)組成,當(dāng)前有個(gè) Key=Query(藥方)的查詢,目的是取出儲物箱里對應(yīng)的 Value 值(藥品),即 Attention 數(shù)值。通過 Query 和儲物箱內(nèi)元素 Key 的地址進(jìn)行相似性比較來尋址,之所以說是軟尋址,指的是我們不只從儲物箱里面找出一中藥物,而是可能從每個(gè) Key 地址都會取出內(nèi)容,取出內(nèi)容的重要性(量的多少)根據(jù) Query 和 Key 的相似性來決定,之后對 Value 進(jìn)行加權(quán)求和,這樣就可以取出最終的 Value 值(一副中藥),也即 Attention 值。所以不少研究人員將 Attention 機(jī)制看作軟尋址的一種特例,這也是非常有道理的 [6]。

從此之后,Transformer 正式開始帶領(lǐng)家族走向繁榮。

Transformer 繼位

其實(shí)從圖 1 也可以看出,transformer 就是爺爺家族里子嗣最旺盛的一支了,也證實(shí)了當(dāng)年”Attention is all you need” 這個(gè)題目狂的確實(shí)有理有據(jù)。雖然剛剛講過他提出的自注意力機(jī)制是什么,前面那篇文章 (從 word2vec 開始,說下 GPT 龐大的家族系譜 ) 已經(jīng)詳細(xì)講過 transformer 的演化過程了,這里還是快速給新來的同學(xué)回顧一下 transformer 這個(gè)架構(gòu)到底是什么。

簡單來說,我們可以將 Transformer 看作一個(gè) “演員”,對這個(gè) “演員” 來說,編碼器就像是演員的記憶,負(fù)責(zé)將臺詞轉(zhuǎn)化為一個(gè)中間表示(抽象成腦海里我們不知道是什么的東西,也就是演員的理解),而解碼器則像是演員的表演,負(fù)責(zé)將腦海里的理解轉(zhuǎn)化成熒幕上的展示。這里面最重要的自注意力機(jī)制則充當(dāng)了演員的專注力,能夠自動調(diào)整演員在不同位置的注意力,從而更好地理解所有臺詞,使其在不同的情境中表演得更加自然流暢。

更具體一點(diǎn)來說,我們可以將 Transformer 看作一個(gè)大型 “語言處理工廠”。在這個(gè)工廠中,每個(gè)工人(編碼器)都負(fù)責(zé)處理輸入序列中的一個(gè)位置(比如說一個(gè)字),對其進(jìn)行加工和轉(zhuǎn)換,然后將其傳遞給下一個(gè)工人(編碼器)。每個(gè)工人都有一份詳細(xì)的工作說明書(自注意力機(jī)制),其中詳細(xì)描述了如何處理當(dāng)前位置的輸入以及如何與前面的位置建立關(guān)聯(lián)。在這個(gè)工廠中,每個(gè)工人都可以同時(shí)處理自己的任務(wù),因此整個(gè)工廠可以高效地處理大量的輸入數(shù)據(jù)。

Transformer 一登場,直接因?yàn)槠鋸?qiáng)大的實(shí)力和兩個(gè)爭氣的兒子(BERT 和 GPT)毫無懸念的奪下皇位。BERT (Bidirectional Encoder Representations from Transformers) [1] 繼承了 Transformer 的 Encoder 部分,贏得了前半程比賽,但是因?yàn)槠湎拗菩裕谕ㄓ眯陨陷斀o了 GPT。老實(shí)的 GPT (Generative Pre-trained Transformer)[7-10] 繼承了 Decoder 部分,老老實(shí)實(shí)從頭學(xué)起,學(xué)習(xí)人類的交流方式,最終在后半程實(shí)現(xiàn)了了反超。

當(dāng)然,Transformer 的野心顯然不止于此,”Attention is all you need”,指的并不只是 NLP 領(lǐng)域。在介紹 GPT 和 BERT 之間的恩怨情仇之前,先看看他們老當(dāng)益壯的父親都做了些什么吧。

新族譜 - 諸侯林立

在了解了 Transformer 的機(jī)制之后,我們可以來看看在 Transformer 的強(qiáng)力發(fā)展下,Transformer 世家現(xiàn)在發(fā)展到什么程度了(新族譜)。從前面的 “演員” 例子可以看出,Transformer 代表了一種符合人類邏輯的學(xué)習(xí)方式,因此它不僅可以處理文字,還可以處理圖像。圖 2 總結(jié)了 Transformer 世家強(qiáng)大的家族背景。除了讓 GPT 和 BERT 在最開始的 NLP(自然語言處理)領(lǐng)域繼續(xù)開疆裂土外,Transformer 還開始涉足計(jì)算機(jī)視覺領(lǐng)域。它的小兒子(谷歌提出的 ViT 等)也在這個(gè)領(lǐng)域發(fā)光發(fā)熱。2021 年,Vision Transformer 迎來了大爆發(fā),一大批基于 Vision Transformer 的工作席卷了計(jì)算機(jī)視覺任務(wù)。自然而然地,作為一個(gè)世家,Transformer 家族總會互通有無,連接文本和圖像(AI 作畫)的 CLIP 應(yīng)運(yùn)而生。2022 年底,Stable Diffusion 在 ChatGPT 之前風(fēng)光無限。除此之外,CLIP 還為 Transformer 世家打開了多模態(tài)的新大門。除了文字和圖像,文字是否也能做音樂,是否也能畫圖?多模態(tài)和多任務(wù) Transformer 也應(yīng)運(yùn)而生??傊?,每個(gè)領(lǐng)域都是一個(gè)諸侯,一個(gè) NLP 領(lǐng)域白手起家的 Transformer,在努力發(fā)展后成了可以分封諸侯的 “周王”。

諸侯林立,當(dāng)是盛世。

圖 4. Transformer 世家日益繁盛的家族族譜

牛刀小試 - Vision Transformer [12]

在說 GPT 之前,還是要先說說 Transformer 做出的第一個(gè)大膽嘗試 - 那就是讓小兒子去摻和 CV 領(lǐng)域。先看看小兒子生平:

其父親 Transformer 出生于 2017 年一篇叫做 Attention is All You Need 的論文中。

2019 年,Google 提出了一種 Vision Transformer(ViT)的架構(gòu),可以直接處理圖像,而不需要使用卷積層(CNN)。論文題目一如既往的直白:“An image is worth 16x16 words”(一張圖片就是 16*16 個(gè)詞)。如圖 5 所示,它的基本思想是把輸入的圖像分成一系列的小塊,每個(gè)小塊可以理解成過去處理文章時(shí)候的一個(gè)文字,然后把這些小塊轉(zhuǎn)換成向量,就像在普通的 Transformer 中處理文字一樣。如果說在自然語言處理(NLP)領(lǐng)域,Transformer 的注意力機(jī)制試圖捕捉文本中不同單詞之間的關(guān)系,那么在計(jì)算機(jī)視覺(CV)領(lǐng)域,ViT 則試圖捕捉圖像中不同部分之間的關(guān)系。

圖 5. ViT 如何處理圖片(source: Are Transformers better than CNN’s at Image Recognition? | by Arjun Sarkar | Towards Data Science)

在那之后,各種基于 Transformer 的模型層出不窮,而且在相應(yīng)的任務(wù)上都取得了超越 CNN 的成績。那 Transformer 的優(yōu)勢是什么呢,我們先回到電影的例子上,看看 Transformer 和 CNN 的區(qū)別:

想象你是一位導(dǎo)演,要拍攝一部電影,你需要給演員安排好位置,把不同的元素放在合適的位置上,比如說,將演員放在適當(dāng)?shù)谋尘跋?,使用合適的光線,使整個(gè)畫面看起來和諧美觀。對于 CNN 來說,它像是一個(gè)專業(yè)的攝影師,會逐像素地拍攝每一幀畫面,然后從中提取出一些邊緣、紋理等低層次特征。然后,它將這些特征組合起來,形成更高層次的特征,例如人臉、動作等,最終得到一幀畫面。隨著電影的進(jìn)行,CNN 會不斷重復(fù)這個(gè)過程,直到完成整部電影的拍攝。

而對于 ViT 來說,它像是一個(gè)藝術(shù)指導(dǎo),會把整個(gè)畫面看作是一個(gè)整體,考慮到背景、光線、顏色等因素,為每個(gè)演員分配合適的位置和角度,創(chuàng)造出一個(gè)完美的畫面。然后,ViT 會把這些信息匯總成一個(gè)向量,并使用多層感知器對它們進(jìn)行處理,最終得到一幀畫面。隨著電影的進(jìn)行,ViT 會不斷重復(fù)這個(gè)過程,直到完成整部電影的創(chuàng)作。

回到圖像處理任務(wù)上,假設(shè)我們有一張 224x224 像素的貓的圖片,我們想要用一個(gè)神經(jīng)網(wǎng)絡(luò)對它進(jìn)行分類。如果我們使用傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò),它可能會采用多個(gè)卷積層和池化層來逐漸縮小圖像的大小,最終得到一個(gè)較小的特征向量,然后通過全連接層進(jìn)行分類。這種方法的問題是,在卷積和池化的過程中,我們會逐漸丟失圖像中的信息,因?yàn)槲覀儾荒芡瑫r(shí)考慮所有像素點(diǎn)之間的關(guān)系。此外,由于卷積和池化層的順序限制,我們無法進(jìn)行全局的信息交互。相比之下,如果我們使用 Transformer 和 self-attention 機(jī)制來處理這個(gè)圖像,我們可以直接將整個(gè)圖像視為一個(gè)序列,并對它進(jìn)行 self-attention 計(jì)算。這種方法不會丟失任何像素點(diǎn)之間的關(guān)系,并且可以進(jìn)行全局的信息交互。

此外,由于 self-attention 計(jì)算是可并行化的,因此我們可以同時(shí)處理整個(gè)圖像,大大加快了計(jì)算速度。舉個(gè)例子,假設(shè)我們有一個(gè)句子:“I like to eat ice cream”, 其中包含 6 個(gè)單詞?,F(xiàn)在假設(shè)我們正在使用一個(gè)基于自注意力機(jī)制的模型來理解這個(gè)句子,Transformer 可以:

最小化每層的總計(jì)算復(fù)雜度:基于自注意力機(jī)制的模型中,我們只需要計(jì)算每個(gè)單詞與所有其他單詞之間的注意力權(quán)重,這樣每一層的計(jì)算量只取決于輸入長度而不是隱藏層的大小。在這個(gè)例子中,輸入長度為 6 個(gè)單詞,因此每一層的計(jì)算復(fù)雜度只取決于這 6 個(gè)單詞的數(shù)量。

最大化可并行化的計(jì)算量:基于自注意力機(jī)制的模型可以同時(shí)計(jì)算每個(gè)單詞與其他所有單詞之間的注意力權(quán)重,因此計(jì)算可以高度并行化,從而加速模型的訓(xùn)練和推斷。

然而,ViT 需要大規(guī)模數(shù)據(jù)集和高分辨率圖像才能發(fā)揮其全部潛力 ,因此,雖然 Vision Transformers 在 CV 領(lǐng)域表現(xiàn)不凡,CNN 在計(jì)算機(jī)視覺領(lǐng)域的應(yīng)用和研究仍然更為廣泛,并且在目標(biāo)檢測和分割等任務(wù)中具有優(yōu)勢 。

但是沒關(guān)系,你做的已經(jīng)夠好了,你父親涉足 CV 的初衷也不是為了取代 CNN,他有更宏大的目標(biāo)。

這個(gè)目標(biāo)的基礎(chǔ),就是前面我說的 “此外”。

初露崢嶸 - CLIP [13]

前面我說過,Transformer 還有更宏大的目標(biāo),那就是 “大模型”,超級超級大的模型。除了我在前一篇文章里說的 transformer 可以更好地獲得全局信息外,更小的計(jì)算復(fù)雜度和更好的并行度成為了支撐大模型的基礎(chǔ)。

2021 年,除了 Vision Transformer 有了長足進(jìn)展以外,GPT 那一支還在緊鑼密鼓的籌備 GPT3.5,閑不下來的勞模 Transformer 又引領(lǐng)了一個(gè)新的高潮 —— 連結(jié)文本和圖像。這個(gè)高潮也為 “大模型” 計(jì)劃打響了除 NLP 領(lǐng)域外的第一槍。而此時(shí),Transformer 在視覺任務(wù)上的缺點(diǎn),在這里反而變成了優(yōu)勢?!盫iT 需要大規(guī)模數(shù)據(jù)集和高分辨率圖像才能發(fā)揮其全部潛力 “如果換個(gè)說法,就是 “ViT 可以處理大規(guī)模數(shù)據(jù)集和高分辨率圖像”。

老規(guī)矩,先說 CLIP 是什么。

CLIP 的全稱是 Contrastive Language-Image Pre-Training,很明顯其基本思想就是傳統(tǒng) CV 領(lǐng)域里的對比學(xué)習(xí) (Contrastive learning)。當(dāng)我們學(xué)習(xí)新知識時(shí),我們會閱讀不同的書籍和文章,獲取大量的信息。但是,我們并不是只記住了每個(gè)書籍或文章中的所有單詞和句子。相反,我們會試圖找到這些信息之間的相似性和區(qū)別。例如,我們可能會注意到在不同的書中,某個(gè)主題的描述方式和關(guān)鍵概念的表述方式可能會有所不同,但它們所描述的概念本質(zhì)上是相同的。這種尋找相似性和區(qū)別的方式就是對比學(xué)習(xí)的基本思想之一。我們可以將每本書或文章看作不同的樣本,而相同主題的書籍或文章可以被視為來自同一類別的不同實(shí)例。在對比學(xué)習(xí)中,我們會訓(xùn)練模型來學(xué)習(xí)如何區(qū)分這些不同類別的樣本,以此來學(xué)習(xí)它們的相似性和區(qū)別。

接下來更學(xué)術(shù)一點(diǎn),假設(shè)你想訓(xùn)練一個(gè)模型來識別汽車品牌。你可以有一組帶標(biāo)簽的汽車圖像,每個(gè)圖像都有一個(gè)品牌標(biāo)簽,例如 “奔馳”、“寶馬”、“奧迪” 等等。在傳統(tǒng)的監(jiān)督學(xué)習(xí)中,您可以將圖像和品牌標(biāo)簽一起輸入模型,并讓模型學(xué)習(xí)如何預(yù)測正確的品牌標(biāo)簽。

但在對比學(xué)習(xí)中,你可以使用未標(biāo)記的圖像來訓(xùn)練模型。假設(shè)你有一組未標(biāo)記的汽車圖像,你可以將這些圖像分為兩組:正樣本和負(fù)樣本。正樣本是同一品牌的不同角度的圖像,而負(fù)樣本是不同品牌的圖像。接下來,就可以使用對比學(xué)習(xí)來訓(xùn)練模型,以便將同一品牌的正樣本彼此靠近,而將不同品牌的負(fù)樣本彼此遠(yuǎn)離。這樣,模型可以學(xué)會從圖像中提取品牌特定的特征,而不必明確地告訴它每個(gè)圖像的品牌標(biāo)簽。

很明顯,這是一個(gè)自監(jiān)督學(xué)習(xí)模型,CLIP 也是一個(gè)類似的自監(jiān)督學(xué)習(xí)模型,只不過它的目標(biāo)是將語言和圖像聯(lián)系起來,從而使計(jì)算機(jī)能夠理解文本和圖像之間的關(guān)系。

想象你正在學(xué)習(xí)一組詞匯表,其中每個(gè)單詞都有其定義和相應(yīng)的圖像。對于每個(gè)單詞和其對應(yīng)的圖像,你可以將它們視為一對(pair)。你的任務(wù)是找出這些單詞和圖像之間的相互關(guān)系,即哪些單詞與哪些圖像匹配,哪些不匹配。

如圖 6 所示,對于對比學(xué)習(xí)算法而言,這些單詞和圖像對就是所謂的 “anchor”(錨定樣本)和 “positive”(正樣本)。“anchor” 指的是我們想要學(xué)習(xí)的對象,而 “positive” 則是與 “anchor” 匹配的樣本。與之相對的是 “negative”(負(fù)樣本),即與 “anchor” 不匹配的樣本。

在對比學(xué)習(xí)中,我們將 “anchor” 和 “positive” 組成一對,并嘗試將它們區(qū)分開來。同時(shí),我們也會將 “anchor” 和 “negative” 組成一對,并嘗試將它們區(qū)分開來。這個(gè)過程可以理解為是在尋找 “anchor” 和 “positive” 之間的相似性,以及在排除 “anchor” 和 “negative” 之間的相似性。

圖 6. 對比學(xué)習(xí)(Contrastive Learning)圖示 [14]。Anchor 就是原始圖像,positives 一般是經(jīng)過裁切、旋轉(zhuǎn)后的原始圖像,或是已知的相同類別的圖像,negatives 可以被簡單粗暴的定義為未知的圖像(有可能是同一類別),或者是已知的不同類別的圖像。

為了達(dá)到這個(gè)目標(biāo),CLIP 首先對大量的圖像和文本進(jìn)行預(yù)訓(xùn)練,然后使用預(yù)訓(xùn)練的模型進(jìn)行下游任務(wù),例如分類、檢索和生成等。CLIP 模型采用了一種新的自監(jiān)督學(xué)習(xí)方法,即同時(shí)處理文本和圖像,通過訓(xùn)練來學(xué)習(xí)如何將它們聯(lián)系起來。它在文本和圖像之間共享注意力機(jī)制,并使用一組簡單的可調(diào)參數(shù)來學(xué)習(xí)這個(gè)映射。它用的是基于 transformer 的文本編碼器和基于 CNN 的圖像編碼器,然后計(jì)算圖像和文本嵌入之間的相似度。CLIP 通過使用對比學(xué)習(xí)目標(biāo)來學(xué)習(xí)關(guān)聯(lián)圖像和文本,該目標(biāo)最大化數(shù)據(jù)中存在的圖像 - 文本對之間的一致性,并最小化隨機(jī)采樣的圖像 - 文本對之間的一致性。

圖 7. CLIP 圖示 [13]。相比圖 6,可以簡單理解成圖 6 中的 positive 和 negative 都是文字了。

舉個(gè)例子,如果我們想用 CLIP 來識別一張圖片是否是 "紅色的沙灘",我們可以輸入這個(gè)文本描述和一張圖片,CLIP 將生成一個(gè)向量對來表示它們的聯(lián)系。如果這個(gè)向量對的距離很小,那么就說明這張圖片可能是 "紅色的沙灘",反之則不是。通過這種方法,CLIP 可以實(shí)現(xiàn)圖像分類和圖像搜索等任務(wù)。

回到全稱,CLIP 的最后一個(gè)詞是 pretraining,所以其本質(zhì)還是預(yù)訓(xùn)練模型,但是它可以用于涉及匹配圖像和文本的各種下游任務(wù),例如圖像分類、零樣本學(xué)習(xí)和圖像描述生成等。例如,CLIP 可用于將圖像分類為自然語言標(biāo)簽給出的類別,例如 “狗的照片” 或 “風(fēng)景畫”。CLIP 還可用于通過使用以 CLIP 提取的圖像特征為條件的語言模型來為圖像生成說明文字。此外,CLIP 可用于通過使用以 CLIP 提取的文本特征為條件的生成模型從文本生成圖像。

DALL-E & Stable Diffusion

在 CLIP 的幫助下,一個(gè)新的諸侯崛起了 - 他叫 AIGC(AI generated content)。其實(shí) ChatGPT 本質(zhì)上也是 AIGC 的一種,但是在這個(gè)小節(jié),我們主要說的是 AI 作畫。先來看看 AI 作畫這個(gè)小家族的發(fā)展史:

2021.01,OpenAI 發(fā)布 DALL-E [15](AI 作畫軟件),它改進(jìn)了 GPT-3 從而讓 GPT-3 生成圖像,而不是文本 (Image Transformer Network)

幾乎同時(shí)(2021.01),OpenAI 發(fā)布 CLIP [13]

2021.05,Google Brain 和 DeepMind 發(fā)布 Stable diffusion [17],并持續(xù)迭代新版本。它采用 frozen CLIP 文本編碼器來根據(jù)文本提示調(diào)整模型。Stable diffusion 將圖像生成過程分解為運(yùn)行時(shí)的 “擴(kuò)散”(diffusion)過程。從僅有的噪聲開始,它逐漸修正圖像,直到?jīng)]有任何噪聲,讓其更接近提供的文本描述。

2022.04,DALL-E-2 [16] 發(fā)布。它可以根據(jù)自然語言的描述創(chuàng)建逼真的圖像和藝術(shù)品。DALL-E-2 采用由先驗(yàn)和解碼器組成的兩部分模型。先驗(yàn)是一個(gè) GPT-3 模型,根據(jù)文本提示生成 CLIP 圖像嵌入。解碼器是一個(gè)擴(kuò)散模型,根據(jù) CLIP 嵌入生成圖像。DALL-E-2 還可以進(jìn)行 outpainting, inpainting,以及對現(xiàn)有圖像的變化。

這個(gè)家族的脈絡(luò)可見一斑,大哥 CLIP 連結(jié)了圖像和文本,其雙胞胎兄弟 DALL-E 順勢提出了文本到圖像的任務(wù)。為了改進(jìn)這個(gè)任務(wù),一個(gè)遠(yuǎn)房表親 Stable diffusion 改進(jìn)了生成圖像的算法,最后 DALL-E-2 取長補(bǔ)短,結(jié)合了 GPT-3,CLIP 以及 stable diffusion 的優(yōu)勢,完成了自己的 AI 作畫系統(tǒng)。

對于最開始的 DALL-E, 假設(shè)你是一位畫家,而 DALL-E 就是你的工具箱。在這個(gè)比喻中,工具箱中有兩個(gè)主要的工具:一個(gè)是畫筆,另一個(gè)是調(diào)色板。

畫筆是 DALL-E 的解碼器,它可以將給定的文字描述轉(zhuǎn)換為一張圖像。調(diào)色板則是 DALL-E 的編碼器,它可以將任意的文字描述轉(zhuǎn)化為一個(gè)特征向量。

當(dāng)你得到一句文字描述時(shí),你會首先用調(diào)色板來生成一個(gè)特征向量。然后你就可以拿起畫筆,并使用特征向量來生成一張與描述相符的圖像。當(dāng)你需要細(xì)節(jié)時(shí),你會使用更精細(xì)的畫筆,反之則會使用更粗糙的畫筆。

與畫家不同的是,DALL-E 使用的是神經(jīng)網(wǎng)絡(luò),而不是畫筆和調(diào)色板。這個(gè)神經(jīng)網(wǎng)絡(luò)使用了一種名為 Image Transformer Network 的結(jié)構(gòu)。在生成圖像時(shí),DALL-E 使用先前提到的 GPT-3 模型生成與文本描述相對應(yīng)的 CLIP 圖像嵌入。然后,DALL-E 使用束搜索算法生成一系列可能的圖像,這些圖像與輸入的文本描述相匹配,并將它們送入一個(gè)解碼器來生成最終的圖像。這種嵌入向量是通過使用稱為對比學(xué)習(xí)的技術(shù)來訓(xùn)練的,該技術(shù)可以將相似的圖像和文本嵌入到相鄰的空間中,以便更容易地將它們組合起來。注意,這里 DALLE 并沒有直接包含 CLIP,但是它使用了 CLIP 的文本和圖像嵌入來訓(xùn)練變換器和 VAE。

至于在生成圖像過程中使用的束搜索算法,實(shí)際上是一種貪心搜索算法,它可以在有限的候選集合中找到最優(yōu)的序列。束搜索的基本思想是,每次擴(kuò)展當(dāng)前序列時(shí),只保留概率最高的 k 個(gè)候選(k 稱為束寬度),并舍棄其他低概率的候選。這樣可以減少搜索空間,提高效率和準(zhǔn)確度。DALLE 中使用束搜索生成圖像的具體步驟如下:

將輸入的文本描述編碼為一個(gè)向量,并作為變換器模型的初始輸入。

從一個(gè)特殊的開始符號開始,逐像素地生成圖像序列。每次生成一個(gè)像素時(shí),都用變換器模型預(yù)測下一個(gè)像素的概率分布,并從中選擇概率最高的 k 個(gè)候選像素,作為當(dāng)前序列的延伸。

對每個(gè)延伸后的序列,計(jì)算其累積概率,并保留概率最高的 k 個(gè)序列,舍棄其他序列。

重復(fù)步驟 2 和 3,直到生成一個(gè)特殊的結(jié)束符號或達(dá)到最大長度限制。

返回概率最高的序列作為最終生成的圖像。

同樣一幅畫,stable diffusion 是怎么畫的呢?當(dāng)我們想要畫一幅藝術(shù)作品時(shí),通常需要一個(gè)良好的構(gòu)圖和一些具體的元素來構(gòu)建。Stable diffusion 就是這樣一種生成圖像的方法,它將圖像生成的過程分成了兩個(gè)部分:擴(kuò)散過程和重構(gòu)過程。擴(kuò)散過程可以想象成是將一堆零散的畫筆、顏料和畫板混合在一起,慢慢地在畫板上創(chuàng)造出越來越多的元素。這個(gè)過程中,我們并不知道最終畫面會是什么樣子,也無法確定每個(gè)元素最終的位置。但是,我們可以逐漸添加和調(diào)整這些元素,直到整幅畫完成。然后,輸入的文本描述就像是我們對于要畫的作品的大致描述,通過束搜索算法來在文本描述和生成的圖像之間進(jìn)行精細(xì)的匹配。這個(gè)過程就像是我們在不斷地修改和調(diào)整元素,讓它們更好地匹配我們想要的畫面。最終,生成的圖像將與文本描述緊密匹配,呈現(xiàn)出我們想象中的藝術(shù)作品。

如圖 8 所示,這里的擴(kuò)散模型是一種生成模型,它通過逐漸向數(shù)據(jù)添加噪聲,然后逆向恢復(fù)原始數(shù)據(jù)的過程來學(xué)習(xí)數(shù)據(jù)的分布。stable diffusion 使用了一個(gè)預(yù)訓(xùn)練的變分自編碼器(VAE)來將圖像編碼成低維潛在向量,并使用一個(gè)基于變換器的擴(kuò)散模型來從潛在向量生成圖像。stable diffusion 還使用了一個(gè)凍結(jié)的 CLIP 文本編碼器來將文本提示轉(zhuǎn)換成圖像嵌入,從而對擴(kuò)散模型進(jìn)行條件化。

圖 8. Stable Diffusion 過程。首先是上面的箭頭,一張圖片被不斷加入噪聲,最后變成純噪聲圖,然后走下面的箭頭,逐漸消除噪聲,然后重建最開始的圖片。(圖源:From DALL?E to Stable Diffusion: how do text-to-image generation models work? | Tryolabs)

值得注意的是,Stable Diffusion 中的擴(kuò)散過程是一種隨機(jī)的過程,因此每次生成的圖像都會有所不同,即使是相同的文本描述。這種隨機(jī)性使得生成的圖像更加多樣化,同時(shí)也增加了算法的不確定性。為了讓生成的圖像更加穩(wěn)定,Stable Diffusion 使用了一些技巧,如在擴(kuò)散過程中加入逐步增加的噪聲,以及使用多次重構(gòu)過程來進(jìn)一步提高圖像質(zhì)量。

Stable Diffusion 在 DALL-E 的基礎(chǔ)上有了很大的進(jìn)步:

分辨率:stable diffusion 可以生成高達(dá) 1024×1024 像素的圖像,而 DALL-E 目前只能生成 256×256 像素的圖像。

速度:stable diffusion 需要進(jìn)行多次迭代才能生成圖像,因此速度較慢。DALL-E 則可以一次性生成圖像,因此速度較快。

靈活性:stable diffusion 可以對現(xiàn)有的圖像進(jìn)行擴(kuò)畫、修補(bǔ)和變化,而 DALL-E 只能從文本提示生成圖像。

真實(shí)性:stable diffusion 可以生成更真實(shí)和細(xì)致的圖像,尤其是在復(fù)雜和抽象的描述下。DALL-E 則可能生成一些不符合物理規(guī)律或常識的圖像。

這也是為什么 DALL-E-2 也將擴(kuò)散模型加入到其模型中去了。

潛伏的強(qiáng)者 - GPT3.5 [18] & Instruct GPT [19]

在其他諸侯把改革開展的如火如荼的時(shí)候,GPT 這一支也一直在默默努力著。開頭說過,GPT-3 剛發(fā)布的時(shí)候已經(jīng)有很強(qiáng)的能力了,但是使用方式不那么 “非技術(shù)人員友好”,所以掀起的浪花都是在技術(shù)界,這些本就不算很熱烈的浪花,又因?yàn)樗坏偷氖召M(fèi)而日益消散。

Transformer 十分不滿意,GPT 想了想,那就改革!

第一個(gè)響應(yīng)改革號召,邁出第一步的是 GPT 3.5:

“我比較笨,想不出什么好辦法改革,那就先把基礎(chǔ)打牢吧?!?/p>

于是,GPT3.5 基于 GPT-3 ,使用了一種叫做 Text+Code 的訓(xùn)練數(shù)據(jù),即在文本數(shù)據(jù)的基礎(chǔ)上,增加了一些編程代碼的數(shù)據(jù)。簡單來說,就是用了更大的數(shù)據(jù)集。這樣可以使模型更好地理解和生成代碼,提高模型的多樣性和創(chuàng)造性。Text+Code 是一種基于文本和代碼的訓(xùn)練數(shù)據(jù),它是由 OpenAI 從網(wǎng)上收集并整理的。它包括兩部分:文本和代碼。文本是一些用自然語言描述的內(nèi)容,如文章、評論、對話等。代碼是一些用編程語言編寫的內(nèi)容,如 Python、Java、HTML 等。

Text+Code 訓(xùn)練數(shù)據(jù)可以使模型更好地理解和生成代碼,提高模型的多樣性和創(chuàng)造性。例如,在編程任務(wù)中,模型可以根據(jù)文本描述生成相應(yīng)的代碼,并且代碼具有較高的正確性和可讀性。在內(nèi)容生成任務(wù)中,模型可以根據(jù)代碼描述生成相應(yīng)的文本,并且文本具有較高的一致性和有趣性。Text+Code 訓(xùn)練數(shù)據(jù)也可以使模型更好地處理多語言,多模態(tài),多領(lǐng)域的數(shù)據(jù)和任務(wù)。例如,在語言翻譯任務(wù)中,模型可以根據(jù)不同語言之間的對應(yīng)關(guān)系,進(jìn)行準(zhǔn)確和流暢的翻譯。在圖像生成任務(wù)中,模型可以根據(jù)文本或代碼描述,生成相應(yīng)的圖像,并且圖像具有較高的清晰度和逼真度。

第二個(gè)響應(yīng)號召的是 Instruct GPT,他發(fā)現(xiàn)了新的問題:

“要想跟人類打成一片,我們就需要更有效的聽取他們的意見。”

于是,出現(xiàn)了大名鼎鼎的新晉外援,也就是 RLHF 訓(xùn)練策略。RLHF 是一種基于強(qiáng)化學(xué)習(xí)的訓(xùn)練策略,它的全稱是 Reinforcement Learning from Human Feedback。它的核心思想是在訓(xùn)練過程中,給模型提供一些指令,并根據(jù)模型的輸出給予獎(jiǎng)勵(lì)或懲罰。這樣可以使模型更好地遵循指令,提高模型的可控性和可信度。其實(shí) GPT-3.5 也有人類反饋(Human Feedback),那加入了強(qiáng)化學(xué)習(xí)(Reinforcement learning)之后,發(fā)生了什么改變呢?

GPT3.5 的人類反饋是直接用于微調(diào)模型的參數(shù),而 Instruct GPT 的 RLHF 是用于訓(xùn)練一個(gè)獎(jiǎng)勵(lì)模型,然后用這個(gè)獎(jiǎng)勵(lì)模型來指導(dǎo)模型的行為。

GPT3.5 的人類反饋是基于單個(gè)輸出的評價(jià),而 Instruct GPT 的 RLHF 是基于多個(gè)輸出之間的比較。

GPT3.5 的人類反饋只進(jìn)行了一次,而 Instruct GPT 的 RLHF 可以進(jìn)行多次迭代,不斷收集新的比較數(shù)據(jù),訓(xùn)練新的獎(jiǎng)勵(lì)模型,優(yōu)化新的策略。

也就是說,更少的人力投入,但是給模型帶來了更大的收益。

圖 9. RLHF 過程(圖源:GPT-4 (openai.com))

如圖 9 所示,RLHF 訓(xùn)練策略分為兩個(gè)階段:預(yù)訓(xùn)練和微調(diào)。在預(yù)訓(xùn)練階段,模型使用和 GPT-3 相同的數(shù)據(jù)集進(jìn)行無監(jiān)督學(xué)習(xí),學(xué)習(xí)語言的基本知識和規(guī)律。在微調(diào)階段,模型使用一些人工標(biāo)注的數(shù)據(jù)進(jìn)行強(qiáng)化學(xué)習(xí),學(xué)習(xí)如何根據(jù)指令生成合適的輸出。

人工標(biāo)注的數(shù)據(jù)包括兩部分:指令和反饋。指令是一些用自然語言描述的任務(wù),如 “寫一首關(guān)于春天的詩” 或 “給我一個(gè)關(guān)于狗的笑話”。反饋是一些用數(shù)字表示的評分,如 “1” 表示很差,“5” 表示很好。反饋是由人類標(biāo)注者根據(jù)模型的輸出給出的,反映了模型輸出的質(zhì)量和合理性。

在微調(diào)階段,模型使用一個(gè)叫做 Actor-Critic 的算法進(jìn)行強(qiáng)化學(xué)習(xí)。Actor-Critic 算法包括兩個(gè)部分:Actor 和 Critic。Actor 是一個(gè)生成器,它根據(jù)指令生成輸出。Critic 是一個(gè)評估器,它根據(jù)反饋評估輸出的獎(jiǎng)勵(lì)值。Actor 和 Critic 之間相互協(xié)作和競爭,不斷地更新自己的參數(shù),以提高獎(jiǎng)勵(lì)值。

RLHF 訓(xùn)練策略可以使模型更好地遵循指令,提高模型的可控性和可信度。例如,在寫作任務(wù)中,模型可以根據(jù)指令生成不同風(fēng)格和主題的文本,并且文本具有較高的連貫性和邏輯性。在對話任務(wù)中,模型可以根據(jù)指令生成不同情感和語氣的回復(fù),并且回復(fù)具有較高的相關(guān)性和禮貌性。

終于,經(jīng)過前輩們的改革積累,GPT 家族里更加靈活的小兒子 ChatGPT 覺得是時(shí)候了,順勢基于 Instruct GPT 推出了更貼合人類交流方式的對話模式,直接在人類社會掀起巨大的浪花(幾億用戶),而且它又是免費(fèi)的,GPT 家族經(jīng)過幾年的蟄伏,終于一鳴驚人,成為 Transformer 世家最受寵的皇子,直接在繼位之爭上一舉奪魁,成為太子。

與此同時(shí),對于 ChatGPT 來說,太子還不是全部,ChatGPT 繼承了 Transformer 巨大的野心:

“現(xiàn)在的局面太亂了,強(qiáng)大的王朝不需要這么多諸侯,是時(shí)候統(tǒng)一他們了。“

統(tǒng)一諸侯 – 大模型時(shí)代

GPT-4:” 這個(gè)時(shí)代,是大模型的時(shí)代,我說的?!保╞ushi)

現(xiàn)在的 ChatGPT 已經(jīng)是基于 GPT-4 的大門面了。GPT-4 因?yàn)閼峙掠谄涓偁帉κ值目焖俜磻?yīng),其實(shí)大部分技術(shù)細(xì)節(jié)都是封閉的。但是從其功能上,已經(jīng)看出 GPT 家族統(tǒng)一各諸侯的野心了,除了文字對話以外,GPT-4 也加入了 AI 作圖功能。GPT 家族從過去幾年的蟄伏經(jīng)驗(yàn)里悟出了一個(gè)道理,大模型即正義,并想將這個(gè)道理推廣到各個(gè)領(lǐng)域。

如果深究這個(gè)道理背后的底氣,那可能就是大模型訓(xùn)練的方式吧。GPT-3 是目前最大的語言模型之一,它擁有 1750 億個(gè)參數(shù),比其前身 GPT-2 多了 100 倍,比之前最大的同類 NLP 模型要多 10 倍,也可以算是大預(yù)言模型的先驅(qū)者了。

所以,我們先來看看 GPT-3 的模型架構(gòu)和訓(xùn)練方法是如何實(shí)現(xiàn)這樣的規(guī)模和性能的:

分布式訓(xùn)練:GPT-3 使用了分布式訓(xùn)練的方法,即將模型和數(shù)據(jù)分散在多個(gè)計(jì)算節(jié)點(diǎn)上,并通過通信協(xié)議進(jìn)行協(xié)調(diào)和同步。這樣可以利用多個(gè)節(jié)點(diǎn)的計(jì)算資源和內(nèi)存空間,加速模型訓(xùn)練的過程,并支持更大規(guī)模的模型和數(shù)據(jù)。

GPT-3 使用了約 2000 個(gè) GPU 節(jié)點(diǎn)來進(jìn)行分布式訓(xùn)練,每個(gè)節(jié)點(diǎn)有 多塊 GPU,每塊 GPU 有 相同 的顯存。

GPT-3 使用了兩種分布式訓(xùn)練的方法:數(shù)據(jù)并行和模型并行。

數(shù)據(jù)并行是指將數(shù)據(jù)分成多個(gè)子集,每個(gè)節(jié)點(diǎn)處理一個(gè)子集,并在每個(gè)節(jié)點(diǎn)上更新模型的參數(shù),然后在所有節(jié)點(diǎn)間同步參數(shù)。

模型并行是指將模型分成多個(gè)部分,每個(gè)節(jié)點(diǎn)處理一個(gè)部分,并在每個(gè)節(jié)點(diǎn)上計(jì)算部分的輸出和梯度,然后在所有節(jié)點(diǎn)間傳遞輸出和梯度。

GPT-3 使用了一種混合的數(shù)據(jù)并行和模型并行的方法,即在每個(gè)節(jié)點(diǎn)內(nèi)部使用數(shù)據(jù)并行,在不同節(jié)點(diǎn)之間使用模型并行。這樣可以充分利用 GPU 的計(jì)算能力和通信帶寬,同時(shí)減少通信開銷和內(nèi)存占用。

激活函數(shù)檢查點(diǎn):GPT-3 使用了一種叫做激活函數(shù)檢查點(diǎn)的技術(shù),即在模型的前向傳播過程中,只保存部分層的激活函數(shù)的值,而不是所有層的值。這樣可以節(jié)省顯存空間,因?yàn)榧せ詈瘮?shù)的值占用了大部分的顯存。在模型的反向傳播過程中,如果需要用到某些層的激活函數(shù)的值,就重新計(jì)算它們,而不是從顯存中讀取。這樣可以犧牲一些計(jì)算時(shí)間來換取更多的顯存空間,從而支持更大規(guī)模的模型和批量大小。

稀疏注意力機(jī)制:GPT-3 使用了一種叫做稀疏注意力機(jī)制的技術(shù),即在計(jì)算自注意力時(shí),只考慮部分輸入序列中的詞,而不是所有詞。這樣可以減少計(jì)算量和內(nèi)存占用,因?yàn)樽宰⒁饬Φ膹?fù)雜度和輸入序列的長度成平方關(guān)系。GPT-3 使用了一種基于局部窗口和全局塊的稀疏注意力機(jī)制,即將輸入序列劃分為多個(gè)塊,并且每個(gè)塊只與相鄰的幾個(gè)塊進(jìn)行注意力計(jì)算,同時(shí)每個(gè)塊還與一些隨機(jī)選擇的全局塊進(jìn)行注意力計(jì)算。這樣可以保證模型既能捕捉局部信息,又能捕捉全局信息,同時(shí)也能降低計(jì)算復(fù)雜度和內(nèi)存占用。

看到這里,ChatGPT 眉頭微皺,似乎有些不滿意 GPT-3 的方案:“這還不夠?!?/p>

"大模型確實(shí)是當(dāng)下的趨勢,但是不應(yīng)該只是為了競爭而盲目追求規(guī)模。在訓(xùn)練大模型之前,我們需要考慮更多的細(xì)節(jié)和技術(shù)挑戰(zhàn),才能確保其能夠穩(wěn)定、高效地運(yùn)行,并產(chǎn)生有用的結(jié)果。"

“首先,選擇合適的訓(xùn)練超參數(shù)和模型初始化非常關(guān)鍵。學(xué)習(xí)率、批量大小、迭代次數(shù)等超參數(shù)的選擇對模型的收斂速度、穩(wěn)定性和性能影響重大。而模型初始化則決定了訓(xùn)練開始前的權(quán)重值,會影響到最終結(jié)果的質(zhì)量。這些參數(shù)需要根據(jù)經(jīng)驗(yàn)實(shí)驗(yàn)或理論分析進(jìn)行仔細(xì)調(diào)整,以確保模型的最佳表現(xiàn)?!?/p>

“其次,為了獲得高吞吐量并避免瓶頸,我們需要優(yōu)化訓(xùn)練過程中的各個(gè)環(huán)節(jié),比如硬件配置、網(wǎng)絡(luò)帶寬、數(shù)據(jù)加載速度和模型架構(gòu)等。優(yōu)化這些環(huán)節(jié)可以顯著提高模型的處理速度和效率。例如,使用更快的存儲設(shè)備或數(shù)據(jù)格式可以減少數(shù)據(jù)加載時(shí)間;使用更大的批量大小或梯度累積可以減少通信開銷;使用更簡單或更稀疏的模型可以減少計(jì)算時(shí)間等等?!?/p>

“最后,訓(xùn)練大模型時(shí)可能會遇到各種不穩(wěn)定和失敗的情況,例如數(shù)值錯(cuò)誤、過擬合、硬件故障、數(shù)據(jù)質(zhì)量問題等等。為了避免或恢復(fù)這些問題,我們需要密切監(jiān)控模型的行為和性能,并使用調(diào)試工具和技術(shù)來識別和修復(fù)任何錯(cuò)誤或缺陷。此外,我們還可以使用各種安全措施和防護(hù)機(jī)制,如裁剪、正則化、丟棄、噪聲注入、數(shù)據(jù)過濾、數(shù)據(jù)增強(qiáng)等等,以提高模型的魯棒性和可靠性。”

“在這個(gè)時(shí)代,大模型的確是重要的,但是僅僅是追求規(guī)模并不能讓模型產(chǎn)生有用的結(jié)果。只有經(jīng)過深思熟慮的訓(xùn)練和優(yōu)化,才能讓大模型真正發(fā)揮其潛力,為人類帶來更多的價(jià)值。”

太子說得對。

沒落的強(qiáng)諸侯 - BERT

最后,瘦死的駱駝比馬大,雖然 BERT 最近被 GPT 壓過風(fēng)頭,但畢竟是曾經(jīng)的強(qiáng)諸侯,在 GPT 勢不可擋的發(fā)展下,BERT 依然保留了自己的一份封地。當(dāng)談及自然語言處理模型的時(shí)候,BERT(Bidirectional Encoder Representations from Transformers)一度是非常受歡迎的模型,因?yàn)樗诤芏嗳蝿?wù)上都表現(xiàn)得非常出色。當(dāng)它第一次發(fā)布時(shí),它幾乎是無人能敵的,甚至比 GPT 更為成功。這是因?yàn)?BERT 的設(shè)計(jì)與 GPT 有著不同的目標(biāo)和優(yōu)勢。

BERT 的目標(biāo)是將上下文建模的能力推到一個(gè)全新的高度,以便更好地支持下游任務(wù),例如文本分類和問答。它通過訓(xùn)練一個(gè)雙向 Transformer 編碼器來實(shí)現(xiàn)這個(gè)目標(biāo)。這個(gè)編碼器能夠同時(shí)考慮輸入序列的左側(cè)和右側(cè),從而獲得更好的上下文表示,因此 BERT 能夠?qū)ι舷挛母玫剡M(jìn)行建模,提高了模型在下游任務(wù)中的表現(xiàn)。

但是,隨著時(shí)間的推移,GPT 系列模型的出現(xiàn)使得 GPT-3 在多項(xiàng)任務(wù)上超越了 BERT。一個(gè)可能的原因是 GPT 系列的模型在設(shè)計(jì)上更加專注于生成性任務(wù),比如文本生成和對話系統(tǒng),而 BERT 則更注重分類和問答任務(wù)。此外,GPT 系列模型使用了更大的參數(shù)和更多的數(shù)據(jù)進(jìn)行訓(xùn)練,這也使得它們能夠在更廣泛的任務(wù)上取得更好的表現(xiàn)。

當(dāng)然,BERT 仍然是一個(gè)非常有用的模型,特別是對于一些需要對文本進(jìn)行分類或回答問題的任務(wù)。而 GPT 系列的模型則更適合用于生成性任務(wù),例如文本生成和對話系統(tǒng)??傮w來說,這兩個(gè)模型都有它們獨(dú)特的優(yōu)勢和局限性,我們需要根據(jù)具體任務(wù)的需求來選擇適合的模型。

奪嫡之爭 - 來勢洶洶的 Segment Anything Model (SAM) [20]

前面說過,在大哥 GPT 默默努力的時(shí)候,勞模 Transformer 在 CV 領(lǐng)域(ViT)和多模態(tài)領(lǐng)域 (CLIP) 都掀起了不小的浪花,但是最終都成為了經(jīng)驗(yàn)寶寶,被老父親 Transformer 教給了受寵的太子 GPT,最終成就了 GPT-4 的所謂大一統(tǒng)。

骨子里流淌著 Transformer 血液的 ViT 和 CLIP 當(dāng)然很不開心:“王侯將相寧有種乎?大哥不是學(xué)我們嗎,我們也可以學(xué)他?!?

“但是,他在 NLP 領(lǐng)域太強(qiáng)大了,我們要找個(gè)新的戰(zhàn)場?!?/p>

于是,SAM 橫空出世。在官網(wǎng),他們自己是這么描述的:

Segment Anything Model (SAM): a new AI model from Meta AI that can "cut out" any object, in any image, with a single click

簡單來說,我們可以將 SAM 看作一個(gè)高效的 “圖像剪輯大師”,它能夠通過各種輸入提示來精確地識別和分割圖像中的各種對象。例如,當(dāng)我們在圖像中用鼠標(biāo)點(diǎn)擊一個(gè)點(diǎn)時(shí),SAM 會像一個(gè)經(jīng)驗(yàn)豐富的畫家一樣,自動剪切出該點(diǎn)所在的對象;當(dāng)我們輸入 “貓” 這個(gè)詞時(shí),SAM 就會像一個(gè)聰明的偵探一樣,自動找出并剪切出圖像中所有的貓;當(dāng)我們給 SAM 一個(gè)目標(biāo)檢測框時(shí),SAM 就會像一個(gè)熟練的手術(shù)醫(yī)生一樣,準(zhǔn)確地剪切出框內(nèi)的對象。SAM 的零樣本泛化能力使其成為一個(gè)真正的 “通用剪輯大師”。這意味著無論是常見的對象,如汽車、樹木和建筑,還是罕見的對象,如恐龍、外星人和魔法棒,SAM 都可以毫不費(fèi)力地識別和剪切。這種強(qiáng)大的能力源于其先進(jìn)的模型設(shè)計(jì)和龐大的數(shù)據(jù)集。我從原論文里選了四張很復(fù)雜的場景實(shí)例(圖 10),說明了 SAM 到底可以做什么。

圖 10. SAM 的效果實(shí)例。圖片里每個(gè)顏色的東西你都可以剪輯提取出來,相當(dāng)于一個(gè)高效的 PS 大師(圖像剪輯大師)。

簡單來說,以前別人跟我們眉飛色舞地提需求的時(shí)候,我們總要無奈地問一句,先等一下,你們能提供什么樣的數(shù)據(jù)?現(xiàn)在不需要了,至少在 CV 領(lǐng)域,已經(jīng)更貼近非技術(shù)人群對 AI 的理解了。

為了實(shí)現(xiàn)上面說的強(qiáng)大能力,我們來看看 ViT 和 CLIP 是如何大聲密謀的:

ViT: “我雖然之前主要是做圖像分類任務(wù),但我的架構(gòu)同樣適用于圖像分割。因?yàn)槲沂抢?Transformer 架構(gòu)將圖像分解成一系列塊然后對其進(jìn)行并行處理的,如果集成我的優(yōu)勢,SAM 就可以繼承我并行處理和全局注意力的優(yōu)勢,從而實(shí)現(xiàn)高效的圖像分割?!?/p>

CLIP:“好呀,那我就帶著我聯(lián)合訓(xùn)練的方法入股,基于這個(gè)思想,SAM 也可以處理不同類型的輸入提示(問題提示和視覺提示)?!?/p>

于是,SAM 的模型架構(gòu)成型了 (圖 11),ViT 用來做 image encoder(圖像編碼器),而 CLIP 來編碼 prompt(提示)的信息。想法是好的,具體該怎么做呢 —— 當(dāng)然是學(xué)習(xí)大哥啦!

“我們想要利用預(yù)訓(xùn)練的語言模型來做圖像分割任務(wù),就像用文字提示(prompt)來讓語言模型生成或預(yù)測文字一樣。有了 CLIP,我們的提示就可以很豐富了,可以是一些 point (點(diǎn))、box(框)、mask,還有 Text (文本),它們告訴語言模型要在圖像中分割出什么。我們的目標(biāo)就是,給定任何提示,都能得到一個(gè)有效的分割 mask (分割結(jié)果)。有效的 mask 意味著,即使提示有歧義(比如說襯衫還是人),輸出也應(yīng)該是其中一個(gè)對象的合理 mask。這就像大哥 GPT(語言模型)對一個(gè)有歧義的提示也能給出一個(gè)連貫的回應(yīng)一樣。我們選擇這個(gè)任務(wù),因?yàn)樗梢宰屛覀冇靡环N自然的方式來預(yù)訓(xùn)練語言模型,并且通過提示來實(shí)現(xiàn)零樣本遷移到不同的分割任務(wù)上?!?/p>

圖 11. SAM 模型架構(gòu)

至于結(jié)果,前面提到的其強(qiáng)大能力已經(jīng)證實(shí)了這個(gè)想法的可行性。但是,不得不提的是,雖然 SAM 確實(shí)不再需要重新訓(xùn)練模型,但是像 chatGPT 剛推出時(shí)一樣,他還是有一些限制的。在論文的 Limitation 部分,作者頁明確指出了 SAM 的一些局限性和不足,比如在細(xì)節(jié)、連通性、邊界等方面的缺陷,以及在交互式分割、實(shí)時(shí)性、文本提示、語義和全景分割等任務(wù)上的挑戰(zhàn),同時(shí)也承認(rèn)了一些領(lǐng)域?qū)S霉ぞ叩膬?yōu)勢。

舉個(gè)例子,我在 demo 里做了兩個(gè)簡單的測試:一個(gè)是醫(yī)療圖像領(lǐng)域的病灶檢測,因?yàn)椴≡钐×耍茈y檢測到;第二個(gè)是人像切割,切出來的人像乍看不錯(cuò),但是發(fā)絲還是不是很自然,仔細(xì)看還是能看出來切割痕跡。

當(dāng)然,這畢竟是一個(gè)很好的開始,這小哥倆創(chuàng)業(yè)未半,還在努力,要啥自行車?所以,這場奪嫡的結(jié)果如何,還是讓我們拭目以待吧!

總結(jié)

Transformer 世家的龐大家族顯然不是這一篇文章可以說明的,當(dāng)談到基于 Transformer 的成果時(shí),我們可以看到這個(gè)領(lǐng)域的持續(xù)創(chuàng)新:Vision Transformer(ViT)展示了 Transformer 在計(jì)算機(jī)視覺領(lǐng)域的成功應(yīng)用,它可以直接處理圖像像素?cái)?shù)據(jù),不需要手工特征工程。DALL-E 和 CLIP 則將 Transformer 應(yīng)用于圖像生成和圖像分類任務(wù),展示了它在視覺語義理解中的優(yōu)越表現(xiàn)。Stable Diffusion 則提出了一種穩(wěn)定的擴(kuò)散過程,可以對概率分布進(jìn)行建模,這可以應(yīng)用于圖像分割、生成等任務(wù)。這些成果共同揭示出 Transformer 模型的廣泛應(yīng)用前景,讓我們不得不承認(rèn),未來某一天,可能真的”Attention is all you need”。

總之,我們可以從這些成果中看到人工智能領(lǐng)域持續(xù)創(chuàng)新的活力。無論是 GPT 還是 BERT,還是 Vision Transformer、DALL-E、CLIP、Stable diffusion 等,這些成果都代表著人工智能領(lǐng)域的最新進(jìn)展。

而大考(ChatGPT)當(dāng)前,現(xiàn)在的情景大概是這樣的:

學(xué)霸們這學(xué)期好好上課,翻開書本就能回想起當(dāng)時(shí)那節(jié)課老師說這個(gè)知識點(diǎn)時(shí)的音容笑貌,甚至開始規(guī)劃下學(xué)期的學(xué)習(xí)計(jì)劃。

偽學(xué)霸們天天到課,占據(jù)前排,打開課本卻是一臉懵逼,開始跟學(xué)渣們一起 “一天一本書,一周一學(xué)期”,唯一的區(qū)別就是課本不是全新的,對課本內(nèi)容還有一點(diǎn)點(diǎn)記憶,不算是在完全的學(xué)習(xí)新知識。

至于真正的學(xué)渣們……

“知識來,知識來,知識從四面發(fā)八方來”

其實(shí)我倒覺得,不管是偽學(xué)霸還是學(xué)渣,都應(yīng)該在期末考面前保持冷靜,看看這學(xué)期講了什么,找學(xué)霸們借一下筆記,甚至可以選擇緩考。對學(xué)霸們來說,快是水到渠成的。對偽學(xué)霸和學(xué)渣們來說,快是有害的。

在人工智能領(lǐng)域的競爭中,持續(xù)創(chuàng)新是至關(guān)重要的。因此,作為研究員,我們應(yīng)該密切關(guān)注這個(gè)領(lǐng)域的最新發(fā)展,并且保持謙虛和開放的心態(tài),以促進(jìn)人工智能領(lǐng)域的不斷進(jìn)步。

參考文獻(xiàn)

[1] Mikolov, Tomas; et al. (2013). "Efficient Estimation of Word Representations in Vector Space". arXiv (https://en.wikipedia.org/wiki/ArXiv_(identifier)):1301.3781 (https://arxiv.org/abs/1301.3781) [cs.CL (https://arxiv.org/archive/cs.CL)].

[2] Mikolov, Tomas (2013). "Distributed representations of words and phrases and their compositionality". Advances in neural information processing systems.

[3] Matthew E. Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, & Luke Zettlemoyer. (2018). Deep contextualized word representations.

[4] Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. "Neural machine translation by jointly learning to align and translate." arXiv preprint arXiv:1409.0473 (2014).

[5] Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems 30 (2017).

[6] attention 機(jī)制及 self-attention (transformer). Accessed at: https://blog.csdn.net/Enjoy_endless/article/details/88679989

[7] Radford, Alec, et al. "Improving language understanding by generative pre-training." (2018).

[8] Radford, Alec, et al. "Language models are unsupervised multitask learners." OpenAI blog 1.8 (2019): 9.

[9] Brown, Tom, et al. "Language models are few-shot learners." Advances in neural information processing systems 33 (2020): 1877-1901.

[10] GPT-4 (openai.com)

[11] Devlin, Jacob; Chang, Ming-Wei; Lee, Kenton; Toutanova, Kristina (11 October 2018). "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding". arXiv:1810.04805v2 [cs.CL].

[12] Dosovitskiy, Alexey, et al. "An image is worth 16x16 words: Transformers for image recognition at scale." arXiv preprint arXiv:2010.11929 (2020).

[13] Radford, Alec, et al. "Learning transferable visual models from natural language supervision." International conference on machine learning. PMLR, 2021.

[14] Zheng, Laura, Yu Shen, and Ming C. Lin. "Exploring Contrastive Learning with Attention for Self-Driving Generalization."

[15] Reddy, Mr D. Murahari, et al. "Dall-e: Creating images from text." UGC Care Group I Journal 8.14 (2021): 71-75.

[16] Ramesh, Aditya, et al. "Hierarchical text-conditional image generation with clip latents." arXiv preprint arXiv:2204.06125 (2022).

[17] Rombach, Robin, et al. "High-resolution image synthesis with latent diffusion models." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022.

[18] Chen, Xuanting, et al. "How Robust is GPT-3.5 to Predecessors? A Comprehensive Study on Language Understanding Tasks." arXiv preprint arXiv:2303.00293 (2023).

[19] Ouyang, Long, et al. "Training language models to follow instructions with human feedback." Advances in Neural Information Processing Systems 35 (2022): 27730-27744.

分析師介紹:

本文作者王子嘉,戴爾科技集團(tuán)首席技術(shù)官辦公室人工智能科學(xué)家,英國帝國理工學(xué)院Al專業(yè)畢業(yè),主要研究方向?yàn)橛?jì)算機(jī)視覺、3D重建、AIGC等,重點(diǎn)關(guān)注在相關(guān)領(lǐng)域進(jìn)行新技術(shù)的探索與創(chuàng)新,在新Al技術(shù)賦能的數(shù)據(jù)隱私保護(hù)以及AIGC技術(shù)在數(shù)據(jù)管理上的應(yīng)用等方向上做過很多嘗試與創(chuàng)新。于2019年加入戴爾科技集團(tuán),在此期間,已在相關(guān)領(lǐng)域發(fā)表論文5篇、專利139項(xiàng)。

關(guān)鍵詞: