世界太吵,來原聲聽播客

Andrej Karpathy

壓縮就是智能:預測與壓縮是同一枚硬幣的兩面

信息論說預測和壓縮在數學上等價,所以語言模型的預訓練目標可以重新理解為造一臺最高效的文本壓縮器,而不只是預測下一個 token。

信息論壓縮語言模型Shannon預訓練
這集是三部曲的第一部,只講壓縮極限的數學基礎,沒有工程細節和產品判斷,信息密度中等。適合想補信息論直覺的人,不適合想聽行業判斷的人。

核心論點 · 點時間戳可跳到原聲

0:00

預訓練目標其實是壓縮

Karpathy 指出,大語言模型預訓練通常被描述為「next token prediction」,用的是 cross-entropy loss,而 cross-entropy 這個詞本身就來自信息論。信息論的一個結論是:預測和壓縮在數學上等價,是同一枚硬幣的兩面。所以你可以把預訓練目標完全重新表述為——不是預測下一個 token,而是造出最高效的文本壓縮器。這個重新表述的價值在於,它讓你更清楚 cross-entropy 到底是什麼、為什麼用它。

— Andrej Karpathy
3:05

機器人例子:概率決定碼長

用一個遠在月球上的機器人做熱身:指令只有上、下、左、右四種,但分布不均勻——一半是上,四分之一是下,八分之一是左,八分之一是右,且每條指令獨立。樸素學生給每個指令固定兩位,平均 2 bits;聰明學生用變長編碼:0 表示上,10 表示下,110 表示左,111 表示右,加權平均 1.75 bits。關鍵約束是沒有任何碼字可以是另一個碼字的前綴,這叫 prefix-free code,機器人才能無歧義解碼。

— Andrej Karpathy
10:13

完美壓縮的輸出像隨機噪聲

第三個「不切實際」的學生提出:隨機噪聲不可壓縮,所以完美壓縮算法產出的比特流應該和隨機噪聲無法區分。如果壓縮後的 n 位比特流真的像隨機噪聲,那麼所有 2 的 n 次方條消息必須等概率,每條概率為 1/2^n。反過來推,一條消息在完美方案裡用 n 位,就意味著它的概率是 2 的負 n 次方。取 log 再取負,就得到 n = -log₂(p)。這個負 log 表達式就是信息論的基本公式,也是 Shannon 對「一個事件的信息量」的定義。

— Andrej Karpathy
17:19

信息量是壓縮的下界

完美壓縮不總是可能,因為真實消息的概率通常不是 2 的整數次冪。更一般的說法是:一條消息的信息量給出了它能被壓縮到多短的下界,至少在對所有可能消息取平均時成立。你完全可能把一個壓縮算法過擬合到某一個具體案例上。機器人例子裡概率太乾淨,全是 2 的冪,所以每個符號的信息量正好是整數比特;但自然語言裡每個字母的概率高度依賴上下文,而且都不是 2 的冪,算出來的信息量全是小數。

— Andrej Karpathy
21:27

Shannon 讓妻子猜下一個字母

Shannon 早期用 n-gram 統計,但長字符串在語料里根本不出現,統計就崩了。於是他換了個模型:他的妻子 Betty。Shannon 拿一本書,讓 Betty 逐個猜下一個字母,猜錯就寫下正確字母,猜對就畫一個破折號。這樣轉錄出來的文本字母更少,但信息量相同——因為如果他能複製一個 Betty,只需要給她這份縮減文本就能還原原文。1950 年的論文裡,他改成記錄猜對需要幾次,並據此反推人腦給真實字母分配的隱含概率。他分析語言時不是在純做數據分析,而是在探測一個底層語言模型,也就是被訪者的大腦。

— Andrej Karpathy
24:29

熵就是每個符號的平均信息量

熵問的是一個信號裡每個符號的平均信息量。因為完美壓縮下碼字長度等於信息量,所以熵本質上是在問壓縮極限,給出一個信號能被壓縮到多高效的下界。對任意概率分布,熵就是所有 p 乘以負 log₂(p) 再求和。可視化上,把概率分布畫成堆疊的水平條,寬度是概率,上面每個條上放一個高度等於負 log₂(p) 的矩形,熵就是所有矩形面積之和。分布越均勻熵越高,越傾斜熵越低,符號種類越多熵也越高。

— Andrej Karpathy
28:35

無噪聲編碼定理:極限可達

熵更精確的理解是:它描述了按這個分布編碼一條消息時,每個符號所需的最小比特數。這就是 Shannon 1948 年那篇開創信息論的論文裡的核心定理——noiseless coding theorem。它說沒有任何編碼能比這個極限更高效,而且更強的是,Shannon 證明了你總是可以任意接近這個極限。這個表達式只適用於每個符號服從同一分布的情況;自然語言不滿足,需要更一般的 entropy rate,也就是對所有可能消息取平均,但這幾乎從來不是一個能幹淨計算的東西。

— Andrej Karpathy
29:36

英語每個字符約一比特

Shannon 估計英語的熵大約是每個字符一比特,前提是受訪者有至少 100 個前置字母的上下文。這個數字很瘋狂,因為它意味著英語可以被壓縮到每個字符只需要一個是/否的答案。Karpathy 說在第三部裡會展示那個算法:如果允許用高質量語言模型做編碼和解碼,實踐中可以相當接近這個極限。他還預告第二部會講 cross-entropy 以及它在訓練大語言模型裡的用法,還有大模型蒸餾成小模型、以及 GZIP 為什麼能恢復不同語言之間的結構。

— Andrej Karpathy

原話 · 已逐字校驗

one of the conclusions of information theory says that prediction and compression are mathematically equivalent. They turn out to be two sides of the same coin.

信息論的一個結論是:預測和壓縮在數學上等價。它們是同一枚硬幣的兩面。

Andrej Karpathy0:00

we can't really answer this question, or at least Shannon couldn't, without necessarily engaging with some notion of intelligence.

我們其實無法回答這個問題,至少 Shannon 不能,除非必然要涉及某種智能的概念。

Andrej Karpathy3:05

random noise should be incompressible, and therefore, a perfect compression algorithm should produce a bitstream that's indistinguishable from random noise.

隨機噪聲應該是不可壓縮的,因此一個完美的壓縮算法應該產生一個與隨機噪聲無法區分的比特流。

Andrej Karpathy10:13

the information of a message gives you a lower bound on how much it can be compressed, at least when you average overall possible messages.

一條消息的信息量給出了它能被壓縮到多短的下界,至少在你對所有可能消息取平均時是這樣。

Andrej Karpathy17:19

he wasn't just doing pure data analysis looking through books. He was trying to probe at an underlying model of language, namely the interviewee's brain.

他並不是在純做數據分析、翻書。他是在試圖探測一個底層的語言模型,也就是被訪者的大腦。

Andrej Karpathy21:27

This question of measuring the average information per symbol is basically asking about the limit of compression.

測量每個符號平均信息量這個問題,本質上就是在問壓縮的極限。

Andrej Karpathy24:29

no encoding can ever be more efficient than this limit, and even more strongly, he showed that it's always possible to get arbitrarily close to this limit.

沒有任何編碼能比這個極限更高效,而且更強的是,他證明了你總是可以任意接近這個極限。

Andrej Karpathy28:35

數字與實體

英語熵估計約 1 bit/字符(受訪者有至少 100 個前置字母上下文時)29:36
機器人例子中聰明學生的平均碼長1.75 bits/指令5:10
機器人例子中樸素學生的平均碼長2 bits/指令4:07

術語

prefix-free code前綴碼
沒有任何碼字是另一個碼字前綴的編碼方式,保證解碼無歧義。
noiseless coding theorem無噪聲編碼定理
Shannon 1948 年證明:熵是壓縮極限,且可任意接近。
entropy rate熵率
隨機過程中每個符號的平均信息量,適用於符號分布不固定的情況。
cross-entropy loss交叉熵損失
語言模型預訓練用的損失函數,名字來源於信息論。

收聽指南

誰該聽

想補信息論直覺的工程師和研究者,尤其是天天用 cross-entropy loss 但沒想清楚它為什麼長這樣的人。

可跳過

最後約一分鐘的虛擬招聘會廣告可以跳過。