Yann LeCun 反復強調過一個觀點:當前LLM基于概率、逐 Token 預測的設計路線,很可能走不到人類水平的AI。他的團隊更看好另一條路,基于能量的模型(EBM)。
![]()
上圖來自他十多年前的一篇論文,LLM對候選答案返回"概率",EBM返回的則是"能量",能量最低的選項勝出。舉個例子:輸入 X = "汽車有4個輪子嗎?",LLM可能給出 p("是") = 0.9、p("否") = 0.1;EBM則可能給出 E("是", X) = -3.1、E("否", X) = 0.4。誰的能量低誰就是答案。
兩類模型的差異大嗎?對EBM的輸出做某種"歸一化"就應該得到LLM輸出的概率,但是差異恰恰就在歸一化這一步。LLM用 Softmax 保證概率之和為1,EBM則松開了這條約束。訓練時不需要歸一化、不需要計算概率,在高維連續空間中反而獲得了更多的靈活性和可訓練性。對連續數據(比如圖像)的全部可能輸出做歸一化本身就極其困難,能繞開就繞開。
構建EBM模型
給每個(可能的)數據點分配一個能量值,這個值是某個函數 E(x) 對輸入數據點返回的標量。數據點出現的概率與該標量成反比——能量低則概率高,反過來也成立。回憶高中物理里各種"能量"(勢能、動能等),勢能越低的系統通常越穩定,道理一樣。
假設已經拿到了 E(x),能否把它轉換成概率?有時候確實需要,因為兩個分別訓練的系統各自輸出的能量沒有共同的校準基準,不能直接比較與合并;做密度估計時也需要概率。
密度估計是整個概率AI的核心主題,假定存在一個隨機過程持續產生可觀測的數據點,密度估計的任務是根據已觀測的數據"猜"出該過程的概率密度函數(PDF)。一旦掌握了PDF數據的分布規律就清楚了:不僅能做預測,還能做生成。
理解數據生成過程的PDF,遠超常規AI中"給定 X 預測 Y"的范疇。后者只是在估計某個過程的結果,不嘗試理解或建模整個過程,生成完全是另一碼事。
尋找能量函數 E(x)
訓練EBM的核心目標:找到一個能量函數,能夠為給定的 X 識別出最佳的 Y。換言之,在一系列可能的 Y 值中,哪一個和當前 X 最兼容?
合理的做法是訓練一個深度神經網絡,接收數據點(X 和 Y 的組合)作為輸入,輸出一個標量。X 和 Y 兼容性低時輸出高值,兼容性好時輸出低值。為了符號簡潔,將能量函數的輸入統一記作 x,即 E(x),x 代表 X 和 Y 的組合。
訓練方式是常規套路:取大量數據樣本,學習能量函數 E(x) 的參數 θ,讓已觀測到的、合理的數據點能量低,不太可能出現的數據點能量高。損失函數需要同時做兩件事:(1) 壓低正確答案的能量;(2) 抬高錯誤答案的能量。
![]()
一般性理論到這里就夠了,但是接下來才進入更棘手的部分:尋找密度函數。
尋找概率密度函數(PDF)
目標是找到由 θ 參數化的概率密度函數 q(x):
![]()
能量函數 E(x) 的值域是 -∞ 到 +∞,取指數后輸出自動變為正值,概率必須為正。至于為什么不直接約束 E(x) 本身為正?因為放開限制能讓設計更自由,只要用 exp(E(x)) 保證輸出為正即可。接下來做歸一化:所有狀態的概率之和(或積分)應該等于1,分母中的 Z 干的就是這件事。這樣PDF就搞定了。
Z 大概是學概率模型的人最怕遇到的東西。名字有好幾個——配分函數、歸一化常數——出了名地難算。
指數前面那個負號呢?坦白講沒有功能性意義,純粹是慣例所以去掉也不影響。
能量函數和密度函數的概念到此為止。
來自物理學的一點啟發
上面的內容大量借鑒自物理學。把墨水滴入水中,它怎樣擴散?過程本身是隨機的,但宏觀上系統總是從高能量狀態向低能量狀態演化。如果一個隨機過程有10種可能的狀態,每種狀態各有其能量值,系統最終大概率停留在能量最低的那個狀態。能量是一種粗粒度度量,它把一個狀態內部所有微觀過程的貢獻濃縮成一個數。
遠在AI出現之前,Boltzmann就發明了一種概率分布來描述熱平衡中氣體的統計力學行為。Gibbs后來做了進一步改進,這個分布被稱為 Boltzmann分布(也叫Gibbs分布)。它給出系統處于某個狀態的概率,是該狀態能量和系統溫度的函數。
![]()
p_i 是系統處于狀態 i 的概率,ε_i 是該狀態的能量,常數 k*T 不重要。Boltzmann分布說的一件事很簡單:能量低的狀態被占據的概率更高。要得到精確的概率值,除以歸一化常數 Z 即可。而這個方程和EBM的密度估計 q(x) 幾乎一模一樣——物理學的直覺和EBM的數學走到了同一條路上。
訓練EBM
LeCun討論了多種損失函數。這類任務天然適合對比訓練方法:拿一對樣本喂給模型,訓練目標是讓其中一個的能量高于另一個。這種對比性質適合自監督訓練。要繞開 Z可以構造只關心能量相對差異、不需要計算絕對概率的訓練場景——比如取兩個能量的比值,讓 Z 在分子分母間自行消掉。
最終目標是學到一個能量景觀:高概率的數據點能量低,低概率的能量高,全程不碰 Z。可選的算法有 Score Matching 族以及其他幾類方法,但如果要建模密度函數 q(x) 呢?
這意味著要計算精確概率而非相對概率。分母里的 Z 注定讓事情變困難。精確計算需要遍歷所有可能的數據配置,計算量是"不可解的"。繞過精確 Z 的辦法是用 MCMC 等采樣過程產生大量樣本,對訓練所需的對數似然梯度做近似估計。對數似然展開后有兩個關鍵項:
![]()
第一項的梯度把已觀測數據點的能量往下壓讓它們更可能出現。第二項對數配分函數 Z 的梯度,則把其余所有位置的能量往上抬,防止模型給什么數據都打低能量。這一項實際上就是能量在模型當前分布上的平均梯度。
操作上可以這么理解:從模型中"生成"樣本,和已觀測的數據點混在一起訓練,目的是讓已觀測數據點獲得低能量、模型生成的樣本獲得高能量。用LeCun講課時的比喻來說,損失函數應該在能量景觀中"雕刻"出地形——訓練樣本附近挖坑(能量低),其他地方填高。模型要學會在觀測數據所在位置"挖洞",在其余位置"堆土"。詳細推導見附錄。
回頭再看LeCun論文中訓練EBM的原始圖示:
![]()
Y_i 是正確答案,Y_i 上方帶hash標記的則是"最具迷惑性的錯誤答案",所有錯誤答案中能量最低的那個。在連續情況下定義正誤很直觀:Y_i 一定距離內的答案算正確,超出該距離的算錯誤。設計良好的損失函數在學習過程中會壓低 E(Y_i, X_i),同時抬高錯誤答案的能量,尤其是 E(Yˉ_i, X_i)。
不過生成樣本非常慢,因為馬爾可夫鏈必須跑到平衡態才能采樣步數往往很大。為此 Hinton 提出了對比散度(CD)方法:只運行極短的馬爾可夫鏈,采樣速度大幅提升。設 p_0 為數據分布、p_∞ 為模型分布,梯度按以下公式計算:
![]()
右側第一項是數據分布與模型分布之間的"散度",即 p_0 和 p∞ 之差(至于它們為什么不直接叫 P_data 和 P_model,LeCun也沒解釋)。第二項是短程MCMC鏈——從 p_0 出發跑 n 步得到 p_n——與模型分布 p∞ 之間的散度。直覺解釋見附錄。
上面這個差分關注的是"模型經過 n 步后偏離數據的程度",由此產生的梯度引導模型讓訓練數據更可能出現,同時讓 n 步重建的結果更不可能出現。令人意外的是即使 n = 1,訓練出來的EBM質量也相當好。
配合一些工程技巧——比如訓練過程中維護并復用樣本緩沖區——速度還能進一步提升。
使用訓練好的EBM做推理
假設手上已有一個訓練好的EBM,推理過程是什么樣的?
和常規模型不同EBM的推理不是直接"給定 X 輸出 Y"。這里需要遍歷 Y 的所有可能取值,找出哪個 X 與 Y 的組合能量最低,那就是最終預測。本質上這是一個優化問題,模型預測的是輸入 X 和輸出 Y 之間的兼容程度。由此可以衍生出幾類任務:分類——"哪個 Y 與 X 最兼容?"取能量最低的組合,應用場景如機器人導航;排序——"Y1 和 Y2 哪個與 X 更兼容?"按能量排序即可,應用場景如數據挖掘;檢測——"這個 Y 與 X 兼容嗎?"看能量升降趨勢,如人臉檢測中圖像越不像人臉能量越高。
推理可以概括為:固定已觀測變量的值,搜索剩余變量的配置使能量最小化。這個過程代價可能很高,需要選擇合適的優化算法。參考LeCun的論文,按照 Y 的形式不同,推理策略也不同:
如果 Y 是連續變量且能量曲面 E(X,Y) 光滑,直接套用基于梯度的優化算法找最優 Y 就行。與訓練階段更新網絡權重不同,這里是對 Y 本身做優化——從某個初始 Y 出發,沿 E(X,Y) 對 Y 的梯度方向迭代,直到落入極小值。思路和訓練神經網絡并無本質區別。如果 Y 是一組離散變量,能量函數可以表達為因子圖——即若干依賴于不同變量子集的能量函數(因子)之和——那么可以用 min-sum 等算法。圖、團和EBM的關系后面會進一步討論。如果輸出 Y 的每個元素可以表示為加權有向無環圖(DAG)中的一條路徑,特定 Y 的能量就是沿路徑的邊和節點值之和;因為圖無環且能量是簡單求和,最優路徑可以用動態規劃(如Viterbi算法)高效求解,在生物序列分析(如基因查找)中很實用。還有一些情況下,能量函數依賴于一組隱變量 Z——比如訓練人臉檢測系統時尺度和姿態信息未知。很多時候精確優化不切實際,必須訴諸近似方法,包括替代能量函數。
EBM的優勢
EBM屬于指數族,在AI領域有大量成熟的技術和工具可供復用。做最大似然估計取對數似然時"對數"和"指數"相互抵消,讓數學處理變得簡潔得多。統計物理中配分函數、自由能、變分近似等概念同樣可以直接搬過來用。
在架構設計和訓練準則方面,EBM比概率方法有更大的回旋余地。關鍵優勢在于:概率方法不可解的場景下,EBM是可解的。概率模型必須做歸一化,往往需要在所有可能的變量配置空間上計算積分,而很多時候這個積分根本算不出來。EBM不要求歸一化,這個問題被天然繞過了。
EBM還有一個有意思的性質:總能量可以是多個能量函數之和——即專家乘積(Product of Experts)。圖模型其實是EBM的一個特例,能量函數分解為各個能量項的和。為每個團(clique)分別設計能量函數然后簡單相加就得到總能量,已有成熟的推理算法可以對這些項之和關于目標變量求最小值。聽起來有些抽象,值得展開解釋。
EBM作為因子圖
從專家乘積(PoE)說起。PoE模型將多個專家各自輸出的概率密度相乘得到總概率,每個"專家"對應一個未歸一化能量函數。什么是未歸一化能量函數?之前定義過歸一化版本的能量函數:
![]()
未歸一化能量函數就是分子部分,即 Exp(-E(x))。
假設整體能量函數復雜到無法直接處理——高維、變量眾多。如果能把這個復雜系統拆分成若干子系統,每個子系統只依賴一小部分變量,每個子系統就是一個"專家"。這些專家的乘積給出總概率。因為子系統規模小得多,可以更透徹地分析和設計各自的能量函數。
做乘積時,把各專家的指數函數相乘即可。根據 Exp(a) * Exp(b) = Exp(a+b),乘法變成了各能量的簡單加法,整體(未歸一化)能量就是各子能量之和。
![]()
和試圖為整個復雜系統找一個巨大的能量函數相比,把多個小而專的能量函數直接相加明顯更可行——一個專家負責某方面,另一個負責另一方面。EBM的能量函數就這樣被"因式分解"為各個函數(因子)之和,等價于因子圖表示的圖模型。
任何傳統圖模型都可以表示為因子圖,EBM在這類場景下有天然的適配性。為每個團分別定義能量函數,求和即得總能量。團就是變量的一個子集。循環置信傳播等高效算法可以用來計算最低能量配置。
![]()
從Hopfield網絡到Transformer注意力機制
能量模型并非新事物1982年 John Hopfield 就提出了一種循環人工神經網絡,功能類似"聯想記憶系統"。
就像一絲微弱的氣味能喚起完整的記憶一樣,Hopfield網絡接收不完整的數據,嘗試還原完整的原始模式。它的機制正是EBM:將"模式"存儲為能量景觀中穩定的局部最小值。面對損壞或缺失的輸入,網絡迭代更新神經元狀態,沿能量景觀不斷下降,直至落入最近的穩定"記憶",輸出完整的重建結果。具體過程如下:
- 將損壞或不完整的圖像輸入網絡。
- 網絡中的神經元彼此相連,迭代更新自身狀態,持續降低系統總能量。
- 網絡達到穩定的最低能量狀態時停止更新——得到對原始未損壞模式的最佳重建。
去噪只是一個方面。這類網絡也能用于求解優化問題(如旅行商問題),收斂到低能量狀態就對應著優化問題的解。
Hopfield網絡的能量函數由 Lyapunov函數 控制返回一個將神經元狀態映射到實數值的標量,Hopfield網絡是確定性的總會收斂到最近的局部能量最小值。另一種架構——玻爾茲曼機——則引入了隨機性(概率性),使網絡有能力跳出局部最小值去尋找全局最優。
玻爾茲曼機通常包含隱含單元,因而能建模更復雜的數據結構、學習內部表示。從物理意義上說,隱含節點在可見節點之間引入了有效的高階交互,產生了針對可見節點的新能量函數。當隱含節點與可見節點之間的交互設為零時,玻爾茲曼機退化為Hopfield網絡。
模擬和訓練玻爾茲曼機不容易。一種簡化方案是移除所有層內連接、只保留層間連接——所有可見節點都連到所有隱含節點,同層內無連接。由此得到的受限玻爾茲曼機參數更少、表達能力有所下降,但訓練更方便且泛化性能更好。訓練依然適用前面討論過的那些技術。
2024年諾貝爾物理學獎頒給了Geoffrey Hinton和John Hopfield。Hopfield網絡啟發了現代機器學習方法。AI領域沒有獨立的諾貝爾獎類別,不過Hinton和LeCun拿到了地位相當的圖靈獎——話題又回到了LeCun和他的團隊。
LeCun的世界模型
LeCun離開Meta后創立了AMI Labs。他的核心論點是:當前LLM一次生成一個 Token 的固有設計,決定了它無法達到人類水平的智能,EBM可能是另一條出路。
EBM能同時預測整個輸出序列的能量,而LLM每次只輸出單個 Token 的概率。給整個句子算一個能量,再和其他候選句子比較,這在LLM框架下做不到。推而廣之,規劃在中途就能評估進展時效果最好——如果只在最后才拿到反饋,那和猜沒什么區別。一個可以施加到中間狀態的評分,能告訴你當前是否正確、哪里需要修復。EBM正好提供了這種能力:能量可以在部分軌跡上計算,而非僅限于最終答案。
從認知科學角度看,EBM可以(大致)對應Daniel Kahneman《思考,快與慢》中那種緩慢而審慎的類型2思維:在推理時運行優化過程以最小化能量,模仿深思熟慮的過程。LLM則按順序逐 Token 生成、從不回頭檢查,本質上是"快"而直覺式的類型1思考。EBM可以在輸出之前對完整答案反復斟酌,正如人類在面對復雜問題時所做的那樣。LeCun的原話是:"真正的推理應該被表述為一個優化問題。"
Softmax 在這方面有結構性缺陷。它本質上是"贏者通吃"——兩個輸出值只要稍有差距,Softmax就會把這個差距放大為概率上的巨大懸殊。生成模型在理想狀態下應當能考慮多種可能的下一步,而不是每次都鎖定得分最高的那個選項。基于 Softmax 的模型天生具有單峰偏差:擅長表示分布中單一的寬峰,難以處理落在輸入空間不相鄰區域的數據。EBM不存在這個問題,它可以同時給多個不相交的數據區域賦予低能量(多峰分布中多個不同的峰)。Softmax還帶來過度自信的問題——膨脹大的輸出、壓制小的輸出,程度遠超合理范圍。雖然有各種變通方案,但這是一個結構層面的硬傷。
LLM還有一個根本局限:它困在文本的離散世界里,缺乏人類意義上的"世界模型",無法預判行動的后果。試圖構建一個預測未來每個細節的生成模型注定行不通。在世界建模的框架下,做法是在輸入空間中預測未來狀態,再通過EBM衡量這些預測狀態與當前上下文之間的"兼容性"。
人腦對世界的感知方式也不是直接的。大腦通過感官觀察世界,從中構建出外部世界的表征,這個過程發生在一個獨立的潛空間中。潛空間的結構與真實世界有關聯,但針對實用性而非精確性做了優化。世界模型也應當具備類似特性。
JEPA(聯合嵌入預測架構)是世界模型方向上的一次嘗試。它學習世界的抽象表征(團隊用視頻做了實驗),在抽象空間中做預測。I-JEPA 面向圖像,V-JEPA 面向視頻,都跳過了像素級重建,直接在潛空間中預測更高層次的特征。JEPA及類似模型在不同程度上借鑒了EBM的思想。嚴格說它們不是完整的EBM——推理時不做能量優化,仍然走常規前向傳播——但確實把能量或相關替代指標用作了模型架構的關鍵組件。Logical Intelligence 發布的Kona是一個更激進的例子。
Kona是面向關鍵系統的"基于能量"的AI模型,核心機制是物理驅動的優化而非逐 Token 預測。它能同時生成完整的推理軌跡,并直接對問題和約束做條件化。推理在連續潛空間中進行,輸出密集向量 Token 而非離散 Token,因而可以利用學到的能量對推理軌跡做受控的局部編輯,通過近似梯度信息改善連貫性和約束滿足度。在困難數獨上Kona的解題率達到96.2%,超出當時所有前沿LLM。
附錄
每當在概率AI方面有疑問,翻開Goodfellow等人的《深度學習》總能找到答案。這本書封底有三位在AI領域可能無人能及的學者的推薦語,不是沒有原因的。直接跳到第18章,標題恰如其分——"面對配分函數"。先從之前討論過的對數似然入手。
![]()
它來源于一個簡單的關系:
![]()
PDF p 等于未歸一化的 PDF(p 上方帶hash標記)除以歸一化常數 Z。θ 是要通過梯度下降求解的參數集。上式對數似然的梯度展開后變成:
![]()
到這里并沒有做什么復雜的操作。倒三角是梯度符號。幸運的是,這在機器學習中是常見的模式——學習的正階段(第一項)和負階段(第二項)。第一項從數據集中采樣就能輕松求出,真正麻煩的是第二項。注意 Z 本身只是 p(帶hash標記)的求和或積分,因而是 θ 的函數,求梯度就必須對它做計算。
第二項可以通過幾步簡單變換改寫為期望值的形式。
![]()
有了期望值的形式,就可以用采樣來近似:從模型 p(x) 中抽取若干 x 的樣本,做蒙特卡羅估計得到訓練所需的梯度。最終的對數似然梯度變為:
方程中兩項各有分工。第一項對應從數據集中均勻抽樣計算梯度;第二項對應從正在訓練的模型 p(x) 中用MCMC抽樣、取平均后計算梯度。這就是機器學習文獻中的正階段與負階段。正階段中,對從數據集抽取的 x 增大 log p?(x);負階段中,對從模型分布抽取的 x 減小 log p?(x),以此降低配分函數。全程只需要處理未歸一化的 p?,不涉及 Z 的精確計算,操作上完全可行。
能量函數去哪了?Goodfellow給出了連接:深度學習文獻中通常用能量函數來參數化 log p?。正階段于是對應壓低數據集中訓練樣本的能量,負階段對應抬高從模型中抽取的樣本的能量。
再看Goodfellow版本的能量升降圖示,和LeCun的版本略有不同:
![]()
綠色的點表示數據集的PDF。從數據集中均勻采樣時,取到的 x 更多地集中在綠色峰值附近。正階段是對數似然梯度的第一項,它讓模型的 PDF p(x) 在這些數據點周圍有更高的密度(對應的能量應被壓低,但這里暫不引入能量概念以保持簡潔),從而讓模型逐漸逼近數據分布。
但正階段有一個副作用:它盲目地在所有位置增加未歸一化概率——綠色峰值處加得多一些,其他地方也加了。只做這一步是不夠的。要加速收斂,必須同步降低其他位置的未歸一化概率。這正是負階段做的事情。(雖然叫"階段",兩者實際上同步發生。)
負階段從模型分布中采樣點,壓低它們的未歸一化概率。通過MCMC從 p(x) 中采到的點可能來自任何位置——好的數據點也好,壞的數據點也好,一律壓低。把好數據點的概率推回去是正階段的職責。
兩項協同工作。第二項抵消了正階段到處加常數的傾向,訓練過程中模型與數據集的分布逐漸趨同。當二者完全相等時,正階段在任何一點推高的力與負階段推低的力大小相等,梯度的期望降為零,訓練收斂。
負階段降低了從模型中采樣的點的概率,因此這些點通常被解讀為模型對世界的"錯誤信念"。一個引人遐想的推論:負階段被提議用于解釋人類的做夢——大腦維護著一個關于世界的概率模型,清醒時經歷真實事件并沿 log p? 的梯度更新模型,睡眠時經歷從當前模型中采樣出的事件并沿 log p? 的負梯度走,以最小化 log Z。
如何簡化MCMC采樣
MCMC的主要成本在于每步都要從隨機初始化開始"預熱"馬爾可夫鏈(詳見前面分享的MCMC鏈接)。自然的優化思路是從一個接近模型分布的分布出發來初始化鏈。用什么初始化?可以直接用數據集。
對比散度(CD)算法在每步用數據分布的樣本初始化馬爾可夫鏈。訓練初期,數據分布和模型分布差距較大,負階段精度不高;與此同時正階段默默發揮作用。等正階段把模型分布拉近了數據分布,負階段的精度也跟著上來。
CD算法的梯度計算方式前面已經展示過:
![]()
可以這樣理解:當輸入來自數據時,如果模型的馬爾可夫鏈對輸入做了劇烈改動,就予以懲罰。這個估計有偏差——MCMC中 n 步之后的項被忽略了——但偏差很小。研究表明,CD丟掉的恰恰是正確MCMC更新梯度中最小的那些項。
https://avoid.overfit.cn/post/45846459329949159b3817dade6a84e7
作者:Allohvk
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.