henry 發自 凹非寺量子位 | 公眾號 QbitAI
別爭了!
世界上第一個明牌自己是大語言模型的人,可能是香農的老婆。
1950年前后的某一天晚上,咱們的信息論鼻祖香農跟老婆貝蒂在客廳做了一個小實驗。
實驗里,香農扮演著一個拿著書本考試的教官,Betty則扮演一個做做詞語接龍的學生,根據香農的提示,猜下一個字母。
![]()
具體的,香農會從書中某一段開始,一個字母一個字母往后走。
每到一個位置,他先不報答案,而是先問貝蒂,下一個字母是什么?
就這樣,貝蒂猜,香農記。
猜錯了,香農寫下正確字母。猜對了,他畫一個短橫。
![]()
這樣一來,就像上面圖里展示的那樣,一段完整的英文被拆成了兩部分:
貝蒂已經能預測的地方,用短橫帶過;貝蒂預測不了的地方,才需要把原字母寫下來。
乍一看,這畫面有點像什么高知伉儷玩的飯后游戲。
但在3Blue1Brown最新的視頻里,這個實驗被放回了一條更大的線索里——
它可能是人類歷史上最早的一場真人版next-token prediction
![]()
更進一步,借由香農的例子,3Blue1Brown主理人Grant Sanderson還探討了一個從信息論一路通向大語言模型的問題:
為什么預測下一個token這件看起來再簡單不過的事,會和壓縮、熵,甚至智能扯上關系?
而答案,可能就藏在貝蒂畫掉的那些短橫里。
LLM只是一場猜字母實驗?
盡管Grant的視頻已經講得足夠清楚,但為了更平滑一些,咱還是先回到香農和貝蒂那個實驗。
表面上看,香農和貝蒂玩的點像雙人語音版填字游戲,一個給前文,一個猜下一個字母。
比如,在英文里t后面很可能跟著h,所以當香農給出線索t的時候,貝蒂很可能會回答h。
換成中文,其實也差不多。比如,當你看到一個「你」,后面很可能接好,來組成「你好」。
![]()
但香農真正關心在意的,可能并不是貝蒂猜得準不準,而是猜對之后,會發生什么。
就像我們開頭提到的,實驗最后得到的那個轉錄版本,真實字母比原文少得多。
貝蒂猜對的地方,只剩一個短橫。貝蒂猜錯的地方,才保留原來的字母。
看上去,字是變少了,但在某種意義上,它包含的信息量沒有變
![]()
原因也很簡單。
如果香農能復制出另一個一模一樣的貝蒂,再讓她看這份縮短版文本,她理論上仍然可以把原文復原出來。
而這,就是「可預測性允許壓縮」最直觀的版本。
這很好理解,就像你跟哥們聊天一樣。
一開始表達同意,你們會說「好的」,到后面變成「OK」,再后來只剩一個「k」,到最后甚至只是一個唐人表情包就足以心領神會。
表達越來越精簡,并不是因為信息消失了,而是因為雙方已經知道上下文,所以沒必要把完整形式再打一遍。
不過相信聰明的大伙已經發現了,香農這個實驗有點問題:
- 人不是機器。貝蒂這次猜對的字母,下次未必還會猜對。一個人兩次面對同一段前文,也未必會給出完全一樣的答案。
所以,雖然這個實驗能說明語言可以被預測,所以語言可以被壓縮,但它還不能精確測量語言到底有多少信息。
于是乎,香農后來把這個實驗做得更系統。
![]()
在后續發表的論文Prediction and Entropy of Printed English中,香農找來更多受試者,不再只記錄猜對還是猜錯,而是記錄一個人需要猜多少次,才能猜中正確的下一個字母。
![]()
猜一次就中,說明這個字母在當前上下文里很容易預測,如果猜很多次才中,就說明它更意外。
換句話說,香農其實在用一套方法,把猜了幾次轉換成受試者心里對正確字母的隱含概率。
這一步很關鍵。
因為同一個位置,不同人會給出不同猜法。有人第一次就猜中,有人猜到第五次才猜中。差別不在字母本身,而在每個人腦子里那套對英文的判斷。
所以,香農測的不是書本上的靜態詞頻,他測的是人如何根據自己的上下文來分配概率。
看到th,下一個字母可能是e,也可能是a。到底先猜哪個,猜到第幾次才輪到正確答案,背后都是這個人對英文的理解在排序。
![]()
到這,相信你也看出來了。
香農這是把人當成語言模型整了,而他的妻子Betty,可能就是第一個明牌自己在做next-token prediction的人。
![]()
只不過那個模型不是Transformer,是人腦。
這些人腦知道語法、常識、上下文、語感,也知道一段英文接下來大概率會怎么走。
而香農干的,就是不斷地追問:下一個字母是什么?
預測和壓縮,大模型的一體兩面
到這里,貝蒂的任務其實就已經完成了:
她用自己的模型(大腦),劃掉了一段文本里可以被預測的部分
后面香農找來更多受試者,本質上也都是在做同一件事:
能夠預測的部分劃掉,只留下那些預測不了、必須寫出來的字母。
于是,原本的長文本,就這樣被壓縮成了一份更短的新文本
所以,順理成章的,我們會想:
假如一個人,讀過一本書,就能靠自己的語言經驗,預測書里一部分字母,從而把它壓縮得更短;
那么,有沒有一個模型,能吃下整個互聯網,然后預測各種上下文里的空白呢?
或者換一個更AI的說法:模型能不能把語言里的規律,壓進自己的參數里?
答案是肯定的,但先別急著往大模型上靠。
在這之前,Grant視頻里還有一個更底層、也更值得探討的問題:
怎么判斷一種壓縮方式,到底好不好?
![]()
最簡單的標準當然是:越短越好。
如果一段信息里還有規律可找,還有冗余可刪,那它就還能被繼續壓縮。
反過來說,如果一段信息已經被壓縮到極限,所有能預測、能概括、能利用的規律都被榨干了,最后剩下的是什么?
沒錯,就是信息
在香農那里,信息有個經典的定義:
- 一件事到底有多出乎意料。
如果一句話的下一個字母幾乎已經板上釘釘,那它就沒攜帶多少新信息。
但如果下一個字母完全猜不到,它就真的需要被寫出來。
這也是為什么Grant會說,一個理想的壓縮算法,壓到最后,輸出應該看起來像隨機噪聲。
因為,噪聲沒有模式。
每一位都像獨立拋硬幣,50%是0,50%是1,彼此之間沒有任何可利用的關系。
![]()
沒有模式,就沒有規律可學;沒有規律可學,就沒有冗余可刪;沒有冗余可刪,也就沒有繼續壓縮的空間。
所以,隨機噪聲不是因為「亂」才重要。它重要,是因為它代表了一種極限狀態:
所有可預測的東西都已經被拿走了,剩下的每一位都必須被傳輸。
到這里,預測和壓縮這兩件事也就真正扣上了。
預測,是在問:哪些部分可以不用寫?
壓縮,是在做:把不用寫的部分刪掉。
而信息,就是最后那些無論如何都必須寫下來的東西。
信息量
如果你看到這里,香農那個著名公式也就不再像一個憑空冒出來的數學定義了。
假設一條消息出現的概率是p,那么它的信息量就是-log?(p)。
根據這條曲線,發生概率越小,信息量越大;發生概率越大,信息量越小。
![]()
用剛才那套話說就是:越容易被預測出來的東西,信息量越小。越難以預測的東西,信息量越大。
而從壓縮的角度看,這個公式問的其實是:
- 為了把這條消息從所有可能性里區分出來,理論上至少需要多少 bit?
這就是香農最厲害的地方。他把「預測不了的部分」,變成了可以計算的東西。
但問題在于,現實生活中,我們很少只面對一條消息。更多時候,我們面對的是一整套可能性。
視頻里,Grant舉了機器人上下左右的例子。機器人收到的指令,不只是動和不動,而是上、下、左、右四種可能。
![]()
如果四個方向出現得一樣頻繁,那它們也就一樣難猜。
這時最自然的編碼方式,就是給每個方向分配同樣長的bit。
比如:上是00,下是01,左是10,右是11。每條指令固定2bit,簡單直接。
![]()
但如果上出現得最多,下次之,左和右更少,那最高效的編碼方式就變了。
這時,我們就沒必要讓每個方向都占同樣長的編碼。
常見的方向,可以用更短的碼字表示。少見的方向,則可以用更長的碼字表示。
只要保證每個碼字不會互相混淆,也就是不會讀著讀著不知道該在哪里斷開,就能讓整體平均長度變短。
視頻里就是通過這種變長編碼,把平均每條指令需要的bit數,從固定編碼的2 bit,降到了1.75bit。
![]()
這就是壓縮里非常核心的一條直覺:
概率越高的消息,應該用越短的編碼;概率越低的消息,才值得用更長的編碼。
那么推廣開來,我們接下來要問的就不再是某一條消息有多少信息量。
而是在這一整套分布里,每來一個新符號,平均還有多少東西必須寫下來?
![]()
這種在某個分布下,每來一個新符號,平均還剩多少必須寫下來的東西,也被稱作熵。
熵越低,說明系統越容易預測,越好壓縮。熵越高,說明系統越隨機,越難壓縮。
如果四個方向完全一樣常見,機器人下一步往哪走就很難猜,熵會更高。
同理,語言也是一樣。只不過語言的可能性更多,上下文更長,麻煩也更大。
從熵到loss:大模型到底在壓縮什么?
與機器人上下左右不同,大語言模型需要成千上萬個token備選中選擇最可能的下一個。
同時,它也不是孤立選擇,而是嚴重依賴上下文。
所以,語言的熵本質上問的是:在給定前文之后,下一個token平均還有多少不確定性?
![]()
從壓縮的角度來看,就是用這個模型來壓縮真實文本,平均還要花多少bit,才能把下一個token寫出來?
這也就是為什么,大模型訓練里常見的交叉熵損失,天然會和壓縮連在一起。
模型給真實token的概率越高,說明它越不意外。越不意外,信息量就越低。信息量越低,編碼它就越省。
所以,交叉熵越低,模型就越像一個更好的壓縮器。
與此同時,模型越能預測下一個token,就越說明它已經捕捉到了語言里的可重復結構。
語法、搭配、格式、事實、代碼習慣、對話模式、推理套路,甚至一部分世界常識,都藏在這件事里面。
當然,Grant表示,這并不意味著:壓縮可以粗暴地等同于智能。
ZIP很會壓文件,但沒有人會說ZIP在思考。
更謹慎的說法是:智能至少包含一種能力——
抓住世界里可預測的結構。
這也是“壓縮即智能”最值得琢磨的地方。
它不是說,只要能壓縮,就擁有智能。
而是說,如果一個系統真的能把復雜世界里的規律壓進一個更短的表示里,并且能在新上下文里繼續用它預測,那它至少已經碰到了智能的一部分。
這時再回頭看開頭那張畫面,就不只是香農和貝蒂在家玩猜字母了。
貝蒂猜對的地方,香農畫一個短橫。七十多年后,大語言模型猜對的地方,loss降低一點。
短橫變成了loss,書頁變成了互聯網。
坐在桌邊猜字母的人,變成了GPT。
它們都在回答同一個問題:
下一個符號,能帶來多少驚訝!
[1]https://www.youtube.com/watch?v=l6DKRf-fAAM&t=745s
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.