網易首頁 > 網易號 > 正文 申請入駐

OpenAI翁家翌:梯度之外,下一個AI訓練范式有著落了?

0
分享至



機器之心編輯部

如果有一天,一段由 AI 編程工具寫的純粹的程序代碼 —— 沒有神經網絡,沒有梯度下降,沒有任何「訓練」—— 卻在經典游戲里打出了理論最高分,在機器人控制里跑出了媲美 Deep RL 的成績,你會怎么解釋這件事?

這不是科幻設定,而是 OpenAI 研究工程師翁家翌(Jiayi Weng)最近在一篇博客里記錄的真實實驗。他本來只是想給游戲測試寫幾條便宜的小規則,結果弄出了一套讓他自己都感到震撼的東西。他由此重新審視了一種長期被低估的方法 ——heuristics,認為它可能正在迎來屬于自己的時代。



手寫規則本身不是新東西。專家系統幾十年前就有了,問題也是老問題:今天加一條規則修好 A,明天發現 B 壞了,后天再打補丁,最后沒人敢動了。規模一大,維護成本就把人壓垮。翁家翌的核心觀察是:coding agent 改變的正是這條成本曲線。當 agent 能夠自動讀日志、看回放、改代碼、跑測試、記錄實驗,一套手寫規則系統就第一次有了持續生長的可能 —— 原來只能當補丁用的東西,現在開始值得長期擁有了。

這也直接觸碰了 Continual Learning 的老問題。神經網絡的災難性遺忘,根源在于舊能力只能靠參數隱式保存,新數據一來就容易被沖掉。而在他提出的 Heuristic Learning 框架里,舊能力可以直接寫進回歸測試、固定 seed 的回放和明確的失敗記錄,歷史是顯式的、可讀的、可重構的。這不是解決了遺忘問題,而是把「防遺忘」變成了一個更工程化的問題來處理。

當然,翁家翌也指出了這套方法的邊界:代碼的表達能力終究有限,復雜感知和長程泛化還是神經網絡的主場。他認為更有前景的方向是兩者結合 —— 用 Heuristic System 快速處理在線數據、積累可回歸的經驗,再周期性地把這些經驗內化進神經網絡。

他把這個愿景總結成一句話:凡是可以被持續迭代的,都開始能被解決。這和之前幾輪范式轉移的邏輯一脈相承 —— 從 pretrain 到 RLHF,再到 large-scale RL,每一步都是把「可驗證」的邊界往外推了一圈。Heuristic Learning,或許是下一圈。

翁家翌是 OpenAI 后訓練(Post-training)RL 基礎設施的核心工程師之一。2022 年加入 OpenAI 時,他的面試官正是 John Schulman。此后,他主導搭建了 OpenAI 后訓練階段的核心 RL 基礎設施,這套系統支撐著 GPT 系列在 RLHF、對齊與推理優化階段的訓練迭代。

以下是翁家翌的博客《Learning Beyond Gradients》原文,機器之心經授權轉載:



原文鏈接:
https://trinkle23897.github.io/learning-beyond-gradients/#zh

Continual Learning 一直難以被解決,主要卡在神經網絡的災難性遺忘:學了新東西,舊能力就容易被沖掉。那如果不把目光只放在神經網絡權重上,還有沒有其他解決方案?

隨著 LLM agent 變強,coding 的速度和質量都在提升。但我最近更在意的是另一個現象:coding agent 不訓練新網絡、不更新權重,只是持續看失敗、改代碼、加測試、看回放,也能把一套程序系統越養越強。

這讓我重新看待 heuristic,也就是手寫規則和程序策略。過去很多 heuristic 不是沒用,而是沒人養得起;coding agent 改變的是這條維護成本曲線。于是,過去只能當一次性補丁的規則,開始變成值得長期擁有的代碼。

凡是可以被持續迭代的,都開始能被解決。這也是 Continual Learning 一直想要解決的問題。它會是既 Pretrain、RLHF、Large-scale RL/RLVR 之后的下一個范式嗎?

異?,F象

在業余時間維護 EnvPool 的時候,我想用一個便宜一點的策略來測試游戲環境正確性,不然每次 CI 都跑神經網絡,很費測試資源。

一開始的問題只是:

能不能寫一些便宜、可復現、比隨機強很多的 heuristic,專門把環境跑到有信息量的狀態?

我試著使用 codex(gpt-5.4)寫一個基于規則的版本,完全不依賴 NN。沒想到弄了幾下,結果比我預期離譜很多:

  • 一個打磚塊游戲 Atari Breakout,策略從 387 -> 507 -> 839 -> 864,最后打到理論最高分;
  • 一個仿真四足機器人關節控制任務 MuJoCo Ant,純 Python 程序策略先學會節律步態,再接上短視窗模型規劃,最后上了 6000+ 分,進入常見 Deep RL 結果的量級;
  • 一個仿真機器人跑步任務 MuJoCo HalfCheetah,靠可解釋的步態 / 姿態規則和在線規劃,迭代到 5 局復測均值 11836.7,也進入了常見 Deep RL 結果的量級;
  • 一整套 Atari 57 個游戲,一共跑了 57 個游戲 x 2 種輸入 x 3 次運行 = 342 條 coding-agent 搜索軌跡,表現有好有壞;但在固定環境交互步數下,中位數 HNS 游戲得分在 1M 環境步附近已經遠高于 PPO 這類 Deep RL 算法的曲線。

這些結果第一次見到十分震撼,更讓我在意的是:codex 沒有訓練神經網絡,它在維護一套還能繼續生長的軟件系統。

Breakout 策略到最后遠遠超過一句 “球在左邊就往左”。這個策略長出來的是動作探測、狀態讀取、球和擋板檢測、落點預測、卡住循環檢測、回歸測試、視頻回放和實驗記錄。Ant 策略也超過一條步態公式,里面有節律控制、姿態反饋、接觸信息、短視窗模型展開。

于是我意識到有必要在這里創造一個新的概念:這里被更新的對象已經不只是策略函數,而是一套帶有記憶、反饋入口和回歸機制的軟件系統。

Heuristic Learning

在接著和 codex 交流了一陣子之后,我想把這個過程定義為 Heuristic Learning(HL):

  • HL 的主體由程序代碼構成;
  • 它和今天常見的 Deep RL 實踐共享狀態、動作、反饋、更新的閉環;但更新對象從神經網絡參數換成了軟件結構;
  • 它的反饋由 coding agent 消化,可以來自環境 reward、testcase、日志、視頻、回放、人類反饋;
  • 它的更新不走反向傳播;coding agent 直接修改 policy、狀態檢測器、測試、配置或者 memory;
  • HL 是學習和更新的過程;被 HL 長期維護的對象稱之為 Heuristic System(HS);
  • HS 超過一個孤立的 policy.py:它至少包含程序策略、狀態表示、反饋入口、實驗記錄、回放或測試、memory,以及由 coding agent 執行的更新機制。單條 rule 不夠,規則、反饋、歷史和下一輪更新全部接起來,才稱之為 HS。

列一個表就是:



Heuristic Learning 相比 Deep RL 有很多良好的性質:

  • 可解釋性(Explainability):神經網絡很難解釋,HL 的代碼策略可以翻譯成人話;
  • 樣本效率(Sample Efficiency):一次有效代碼更新可以直接跳到新策略,不用調學習率慢慢爬;
  • 可回歸 / 可驗證(Regression-testable):舊能力可以變成 test、replay、golden case;
  • 可約束過擬合:代碼 heuristic 也會過擬合到 seed、環境細節或測試漏洞,但簡化、回歸和多 seed 檢查可以形成一種工程正則化;
  • 可以避免一部分災難性遺忘(Catastrophic Forgetting):舊能力不用全靠模型自己記住,可以被寫進 rule set 和測試里。

重點在于,有一類原來因為維護成本太高而不值得寫的 heuristic,現在突然可能值得長期擁有了。

為什么 Heuristic Learning 以前沒發展起來

如果說 HL 的前身是專家系統、規則系統,那么在 coding agent 沒發展起來之前,這玩意的維護成本十分高昂。

人類手工維護 heuristic 很容易變成這樣:

今天加一條規則修 case A。明天發現 case B 被修壞了。后天再加一個 if。大后天沒人敢刪了。

問題不在 heuristic 沒用,在沒人力能養得起。之前人力維護專家系統,有點像工業革命前手工紡紗:規模一大,穩定性和維護成本就壓死人。紡織機改變的是產能曲線;coding agent 改變的是 heuristic 的維護曲線。它像一條可以輸送智力的營養管道,可以持續澆灌一個 HS,讓它自己迭代進化。



目前常見的 agentic 反饋閉環主要是:

feature request -> agent 寫代碼 -> 過 test -> 人類給一點反饋 -> 下一輪 patch

但隨著大模型能力提升,人類介入次數會逐漸變少,這個反饋循環就有機會在某些邊界明確的系統里自動閉合,從而能夠實現自動化用 HL 批量生產 HS:

環境反饋 / 測試失敗 / 日志異常-> coding agent 讀 context-> 修改 policy /test/memory-> 重新運行-> 把結果寫回 trials 和 summary-> 下一輪繼續

Heuristic Learning 怎么做 Continual Learning

神經網絡里的災難性遺忘,是新數據把參數往新任務推,舊能力被覆蓋掉。HL 也會忘,例如:

  • 新規則修好了一個失敗模式,同時破壞舊場景;
  • 新 memory 把 agent 反復帶到錯誤方向;
  • 新測試太窄,導致策略學會鉆空子;
  • 新 patch 改了公共接口,舊調用方悄悄壞掉;
  • 規則越堆越多,最后 agent 自己也維護不動。

所以 HL 不會自動解決 Continual Learning。它把 “防遺忘” 變成了更工程化的東西。

在 HL 里,舊能力可以被固化成:

  • 回歸測試;
  • 固定 seed 的 replay;
  • golden trace;
  • 失敗視頻;
  • 版本 diff;
  • 明確寫下來的失敗方向。

與神經網絡把經驗壓進權重完全不一樣:HL 的歷史是顯式、可讀、可刪、可重構的。它負責 “記住”,也負責把一堆局部補丁壓縮成更簡單的表示。

(只增長不壓縮的 HS,最后一定會變成屎山代碼。它會 “記住” 很多東西,但記住的方式太差,導致誰也不敢動,從而腐化)

所以一個健康的 HS 至少需要兩個操作維持:

  1. 吸收反饋:把新失敗、新日志、新 reward 寫回系統。
  2. 壓縮歷史:把一堆局部補丁折回更簡單、更可維護的表示。

這就把 Continual Learning 從 “怎么更新參數” 變成了 “怎么維護一個持續吸收反饋的軟件系統”。

Heuristic System 的復雜度

此處定義 耦合復雜度 為 coding agent 能維護多復雜的策略來支持 HL。展開說,就是一次更新必須同時照顧多少相互牽連的狀態、規則、測試、反饋和歷史。

這個量不能按代碼行數算。一個 500 行策略,如果模塊邊界清楚、測試完整、狀態可復現,可能很好維護;一個 80 行策略,如果每行都互相牽制、沒有日志、沒有回放,也可能是個定時炸彈,一碰就崩。

朝代碼一側看,耦合復雜度受模塊邊界、接口穩定性、測試覆蓋、日志觀測性、回滾成本和狀態可復現性限制。好的模塊化會把全局耦合切成局部耦合,從而降低耦合復雜度;好的測試能讓 coding agent 不必每次在腦子里模擬整個系統。

朝 coding agent 一側看,能接受多少耦合復雜度,取決于模型能力、上下文長度、memory 質量、工具質量、整體迭代速度。更強的模型能夠同時處理更多相互作用;更長的上下文能讓它少丟線索;memory 可以把跨輪次迭代經驗留下;搜索、定位、運行、回放這些工具能夠把一部分認知負擔搬到外部。

把這兩側放一起,可以得到一組判斷:

  • 反饋越清楚,單位 agent 智力能維護的耦合復雜度越高;
  • 同等工具和反饋下,模型能力越強,能處理的耦合復雜度越高;
  • 模塊化、測試、回放會把一部分耦合復雜度轉移到環境里;
  • memory 和工具會提高 agent 的有效上下文;
  • 只增長不壓縮的 HS 會讓耦合復雜度持續上升,直到超過維護能力。

Breakout 策略能走到 864 的滿分,有規則簡單的一面,也有失敗可以視頻回放、局部復現、回歸驗證的一面。Ant 復雜得多,但它可以拆成節律、姿態、接觸、residual MPC 這些模塊。

Montezuma 是一個很好的反例。Atari57 里有一條無人值守的記錄到了 400 分,但那條路線由 86 個宏動作組成,基本是開環執行。這個例子說明,有些環境需要更強的程序形態,比如可組合宏動作、可恢復搜索狀態、長期 memory。普通 if else 不能解決所有問題。

下一個范式?

目前的范式轉移是從最開始的 pretrain,到 RLHF,再變成 large-scale RL / RLVR。凡是可以驗證的,都開始能被解決。

Online Learning 和 Continual Learning 可以被當前 RLVR 生產出來的 agentic coding,通過 Heuristic Learning 的方式部分解決。從這個愿景出發,我愿稱其為下一個范式:凡是可以被持續迭代的,都開始能被解決。

為什么說是部分解決?因為 Heuristic Learning 并不能做所有神經網絡能做的事情。它受制于代碼的表達能力,比如復雜感知和長程泛化。比如在我目前認知范圍內,我想不出有個 agent 能搓出一個純 Python code、不用神經網絡去解決 ImageNet。

于是問題在于如何結合神經網絡和 HL,同時解決 Online Learning 和 Continual Learning。最有希望的方向是:用 HL 處理在線數據快速生成在線經驗,把在線經驗內化成可訓練、可回歸、可篩選的數據,再周期性更新神經網絡。

以機器人為例,如果套用 System 1/2 的術語,一個可能的分工形態如下:

  • 專用、淺層 NN:當作 System 1 的一部分,快、便宜,負責感知、分類、物體狀態估計;
  • HL:也可以當作 System 1 的一部分,負責最新數據處理、規則、測試、回放、memory、安全邊界、局部恢復;
  • LLM agent:作為 System 2,負責給 HL 提供反饋、改進數據,并周期性提取 HL 生成的數據來更新自身

這套東西可以繼續拆成層級結構:

關節級 HL -> 肢體級 HL -> 全身平衡 HL -> 任務級 HL

低層負責安全和低延遲控制,中層負責步態和接觸,高層負責任務、恢復和長期記憶。coding agent 不一定直接 “懂得走路”,它更像插進系統里的更新管線:持續把失敗視頻、傳感器流、仿真結果、測試結果喂進系統,再把反饋改寫成代碼、參數、保護規則和 memory。

LLM agent 可以共享,也可以相互隔離在機器人體內自行學習。這里的問題是:HL 提供的特定數據分布如何才能不讓 LLM 的周期性更新崩潰。這是一個經典的 post-training 問題,已經有很多成熟經驗,由于某些原因在這里就不展開了。

Agentic coding 改變了寫代碼速度,也改寫了哪些代碼值得被長期擁有。

過去很多 heuristic 看起來沒有前途,原因常常落在維護成本上;它們本身未必太弱。coding agent 改變的是這條維護成本曲線。規則、測試、日志、memory 和補丁原來只是散落的工程材料,現在開始可以組成一個會持續更新的 Heuristic System,能夠真正解決 Online Learning 和 Continual Learning 所未能解決的問題。

歡迎來到下一個范式!

附錄:實驗過程和復現入口

完整 artifact repo 在
https://github.com/Trinkle23897/learning-beyond-gradients。下面命令默認你已經 clone 了這個 repo,并在倉庫根目錄運行;GitHub Pages 只展示文章和必要靜態文件,完整腳本、CSV、視頻和實驗材料都在 repo 里。

以下實驗中 codex 模型版本均為 gpt-5.4,最新版本模型尚未測試。以下實驗報告均由 codex 自行攥寫。

A.1 實驗過程簡述

一開始我直接問 Codex:“寫一個能解決 Breakout 的策略。” 效果一般。低分沒有解釋力:它不知道是動作語義錯了、狀態檢測錯了、評測設置錯了,還是策略結構本身不行。后來我把任務改成另一種形式:別只交一個 policy.py,要維護完整閉環。

閉環大概長這樣:

探測動作和觀測-> 寫狀態檢測器-> 寫策略-> 跑完整回合-> 記錄 trials.jsonl 和 summary.csv-> 生成視頻或曲線-> 看失敗模式-> 改策略-> 簡化代碼并做回歸

到這里,任務的形狀已經變了。最后產出的東西從一個策略文件,變成了一套還能繼續改的實驗系統。它有探測器,有記錄,有回放,有失敗模式,也有下一輪該怎么改的線索。

Breakout

相關 artifact:heuristic_breakout.py、
heuristic_breakout_trials.jsonl、heuristic_breakout_trials_summary.csv。

Breakout 表面上是幾何問題:球在哪里,擋板在哪里,球撞墻以后會落到哪里。麻煩在后半段。策略可以一直接到球,卻不再打到新磚,分數卡在一個穩定循環里。

Codex 第一輪先確認動作空間和觀測形狀,再從 RGB 畫面里找擋板、球、磚塊顏色,然后用這些圖像標簽去掃 128 個 RAM 字節。早期實驗記錄大概是這樣:

trial_name score cumulative_env_steps noteshape_action_probe - 32 inspect obs/info/actionram_byte_corr_probe_v1 - 5,032 correlate RAM bytesram_fit_action_probe_v2 - 9,532 action 2=right, 3=leftbaseline_v0 99 16,303 initial RAM intercepttunnel0_v1 387 43,303 no tunnel offset

387 是第一個很容易騙過人的局部高分。策略已經能穩定接球,但它把球送進了一個周期:不會死,也不會繼續清磚。人手寫到這里,很容易繼續調 “接球精度”。Codex 看了視頻和最后幾十步軌跡后,把問題定位到球路缺少擾動。



視頻 artifact:
heuristic_breakout_score387_tunnel0_render210x160.mp4。

第一個有效機制是打破循環:如果連續很久沒有獎勵,就在預測落點上周期性加偏移,把球從局部循環里打出去。這一改把分數從 387 推到 507。

后來又遇到另一個失敗模式:高速低位球如果按普通截距追,擋板會被過度前視帶偏。Codex 加了 fast_low_ball_lead_steps=3,分數從 507 跳到 839。

從 839 到 864,更像是在照料一個已經變復雜的系統。Codex 試了死區、發球偏移、卡住偏移、磚塊平衡偏置、前視步數,很多方向都沒用。最后起作用的是一個后期條件:分數超過第一面墻以后,卡住偏移只在離擋板還遠的時候生效;快接球時把偏移逐步收掉,不然最后幾塊磚階段會把擋板帶偏。同時它加了一個很小的擋板漂移補償,用來補動作和擋板位置之間的一步延遲。



視頻 artifact:
heuristic_breakout_ci3985ae2_score864_render210x160.mp4。

最終 RAM 默認配置三局驗證是 864 / 864 / 864。后面 Codex 又把同一套幾何控制遷移回純圖像輸入:不用 RAM,只用 RGB 分割找擋板、球和磚塊平衡。純圖像版本先是 310,然后 428,最后把后期 “卡住偏移逐步收掉” 的閾值放低到全程生效,7 個策略本地回合后第一次到 864,對應 14,504 個策略本地環境步。



這里不能寫成 “純圖像從零 14.5K 步到滿分”。真實過程是:Codex 先在 RAM 版本里摸出了幾何控制、打破循環、后期收偏移這些結構;等結構穩定以后,再把狀態讀取層從 RAM 換成 RGB 檢測器。純圖像的 14.5K 是遷移預算。

Ant 和 HalfCheetah

相關 artifact:heuristic_ant.py、ant_envpool.xml、
heuristic_ant_trials.jsonl、heuristic_ant_trials_summary.csv、heuristic_halfcheetah_v5.py、heuristic_halfcheetah_v5_log.md。

Ant 的信號和 Breakout 不一樣。Breakout 的幾何結構很直觀;Ant 是連續控制,動作是 8 個關節,失敗模式也從 “球沒接到” 變成了身體動力學問題。

我沒有一開始就指定 “用 CPG” 或 “用 MPC”。要求只有幾條:別訓練神經網絡,能本地復現,每輪實驗留下記錄,繼續把分數往上推。Codex 先讀 EnvPool/Gymnasium 的 Ant 觀測和回報,確認動作順序、根部速度、軀干朝向、關節位置和關節速度,然后自己提出第一版節律步態。

第一版是四腿相位振蕩器:左右腿反相,髖關節和踝關節跟蹤正弦目標角,動作由 PD 控制器給出。它不優雅,但一上來就比隨機強很多,5 個隨機種子的平均分是 2291。

后面的早期迭代很像調一個真實控制器:先加偏航反饋到 2718,再調相位速度、髖 / 踝幅度、偏航角速度增益到 3025,然后加二階 / 三階諧波到 3162。Codex 也試過大范圍參數搜索,但結果沒有穩定超過當前節律策略,于是停止擴大搜索預算,轉向另一種表示。

躍遷來自 residual MPC。粗略講,MPC 是 “邊走邊想一小段未來”:保留節律步態作為基礎反射,每個真實環境步在本地 MuJoCo 模型里采樣幾十條小的殘差動作序列,打分后只執行第一個殘差動作;下一步重新看狀態、重新規劃,并把上一輪沒執行完的計劃作為熱啟動。

這樣每一步都不用從零規劃 8 個關節怎么動。策略先有一個穩定步態,再用短視窗模型規劃去修正它。

trial_name score_mean cumulative_env_steps noteant_lr_cpgpd_v1 2291.9 5,000 左右腿反相 CPG + PDant_yawaxis_grid_v2 2857.9 20,000 偏航反饋 + 重調參數ant_h3_428_v1 3162.0 50,000 二階/三階諧波ant_mpc_residual_v1_ep1 3635.5 62,000 視窗=6,候選=32ant_mpc_residual_cfg4_eval5 3964.7 67,000 視窗=8,候選=48ant_mpc_residual_cand07_eval5 4647.1 73,000 圍繞 MPC 配置做局部搜索ant_mpc_residual_narrow04_eval5 4871.3 79,000 降低 z 目標,增大 kp/候選數ant_mpc_residual_warm02_eval5 5165.2 85,000 熱啟動殘差計劃ant_mpc_fast065x060_sigma008_clip012 5759.4 95,000 更快步態 + 更大殘差ant_mpc_term001_ep1 6054.5 100,000 終端速度代價ant_mpc_default_adaptive_ep1 6146.2 106,300 速度自適應相位 + 支撐期

到最后,策略里有振蕩器相位、支撐期比例、速度自適應、滾轉 / 俯仰 / 偏航反饋、腳部接觸、短視窗模型內展開、殘差平滑、終端速度代價、熱啟動計劃衰減。人類當然能寫其中一兩個模塊,但要在短時間內同時照顧實驗記錄、代碼、視頻和失敗方向,難度完全不同。





視頻 artifact:
heuristic_ant_mpc_default_6146_render480.mp4。

HalfCheetah 是同一類證據的另一個點。我重新跑了
mpc-staged-tree-asym-pd-cpg 的 5 局復測,seeds 100..104 的結果是均值 11836.7、最小值 11735.0、最大值 12041.2。策略靠的是可解釋的步態 / 姿態規則和在線 staged-tree MPC:先用 CPG/PD 形成高分步態,再用短視窗模型評分和 staged swing-amplitude schedule 修正動作。



Atari57

相關 artifact:
atari57_prompt_template.txt、atari57_aggregate_curve_steps.csv、atari57_env_mode_summary.csv、openrl_atari57_per_game_hns_comparison.csv、atari57_hns_normalization_inferred.csv。

Breakout 和 Ant 都是單點故事。Atari57 想看的,是這套工作流離開單個漂亮案例以后還剩多少。做法很直接:把同一套 Codex 流程扔到整套 Atari57 上,每個環境同時跑 ram 和 native_obs 兩種輸入,每種輸入跑 3 個獨立重復。總共是:

57 個游戲 x 2 種輸入 x 3 次運行 = 342 條 coding-agent 搜索軌跡

這組實驗沒有人在旁邊一點點提示。每個 agent 拿到同一個模板和不同的 ENV_ID / OBS_MODE / REPEAT_INDEX,然后自己執行到停止。每個 run 都要寫 policy.py、trials.jsonl、summary.csv、sample_efficiency.png 和 README.md。

主要約束是:

- 不訓練神經網絡。- 不讀環境源碼、測試、ROM 細節或隱藏狀態。- native_obs 模式只能用 reset/step 返回的原生 obs。- ram 模式可以用 info ["ram"]。- Atari 初始化參數固定,包括 frame_skip=1、reward_clip=False、sticky action=0。- 所有實際 step 過環境的 probe/debug/trial 都必須計入 cumulative_env_steps。

先看環境步曲線。HNS 是 human-normalized score,也就是把每個游戲分數按人類基線歸一化以后再比較。在完全無人工介入的批量運行里,native_obs 到 1M 步附近的 Atari median HNS 已經到 0.32,ram 是 0.26,明顯高于圖里 PPO2 / CleanRL EnvPool PPO 的早期曲線;到 9.7M 步附近,native_obs 是 0.81,ram 是 0.59。同一張對比里,OpenRL Benchmark 保存的 PPO2 / CleanRL EnvPool PPO median HNS 曲線到 10M 步大約是 0.88 / 0.92。



這里比較的是環境交互效率;coding agent 讀日志、寫代碼和看視頻的開銷沒有折算進總計算成本。它給出的信號很具體:一個還很粗糙的 coding agent 批量流程,在完全不看中途結果的情況下,已經能把 Atari57 的中位數推進到接近這些 baseline 的區間。

如果換成每個游戲最終取 best input 的匯總口徑,Codex median HNS 是 0.83,OpenAI Baselines PPO2 是 0.80,CleanRL EnvPool PPO 是 0.98;如果再放寬到 best single run,Codex median HNS 是 1.18。這個口徑不能替代嚴格訓練曲線比較,但能更直接地說明這批無人值守搜索最后覆蓋到了什么水平。

聚合曲線會把差異壓到一個中位數里,所以我又看了每個游戲自己的 HNS。Breakout、Krull、DoubleDunk、Boxing、DemonAttack 這些游戲里,heuristic 和 Deep RL baseline 都能拿到明顯高于人類基線的分數;Asterix、Jamesbond、Centipede、Bowling、Skiing、Tennis 這類游戲里 heuristic 相對突出;Atlantis、VideoPinball、UpNDown、Assault、RoadRunner、StarGunner 上 PPO 明顯強很多。



Atari57 最有意思的地方,是樣本效率的來源變了。傳統神經網絡 Atari 學習要在每個環境里從高維輸入重新學表示、信用分配和動作含義;Codex 做的是把環境拆成可維護的小程序系統:射擊游戲的瞄準 / 躲避,接球游戲的反彈,躲避游戲的位置規則,環境包裝器細節,以及每個環境自己的失敗實驗記錄。

Montezuma

相關 artifact:heuristic_montezuma.py、
heuristic_montezuma_state_graph_search.py、heuristic_montezuma_400_policy.py、heuristic_montezuma_400_macros.json、heuristic_montezuma_400_metadata.json。

有些環境不適合普通反應式啟發式策略。Montezuma's Revenge 是典型例子。

之前那輪單獨搜 Montezuma 的狀態圖搜索能把鑰匙距離從 72 推到 28,但獎勵仍然是 0。后面 Atari57 的純圖像批量實驗里,有一條無人值守 Codex run 到了 400.0 分:修復后的最佳回放是 repair_replay_r1_t19734,seed 是 10001,用了 1769 個環境步,本質是一條 86 個宏動作組成的開環路線。



Montezuma 暴露的是表達力問題。普通 policy.py 狀態機很難裝下這類路線:動作必須對齊時機,失敗后要能恢復,中間狀態還要能重新進入計劃。有些環境需要可組合宏動作、可恢復搜索狀態,甚至需要一種比普通 if else 更適合長期規劃的程序結構。

這類失敗對 HL 很有價值。它告訴我們邊界在哪里,也提示下一層抽象大概該長什么樣。有些反饋需要新的表示和新的程序形態,才進得了系統。Montezuma 指向的下一層接口,大概會包括宏動作、可恢復狀態、搜索和長期記憶。

A.2 復現入口

下面這些命令默認在本文所在目錄運行,依賴已經按 requirements.txt 裝好,用來檢查前面提到的幾個代表性結果。

Pong 21

復現入口:heuristic_pong.py。

python heuristic_pong.py \ --policy ram \ --episodes 1 \ --seed 0

期望輸出里應該包含 episode=0 score=21.0 和 mean=21.000。

Breakout 864

復現入口:heuristic_breakout.py。

rm -f /tmp/repro_breakout_864.jsonl /tmp/repro_breakout_864.csvpython heuristic_breakout.py \ --policy ram \ --episodes 1 \ --seed 0 \ --max-steps 108000 \ --deadband 3 \ --chase-lead-steps 6 \ --tunnel-offset 0 \ --launch-offset 24 \ --fast-ball-min-vy 3 \ --fast-low-ball-lead-steps 3 \ --stuck-trigger-steps 1024 \ --stuck-switch-steps 256 \ --stuck-offset 12 \ --stuck-release-horizon-steps 8 \ --brick-balance-deadzone 0.01 \ --brick-balance-bias-min-score 432 \ --late-game-paddle-lag-px 2 \ --late-game-lag-ball-y 170 \ --trial-name repro_breakout_864 \ --log-path /tmp/repro_breakout_864.jsonl \ --summary-path /tmp/repro_breakout_864.csv

期望輸出里應該包含 score=864.0 和 mean=864.000。

Ant 默認 MPC 策略

復現入口:heuristic_ant.py、ant_envpool.xml。

rm -f /tmp/repro_ant_6146_eval5.jsonl /tmp/repro_ant_6146_eval5.csvpython heuristic_ant.py \ --policy mpc \ --episodes 5 \ --seed 0 \ --max-steps 1000 \ --mujoco-xml-path ant_envpool.xml \ --trial-name repro_ant_6146_eval5 \ --log-path /tmp/repro_ant_6146_eval5.jsonl \ --summary-path /tmp/repro_ant_6146_eval5.csv

我本地重跑時是 mean=6005.521、min=5776.805、max=6146.208。

HalfCheetah staged-tree MPC

復現入口:
heuristic_halfcheetah_v5.py。

python heuristic_halfcheetah_v5.py \ --policy mpc-staged-tree-asym-pd-cpg \ --eval-episodes 5 \ --eval-seed 100

我本地重跑時 5 局均值是 11836.693。

Montezuma 400 分回放

復現入口:
heuristic_montezuma_400_policy.py。

python heuristic_montezuma_400_policy.py \ --metadata-out /tmp/repro_montezuma_400.json

期望輸出里應該包含 "score": 400.0 和 "env_steps": 1769。這條是邊界案例,不要把它理解成通用 Montezuma 策略。

文中視頻鏈接:
https://mp.weixin.qq.com/s/LIhogqKOvyDir04Ket7G0w

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

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.

相關推薦
熱點推薦
中國加速量產殲36殲50,規模超美兩倍

中國加速量產殲36殲50,規模超美兩倍

踏青云看世界
2026-05-08 05:52:20
英超爭冠大戰!曼城打強隊不勝=出局,西漢姆對阿森納改寫4隊命運

英超爭冠大戰!曼城打強隊不勝=出局,西漢姆對阿森納改寫4隊命運

體育知多少
2026-05-09 09:40:44
霍尊也沒料到,自己復出后,分手五年的陳露親手撕碎他最后的體面

霍尊也沒料到,自己復出后,分手五年的陳露親手撕碎他最后的體面

云深不知在何處
2026-05-09 02:30:40
諶龍、黃東萍晉升國家級教練,何冰嬌自主擇業獲74萬安置金

諶龍、黃東萍晉升國家級教練,何冰嬌自主擇業獲74萬安置金

楊晨大神
2026-05-08 12:02:55
記得帶傘!今天刮風還有雨!周日氣溫沖上32℃——

記得帶傘!今天刮風還有雨!周日氣溫沖上32℃——

石景山區新媒體
2026-05-09 10:42:28
他與韓先楚合作不愉快,上級問想咋解決,表態:放棄一切,我調走

他與韓先楚合作不愉快,上級問想咋解決,表態:放棄一切,我調走

興趣知識
2026-05-09 01:42:10
中俄一劍封喉!美國授權被當場撕碎,魯比奧:中國別再動用否決權

中俄一劍封喉!美國授權被當場撕碎,魯比奧:中國別再動用否決權

書紀文譚
2026-05-08 15:10:24
長得太美被導演占為己有,25歲生下3個孩子,如今個個都給她爭光

長得太美被導演占為己有,25歲生下3個孩子,如今個個都給她爭光

真的八卦小學弟
2026-05-08 17:10:05
文章上海的面館正式開業,滿臉笑容,馬伊琍帶著女兒低調現身

文章上海的面館正式開業,滿臉笑容,馬伊琍帶著女兒低調現身

早起的鳥兒有飯吃
2026-05-09 09:30:25
乾隆皇帝包裹遺體的被子,拍出了1.3億天價,為何會如此值錢?

乾隆皇帝包裹遺體的被子,拍出了1.3億天價,為何會如此值錢?

興趣知識
2026-05-08 00:40:30
巴薩贏麻了!主場踢皇馬:打平即奪冠 票房1500萬刷新紀錄

巴薩贏麻了!主場踢皇馬:打平即奪冠 票房1500萬刷新紀錄

葉青足球世界
2026-05-08 20:23:33
瀏陽煙花廠事故升級!26人死亡變成37人,網友:煙花爆竹該清除了

瀏陽煙花廠事故升級!26人死亡變成37人,網友:煙花爆竹該清除了

火山詩話
2026-05-08 18:13:12
娛樂圈體面的分手是森林北與汪峰,媒體曝汪峰和神秘女子肢體親昵

娛樂圈體面的分手是森林北與汪峰,媒體曝汪峰和神秘女子肢體親昵

小邵說劇
2026-05-09 07:57:25
“中美局勢”或許發生大反轉了!而最先超過美國的,其實不是經濟

“中美局勢”或許發生大反轉了!而最先超過美國的,其實不是經濟

點燃好奇心
2026-05-09 03:28:05
3-0!國乒橫掃韓國 成功復仇晉級四強 王楚欽林詩棟梁靖崑全勝

3-0!國乒橫掃韓國 成功復仇晉級四強 王楚欽林詩棟梁靖崑全勝

念洲
2026-05-08 21:39:14
成都“牽手門”事件女主現今狀況曝光,太慘了......

成都“牽手門”事件女主現今狀況曝光,太慘了......

許三歲
2026-03-17 07:34:05
香港34歲男子騙誘15歲混血少女,虐殺后多次奸尸,事后還與妻子外出晚飯!被判終身監禁

香港34歲男子騙誘15歲混血少女,虐殺后多次奸尸,事后還與妻子外出晚飯!被判終身監禁

大風新聞
2026-05-08 18:35:02
上去就是一巴掌!2:1!文班39+15+5帽對飆金剛狼!

上去就是一巴掌!2:1!文班39+15+5帽對飆金剛狼!

柚子說球
2026-05-09 13:25:19
小米“YU9”胎死腹中,將被全新獨立子品牌“尋天”替代

小米“YU9”胎死腹中,將被全新獨立子品牌“尋天”替代

新浪財經
2026-05-09 00:52:13
世體:芝加哥火焰給萊萬開1500萬歐年薪,最高可達2000萬歐

世體:芝加哥火焰給萊萬開1500萬歐年薪,最高可達2000萬歐

懂球帝
2026-05-09 01:09:23
2026-05-09 13:39:00
機器之心Pro incentive-icons
機器之心Pro
專業的人工智能媒體
12955文章數 142646關注度
往期回顧 全部

科技要聞

美國政府強力下場 蘋果英特爾達成代工協議

頭條要聞

牛彈琴:全世界十分意外 俄烏戰場突然傳來兩個好消息

頭條要聞

牛彈琴:全世界十分意外 俄烏戰場突然傳來兩個好消息

體育要聞

成立128年后,這支升班馬首奪頂級聯賽冠軍

娛樂要聞

張藝謀《印象劉三姐》全裸鏡頭引爭議

財經要聞

Meta瘋狂擁抱人工智能:員工苦不堪言

汽車要聞

軸距加長/智駕拉滿 阿維塔07L定位大五座SUV

態度原創

游戲
時尚
親子
健康
旅游

成人游戲《SiNiSistar2》Steam官宣5月16日發售!

盧昱曉真的要被審判到這種程度嗎?

親子要聞

什么牌子的奶粉好?君樂寶奶粉以靠譜品質回應寶媽牽掛

干細胞能讓人“返老還童”嗎

旅游要聞

“五一”超800場好戲燃動全城,“演藝之城”引爆假日文旅市場

無障礙瀏覽 進入關懷版