最近,大語言模型軍備戰(zhàn)爭占據(jù)了朋友圈的大部分篇幅,關(guān)于這些模型能做什么和有什么商業(yè)價值,已經(jīng)有很多文章探討。然而,作為一個在人工智能領(lǐng)域浸淫多年的小小研究員,我更關(guān)注的是這場軍備競賽背后的技術(shù)原理,以及這些模型是如何工程化并造福人類的。相比于看這些模型怎樣賺錢和工程化以便為更多人帶來好處,我更想探索的是這個現(xiàn)象背后的原因,以及在 AI 取代人類之前,我們這些研究員還能為實現(xiàn) “被 AI 取代然后光榮退休” 做些什么。三年前,當(dāng) GPT-3 在技術(shù)界掀起軒然大波時,我曾嘗試以史書的方式剖析 GPT 背后的龐大家族。我按時間順序梳理了 GPT 背后的技術(shù)脈絡(luò)(圖 1),并試圖解釋 GPT 的成功背后的技術(shù)原理。今年,GPT-3 的小兒子 ChatGPT 似乎更加聰明,能夠用聊天的方式與人交流,這讓更多人了解了自然語言處理領(lǐng)域的最新進(jìn)展。在這個歷史性的時刻,作為 AI 史官,我們或許應(yīng)該花些時間回顧一下最近幾年發(fā)生了什么。第一篇文章是以 GPT-3 作為起點,所以這個系列其實是對于后 GPT 時代的記錄(后 GPT 書),而在探索 GPT 家族的變化時,我意識到大多數(shù)故事都與 Transformer 有關(guān),因此這篇文章的名字就是 Transformer 世家。在正式開始介紹 Transformer 世家前,我們先按照圖 1 回顧一下過去發(fā)生了什么。從 Word Embedding [1,2] 開始,向量(一串?dāng)?shù)字)以一種奇特但有效的方式將文字的語義包含了進(jìn)來,圖 2 展示這種表征方式的說明:用數(shù)字表示的(國王 - 男人 + 女人 = 女王)。以這個為基礎(chǔ),這一支龐大的 NLP(自然語言處理)家族就創(chuàng)立了。圖 2. Word2Vec 圖解 (King - Man + Woman = Queen)
在這之后,他的大兒子 ELMo [3] 發(fā)現(xiàn)了語境的重要性,比如以下兩句話:“啊,我可真愛死你了!你把我最愛的披薩給蹭到地上了?”“我愛死你了” 的意思顯然不同。ELMo 順利的通過 “給定一個模型一串詞,然后讓模型預(yù)測下一個詞和上一個詞(前后文語境)” 解決了這個問題。
與此同時,Word Embedding 的一個遠(yuǎn)房表親發(fā)現(xiàn)了另一個問題 —— 人在理解一句話的時候,是會有重點的關(guān)注一部分詞的,一個很明顯的現(xiàn)象就是我們在讀自己母語的時候很多錯別字會被輕易地忽略掉,這是因為我們在理解這段話的時候注意力并不在這上面。因此,他提出了 Attention(注意力)機(jī)制 [4],但是此時的 Attention 機(jī)制很初期,并不能單獨工作,因此只能依附在類似于 RNN,LSTM 這種序列模型上。圖 3 展示了 attention 機(jī)制與 RNN 的結(jié)合過程,也說明了為什么 Attention 自身無法單獨工作。這里簡單說一下 NLP 模型的工作過程,首先我們有一句話,比如 “我愛你中國”,這就是五個字符,可以變成圖 3 里的 x_1-x_5,然后每個字符會變成剛剛所說的 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)于給每個 h 賦予了一個權(quán)重,這樣我們就知道在轉(zhuǎn)換當(dāng)前這個詞的時候,哪些字比較重要了。具體的細(xì)節(jié)可以參考我最開始寫的那篇文章(從 word2vec 開始,說下 GPT 龐大的家族系譜 )??梢钥闯?,這里的數(shù)字表征是整個任務(wù)的基礎(chǔ),這也是為什么 Attention 機(jī)制無法單獨工作的原因。圖 3. 早期照片 - Attention 與 RNN 強(qiáng)強(qiáng)聯(lián)合(source: Attention for RNN Seq2Seq Models (1.25x speed recommended) - YouTube)此時,作為驕傲的皇族直系親屬,Transformer 不認(rèn)可這種依附他人的工作方式,在論文 “Attention is all you need”(你只需要注意力機(jī)制就夠了)[5] 中提出了自己獨立的方式, 將 “注意力機(jī)制” 加了一個字變成了 “自注意力機(jī)制”,只用注意力機(jī)制就能生成那串?dāng)?shù)字。我們用中醫(yī)開藥來說明這個變化。最開始的 Attention 機(jī)制可以說是每種材料的劑量,但是最終去拿藥的時候,藥品是存在 RNN 或者 LSTM 這種采藥者手里的,我們開出的藥方當(dāng)然也要基于藥房(RNN、LSTM)里有什么藥。Transformer 做的只是將采藥權(quán)要了回來(加入了 value 矩陣),然后換了一種開藥方的方式(加入 key 和 query 矩陣)。此時,Source 可以看作一個中藥鋪子的儲物箱,儲物箱里的藥品由地址 Key(藥品名)和值 Value(藥品)組成,當(dāng)前有個 Key=Query(藥方)的查詢,目的是取出儲物箱里對應(yīng)的 Value 值(藥品),即 Attention 數(shù)值。通過 Query 和儲物箱內(nèi)元素 Key 的地址進(jìn)行相似性比較來尋址,之所以說是軟尋址,指的是我們不只從儲物箱里面找出一中藥物,而是可能從每個 Key 地址都會取出內(nèi)容,取出內(nèi)容的重要性(量的多少)根據(jù) Query 和 Key 的相似性來決定,之后對 Value 進(jìn)行加權(quán)求和,這樣就可以取出最終的 Value 值(一副中藥),也即 Attention 值。所以不少研究人員將 Attention 機(jī)制看作軟尋址的一種特例,這也是非常有道理的 [6]。從此之后,Transformer 正式開始帶領(lǐng)家族走向繁榮。其實從圖 1 也可以看出,transformer 就是爺爺家族里子嗣最旺盛的一支了,也證實了當(dāng)年”Attention is all you need” 這個題目狂的確實有理有據(jù)。雖然剛剛講過他提出的自注意力機(jī)制是什么,前面那篇文章 (從 word2vec 開始,說下 GPT 龐大的家族系譜 ) 已經(jīng)詳細(xì)講過 transformer 的演化過程了,這里還是快速給新來的同學(xué)回顧一下 transformer 這個架構(gòu)到底是什么。簡單來說,我們可以將 Transformer 看作一個 “演員”,對這個 “演員” 來說,編碼器就像是演員的記憶,負(fù)責(zé)將臺詞轉(zhuǎn)化為一個中間表示(抽象成腦海里我們不知道是什么的東西,也就是演員的理解),而解碼器則像是演員的表演,負(fù)責(zé)將腦海里的理解轉(zhuǎn)化成熒幕上的展示。這里面最重要的自注意力機(jī)制則充當(dāng)了演員的專注力,能夠自動調(diào)整演員在不同位置的注意力,從而更好地理解所有臺詞,使其在不同的情境中表演得更加自然流暢。更具體一點來說,我們可以將 Transformer 看作一個大型 “語言處理工廠”。在這個工廠中,每個工人(編碼器)都負(fù)責(zé)處理輸入序列中的一個位置(比如說一個字),對其進(jìn)行加工和轉(zhuǎn)換,然后將其傳遞給下一個工人(編碼器)。每個工人都有一份詳細(xì)的工作說明書(自注意力機(jī)制),其中詳細(xì)描述了如何處理當(dāng)前位置的輸入以及如何與前面的位置建立關(guān)聯(lián)。在這個工廠中,每個工人都可以同時處理自己的任務(wù),因此整個工廠可以高效地處理大量的輸入數(shù)據(jù)。Transformer 一登場,直接因為其強(qiáng)大的實力和兩個爭氣的兒子(BERT 和 GPT)毫無懸念的奪下皇位。BERT (Bidirectional Encoder Representations from Transformers) [1] 繼承了 Transformer 的 Encoder 部分,贏得了前半程比賽,但是因為其限制性,在通用性上輸給了 GPT。老實的 GPT (Generative Pre-trained Transformer)[7-10] 繼承了 Decoder 部分,老老實實從頭學(xué)起,學(xué)習(xí)人類的交流方式,最終在后半程實現(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ī)視覺領(lǐng)域。它的小兒子(谷歌提出的 ViT 等)也在這個領(lǐng)域發(fā)光發(fā)熱。2021 年,Vision Transformer 迎來了大爆發(fā),一大批基于 Vision Transformer 的工作席卷了計算機(jī)視覺任務(wù)。自然而然地,作為一個世家,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)而生??傊?,每個領(lǐng)域都是一個諸侯,一個 NLP 領(lǐng)域白手起家的 Transformer,在努力發(fā)展后成了可以分封諸侯的 “周王”。 圖 4. Transformer 世家日益繁盛的家族族譜牛刀小試 - Vision Transformer [12]在說 GPT 之前,還是要先說說 Transformer 做出的第一個大膽嘗試 - 那就是讓小兒子去摻和 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 個詞)。如圖 5 所示,它的基本思想是把輸入的圖像分成一系列的小塊,每個小塊可以理解成過去處理文章時候的一個文字,然后把這些小塊轉(zhuǎn)換成向量,就像在普通的 Transformer 中處理文字一樣。如果說在自然語言處理(NLP)領(lǐng)域,Transformer 的注意力機(jī)制試圖捕捉文本中不同單詞之間的關(guān)系,那么在計算機(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ù)谋尘跋?,使用合適的光線,使整個畫面看起來和諧美觀。對于 CNN 來說,它像是一個專業(yè)的攝影師,會逐像素地拍攝每一幀畫面,然后從中提取出一些邊緣、紋理等低層次特征。然后,它將這些特征組合起來,形成更高層次的特征,例如人臉、動作等,最終得到一幀畫面。隨著電影的進(jìn)行,CNN 會不斷重復(fù)這個過程,直到完成整部電影的拍攝。而對于 ViT 來說,它像是一個藝術(shù)指導(dǎo),會把整個畫面看作是一個整體,考慮到背景、光線、顏色等因素,為每個演員分配合適的位置和角度,創(chuàng)造出一個完美的畫面。然后,ViT 會把這些信息匯總成一個向量,并使用多層感知器對它們進(jìn)行處理,最終得到一幀畫面。隨著電影的進(jìn)行,ViT 會不斷重復(fù)這個過程,直到完成整部電影的創(chuàng)作。回到圖像處理任務(wù)上,假設(shè)我們有一張 224x224 像素的貓的圖片,我們想要用一個神經(jīng)網(wǎng)絡(luò)對它進(jìn)行分類。如果我們使用傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò),它可能會采用多個卷積層和池化層來逐漸縮小圖像的大小,最終得到一個較小的特征向量,然后通過全連接層進(jìn)行分類。這種方法的問題是,在卷積和池化的過程中,我們會逐漸丟失圖像中的信息,因為我們不能同時考慮所有像素點之間的關(guān)系。此外,由于卷積和池化層的順序限制,我們無法進(jìn)行全局的信息交互。相比之下,如果我們使用 Transformer 和 self-attention 機(jī)制來處理這個圖像,我們可以直接將整個圖像視為一個序列,并對它進(jìn)行 self-attention 計算。這種方法不會丟失任何像素點之間的關(guān)系,并且可以進(jìn)行全局的信息交互。此外,由于 self-attention 計算是可并行化的,因此我們可以同時處理整個圖像,大大加快了計算速度。舉個例子,假設(shè)我們有一個句子:“I like to eat ice cream”, 其中包含 6 個單詞?,F(xiàn)在假設(shè)我們正在使用一個基于自注意力機(jī)制的模型來理解這個句子,Transformer 可以:- 最小化每層的總計算復(fù)雜度:基于自注意力機(jī)制的模型中,我們只需要計算每個單詞與所有其他單詞之間的注意力權(quán)重,這樣每一層的計算量只取決于輸入長度而不是隱藏層的大小。在這個例子中,輸入長度為 6 個單詞,因此每一層的計算復(fù)雜度只取決于這 6 個單詞的數(shù)量。
- 最大化可并行化的計算量:基于自注意力機(jī)制的模型可以同時計算每個單詞與其他所有單詞之間的注意力權(quán)重,因此計算可以高度并行化,從而加速模型的訓(xùn)練和推斷。
然而,ViT 需要大規(guī)模數(shù)據(jù)集和高分辨率圖像才能發(fā)揮其全部潛力 ,因此,雖然 Vision Transformers 在 CV 領(lǐng)域表現(xiàn)不凡,CNN 在計算機(jī)視覺領(lǐng)域的應(yīng)用和研究仍然更為廣泛,并且在目標(biāo)檢測和分割等任務(wù)中具有優(yōu)勢 。但是沒關(guān)系,你做的已經(jīng)夠好了,你父親涉足 CV 的初衷也不是為了取代 CNN,他有更宏大的目標(biāo)。這個目標(biāo)的基礎(chǔ),就是前面我說的 “此外”。前面我說過,Transformer 還有更宏大的目標(biāo),那就是 “大模型”,超級超級大的模型。除了我在前一篇文章里說的 transformer 可以更好地獲得全局信息外,更小的計算復(fù)雜度和更好的并行度成為了支撐大模型的基礎(chǔ)。2021 年,除了 Vision Transformer 有了長足進(jìn)展以外,GPT 那一支還在緊鑼密鼓的籌備 GPT3.5,閑不下來的勞模 Transformer 又引領(lǐng)了一個新的高潮 —— 連結(jié)文本和圖像。這個高潮也為 “大模型” 計劃打響了除 NLP 領(lǐng)域外的第一槍。而此時,Transformer 在視覺任務(wù)上的缺點,在這里反而變成了優(yōu)勢?!盫iT 需要大規(guī)模數(shù)據(jù)集和高分辨率圖像才能發(fā)揮其全部潛力 “如果換個說法,就是 “ViT 可以處理大規(guī)模數(shù)據(jù)集和高分辨率圖像”。CLIP 的全稱是 Contrastive Language-Image Pre-Training,很明顯其基本思想就是傳統(tǒng) CV 領(lǐng)域里的對比學(xué)習(xí) (Contrastive learning)。當(dāng)我們學(xué)習(xí)新知識時,我們會閱讀不同的書籍和文章,獲取大量的信息。但是,我們并不是只記住了每個書籍或文章中的所有單詞和句子。相反,我們會試圖找到這些信息之間的相似性和區(qū)別。例如,我們可能會注意到在不同的書中,某個主題的描述方式和關(guān)鍵概念的表述方式可能會有所不同,但它們所描述的概念本質(zhì)上是相同的。這種尋找相似性和區(qū)別的方式就是對比學(xué)習(xí)的基本思想之一。我們可以將每本書或文章看作不同的樣本,而相同主題的書籍或文章可以被視為來自同一類別的不同實例。在對比學(xué)習(xí)中,我們會訓(xùn)練模型來學(xué)習(xí)如何區(qū)分這些不同類別的樣本,以此來學(xué)習(xí)它們的相似性和區(qū)別。接下來更學(xué)術(shù)一點,假設(shè)你想訓(xùn)練一個模型來識別汽車品牌。你可以有一組帶標(biāo)簽的汽車圖像,每個圖像都有一個品牌標(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é)會從圖像中提取品牌特定的特征,而不必明確地告訴它每個圖像的品牌標(biāo)簽。很明顯,這是一個自監(jiān)督學(xué)習(xí)模型,CLIP 也是一個類似的自監(jiān)督學(xué)習(xí)模型,只不過它的目標(biāo)是將語言和圖像聯(lián)系起來,從而使計算機(jī)能夠理解文本和圖像之間的關(guān)系。想象你正在學(xué)習(xí)一組詞匯表,其中每個單詞都有其定義和相應(yīng)的圖像。對于每個單詞和其對應(yīng)的圖像,你可以將它們視為一對(pair)。你的任務(wù)是找出這些單詞和圖像之間的相互關(guān)系,即哪些單詞與哪些圖像匹配,哪些不匹配。如圖 6 所示,對于對比學(xué)習(xí)算法而言,這些單詞和圖像對就是所謂的 “anchor”(錨定樣本)和 “positive”(正樣本)?!癮nchor” 指的是我們想要學(xué)習(xí)的對象,而 “positive” 則是與 “anchor” 匹配的樣本。與之相對的是 “negative”(負(fù)樣本),即與 “anchor” 不匹配的樣本。在對比學(xué)習(xí)中,我們將 “anchor” 和 “positive” 組成一對,并嘗試將它們區(qū)分開來。同時,我們也會將 “anchor” 和 “negative” 組成一對,并嘗試將它們區(qū)分開來。這個過程可以理解為是在尋找 “anchor” 和 “positive” 之間的相似性,以及在排除 “anchor” 和 “negative” 之間的相似性。圖 6. 對比學(xué)習(xí)(Contrastive Learning)圖示 [14]。Anchor 就是原始圖像,positives 一般是經(jīng)過裁切、旋轉(zhuǎn)后的原始圖像,或是已知的相同類別的圖像,negatives 可以被簡單粗暴的定義為未知的圖像(有可能是同一類別),或者是已知的不同類別的圖像。為了達(dá)到這個目標(biāo),CLIP 首先對大量的圖像和文本進(jìn)行預(yù)訓(xùn)練,然后使用預(yù)訓(xùn)練的模型進(jìn)行下游任務(wù),例如分類、檢索和生成等。CLIP 模型采用了一種新的自監(jiān)督學(xué)習(xí)方法,即同時處理文本和圖像,通過訓(xùn)練來學(xué)習(xí)如何將它們聯(lián)系起來。它在文本和圖像之間共享注意力機(jī)制,并使用一組簡單的可調(diào)參數(shù)來學(xué)習(xí)這個映射。它用的是基于 transformer 的文本編碼器和基于 CNN 的圖像編碼器,然后計算圖像和文本嵌入之間的相似度。CLIP 通過使用對比學(xué)習(xí)目標(biāo)來學(xué)習(xí)關(guān)聯(lián)圖像和文本,該目標(biāo)最大化數(shù)據(jù)中存在的圖像 - 文本對之間的一致性,并最小化隨機(jī)采樣的圖像 - 文本對之間的一致性。圖 7. CLIP 圖示 [13]。相比圖 6,可以簡單理解成圖 6 中的 positive 和 negative 都是文字了。舉個例子,如果我們想用 CLIP 來識別一張圖片是否是 '紅色的沙灘',我們可以輸入這個文本描述和一張圖片,CLIP 將生成一個向量對來表示它們的聯(lián)系。如果這個向量對的距離很小,那么就說明這張圖片可能是 '紅色的沙灘',反之則不是。通過這種方法,CLIP 可以實現(xiàn)圖像分類和圖像搜索等任務(wù)。回到全稱,CLIP 的最后一個詞是 pretraining,所以其本質(zhì)還是預(yù)訓(xùn)練模型,但是它可以用于涉及匹配圖像和文本的各種下游任務(wù),例如圖像分類、零樣本學(xué)習(xí)和圖像描述生成等。例如,CLIP 可用于將圖像分類為自然語言標(biāo)簽給出的類別,例如 “狗的照片” 或 “風(fēng)景畫”。CLIP 還可用于通過使用以 CLIP 提取的圖像特征為條件的語言模型來為圖像生成說明文字。此外,CLIP 可用于通過使用以 CLIP 提取的文本特征為條件的生成模型從文本生成圖像。DALL-E & Stable Diffusion在 CLIP 的幫助下,一個新的諸侯崛起了 - 他叫 AIGC(AI generated content)。其實 ChatGPT 本質(zhì)上也是 AIGC 的一種,但是在這個小節(jié),我們主要說的是 AI 作畫。先來看看 AI 作畫這個小家族的發(fā)展史:- 2021.01,OpenAI 發(fā)布 DALL-E [15](AI 作畫軟件),它改進(jìn)了 GPT-3 從而讓 GPT-3 生成圖像,而不是文本 (Image Transformer Network)
- 幾乎同時(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)行時的 “擴(kuò)散”(diffusion)過程。從僅有的噪聲開始,它逐漸修正圖像,直到?jīng)]有任何噪聲,讓其更接近提供的文本描述。
- 2022.04,DALL-E-2 [16] 發(fā)布。它可以根據(jù)自然語言的描述創(chuàng)建逼真的圖像和藝術(shù)品。DALL-E-2 采用由先驗和解碼器組成的兩部分模型。先驗是一個 GPT-3 模型,根據(jù)文本提示生成 CLIP 圖像嵌入。解碼器是一個擴(kuò)散模型,根據(jù) CLIP 嵌入生成圖像。DALL-E-2 還可以進(jìn)行 outpainting, inpainting,以及對現(xiàn)有圖像的變化。
這個家族的脈絡(luò)可見一斑,大哥 CLIP 連結(jié)了圖像和文本,其雙胞胎兄弟 DALL-E 順勢提出了文本到圖像的任務(wù)。為了改進(jìn)這個任務(wù),一個遠(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 就是你的工具箱。在這個比喻中,工具箱中有兩個主要的工具:一個是畫筆,另一個是調(diào)色板。畫筆是 DALL-E 的解碼器,它可以將給定的文字描述轉(zhuǎn)換為一張圖像。調(diào)色板則是 DALL-E 的編碼器,它可以將任意的文字描述轉(zhuǎn)化為一個特征向量。當(dāng)你得到一句文字描述時,你會首先用調(diào)色板來生成一個特征向量。然后你就可以拿起畫筆,并使用特征向量來生成一張與描述相符的圖像。當(dāng)你需要細(xì)節(jié)時,你會使用更精細(xì)的畫筆,反之則會使用更粗糙的畫筆。與畫家不同的是,DALL-E 使用的是神經(jīng)網(wǎng)絡(luò),而不是畫筆和調(diào)色板。這個神經(jīng)網(wǎng)絡(luò)使用了一種名為 Image Transformer Network 的結(jié)構(gòu)。在生成圖像時,DALL-E 使用先前提到的 GPT-3 模型生成與文本描述相對應(yīng)的 CLIP 圖像嵌入。然后,DALL-E 使用束搜索算法生成一系列可能的圖像,這些圖像與輸入的文本描述相匹配,并將它們送入一個解碼器來生成最終的圖像。這種嵌入向量是通過使用稱為對比學(xué)習(xí)的技術(shù)來訓(xùn)練的,該技術(shù)可以將相似的圖像和文本嵌入到相鄰的空間中,以便更容易地將它們組合起來。注意,這里 DALLE 并沒有直接包含 CLIP,但是它使用了 CLIP 的文本和圖像嵌入來訓(xùn)練變換器和 VAE。至于在生成圖像過程中使用的束搜索算法,實際上是一種貪心搜索算法,它可以在有限的候選集合中找到最優(yōu)的序列。束搜索的基本思想是,每次擴(kuò)展當(dāng)前序列時,只保留概率最高的 k 個候選(k 稱為束寬度),并舍棄其他低概率的候選。這樣可以減少搜索空間,提高效率和準(zhǔn)確度。DALLE 中使用束搜索生成圖像的具體步驟如下:- 將輸入的文本描述編碼為一個向量,并作為變換器模型的初始輸入。
- 從一個特殊的開始符號開始,逐像素地生成圖像序列。每次生成一個像素時,都用變換器模型預(yù)測下一個像素的概率分布,并從中選擇概率最高的 k 個候選像素,作為當(dāng)前序列的延伸。
- 對每個延伸后的序列,計算其累積概率,并保留概率最高的 k 個序列,舍棄其他序列。
- 重復(fù)步驟 2 和 3,直到生成一個特殊的結(jié)束符號或達(dá)到最大長度限制。
同樣一幅畫,stable diffusion 是怎么畫的呢?當(dāng)我們想要畫一幅藝術(shù)作品時,通常需要一個良好的構(gòu)圖和一些具體的元素來構(gòu)建。Stable diffusion 就是這樣一種生成圖像的方法,它將圖像生成的過程分成了兩個部分:擴(kuò)散過程和重構(gòu)過程。擴(kuò)散過程可以想象成是將一堆零散的畫筆、顏料和畫板混合在一起,慢慢地在畫板上創(chuàng)造出越來越多的元素。這個過程中,我們并不知道最終畫面會是什么樣子,也無法確定每個元素最終的位置。但是,我們可以逐漸添加和調(diào)整這些元素,直到整幅畫完成。然后,輸入的文本描述就像是我們對于要畫的作品的大致描述,通過束搜索算法來在文本描述和生成的圖像之間進(jìn)行精細(xì)的匹配。這個過程就像是我們在不斷地修改和調(diào)整元素,讓它們更好地匹配我們想要的畫面。最終,生成的圖像將與文本描述緊密匹配,呈現(xiàn)出我們想象中的藝術(shù)作品。如圖 8 所示,這里的擴(kuò)散模型是一種生成模型,它通過逐漸向數(shù)據(jù)添加噪聲,然后逆向恢復(fù)原始數(shù)據(jù)的過程來學(xué)習(xí)數(shù)據(jù)的分布。stable diffusion 使用了一個預(yù)訓(xùn)練的變分自編碼器(VAE)來將圖像編碼成低維潛在向量,并使用一個基于變換器的擴(kuò)散模型來從潛在向量生成圖像。stable diffusion 還使用了一個凍結(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ī)性使得生成的圖像更加多樣化,同時也增加了算法的不確定性。為了讓生成的圖像更加穩(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 只能從文本提示生成圖像。
- 真實性:stable diffusion 可以生成更真實和細(xì)致的圖像,尤其是在復(fù)雜和抽象的描述下。DALL-E 則可能生成一些不符合物理規(guī)律或常識的圖像。
這也是為什么 DALL-E-2 也將擴(kuò)散模型加入到其模型中去了。潛伏的強(qiáng)者 - GPT3.5 [18] 在其他諸侯把改革開展的如火如荼的時候,GPT 這一支也一直在默默努力著。開頭說過,GPT-3 剛發(fā)布的時候已經(jīng)有很強(qiáng)的能力了,但是使用方式不那么 “非技術(shù)人員友好”,所以掀起的浪花都是在技術(shù)界,這些本就不算很熱烈的浪花,又因為它不低的收費而日益消散。Transformer 十分不滿意,GPT 想了想,那就改革!第一個響應(yīng)改革號召,邁出第一步的是 GPT 3.5:“我比較笨,想不出什么好辦法改革,那就先把基礎(chǔ)打牢吧。”于是,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)的圖像,并且圖像具有較高的清晰度和逼真度。第二個響應(yīng)號召的是 Instruct GPT,他發(fā)現(xiàn)了新的問題:“要想跟人類打成一片,我們就需要更有效的聽取他們的意見?!?/span>于是,出現(xiàn)了大名鼎鼎的新晉外援,也就是 RLHF 訓(xùn)練策略。RLHF 是一種基于強(qiáng)化學(xué)習(xí)的訓(xùn)練策略,它的全稱是 Reinforcement Learning from Human Feedback。它的核心思想是在訓(xùn)練過程中,給模型提供一些指令,并根據(jù)模型的輸出給予獎勵或懲罰。這樣可以使模型更好地遵循指令,提高模型的可控性和可信度。其實 GPT-3.5 也有人類反饋(Human Feedback),那加入了強(qiáng)化學(xué)習(xí)(Reinforcement learning)之后,發(fā)生了什么改變呢?- GPT3.5 的人類反饋是直接用于微調(diào)模型的參數(shù),而 Instruct GPT 的 RLHF 是用于訓(xùn)練一個獎勵模型,然后用這個獎勵模型來指導(dǎo)模型的行為。
- GPT3.5 的人類反饋是基于單個輸出的評價,而 Instruct GPT 的 RLHF 是基于多個輸出之間的比較。
- GPT3.5 的人類反饋只進(jìn)行了一次,而 Instruct GPT 的 RLHF 可以進(jìn)行多次迭代,不斷收集新的比較數(shù)據(jù),訓(xùn)練新的獎勵模型,優(yōu)化新的策略。
也就是說,更少的人力投入,但是給模型帶來了更大的收益。圖 9. RLHF 過程(圖源:GPT-4 (openai.com))如圖 9 所示,RLHF 訓(xùn)練策略分為兩個階段:預(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)于春天的詩” 或 “給我一個關(guān)于狗的笑話”。反饋是一些用數(shù)字表示的評分,如 “1” 表示很差,“5” 表示很好。反饋是由人類標(biāo)注者根據(jù)模型的輸出給出的,反映了模型輸出的質(zhì)量和合理性。在微調(diào)階段,模型使用一個叫做 Actor-Critic 的算法進(jìn)行強(qiáng)化學(xué)習(xí)。Actor-Critic 算法包括兩個部分:Actor 和 Critic。Actor 是一個生成器,它根據(jù)指令生成輸出。Critic 是一個評估器,它根據(jù)反饋評估輸出的獎勵值。Actor 和 Critic 之間相互協(xié)作和競爭,不斷地更新自己的參數(shù),以提高獎勵值。RLHF 訓(xùn)練策略可以使模型更好地遵循指令,提高模型的可控性和可信度。例如,在寫作任務(wù)中,模型可以根據(jù)指令生成不同風(fēng)格和主題的文本,并且文本具有較高的連貫性和邏輯性。在對話任務(wù)中,模型可以根據(jù)指令生成不同情感和語氣的回復(fù),并且回復(fù)具有較高的相關(guān)性和禮貌性。終于,經(jīng)過前輩們的改革積累,GPT 家族里更加靈活的小兒子 ChatGPT 覺得是時候了,順勢基于 Instruct GPT 推出了更貼合人類交流方式的對話模式,直接在人類社會掀起巨大的浪花(幾億用戶),而且它又是免費的,GPT 家族經(jīng)過幾年的蟄伏,終于一鳴驚人,成為 Transformer 世家最受寵的皇子,直接在繼位之爭上一舉奪魁,成為太子。與此同時,對于 ChatGPT 來說,太子還不是全部,ChatGPT 繼承了 Transformer 巨大的野心:“現(xiàn)在的局面太亂了,強(qiáng)大的王朝不需要這么多諸侯,是時候統(tǒng)一他們了。“GPT-4:” 這個時代,是大模型的時代,我說的。”(bushi)現(xiàn)在的 ChatGPT 已經(jīng)是基于 GPT-4 的大門面了。GPT-4 因為懼怕于其競爭對手的快速反應(yīng),其實大部分技術(shù)細(xì)節(jié)都是封閉的。但是從其功能上,已經(jīng)看出 GPT 家族統(tǒng)一各諸侯的野心了,除了文字對話以外,GPT-4 也加入了 AI 作圖功能。GPT 家族從過去幾年的蟄伏經(jīng)驗里悟出了一個道理,大模型即正義,并想將這個道理推廣到各個領(lǐng)域。如果深究這個道理背后的底氣,那可能就是大模型訓(xùn)練的方式吧。GPT-3 是目前最大的語言模型之一,它擁有 1750 億個參數(shù),比其前身 GPT-2 多了 100 倍,比之前最大的同類 NLP 模型要多 10 倍,也可以算是大預(yù)言模型的先驅(qū)者了。所以,我們先來看看 GPT-3 的模型架構(gòu)和訓(xùn)練方法是如何實現(xiàn)這樣的規(guī)模和性能的:- 分布式訓(xùn)練:GPT-3 使用了分布式訓(xùn)練的方法,即將模型和數(shù)據(jù)分散在多個計算節(jié)點上,并通過通信協(xié)議進(jìn)行協(xié)調(diào)和同步。這樣可以利用多個節(jié)點的計算資源和內(nèi)存空間,加速模型訓(xùn)練的過程,并支持更大規(guī)模的模型和數(shù)據(jù)。
- GPT-3 使用了約 2000 個 GPU 節(jié)點來進(jìn)行分布式訓(xùn)練,每個節(jié)點有 多塊 GPU,每塊 GPU 有 相同 的顯存。
- GPT-3 使用了兩種分布式訓(xùn)練的方法:數(shù)據(jù)并行和模型并行。
- 數(shù)據(jù)并行是指將數(shù)據(jù)分成多個子集,每個節(jié)點處理一個子集,并在每個節(jié)點上更新模型的參數(shù),然后在所有節(jié)點間同步參數(shù)。
- 模型并行是指將模型分成多個部分,每個節(jié)點處理一個部分,并在每個節(jié)點上計算部分的輸出和梯度,然后在所有節(jié)點間傳遞輸出和梯度。
- GPT-3 使用了一種混合的數(shù)據(jù)并行和模型并行的方法,即在每個節(jié)點內(nèi)部使用數(shù)據(jù)并行,在不同節(jié)點之間使用模型并行。這樣可以充分利用 GPU 的計算能力和通信帶寬,同時減少通信開銷和內(nèi)存占用。
- 激活函數(shù)檢查點:GPT-3 使用了一種叫做激活函數(shù)檢查點的技術(shù),即在模型的前向傳播過程中,只保存部分層的激活函數(shù)的值,而不是所有層的值。這樣可以節(jié)省顯存空間,因為激活函數(shù)的值占用了大部分的顯存。在模型的反向傳播過程中,如果需要用到某些層的激活函數(shù)的值,就重新計算它們,而不是從顯存中讀取。這樣可以犧牲一些計算時間來換取更多的顯存空間,從而支持更大規(guī)模的模型和批量大小。
- 稀疏注意力機(jī)制:GPT-3 使用了一種叫做稀疏注意力機(jī)制的技術(shù),即在計算自注意力時,只考慮部分輸入序列中的詞,而不是所有詞。這樣可以減少計算量和內(nèi)存占用,因為自注意力的復(fù)雜度和輸入序列的長度成平方關(guān)系。GPT-3 使用了一種基于局部窗口和全局塊的稀疏注意力機(jī)制,即將輸入序列劃分為多個塊,并且每個塊只與相鄰的幾個塊進(jìn)行注意力計算,同時每個塊還與一些隨機(jī)選擇的全局塊進(jìn)行注意力計算。這樣可以保證模型既能捕捉局部信息,又能捕捉全局信息,同時也能降低計算復(fù)雜度和內(nèi)存占用。
看到這里,ChatGPT 眉頭微皺,似乎有些不滿意 GPT-3 的方案:“這還不夠?!?/span>'大模型確實是當(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)驗實驗或理論分析進(jìn)行仔細(xì)調(diào)整,以確保模型的最佳表現(xiàn)。”“其次,為了獲得高吞吐量并避免瓶頸,我們需要優(yōu)化訓(xùn)練過程中的各個環(huán)節(jié),比如硬件配置、網(wǎng)絡(luò)帶寬、數(shù)據(jù)加載速度和模型架構(gòu)等。優(yōu)化這些環(huán)節(jié)可以顯著提高模型的處理速度和效率。例如,使用更快的存儲設(shè)備或數(shù)據(jù)格式可以減少數(shù)據(jù)加載時間;使用更大的批量大小或梯度累積可以減少通信開銷;使用更簡單或更稀疏的模型可以減少計算時間等等?!?/span>“最后,訓(xùn)練大模型時可能會遇到各種不穩(wěn)定和失敗的情況,例如數(shù)值錯誤、過擬合、硬件故障、數(shù)據(jù)質(zhì)量問題等等。為了避免或恢復(fù)這些問題,我們需要密切監(jiān)控模型的行為和性能,并使用調(diào)試工具和技術(shù)來識別和修復(fù)任何錯誤或缺陷。此外,我們還可以使用各種安全措施和防護(hù)機(jī)制,如裁剪、正則化、丟棄、噪聲注入、數(shù)據(jù)過濾、數(shù)據(jù)增強(qiáng)等等,以提高模型的魯棒性和可靠性。”“在這個時代,大模型的確是重要的,但是僅僅是追求規(guī)模并不能讓模型產(chǎn)生有用的結(jié)果。只有經(jīng)過深思熟慮的訓(xùn)練和優(yōu)化,才能讓大模型真正發(fā)揮其潛力,為人類帶來更多的價值?!?/span>最后,瘦死的駱駝比馬大,雖然 BERT 最近被 GPT 壓過風(fēng)頭,但畢竟是曾經(jīng)的強(qiáng)諸侯,在 GPT 勢不可擋的發(fā)展下,BERT 依然保留了自己的一份封地。當(dāng)談及自然語言處理模型的時候,BERT(Bidirectional Encoder Representations from Transformers)一度是非常受歡迎的模型,因為它在很多任務(wù)上都表現(xiàn)得非常出色。當(dāng)它第一次發(fā)布時,它幾乎是無人能敵的,甚至比 GPT 更為成功。這是因為 BERT 的設(shè)計與 GPT 有著不同的目標(biāo)和優(yōu)勢。BERT 的目標(biāo)是將上下文建模的能力推到一個全新的高度,以便更好地支持下游任務(wù),例如文本分類和問答。它通過訓(xùn)練一個雙向 Transformer 編碼器來實現(xiàn)這個目標(biāo)。這個編碼器能夠同時考慮輸入序列的左側(cè)和右側(cè),從而獲得更好的上下文表示,因此 BERT 能夠?qū)ι舷挛母玫剡M(jìn)行建模,提高了模型在下游任務(wù)中的表現(xiàn)。但是,隨著時間的推移,GPT 系列模型的出現(xiàn)使得 GPT-3 在多項任務(wù)上超越了 BERT。一個可能的原因是 GPT 系列的模型在設(shè)計上更加專注于生成性任務(wù),比如文本生成和對話系統(tǒng),而 BERT 則更注重分類和問答任務(wù)。此外,GPT 系列模型使用了更大的參數(shù)和更多的數(shù)據(jù)進(jìn)行訓(xùn)練,這也使得它們能夠在更廣泛的任務(wù)上取得更好的表現(xiàn)。當(dāng)然,BERT 仍然是一個非常有用的模型,特別是對于一些需要對文本進(jìn)行分類或回答問題的任務(wù)。而 GPT 系列的模型則更適合用于生成性任務(wù),例如文本生成和對話系統(tǒng)??傮w來說,這兩個模型都有它們獨特的優(yōu)勢和局限性,我們需要根據(jù)具體任務(wù)的需求來選擇適合的模型。 奪嫡之爭 - 來勢洶洶的 Segment Anything Model (SAM) [20]前面說過,在大哥 GPT 默默努力的時候,勞模 Transformer 在 CV 領(lǐng)域(ViT)和多模態(tài)領(lǐng)域 (CLIP) 都掀起了不小的浪花,但是最終都成為了經(jīng)驗寶寶,被老父親 Transformer 教給了受寵的太子 GPT,最終成就了 GPT-4 的所謂大一統(tǒng)。骨子里流淌著 Transformer 血液的 ViT 和 CLIP 當(dāng)然很不開心:“王侯將相寧有種乎?大哥不是學(xué)我們嗎,我們也可以學(xué)他?!?nbsp;“但是,他在 NLP 領(lǐng)域太強(qiáng)大了,我們要找個新的戰(zhàn)場?!?/span>于是,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 看作一個高效的 “圖像剪輯大師”,它能夠通過各種輸入提示來精確地識別和分割圖像中的各種對象。例如,當(dāng)我們在圖像中用鼠標(biāo)點擊一個點時,SAM 會像一個經(jīng)驗豐富的畫家一樣,自動剪切出該點所在的對象;當(dāng)我們輸入 “貓” 這個詞時,SAM 就會像一個聰明的偵探一樣,自動找出并剪切出圖像中所有的貓;當(dāng)我們給 SAM 一個目標(biāo)檢測框時,SAM 就會像一個熟練的手術(shù)醫(yī)生一樣,準(zhǔn)確地剪切出框內(nèi)的對象。SAM 的零樣本泛化能力使其成為一個真正的 “通用剪輯大師”。這意味著無論是常見的對象,如汽車、樹木和建筑,還是罕見的對象,如恐龍、外星人和魔法棒,SAM 都可以毫不費力地識別和剪切。這種強(qiáng)大的能力源于其先進(jìn)的模型設(shè)計和龐大的數(shù)據(jù)集。我從原論文里選了四張很復(fù)雜的場景實例(圖 10),說明了 SAM 到底可以做什么。圖 10. SAM 的效果實例。圖片里每個顏色的東西你都可以剪輯提取出來,相當(dāng)于一個高效的 PS 大師(圖像剪輯大師)。簡單來說,以前別人跟我們眉飛色舞地提需求的時候,我們總要無奈地問一句,先等一下,你們能提供什么樣的數(shù)據(jù)?現(xiàn)在不需要了,至少在 CV 領(lǐng)域,已經(jīng)更貼近非技術(shù)人群對 AI 的理解了。為了實現(xiàn)上面說的強(qiáng)大能力,我們來看看 ViT 和 CLIP 是如何大聲密謀的:ViT: “我雖然之前主要是做圖像分類任務(wù),但我的架構(gòu)同樣適用于圖像分割。因為我是利用 Transformer 架構(gòu)將圖像分解成一系列塊然后對其進(jìn)行并行處理的,如果集成我的優(yōu)勢,SAM 就可以繼承我并行處理和全局注意力的優(yōu)勢,從而實現(xiàn)高效的圖像分割。”CLIP:“好呀,那我就帶著我聯(lián)合訓(xùn)練的方法入股,基于這個思想,SAM 也可以處理不同類型的輸入提示(問題提示和視覺提示)?!?/span>于是,SAM 的模型架構(gòu)成型了 (圖 11),ViT 用來做 image encoder(圖像編碼器),而 CLIP 來編碼 prompt(提示)的信息。想法是好的,具體該怎么做呢 —— 當(dāng)然是學(xué)習(xí)大哥啦!“我們想要利用預(yù)訓(xùn)練的語言模型來做圖像分割任務(wù),就像用文字提示(prompt)來讓語言模型生成或預(yù)測文字一樣。有了 CLIP,我們的提示就可以很豐富了,可以是一些 point (點)、box(框)、mask,還有 Text (文本),它們告訴語言模型要在圖像中分割出什么。我們的目標(biāo)就是,給定任何提示,都能得到一個有效的分割 mask (分割結(jié)果)。有效的 mask 意味著,即使提示有歧義(比如說襯衫還是人),輸出也應(yīng)該是其中一個對象的合理 mask。這就像大哥 GPT(語言模型)對一個有歧義的提示也能給出一個連貫的回應(yīng)一樣。我們選擇這個任務(wù),因為它可以讓我們用一種自然的方式來預(yù)訓(xùn)練語言模型,并且通過提示來實現(xiàn)零樣本遷移到不同的分割任務(wù)上。”至于結(jié)果,前面提到的其強(qiáng)大能力已經(jīng)證實了這個想法的可行性。但是,不得不提的是,雖然 SAM 確實不再需要重新訓(xùn)練模型,但是像 chatGPT 剛推出時一樣,他還是有一些限制的。在論文的 Limitation 部分,作者頁明確指出了 SAM 的一些局限性和不足,比如在細(xì)節(jié)、連通性、邊界等方面的缺陷,以及在交互式分割、實時性、文本提示、語義和全景分割等任務(wù)上的挑戰(zhàn),同時也承認(rèn)了一些領(lǐng)域?qū)S霉ぞ叩膬?yōu)勢。舉個例子,我在 demo 里做了兩個簡單的測試:一個是醫(yī)療圖像領(lǐng)域的病灶檢測,因為病灶太小了,很難檢測到;第二個是人像切割,切出來的人像乍看不錯,但是發(fā)絲還是不是很自然,仔細(xì)看還是能看出來切割痕跡。當(dāng)然,這畢竟是一個很好的開始,這小哥倆創(chuàng)業(yè)未半,還在努力,要啥自行車?所以,這場奪嫡的結(jié)果如何,還是讓我們拭目以待吧!Transformer 世家的龐大家族顯然不是這一篇文章可以說明的,當(dāng)談到基于 Transformer 的成果時,我們可以看到這個領(lǐng)域的持續(xù)創(chuàng)新:Vision Transformer(ViT)展示了 Transformer 在計算機(jī)視覺領(lǐng)域的成功應(yīng)用,它可以直接處理圖像像素數(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)時那節(jié)課老師說這個知識點時的音容笑貌,甚至開始規(guī)劃下學(xué)期的學(xué)習(xí)計劃。偽學(xué)霸們天天到課,占據(jù)前排,打開課本卻是一臉懵逼,開始跟學(xué)渣們一起 “一天一本書,一周一學(xué)期”,唯一的區(qū)別就是課本不是全新的,對課本內(nèi)容還有一點點記憶,不算是在完全的學(xué)習(xí)新知識。其實我倒覺得,不管是偽學(xué)霸還是學(xué)渣,都應(yīng)該在期末考面前保持冷靜,看看這學(xué)期講了什么,找學(xué)霸們借一下筆記,甚至可以選擇緩考。對學(xué)霸們來說,快是水到渠成的。對偽學(xué)霸和學(xué)渣們來說,快是有害的。在人工智能領(lǐng)域的競爭中,持續(xù)創(chuàng)新是至關(guān)重要的。因此,作為研究員,我們應(yīng)該密切關(guān)注這個領(lǐng)域的最新發(fā)展,并且保持謙虛和開放的心態(tài),以促進(jìn)人工智能領(lǐng)域的不斷進(jì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.[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è),主要研究方向為計算機(jī)視覺、3D重建、AIGC等,重點關(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項。
關(guān)于機(jī)器之心全球分析師網(wǎng)絡(luò) Synced Global Analyst Network
機(jī)器之心全球分析師網(wǎng)絡(luò)是由機(jī)器之心發(fā)起的全球性人工智能專業(yè)知識共享網(wǎng)絡(luò)。在過去的四年里,已有數(shù)百名來自全球各地的 AI 領(lǐng)域?qū)I(yè)學(xué)生學(xué)者、工程專家、業(yè)務(wù)專家,利用自己的學(xué)業(yè)工作之余的閑暇時間,通過線上分享、專欄解讀、知識庫構(gòu)建、報告發(fā)布、評測及項目咨詢等形式與全球 AI 社區(qū)共享自己的研究思路、工程經(jīng)驗及行業(yè)洞察等專業(yè)知識,并從中獲得了自身的能力成長、經(jīng)驗積累及職業(yè)發(fā)展。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。