打开软件,点击"?增长 星野光头哥哥"按钮,从电脑当选择《星野光头哥哥》文件,或直接将其拖拽至软件界面中。
软件会自动鉴别并解析导入的文件,您可凭据界面提醒选择所需的保留蹊径或下载体式。
确认无误后,点击"起头下载/处置"按钮。期待进度条读取结束,即可在设定的文件夹中查看下载好的正版文件。
OpenAI翁家翌:梯度之表,下一个AI训练范式有着落了?,星野光头哥哥
机械之心编纂部
若是有一天,一段由 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 之后的下一个范式吗?
异常景象
在业余功夫守护 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 至少必要两个操作维持:
吸收反。喊研率О堋⑿氯罩尽⑿ reward 写回系统。压缩汗青:把一堆部门补丁折回更单一、更可守护的暗示。
这就把 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-> 天生视频或曲线-> 看失败模式-> 改战术-> 简化代码并做回归
到这里,工作的状态已经变了。最后产出的器材从一个战术文件,造成了一套还能持续改的尝试系统。它有探测器,有纪录,有回放,有失败模式,也有下一轮该怎么改的线索。
有关 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 建改作为。
有关 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 做的是把环境拆成可守护的幼法式系统:射击游戏的对准 / 躲避,接球游戏的反弹,躲避游戏的地位规定,环境包装器细节,以及每个环境自己的失败尝试纪录。
有关 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 装好,用来查抄前面提到的几个代表性了局。
复现入口: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
| 软件名称 | 星野光头哥哥 |
| 软件版本 | v10.48.123 |
| 软件大幼 | 8.74GB |
| 软件分类 | 工具软件 |
| 运行平台 | Android/ios/winall/win7/win10/win11 |
| 软件授权 | 免费版 |
1、打开软件,点击"?增长 星野光头哥哥"按钮,从电脑当选择《星野光头哥哥》文件,或直接将其拖拽至软件界面中。
2、软件会自动鉴别并解析导入的文件,您可凭据界面提醒选择所需的保留蹊径或下载体式。
3、确认无误后,点击"起头下载/处置"按钮。期待进度条读取结束,即可在设定的文件夹中查看下载好的正版文件。