這是一個標題黨,希望我得逞了讓你點進來。
原因並不是我想胡說八道或當白嘴兒評論員。而是我想蹭…分享一個讓我內心時常充滿激動,對纏繞在腦子裡的諸多問題作出了迄今為止最好的解釋的Hinton教授的訪談。如果你和我一樣執著於“我們是怎麼透過語言理解事物的”,你一定會被吸引。
我是很認真的動腦瓜子,對原訪談“加料”——對教授提到的知識點做了考古(連結文獻,對歷史事件做背景補充),白話一些我認為非常重要的概念和問題。但這只是基於我小腦袋認知的階段性的文章,仍需持續理解和挖掘“字面意思”背後的東西。神奇的是,同樣的訪談,一模一樣的內容,每一次聽,都會聽出些新東西。
他解釋了
語言與認知之間關係的三種觀點(3 views of language and how it relates to cognition),為什麼語言對認知形成至關重要。
推理是直覺(intuition)和推理驗證(reasoning)的推拉過程,訓練模型的直覺可以讓他們獲得更多的訓練資料,而不是單純的模仿人。
理解是一個壓縮權重的過程,數字系統的壓縮與大腦的壓縮有何異同?這讓我不禁想到自己的教授在講 大資料(他腦子裡的“大資料”)的時候,他造的句子,解壓到我的腦子裡什麼時候不再是%#¥$^*=&。如果能把你的知識,打包解壓成我的大腦硬體可以接受的模樣,這期間在發生什麼?
重要的不只是訓練資料,而是學習。你可能有50%的訓練資料是錯誤的,但是你能透過訓練學習、識別錯誤,然後做的比訓練資料更好。這就是為什麼學生會青出於藍。
原訪談本身已俱備自我解釋的能力,娓娓道來的鄰家教授(儘管不是來自星星的咳咳)。能把抽象難懂的東西講到讓我等凡人聽懂併為之產生理解渴望的人,就是 太厲害了。也許是因為他解釋的起點並不是傳授知識的任務,而是源於本身的興趣和對事物的純粹好奇心:“我就是要理解大腦是怎麼運作的”“我要把這件事情解釋到和我自己的直覺一樣”。我相信每一個人都對“大腦”有同樣的好奇(而不是微積分;)。知識本身有沒有趣,重要的也是講述的人。
Again,我還是在探索一個可理解的視角,對我而言AI是一個深情的發明:它不應該是誰該理解誰不用,拿來創新或使壞的特權,或充滿公式的技術大門,而是本身是一個有趣的東西,與每個人都相關的事物。也許是我們通向認識自己的一根稻草。
訪談錄:Geoffrey Hinton | On working with Ilya, choosing problems, and the power of intuition
來源:https://www.youtube.com/watch?v=n4IQOBka8bc
片段:
校訂加料:Jessie
是什麼讓LLM能夠學習這麼多領域?
尋找共同結構(common structure)
LLM所做的是尋找共同結構,透過找到共同結構,他們可以使用更有效的共同結構編碼事物。讓我舉個例子,為什麼堆肥堆“像”原子彈,能量尺度和時間尺度非常不同,但相同的是,當堆肥堆變得更熱時,它會更快地產生熱量,同樣,原子彈釋放更多的中子,從而更快地產生中子,因此它得到了鏈式反應的概念。LLM可以從明顯不同的事物中看到類比。
它理解了這兩種形式的連鎖反應,並利用這種理解將資訊壓縮到其權重中。如果它在做這樣的事,那麼它可能已經對數百種我們還沒有看到類比的事物進行了這樣的處理。
2011年我與 IIya Sutskever 和James Martins一起發表了一篇字元級預測論文《Generating Text with Recurrent Neural Networks》[1],我們使用維基百科,試圖使用GPU上名為Hessian-Free的花哨最佳化器來預測下一個超文字標記語言字元。它起作用了,看起來具有理解的跡象。

用迴圈神經網路生成文字(2011)
如何訓練LLM來預測下一個單詞?為什麼這是“錯誤”的思考方式?
首先,我不認為這是錯誤的方式。我做了第一個使用嵌入和反向傳播的神經語言模型,資料只是三元組*,將每個符號轉換為嵌入,然後讓這些嵌入相互作用以預測下一個符號的嵌入,再從中預測下一個符號。然後透過整個過程進行反向傳播來學習這些三元組,這顯示了它可以 生成文字 。

學習概念的分散式表徵(1986)
*反向傳播(Back-propagation)是神經網路學習的關鍵演算法,用於調整網路權重以最小化預測誤差。三元組(Triples)指的是上下文-目標對,即使用兩個或更多前面的詞(上下文)來預測下一個詞(目標)。
舉個例子,很久以前,我做了一個有趣的神經網路實驗,具體是訓練一個網路來識別手寫數字——這是我非常喜歡的一個例子,通常被稱為MNIST。你訓練你的神經網路來識別手寫的數字,在這個實驗中,我故意引入了一個錯誤:將一半(50%)的訓練資料錯誤標記。重點是:對於特定的資料樣本,錯誤的標籤始終是相同的。例如,如果一個影像顯示數字"5",但被錯誤標記為"8",那麼每次這個特定的"5"出現時,它都會被標記為"8"。因為如果同一個樣本有時被正確標記,有時被錯誤標記,網路可能會透過某種形式的"投票"或"平均"來得出正確答案。但在這個實驗中,這種可能性被排除了。

所以訓練資料集的錯誤率是50%,但如果你用反向傳播訓練網路後,它可以將錯誤率降到5%或更低。因此,對於標註不良的資料,大型神經網路可以提取有價值的見解,它能看出訓練資料是錯誤的(這就是為什麼聰明的學生可能比他們的導師做得更好的原因)。
1986年的小語言模型
心理學關於“詞”的啟發


受到心理學對於“詞的意義”的解釋啟發:一個詞的意義是一大組語義特徵,具有相似含義的詞具有相似的語義結構。我們如何將兩種意義理論統一到一個擁有超過1000個權重的小型模型中。這個想法是,我們將為每個詞學習一組語義特徵,並學習這些特徵如何相互作用以預測下一個詞。但是,關於事物如何組合在一起的所有知識都將體現在這些特徵的相互作用中,沒有顯式的關係圖。如果你想要關係,你需要從你的特徵中生成它。
一個推理家譜關係的學習任務
給定家譜的三元組,訓練神經網路學習譜系關係。


神經網路看起來是這樣的,符號代表人,符號代表關係,符號透過一些連線變成特徵向量,這些特徵將被網路學習。因此,人 1 的特徵和關係的特徵,然後這些特徵相互作用,並預測輸出人的特徵,從中您可以預測輸出人,從而找到最接近的匹配。該模型的有趣之處在於,如果它遵循正確的規律,就會合理的學習。當時是6 個特徵神經元,現在這些向量有幾百上千的特徵神經元。
這個family tree家譜的例子同樣首次出現在1986年的論文 學習概念的分散式表徵(1986)Learning distributed representations of concepts 中。有趣之處在於時過近30年,這個直覺不斷在被完善,儘管表述和用詞有所變化。
-
An extra unit that is activated during unit interaction is said to encode a **micro-inference ** (e.g. "old"as a feature – has husband – wife old)
-
Micro-inferences store propositions by encoding the underlying regularities of a domain.
-
6 units – feature neurons

學習概念的分散式表徵(1986)
當時 Hinton 提出的問題是:神經網路可以透過反向傳播學習到符號者們定義好的規則嗎?
從1985年的小型神經網路 到今天的大模型LLM,儘管輸入的量級、神經元層數、特徵互動的複雜程度都提升了很多。但不變的是,這兩者共享相同的總體框架,即 將符號串(symbols)轉換為詞語片段的特徵(features)以及這些特徵向量之間的互動(interactions between feature vectors) 。
"Turning the symbol strings into features of the word fragments, and the interactions between the feature vectors."
學習“特徵”的過程就是理解
他們學到的這些(數十億)特徵就是理解。他們正在將模型與資料擬合,這不是統計學家認為的那種模型,而是一種非常大的"奇怪"模型,具有大量引數。但它試圖透過特徵和特徵之間的互動來理解這些離散符號串。不要著急,我們會在後面介紹“符號”、“特徵”等具體是什麼,現在簡單理解為“詞”和詞語之間的關係。
有一件事要記住,如果你思考這個問題:“我們人是如何理解的?”這就是我們理解的最佳模型。最初這些小語言模型是作為模擬“人類如何理解”而設計的。
2003 Bengio
然後是Yoshua Bengio – 他使用了類似的神經網路,並證明它可以用於真實文字。在那之後的10年裡,語言學家們逐漸看到嵌入(embedding)的價值。

一種神經機率語言模型(2003)
訓練模型的推理直覺,以此來獲得更多的訓練資料
你想想看,人是如何運作的。
我們有某種直覺(intuition),我們有推理能力(reasoning),我們用推理來糾正我們的直覺,當然我們在推理過程中也會攪和直覺來進行推理,但是當推理的結論與我們的直覺衝突時,我們意識到直覺需要改變。這很像AlphaGO和AlphaZero中的情況,你有一個評估函式,你只需看一下棋盤就能說出這對我有利,然後你進行蒙特卡洛模擬,現在你得到了一個更準確的想法來修正你的評估函式,所以你可以透過讓它與推理結果一致來訓練它。我認為LLM也必須開始這樣做:即 透過推理開始訓練他們對下一步應該做什麼的原始直覺(raw intuition),並意識到這是不對的,這是他們獲得更多訓練資料的方法,而不僅僅是模仿人們做什麼。
這就是alphaGO為啥會出現創造性的“第37步棋”(除了RL的作用之外,儘管 Hinton 認為並不必要)他有更多的訓練資料,因為它使用推理來檢查下一步應該是什麼。
3種不同的語言觀點及其與認知的關係
我曾經認為我們可以在不需要語言的情況下進行大量的認知,但現在我改變了想法。我來介紹三種不同的語言觀點以及它們與認知的關係。
老式符號觀點
首先,老式符號觀點。認知由在某種經過清理的邏輯語言中的符號串組成,這種語言中沒有歧義,並應用推理規則,認知只是對這些類似語言符號的東西進行符號操作。
向量與隱藏狀態
第二種觀點:一旦進入大腦內部,一切都是向量。符號輸入後被轉換成大型向量,如果你想要輸出,你再次產生符號。在2014年的機器翻譯*中有一個轉折點:基於向量的方法在處理複雜語言任務上被證明有效。人們使用迴圈神經網路(RNN),單詞不斷輸入並在隱藏狀態中累積資訊。所以到達句子末尾時,會有一個大的隱藏向量,捕捉了該句子的含義,然後用它來在神經語言中輸出句子,這被稱為思想向量(thought vector)。你將語言轉換成大型向量(與語言完全不同),這就是認知的全部內容。
*2014 年,隨著 RNN 的出現,機器翻譯(WHAT)取得了重大突破,特別是序列到序列(seq2seq)模型。具體在序列到序列模型中,一個輸入和一個隱藏狀態(hidden state)結合起來生成下一個隱藏狀態,然後它和下一個輸入結合生成下一個隱藏狀態,依此類推,直到生成最後一個隱藏狀態。然後把最後一個隱藏狀態作為解碼器處理輸出的上下文。而注意力機制(attention mechnism)的創新是把編碼過程中所有的隱藏狀態都帶到解碼器,解碼器給每個隱藏狀態打一個分數,表示我們在解碼過程中關注的是輸入句子的哪個部分。比如,在把一句話從英語翻譯成法語“歐洲經濟區協議於1992年8月簽署”時,注意力模型會特意把“歐洲經濟區”的順序顛倒成“zone économique européenne”。

現在我們要翻譯:"The agreement on the European Economic Area was signed in August 1992." 到法語。每個單詞輸入進來,RNN 會更新其隱藏狀態。這個隱藏狀態是一個向量,用於捕獲到目前為止的句子的上下文和含義。
初始狀態:隱藏狀態以預設值開始。
“The”:隱藏狀態開始編碼基本句子結構。
“agreement”:狀態現在包括有關正式安排的資訊。
“on”:為協議主題做準備。
“the European Economic Area”:隱藏狀態現在編碼特定主題。
“wassigned”:新增有關所採取行動的資訊。
“in August 1992”:包含時間資訊。
(想象一個嘟嘟囔囔的學習者去聽一句話,這句話的播出速度是0.25倍,每出一個詞,他都要說“我覺得這句話的意思是…”。直到最後一個詞出現,說出自己聽到了什麼)
處理完整個句子後,最終的隱藏狀態向量包含整個句子含義的壓縮表徵。這是什麼意思?為了簡單起見,我們假設最終的隱藏狀態是一個由 4 個數字組成的向量(實際上,它會大得多[….🥠.])。處理完整個英文句子後,它可能看起來像這樣:[0.8, -0.3, 0.6, 0.1] 。這個向量並不直接對應於單詞,而是對應於網路學習過的表示含義的抽象特徵。
在我們的例子中,這些數字編碼了句子的各個方面:
-
0.8 可能表示存在某種正式協議
-
0.3 可能表示它是關於經濟主題的
-
0.6 可能表示過去發生的事件
-
0.1 可能表示歐洲背景
同樣,RNN 不會直接“讀取”這個向量來生成對應的法語單詞。相反, 它將其用作生成翻譯的起點 。下面是一個簡化的翻譯過程:
a)神經網路拿到最終的隱藏狀態:[0.8, -0.3, 0.6, 0.1]
b)它使用這個隱藏狀態來預測第一個單詞“L'accord”:[0.8, -0.3, 0.6, 0.1] -> RNN -> “L'accord”
c)輸出“L'accord”後,它更新隱藏狀態,可能為:[0.75, -0.2, 0.55, 0.15]
d)它使用這個新狀態來預測下一個單詞“sur”:[0.75, -0.2, 0.55, 0.15] -> RNN -> “sur”
e)這個過程繼續,隱藏狀態在每個單詞之後更新。
嵌入
第三種觀點是嵌入(Embedding)。你接收這些符號,將它們轉換成嵌入,並經過多層處理*,從而得到非常豐富的嵌入,但這些嵌入仍然與表層的符號關聯著。你為這個符號得到一個大向量,為那個符號得到一個大向量,這些向量相互作用來產生下一個詞的符號。 這就是理解的本質,即 知道如何將符號轉換為這些向量,以及知道這些向量應該如何相互作用來預測下一個符號的向量。 這就是在那些大型語言模型和我們的大腦中理解的本質。這是一個介於兩者之間的例子:你仍然保留著 符號 ,但你用這些大向量來解釋它們,所有的工作和所有的知識都在於你使用什麼向量以及這些向量的元素如何相互作用,而不是在符號規則中。但它並不是說你完全摒棄了這些符號,而是 你將符號轉換成大向量,並保持符號的表面結構 。這也是人類思維的一個合理模型。
*在Transformer模型(如BERT或GPT)中,初始詞嵌入透過多個自注意力層和前饋層進行處理。每一層都進一步細化表示,整合更多的上下文資訊。
總結一下,這裡我們提到了符號、向量和嵌入三者的關係。符號是語言的離散表徵,向量是符號的數學編碼,嵌入是捕捉符號之間語義關係的特殊向量,其中符號被對映到連續(高維)向量空間,相似的符號會彼此接近。

AI 生成概念圖
好一個不說人話是吧,在你掀桌子之前,讓我們引入貓貓魚魚狗狗來理(ping)解(jing)一下。例如,考慮“貓”這個字(在模型眼裡它是個“符號”,先暫時忘掉你認識的可愛生物)
向量:假設一個2D空間:“貓”可以表示為指向[0.8,0.3]的向量,“狗”可能在[0.7,0.4],“魚”可能在[0.2,0.7],“車”可能在這個2D平面上是[0.9,0.1],“貓”和“狗”可能彼此靠近,因為它們都是動物。“魚”更遠,因為它是一種不同型別的動物。“車”遠離所有動物,表明它在概念上是不同的。
嵌入:讓我們擴充套件到3D以獲得更豐富的嵌入空間:第一個維度可以代表“動物性”。第二個維度捕捉“大小”。第三個維度可以反映“家養與野生”。單詞“貓”現在可能在(0.8,0.5,0.9),表明它是小型家養動物。單詞“狗”可能在(0.75,0.6,0.85),非常接近“貓”,但略大。“魚”可能在(0.2,0.4,0.1),反映出它不是家養動物,不是哺乳動物,生活在水中。但仍然是動物!“汽車”可能在(0.9,0.1,0.0),遠離前面所有動物,突出它是一臺機器。
好現在你可能有點感覺了,現在我們試想一個更豐富的嵌入空間,除了“動物性”“大小”“家養與野生”還有許許多多的特徵 (生活環境、行為特徵、飲食習慣、在人類文化中的象徵意義meme…)。大語言模型(神經網路)就是沉浸在可能有成百上千特徵的嵌入空間,在這裡對你傳送過來的“貓”的符號(😺貓系男友訓練教程)進行理解,然後生成輸出。(這些詞語對他來說是無差別的“符號”)
計算的下一步是什麼?
模擬計算(analog compute)
我在谷歌工作的最後幾年裡,我一直在思考如何進行模擬計算。我們可以不用一兆瓦的功率,而是像大腦一樣只用30瓦,我們就可以在模擬硬體上執行這些大型語言模型。雖然我最終沒能實現這個想法,但我開始真正欣賞數字計算。如果你要使用那種低功耗的模擬計算,每一塊硬體都會有些許不同。其核心思想是,學習過程將利用那個硬體的特殊屬性。這正是人類身上發生的情況,我們每個人的大腦都是不同的,所以我們無法把你大腦中的權重放到我的大腦中。
單個神經元的硬體不同
硬體是不同的,單個神經元的精確特性也是不同的。學習過程已經學會利用所有這些特性。因此,從某種意義上說,我們是 凡人 ,因為我大腦中的權重(weights)對另一個大腦沒啥用。當我死後,這些權重(weights)就毫無用處了。
我們可以彼此傳遞資訊,儘管效率不高。說話的人吐出句子,聽者接收資訊想辦法改變權重,以便能理解對方說的是啥,這就是所謂的蒸餾(distillation) *。但這是一種非常低效的知識交流方式。
*蒸餾(distillation) 出自 Hinton 的論文 在神經網路中提煉知識。這是機器學習中的一個概念,指的是將一個複雜模型(教師模型)的知識轉移到一個較簡單的模型(學生模型)中。在人類交流的語境下,它暗示了一個人試圖理解並內化另一個人表達的概念的過程。Tom Yeh 有一個很棒的圖示。

在神經網路中提煉知識(2015)

數字系統有“不死之身”。一旦你有了權重,你可以將它們存入計算機,然後在另一臺計算機上輸入相同的權重,這兩個數字系統就能計算出相同的結果。因此,數字系統可以 共享權重 。如果你有一群數字系統,每個系統從相同的權重開始,進行一些學習,然後再次共享權重,它們就會知道彼此學到了什麼。這是我們(人類)無法做到的事情。人類需要透過語言、文字等間接方式來傳遞知識,而不能直接"複製"大腦中的神經連線,以這種方式共享知識。
交叉神經科學,我們開發的系統還缺點什麼?
變化的時間尺度:臨時權重的變化
神經科學領域中我們需要趕上的一個重要方面是變化的時間尺度(time scale)。在幾乎所有的神經網路中,活動有快速的時間變化,所以人們進來時活動和嵌入向量會改變,然後有一個緩慢的時間尺度改變權重,這就是長期學習。在大腦中,權重變化有多個時間尺度,例如,如果我說一個意想不到的詞"黃瓜",然後五分鐘後你戴上耳機,有很多噪音和非常微弱的詞,你會更容易識別"黃瓜"這個詞,因為我五分鐘前說過它。那麼這種知識在大腦中在哪裡?這種知識顯然是突觸的臨時變化。這不是神經元在不斷重複"黃瓜黃瓜黃瓜",你沒有足夠的神經元來做這個。它存在於權重的臨時變化中。

使用快速權重來模糊舊記憶(1987)
你可以用臨時權重變化做很多事情 – 我稱之為"快速權重 (fast weights)"。我們在這些神經模型中沒有這樣做,原因是如果你有依賴於輸入資料的臨時權重變化,那麼你就不能同時處理一堆不同的情況。目前,我們取一堆不同的字串,把它們堆疊在一起並並行處理,因為這樣你就可以做矩陣乘法,這更有效率。正是這種效率阻止了我們使用"快速權重"(但大腦顯然使用它進行臨時記憶)。像Graphcore*這樣的技術,如果它們變成順序的並且只做線上學習(online learning),那麼它們就可以使用快速權重。我認為當人們使用電導作為權重時,我最終會弄明白這一點。
*Graphcore是一家英國的人工智慧晶片公司,設計用於機器學習和人工智慧應用的處理器 Intelligence Processing Unit (IPU)



Graphcore IPU 圖示
瞭解模型的工作原理和大腦的工作原理如何影響你的思維方式?
一個重大影響是,多年來, 人們輕視 透過給大型隨機神經網路提供大量訓練資料,就能學習複雜的事物 的想法。語言學家或統計學家認為,沒有辦法學習那種複雜的東西,那是一種天生的知識,而且如果沒有架構和限制,它無法很好地學習。
實際上,你可以拿一個大型隨機神經網路,僅僅透過訓練資料就能學習到一堆東西。隨機梯度下降(Stochastic gradient descent) 的思想是透過反覆調整權重,使用梯度來學習東西,它能學習到大而複雜的事物,這一點已經被這些大模型所驗證。這對於理解大腦非常重要,它表明大腦不需要擁有所有這些先天結構(innate structure),顯然它確實有許多先天結構,但對於那些容易學的東西,它並不需要先天結構。
*隨機梯度下降——LLM正在驗證使用梯度重複調整權重來做複雜事情的能力。
Hinton的問題是,反向傳播是不是在做梯度學習?
(未完待續)
持續更新的roam版本:檢視「閱讀原文」