在通往「通用人工智慧(AGI)」之路中,ChatGPT 的發展受到極大關注,本文將剖析該 AI 模型的背後邏輯:「壓縮即智慧」。本文源自 泡芙的元宇宙 所著文章,由 Foresignt News 整理撰稿。
(前情提要:馬斯克預言:通用人工智慧 AGI 一定會出現!xAI 將取代微軟、OpenAI…)
(背景補充:AI翻轉工作力》專家親授AIGC工作流四階段:分析、定義、創意、執行 )
上個月在山海塢 women code camp,我作為講師分享了一期《通往 AGI 之路:壓縮即智慧》,發現大家對 AIGC 和大模型都非常感興趣,但是當時很多小夥伴反應沒聽懂,所以寫了這一篇白話講解。希望能夠對 AIGC 感興趣的您有所幫助。
如果您需要更深入的瞭解,請在閱讀完本文後參考 Jack Rae (OpenAI 團隊核心成員) 在史丹佛的主題演講Compression for AGI ,這也是本文的主要參考文獻。
1. 從機器學習說起
機器學習(Machine learning),對於非電腦背景的朋友來說或許有些陌生。但是我們生活的方方面面都已經被機器學習覆蓋。比如,當我們開啟知乎、抖音、小紅書等軟體的時候,系統會自動推薦我們可能感興趣的內容;當我剛和朋友聊到想買一某品牌的裙子時,開啟淘寶就發現搜尋推薦已經變成了該品牌;郵件系統會幫我們自動遮蔽垃圾郵件;交通攝像頭拍攝司機的行駛照片來推斷是否有違規行為。這些都得益於機器學習。
那麼機器學習到底是什麼?機器學習的最早由貝氏在 1783 年發表的同名定理中提出。貝氏定理是從訓練資料中學習,以便對新的、未見過的資料做出盡可能好的預測。說白了就是我們俗話說的「舉一反三」。
它是讓電腦在沒有明確程式設計的情況下進行自我學習的一門學科 (Arthur, 1959),屬於人工智慧的子領域。有些事情我們通過明確的程式設計就可以完成,比如計算 188 的 12 次方,或者 a 到 b 的最短距離。但是有一些問題,明確的程式設計就無法幫到我們。
例如我們希望電腦能夠成為一個優秀的圍棋選手,可以給電腦程式設計,讓電腦自己與自己下棋,對弈一萬次以後,電腦就可以通過觀察,在一個殘局中,落子在某個位置的勝率大於其他位置,那就是程式會選擇的位置。因為電腦強大的算力,它可以在短時間內完成無數次的對弈局數,所以會越來越知道怎樣能取得勝利,最終成為超過人類的棋手。
讓機器自己去學習找到最佳方案,就是機器學習的過程,但是機器到底學到了什麼?這是一個黑盒,我們只能通過輸入獲得一個輸出結果。
機器學習演算法按照學習方式可以分為四種:監督學習(Supervised learning)、無監督學習(Unsupervised learning)、半監督學習(Semi-supervised Learning)和強化學習(Reinforcement learning)。
其中使用最多的是監督學習,但是 ChatGPT 卻選擇了強化學習作為核心演算法。
2. 強化學習 VS 監督學習
既然監督學習是主流演算法,為什麼 OpenAI 卻選擇了強化學習?這裡首先跟大家介紹一下兩者的概念。
監督學習是指學習輸入到輸出之間反射的演算法,它可通過使用者提供的例子來學習。例如,我們經常發現有些郵件被自動攔截進入垃圾箱,那麼系統是如何判斷一封郵件是否是垃圾郵件呢?這就用到了監督學習,首先工程師們需要給演算法投喂大量帶有標籤的資料,這個例子中一封郵件可作為輸入,對應的輸出結果有兩類,是垃圾郵件和不是垃圾郵件(Yes/No,即標籤)。
假設我們餵了 10 萬條資料,演算法就會根據這十萬條資料自己學習垃圾郵件的特徵。這時候當我們給它輸入一條全新的郵件時,它就會根據之前訓練的模型判斷新郵件是否符合垃圾郵件的特徵,從而決定需不需要進行攔截。
強化學習更像是一種獎勵回饋機制。在強化學習中,我們為模型提供輸入,但並不提供正確答案。模型需要自己生成答案。然後請真人讀取生成的答案,並給出答案的得分(比如 1-100 分得 80 分)。模型的目標是如何回答以獲得高分。另一種機制是模型生成多個答案,評分機制告訴模型哪個答案最好。模型的目標是學習生成高分的答案,而不是低分的答案。在這兩種情況下,模型都是通過生成答案並接收回饋來學習。
相比之下,監督學習只允許正回饋(我們向模型輸入一系列問題及其正確答案),而強化學習允許負回饋(模型可以生成錯誤的答案並得到回饋說「這個回答不好,下次不要這樣了」)。正如真人在學習過程中發現的,相比正回饋,負回饋也同樣重要。這很可能是 OpenAI 選擇 RLHF 訓練(即基於人類回饋的強化學習訓練)的原因。
仔細想想,這是不是和人類的學習方式非常像,我們學習的時候也是通過獲取大量的知識,然後考試來檢測學習的情況,最終將獲取的知識應用在新的場景(遷移學習,這也是 GPT 的底座之一)。因此,這一輪的 AIGC 也被認為已經無限接近接近 AGI(通用人工智慧)。
延伸閱讀:馬斯克預言:通用人工智慧 AGI 一定會出現!xAI 將取代微軟、OpenAI…
3. 通往 AGI 之路
簡單來說,AGI 就是是具備與人類同等智慧、或超越人類的人工智慧。是不是覺得 ChatGPT 已經有那味了。但是怎麼去判斷人工智慧的智慧程度呢?
1980 年,John Searle 提出了一個著名的思想實驗《中文房間》。實驗過程可以表述如下:
將一個對中文毫無瞭解,只會說英語的人關在一個只有一個小窗的封閉房間裡。房間裡有一本記錄著中英文翻譯的手冊。房間裡還有足夠的稿紙、鉛筆。同時,寫著中文的紙片通過小窗口被送入房間中。
房間中的人可以使用他的書來翻譯這些文字並用中文回覆。 雖然他完全不會中文,但通過這個過程,房間裡的人可以讓任何房間外的人以為他會說流利的中文。
這樣一個龐大的手冊顯然代表著非常低的智慧水平,因為一旦遇到手冊中沒有的詞彙,這個人就無法應對了。如果我們能夠從大量的資料中提取出一些語法和規則,那麼手冊可能會變得更加精簡,但是系統的智慧水平將會更高(泛化能力更強)。
手冊越厚,智慧越弱;手冊越薄,智慧越強。就好像公司僱一個人好像能力越強的人,你需要解釋得越少,能力越弱,你需要解釋得越多。
上面這個例子就很好的解釋了為什麼是壓縮即智慧:想要提高 AI 的智慧程度,可以通過泛化提取規則,提取出需要的有效資訊。這樣你就可以理解 NLP 研究者們經常說的一句話:GPT 的訓練過程是對資料的無失真壓縮。
4. 壓縮即智慧
2 月 28 日,OpenAI 的核心研發人員 Jack Rae 在參加 Stanford MLSys Seminar 的訪談時進行了一個名為 Compression for AGI 的主題分享,其核心觀點為:AGI 基礎模型的目標是實現對有效資訊最大限度的無失真壓縮。並同時給出了為什麼這個目標是合理的邏輯分析,以及 OpenAI 是如何在這個目標下創造了 ChatGPT。
泛化就是從已知推到未知的過程。如圖所示,我們關心的核心問題是如何從已有資料中(黃色),瞭解到未知資料的規律並做出預測(灰色)。一個模型越能夠準確預測灰色部分,它的泛化能力就越強。
想像一個電腦軟體需要把英文翻譯成中文,如果它是通過查詢字典把所有可能的片語翻譯成中文,那麼我們可以認為它對翻譯任務有著最差的理解,因為任何出現在字典之外的片語它都無法翻譯。但如果將字典提煉為較小的規則集(例如一些語法或基本的詞彙),那它將會有更好的理解能力,因此我們可以根據規則集的壓縮程度對其進行評分。實際上,如果我們可以把它壓縮到最小描述長度,那麼我們可以說它對翻譯任務有著最好的理解。
對於給定的資料集 D,我們可以使用生成模型 f 對其進行壓縮,圖中 | D | 表示資料集 D 的無失真壓縮,無失真壓縮的大小可以表示為對 D 評估的生成模型的負對數似然加上估計函式的最小描述長度。
那麼大模型是如何實現無失真壓縮的呢?我們需要先了解 GPT 的本質。GPT 其實就是基於 Transformer 的大字典,本質是就是 Next Token Prediction(下文推理)。簡單說就是預測一個給定的文字序列後最後可能出現的詞或片語。比如說我現在說:「你昨晚睡得」,話沒說完,這個時候你就知道我大概率要說:「你昨晚睡得好嗎?」推理出我要接著說「好嗎」的過程就是下文推理。
你可能會說很明顯這樣學到的不就是單詞之間的表層統計關係嗎?怎麼就產生了智慧?
假設你需要將一些資料從遙遠的半人馬座星系傳輸回地球,但是頻寬非常珍貴,你需要用最少的頻寬來傳輸資料,並且保證另一端可以無損地恢復你的資料。你可以採用這個方法:
首先,準備一個語言模型的訓練程式碼,每次執行時都會生成相同的神經網路模型。
其次,在 N 條資料上執行訓練程式,在 t 時刻,將在所有 token 概率分佈 Pt 下的,Xt 的概率取出,並使用算術編碼將其轉換為二進位制小數,記為 Zt。以此類推,得到一個由 Z1,Z2,Z3,…,Zn 構成的列表。
如果要在另一端無損地還原這 N 條資料,只需傳輸以下兩個內容:Z1-Zn 的列表和語言模型訓練程式碼。
在接收端進行解碼時,我們使用收到的訓練程式碼初始化網路。在時間戳 t 時刻,模型使用 Pt 對 Zt 進行算術解碼得到 Xt。需要注意的是,t 時刻的 token 概率分佈 Pt 在傳送端和接收端是完全一致的。
整個過程是一個無損的資料壓縮過程,基於語言模型的訓練程式碼,我們將 N 條資料壓縮成了 Z1-Zn 的一串數位,每個壓縮後的資料大小為 -logp (x)。需要注意的是,在整個過程中,我們不需要傳送整個神經網路(幾百上千億引數)。
因此,使用語言模型來壓縮資料集 D 的總位元數可以表示為以下公式:
一個基於 transformer 模型的描述長度大概在 100kb ~ 1MB 之間(所有必要的程式碼大小)。模型的引數不屬於模型的描述長度。
我們常常覺得 chatgpt 在關於事實性問題上錯誤百出,比如說問他劉慈欣是哪個城市的,模型還是會答錯。這是因為在訓練過程中,模型慢慢地記住了一些訓練資料,模型的引數可以近似看成是一個對於訓練資料的有損資料壓縮,這也是 Ted Chiang 在《ChatGPT 是網上所有文字模糊的圖片》的意思。
LLM 是對於原始資料集的無失真壓縮,這是非常具體的數學上可以嚴格證明的。Ted Chiang 說的有失真壓縮,是一種非常抽象的文學上的類比。
還記得這張圖嗎,我們關心的不是黃圈裡面的內容,而是外面灰色的部分,因為我們關心如何用更少的內容來獲取更多的知識,也就是泛化能力。相比於堆引數量,泛化才是智慧!
📍相關報導📍
OpenAI 收購「Minecraft開源版」,GPT-5 要在虛擬世界中進化了?