73年前,香農(nóng)已經(jīng)給大模型發(fā)展埋下一顆種子
當(dāng)今 AI 領(lǐng)域爆火的大語言模型(LLM),其原理是香農(nóng)提出來的?
今天,普林斯頓大學(xué)教授承現(xiàn)峻(Sebastian Seung)拋出了這樣一個(gè)觀點(diǎn):1951 年,在貝爾實(shí)驗(yàn)室(總部位于新澤西州 Murray Hill)工作的克勞德?香農(nóng)提出了預(yù)測(cè)下一個(gè)單詞的問題,這成為了當(dāng)前大語言模型(LLM)的種子。
如今很多看似新潮前沿的概念,其實(shí)距離提出已經(jīng)相隔了好幾十年,即使在計(jì)算機(jī)科學(xué)這樣的新興領(lǐng)域,例子也屢見不鮮。這個(gè)觀點(diǎn)以及提到的 Murray Hill 引起熱議,圖靈獎(jiǎng)得主、Meta 首席科學(xué)家 LeCun 表示,新澤西州的 Murray Hill、Florham Park 和普林斯頓都「誕生」了很多有影響力的工作。
LeCun 又列舉了很多知名的研究成果:
- Hopfield 網(wǎng)絡(luò)(美國(guó)科學(xué)家 Hopfield 同時(shí)在貝爾實(shí)驗(yàn)室和普林斯頓大學(xué)任職)。
- ConvNets
- Boosting/Adaboost
- 非負(fù)矩陣分解
- 支持向量機(jī)(SVM)和核機(jī)
- 結(jié)構(gòu)化預(yù)測(cè)
- 計(jì)算學(xué)習(xí)理論 / VC 理論中的大量?jī)?nèi)容
那么說在這其中,香農(nóng)給如今通向 AGI 的大模型起了個(gè)頭,是怎么一回事呢?
討論中提到的 IT 祖師爺克勞德?香農(nóng)的論文是《Prediction and Entropy of Printed English》。
論文鏈接:https://www.princeton.edu/~wbialek/rome/refs/shannon_51.pdf
該研究于 1951 年 1 月發(fā)表在期刊《The Bell System Technical Journal》上,至今已被各路學(xué)者引用過超過 4000 次。
這篇論文中,香農(nóng)主要探討了如何估算語言的熵(entropy)和冗余度(redundancy),并提出了一種新方法。
其中:
- 語言的熵是衡量每個(gè)字母平均產(chǎn)生的信息量的統(tǒng)計(jì)參數(shù)。如果語言被最有效地轉(zhuǎn)換成二進(jìn)制數(shù)字(0 或 1),熵表示每個(gè)字母平均需要的二進(jìn)制數(shù)字?jǐn)?shù)量。
- 冗余度則衡量由于語言的統(tǒng)計(jì)結(jié)構(gòu)(如字母頻率、特定字母的后續(xù)趨勢(shì)等)對(duì)文本施加的約束。
在定義了熵和冗余之后,就可以考慮把這些概念應(yīng)用一下了。香農(nóng)在他的論文中給出了兩種估計(jì)英語熵的方法。冗余,或?qū)τ⒄Z文本施加的約束數(shù)量,導(dǎo)致其整體熵的下降。例如,規(guī)則「i before e except after c」,以及 q 必須始終跟 u 的事實(shí)是使英語更加冗余的依賴關(guān)系。語法規(guī)則、詞性以及我們無法編造單詞的事實(shí)也使英語變得有冗余。
英語中的冗余有時(shí)實(shí)際上是有益的,因?yàn)榉駝t人們?nèi)绾伪鎰e在嘈雜的房間里說了什么?冗余允許人們?cè)谥挥胁糠中畔鱽頃r(shí)推斷出所說的內(nèi)容。例如,如果聽到「Turn phat mufic down!」,人們可以相當(dāng)好地猜測(cè)說話者的意思。
計(jì)算英語熵的一種可能方法是使用 N-gram。
給定自然語言 L 的足夠長(zhǎng)的字符序列 S,考察所有長(zhǎng)度為 N 的子字符串
定義 N-gram 熵(Entropy)FN 如下。
當(dāng)已知前 N - 1 個(gè)字母時(shí),我們可以統(tǒng)計(jì)計(jì)算出下一個(gè)字母的熵。隨著 N 的增加,熵接近 H,此即英語的熵。以下是香農(nóng)論文中計(jì)算出的值。FN 是當(dāng)已知前 N - 1 個(gè)字母時(shí)與第 N 個(gè)字母相關(guān)的熵。計(jì)算 FN 統(tǒng)計(jì)數(shù)據(jù)的難度是 O (26^N),因?yàn)橛心敲炊?N 個(gè)字母的序列。請(qǐng)注意,F(xiàn)0 只是字母集的最大熵,其中每個(gè)字母都有相等的概率。
27 個(gè)字母的序列,空格也算作一個(gè)字母。幾乎總是可以從沒有空格的單詞序列中填充空格。因此空格基本上被視為是多余的,如果考慮空格,會(huì)導(dǎo)致計(jì)算出的熵值較低。只有在沒有考慮統(tǒng)計(jì)數(shù)據(jù)的情況下,即 F0,添加空格后熵才會(huì)更高。這只是增加了另一個(gè)可能的符號(hào),就意味著更多的不確定性。
香農(nóng)建議的另一種策略是計(jì)算與英語中每個(gè)單詞相關(guān)的熵,然后取加權(quán)平均值。香農(nóng)使用近似函數(shù)來估計(jì)超過 8000 個(gè)單詞的熵。他得到的每個(gè)單詞的熵值為 11.82 bit,由于平均每個(gè)單詞有 4.5 個(gè)字母,因此每個(gè)字母的熵為 2.62 bit。這在上表中以 Fword 給出。
我們已經(jīng)討論了如何從熵計(jì)算冗余度。當(dāng)所有符號(hào)具有相同的可能性時(shí),冗余度最大,等于 - (log2 (1/26)) = 4.7 bit / 字母。因此,使用公式 1 - H/Hmax,我們可以估算英語的冗余度。香農(nóng)最初估計(jì)這個(gè)值為 50%,這意味著英語中大約一半的字母是多余的!
在同一篇文章的后面討論了一種相當(dāng)巧妙的計(jì)算英語熵的方法。它結(jié)合了英語的更多特征,例如統(tǒng)計(jì)方法無法明確解釋的思路和上下文。
接下來就是如今我們?cè)?NLP 中經(jīng)常會(huì)提起的概念了:假設(shè)人類可以根據(jù)他們對(duì)該語言的先前了解來猜測(cè)單詞或短語中的字母。香農(nóng)的巧妙想法是利用這種自然的冗余度衡量標(biāo)準(zhǔn)…… 人類的思維。
他要求受試者逐個(gè)猜測(cè)短語中的字母。如果受試者猜對(duì)了,那么他 / 她就繼續(xù)猜測(cè)下一個(gè)字母。如果不是,則告訴受試者下一個(gè)字母。在一個(gè)短語的 129 個(gè)字母中,69% 被猜對(duì)了。這意味著英語的冗余度大約為 69%。假設(shè)我們只重現(xiàn)那些猜錯(cuò)的字母,即 31%。那么我們可以通過復(fù)制從頭開始猜測(cè)的受試者來恢復(fù)原始句子。受試者顯然可以正確猜出 69% 的符號(hào),并且他 / 她擁有其余的 31%,因此他 / 她可以僅使用大約 31% 的信息重現(xiàn)原始文本。
實(shí)際上,受試者需要的信息略多于 31%。他 / 她需要知道他 / 她會(huì)猜錯(cuò)的字母在哪里,因此實(shí)際上冗余度可能會(huì)少一點(diǎn)。從理論上講,這是一個(gè)很好的例子,但實(shí)際上并非如此。句子和受試者的抽樣誤差會(huì)導(dǎo)致結(jié)果嚴(yán)重失真。盡管如此,這個(gè)例子有助于說明冗余的一個(gè)實(shí)際例子,并闡明了如何編碼英語。無需創(chuàng)建英語的統(tǒng)計(jì)語法來計(jì)算其熵,人類天生就具有語法。
統(tǒng)計(jì)計(jì)算英語的冗余有許多實(shí)際應(yīng)用。ASCII 每個(gè)字符保留 8 個(gè)二進(jìn)制數(shù)字。然而,考慮到一些計(jì)算將英語的熵定為大約 1 位 / 字母,這是非常低效的。這意味著理論上存在一種壓縮方案,其壓縮效果是 ASCII 的 8 倍?,F(xiàn)代計(jì)算機(jī)顯然擁有足夠大的內(nèi)存,因此這種低效率并不重要,但 Huffman 壓縮和 Lempel-Ziv 壓縮算法在存儲(chǔ)文本時(shí)可以節(jié)省大量空間。
通常,當(dāng)人們說英語是冗余的時(shí),他們指的是大量同義詞使我們的詞典變得雜亂。信息論意義上的冗余是衡量字母 / 符號(hào)在語言中使用效率的指標(biāo)。英語是一種冗余語言,這不一定是壞事。我們的語言既可以口語也可以書寫,除了效率之外,還帶來了許多問題。我們希望在嘈雜的房間里也能被人聽懂,我們希望單詞的發(fā)音與含義相對(duì)應(yīng),我們希望能夠輕松地發(fā)音。信息率只是英語分析的一小部分。
一個(gè)非常有趣的例子可以說明一種語言在統(tǒng)計(jì)上能有多好地描述,即英語的 n 階近似,這是香農(nóng)最著名的論文《A mathematical theory of communication》里所提到的。如果一只猴子知道英語中字母的 n-gram 頻率(其中 n 很大),它能寫出可信的英語文本嗎?此外,這只猴子「懂」英語嗎?如果 N-gram 猴子在一扇門后面,而人類在另一扇門后面,第三方觀察者能分辨出哪個(gè)是猴子嗎?這個(gè)問題讓人想起了人工智能的圖靈測(cè)試,它沒有簡(jiǎn)單的答案。
但如今的大模型原理,正是通過學(xué)習(xí)大量的文本數(shù)據(jù),來預(yù)測(cè)下一個(gè)詞或下一段話的可能性,從而使計(jì)算機(jī)能夠更好地「理解」和生成人類語言。
AI 理解了嗎?不好說。但是能猜對(duì)嗎?看看如今的 ChatGPT,人們心中都已經(jīng)有了答案。
這也不禁令人感嘆,香農(nóng)真的領(lǐng)先于他的時(shí)代。