作者:Nando de Freitas 機器之心編譯
別人都在用 X 發帖子,分享新鮮事物,微軟副總裁 Nando de Freitas 卻有自己的想法:他要在 X 上「開課」,發布一些關于人工智能教育的帖子。該系列會從 LLM 的強化學習開始,然后逐步講解擴散、流匹配,以及看看這些技術接下來會如何發展。
話說回來,Freitas 有這個想法時還是 4 月 24 日,到今天為止,他已經更新了多篇帖子,每篇都干貨滿滿。
由于涉及的內容需要費點腦細胞來思考,在更新了幾篇后,Freitas 抱怨道:「隨著數學知識的增多,自己 X 上的讀者人數正在下降。」
或許,太硬核的東西,瀏覽量確實不會太高。
不過,遺憾歸遺憾,這些帖子對于那些想學習 RL、從事大模型的人非常有幫助。
Freitas 也表示,他會不斷更新內容,感興趣的讀者可以隨時關注。
接下來,我們看看最近幾篇帖子內容。
無監督學習、監督學習、強化學習終極定論尚未形成
監督學習對應于最基礎的模仿形式:簡單的行為復制。它通過最大似然估計,將世界狀態(如文本問題)映射到行動(如文本答案)。我們將這種映射關系稱為策略。監督學習需要高質量的專家數據,學生只是機械地模仿教師行為,因此需要教師本身必須足夠優秀。教師僅示范操作方式,并不進行評分反饋。
另外,目前存在一些非常強大的監督學習方法,它們在通用性極強的專家指導下進行下一步預測(關聯學習)和重構學習。這正是大語言模型預訓練的核心原理,也是擴散模型、流匹配和自編碼器在多模態感知與生成中運作的基礎。從本質上看,預測下一個 bit 的過程實則是一種自由能(熵)最小化的過程,簡而言之:在趨于無序的世界中創造有序。這正是細胞和生命運作的基本原理 —— 埃爾溫?薛定諤和保羅?納斯各自撰寫的同名著作《生命是什么》對此有深入闡述。既然生命遵循這樣的規律,那么智能系統采用類似機制運作也就不足為奇了。
另一方面,強化學習 (RL) 則側重于選擇性模仿(selective imitation),這對于優化特定任務的性能非常有效。RL 可以從智能體或其他智能體先前生成的大量次優經驗數據中進行訓練。RL 可以利用價值函數或其他工具(通過獎勵學習)來識別和選擇有用的信號。這種選擇過程使模型能夠利用大量廉價的次優數據進行學習,并最終超越最優秀的老師。
也就是說,在 RL 中,智能體可以識別哪些數據對學習有用,哪些數據應該忽略。
就像我們不會模仿父母的每一個行為,而是選擇模仿部分,以及哪些部分應該忽略。
RL 的核心在于自我提高。智能體會生成數據,因此,他們可以從自身數據(成功和錯誤)以及來自其他智能體的混合數據中學習。
當我們使用獎勵信號構建選擇機制(例如,對數據進行排序并只挑選最佳的那一半)時,智能體就可以開始從自身數據中學習并自我提升,這種方式非常強大。
此外,智能體會利用其獲得的知識來決定在環境中采取哪些行動,從而獲得介入性因果知識。
在《An Invitation to Imitation 》一書中,CMU 教授 Drew Bagnell 探討了一種名為 Dagger 的強化學習替代方案,其中智能體采取行動,老師來糾正學生。
對于智能體來說,從自身行動和自身經驗中學習至關重要,這樣它才能學會保持魯棒性。
例如,如果智能體使用專業駕駛員提供的數據學習駕駛,有一天發現自己偏離了道路(這種情況即使是完美的老師也從未發生過),那么學生將不知所措。為了讓學生學會回到道路上,它需要老師在那時提供建議。
一項重要的研究啟示在于:生成模型對強化學習的作用與任何強化學習算法創新一樣重要。這或許存在爭議,但我認為過去十年間強化學習的進步,本質上是生成模型發展的結果。從算法演進來看(下文將詳細展開),當前 AI 界普遍采用的基礎算法思想 —— 如期望最大化算法(EM 算法)和策略梯度 —— 實際上已存在超過 50 年。真正的變革力量來自強化學習基礎設施的規模擴張。
希望讀者能通過本文認識到:關于無監督學習、監督學習與強化學習的終極定論尚未形成。雖然我質疑這種分類法的有效性,但在未來的教學實踐中仍將沿用該框架以輔助知識傳遞。
分布式強化學習系統
智能體是一種能夠感知環境、自主采取行動從而實現目標,并可能通過強化學習或教學來提升自身性能的實體。
智能體可以是一個多模態神經網絡,它通過與環境的交互,為用戶提供個性化目標。智能體觀測得越多,就越容易為用戶定制個性化的學習方案。
基于工業級大語言模型(LLM)的強化學習(RL),可能涉及數百萬次并行交互,使用數十億參數的模型,甚至需要調動整個數據中心 —— 成本極其高昂!
如何構建能在如此龐大尺度下高效運行的強化學習系統,絕非易事。
根據文章《IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner Architectures》、《acme: A library of reinforcement learning》,現代分布式強化學習系統可以分為兩個部分:Actors 和 Learners。
每個 actor 通過使用稱為策略的網絡生成動作來與環境交互。actor 還從環境中收集獎勵和觀測結果。收集到的數據被添加到一個公共記憶中。
Learner 從記憶中采樣數據并使用它來更新策略網絡。更新網絡后,需要將權重檢查點發送給每個 actor。在設計此類系統時,測量每個操作的持續時間、每個通信鏈路的帶寬等非常重要。這需要精確的工程設計以及全面的測量和消融。
在語言中,actors 是聊天機器人,環境是人。每次聊天的數據隨后被發送到重放內存進行學習。通常,learner 可能比 actors 需要更多的存儲空間和計算資源,因為 learner 需要跟蹤梯度和大規模統計數據。
此外,了解 actors 的推理成本、通信成本和學習成本也至關重要。
另一方面,若數據采集速度不足,learner 可能需要重復利用歷史經驗來更新策略 —— 這正是 off-policy 場景的核心特征。此時必須解決一個關鍵問題:陳舊數據導致的偏差修正。在前面推文中的駕駛示例表明,過度依賴 off-policy 數據可能引發嚴重后果!
值得慶幸的是,研究者已提出多種解決方案:
重要性加權(Importance Weights):對歷史數據賦予不同權重以修正分布偏差;
近端策略優化(PPO):通過剪裁機制控制策略更新幅度;
DeepSeek-R1 論文提出的加權方案:動態調整新舊數據貢獻度。
當系統僅依賴大型歷史經驗庫進行策略學習時,便進入離線強化學習(Off-line RL)或批量強化學習(Batch RL)范式。相較于監督學習,其優勢在于繼承了前文討論的生成 - 選擇機制;但相比在線強化學習,又因缺失環境實時交互而存在局限。
不過,離線強化學習在以下關鍵場景中具有不可替代價值:
高成本交互(如機器人物理訓練);
高風險環境(如自動駕駛事故數據學習)。
用于后訓練 LLM 的 RL
目前看來,RL 有多種形式。
其中一種是單步(one-step )RL 問題(上圖左上角)。在這里,給定一個提示,模型會生成一個動作并得到一個評估。
這個動作可以是文本答案、CoT 推理序列、語音或任何其他行為信號,即任何 Token 序列。
評估通常是一個單一的結果獎勵,例如答案是否正確。
與單步對應的是多步(multi-step)RL 問題,這種情況大多存在于與聊天機器人對話中,用戶是環境,聊天機器人是智能體。
在用戶不提供任何輸入的情況下,智能體會思考下一步做什么,這是一個單步強化學習問題。這在我們的圖中(左上角)清晰可見,因為這三個動作可以輕松地合并為一個動作,而不會破壞決策圖的結構。
然而,規劃整個對話以最終實現目標,在此期間用戶和聊天智能體都會變化,這是一個多步強化學習問題(我們的圖中,左下角)。
在這種設置下,智能體可以使用工具(例如 Web 瀏覽器、編譯器等)來建模聊天機器人,從而收集信息。
當強化學習涉及多步時,可能每一步都會對結果有影響。就像當一個人獲得獎勵時,他并不知道是眾多決策中的哪一個導致了獎勵。這種現象人們稱之為信用分配問題。
由于多步問題,強化學習通常是組合型的,而且維度非常高。在這些情況下,我們必須解決跨維度推理問題。
簡而言之,強化學習真的很難,解的方差可能非常大。雖然研究人員發明了一系列概念來控制方差,但代價是引入了偏差,其中包括價值函數。這些概念在多步決策問題中很有用,但對于單步強化學習來說并非總是必需的。雖然其中一些想法在電腦游戲中很有效,但在 LLM 中卻行不通。
在控制領域,普遍存在這些問題,如 T 步決策、二次獎勵函數。這些被稱為線性二次高斯控制器或調節器,構成了最普遍的控制類型之一 ——模型預測控制 (MPC)的基礎。
然而,盲目地將為電腦游戲或控制開發的強化學習方法的理論和軟件引入語言模型領域是危險的。
為了實現工具使用和多步輔助,我們需要為 LLM 提供多步強化學習。然而,要實現像 DeepSeek-R1 或測試時強化學習 TTRL 這樣的方法,需要先解決單步強化學習問題,因為這個問題稍微簡單一些。
所有 RL 智能體都能夠自我學習和自我改進。如果設計得當,它們可以構建質量不斷提升的數據集,從而生成更好的策略。RL 智能體的這一特性對于性能和安全性都至關重要。
可能存在一些更難的強化學習案例。比如有時決策范圍是未知的或無限的,時間步長可能是連續的,也可能是中斷驅動的,動作和觀測可以是離散的、也可以是連續的,這些都增加了推理的復雜性。
出于教學原因,明天我們將首先介紹最簡單的案例:單步強化學習。
單步強化學習與策略梯度
包括 DeepSeek-R1 在內的許多團隊,當他們聲稱在進行 RL 時,會最大化單步目標函數,如下所示:
這些數學符號代表了以下概念:
也就是說,我們正在針對所有的數據字符串 (a,o) 對 LLM 進行微調。在處理文本時,通常使用積分符號來表示非常龐大的離散求和。
因此,如果我們有一個包含 N 對觀測值和動作 (o, a) 的數據集,那么在實際操作中,我們會按如下方式評估目標函數:
環境(用戶)也會為我們提供觀測值(提示或指令 o)。所以不需要知道分布 P (o)。由于不知道最優動作(大語言模型生成的內容,也就是動作 a),將對這些動作進行積分。這是在概率中處理未知量的標準方法。我們對所有可能的值按照出現的概率進行加權求和。在這種情況下,動作的概率就是大語言模型所生成的結果。大語言模型是一個概率模型。
這種在對大語言模型的權重進行最大化的同時對其輸出進行求和的方法,被稱為最大期望效用,這也是博弈論中理性主體所采取的做法。通過最大化期望效用(獎勵的另一種說法),人們可以收斂到納什均衡。在統計學中,人們把這個過程稱為邊緣化,而當它還涉及到對某個量進行最大化時,它就被稱為實驗設計。
總之,在單步強化學習中,我們通過調整大語言模型的策略來最大化期望回報 R,也就是說,對于目前大多數的大語言模型而言(見上一篇文章),在單次結果中進行獎勵 R=r (a,o)。
策略梯度:就是人們所說的 on policy RL 或 Reinforce 算法。這種方法被稱為 on-policy,是因為生成樣本(動作)的策略(大語言模型)與正在被學習的策略是同一個。
當生成樣本的成本低于學習成本時,這種方法是有意義的。也就是說,當 learner 可以按需輕松獲取新樣本時適用。
但對于成本高昂的游戲模擬引擎而言并非如此,在這類場景中,必須引入緩沖區和回放記憶來緩存數據。隨著數據變得陳舊,就需要使用 off-policy 方法。
那如何計算單步損失的梯度,答案是只需沿著梯度方向更新參數即可。
從理論上講,策略梯度可以使用微積分按如下方式得到它:
策略梯度常用技巧
前文重點介紹了策略梯度算法,不過大家還會使用一些技巧來提高性能。
現在,我們從一個常用的技巧開始,即從獎勵中減去獎勵的均值。得到的表達式被稱為優勢(advantage)。這項技術本身被稱為基線減法(baseline subtraction)。
在策略梯度中,如果我們從獎勵 r 中減去其均值,然后用下面的獎勵來替代原來的獎勵:
這樣做并沒有改變最大值的位置,但降低了方差。
此外,當獎勵是二元的,而我們又需要一個更連續、漸進的反饋信號時,這種方法格外有用。
下面是證明過程:
KL 散度
KL 散度是一種用于衡量兩個分布之間「距離」的方法,從數學角度來說,KL 散度定義如下:
如果在強化學習的損失函數中加入 KL 散度項,本質上是在鼓勵后訓練(post-training)過程中學習到的 LLM 策略保持接近監督微調(SFT)階段的策略。
如果我們根據最新的策略 p(a|o) 采樣 N 個動作,我們可以再次使用蒙特卡羅方法來近似計算 KL 散度:
此外,John Schulman 有一篇很棒的關于如何高效近似 KL 散度的博客。他提出了以下替代方法:
采樣、PPO 以及 GRPO 的重要性
在強化學習系統中,有時會有多個 actors 來收集數據并將數據添加到記憶系統中。然后,learner 從這個記憶中提取樣本進行學習。
在這種異步設置中,有些樣本會變得過時。生成樣本的機制(actors)與更新參數的機制(learner)不同,因此這種方法被稱為off-policy。
重要性采樣(Importance Sampling, IS)提供了一種校正 off-policy 樣本偏差的解決方案,其核心操作如下:
我們通過在單步目標函數的被積項中乘以并除以舊策略 π_old (a|o) 實現修正。系統將基于該舊策略采取動作,但實際學習的卻是新策略 —— 這正是 off-policy 學習的本質特征。數學表達上,通過引入行為策略進行乘除變換后,單步強化學習目標函數轉化為:
如果我們觀察到一個提示 o^i ,并從行為策略中采樣出一個動作 a^i,可以再次用以下蒙特卡羅近似來替代積分,這種近似被稱為 IS 估計:
分布的比率被稱為重要性權重:
這個權重可能會增大并導致不穩定性,尤其是因為我們計算這個比率所涉及的所有字符串的空間是非常高維的。
PPO:為了防范高方差和不穩定性,我們必須巧妙地截斷(裁剪)重要性權重。讓我們再次來考慮一下我們的 off-policy 目標:
近端策略優化(PPO)修改了這個目標函數,對那些使 w (theta) 偏離 1 的策略變化進行懲罰,具體如下:
PPO 的內容遠不止這些,所以我鼓勵大家都去讀一讀這篇有影響力的論文《Proximal Policy Optimization Algorithms》。
DeepSeek-R1 將裁剪后的重要性采樣、基線減法以及與參考策略的 KL(相對熵)接近度相結合,以此來訓練其推理模型。(PPO 也做了所有這些事情,但方式略有不同。)
現在我們已經介紹了 DeepSeek 強化學習算法(GRPO)的所有要素,所以接下來就只是把它們整合起來的問題了。
當然,真正的挑戰在于解決實現過程中基礎設施和數據方面的問題。
為了得到第一個蒙特卡羅估計值,我們使用來自行為策略 pi_old 的樣本 a^i ,但是如果我們想要保持估計的無偏性,對于第二項(即 KL 散度項)的蒙特卡羅估計應該使用來自 pi_theta 的樣本 a^i ,而不是來自 pi_old 的樣本。
正如在之前的文章中所提到的,我們已經從獎勵中減去了平均基線值:
但與 DeepSeek-R1 不同的是,我們沒有除以標準差。這一點值得通過實證來檢驗。
注意:在這個版本中,我們針對每個觀測值采樣一個動作。也可以針對每個觀測值采樣多個動作來減少方差。DeepSeek-R1 基本上就是這么做的,其梯度更新包含了針對單個問題的多個動作樣本。這種技術在隨機近似中被稱為公共隨機數。
如果你對 PPO 和 GRPO 的這些公式感到熟悉了,那么你現在幾乎已經了解了如今所有公司在 LLM 中使用的強化學習(RL)所需的全部理論知識。
接下來,Freitas 想從單步強化學習拓展到多步強化學習,從而進行更深入的研究。感興趣的小伙伴,可以隨時關注 Freitas 動態。
https://x.com/NandoDF/status/1919728246821634205
https://x.com/NandoDF/status/1918324866979184874
https://x.com/NandoDF/status/1917865356829618645
https://x.com/NandoDF/status/1917575545673417069
https://x.com/NandoDF/status/1917270302666678614
https://x.com/NandoDF/status/1916835195992277281
https://x.com/NandoDF/status/1915548697548464359
https://x.com/NandoDF/status/1915351835105169534
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
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.