为什么LLM让老规则系统重新焕发活力?

4 参与者

为什么LLM让老规则系统重新焕发活力?

最近看到 OpenAI 研究员 Jiayi Weng 的一篇帖子,讲的东西让我挺兴奋的--他没有训练任何新神经网络,却用 LLM 编码代理迭代纯 Python 代码,在 Atari Breakout 上打出了理论最高分 864 分,还在 MuJoCo、VizDoom 等环境里达到接近或超越当年 Deep RL 的水平。

这不是炫技,而是一个老想法的强势回归:启发式学习(Heuristic Learning,HL)


🚀 事情是怎么开始的?

Jiayi 当时在维护 EnvPool(一个并行环境库),想找一些便宜、可复现的策略来快速验证环境是否正常。训练神经网络太慢太贵,于是他尝试让 Codex(当时叫 gpt-5.4)去写和改纯代码策略

结果一发不可收拾:

  • 初始策略只有 387 分,逻辑简单到“球在左边我就往左移”;
  • 几轮迭代后,代码里开始出现:
    • 球与挡板的检测
    • 着陆点预测
    • 卡住循环处理
    • 动作探测
    • 回归测试
    • 视频回放
    • 实验日志
  • 最终分数一路冲到 864 分--理论最高分!

更夸张的是:

  • MuJoCo HalfCheetah:5 个 episode 平均分 11836.7(SOTA 级别)
  • Ant:从基础步态进化到带短期规划,轻松过 6000 分
  • VizDoom(第一人称视觉任务):仅用 cv2 + NumPy,打出均值 557 分

最关键的是:他根本没训神经网络。他维护的是一个不断生长的软件系统。


🔧 什么是启发式学习(Heuristic Learning, HL)?

简单说,HL 把“要优化的对象”从神经网络的参数,换成了:

代码、规则、状态机、控制器、MPC、宏动作 等软件结构。

传统 Deep RL 中,策略是黑箱神经网络,靠梯度下降更新; 而在 HL 中,策略是人类可读的代码,由 LLM 编码代理根据反馈直接修改。

他把这个完整系统称为 Heuristic System(HS),它不只是 policy.py,而是包含:

  • 程序化的策略逻辑
  • 显式的状态检测器和内存
  • 反馈通道(奖励、日志、失败案例、视频回放)
  • 回归测试与版本管理
  • 编码代理驱动的迭代机制

这个系统能自己看失败视频、分析日志、理解环境反馈,然后改出更好的代码。


⚖️ HL vs Deep RL:关键区别

维度Deep RLHeuristic Learning (HL)
策略形式黑箱神经网络参数人类可读的代码/规则
状态表示隐式特征(embedding)显式变量、检测器、缓存
更新方式梯度下降LLM 代理直接编辑代码
记忆方式Replay Buffer显式试验记录、失败原因、版本 diff
可解释性差,难以解释强,可直接翻译成自然语言

HL 的优势非常明显:

  • 样本效率极高:一次好的代码改动就能实现性能跳跃
  • 易加回归测试:改代码前先跑测试,避免破坏已有功能
  • 灾难性遗忘变成工程问题:不再是权重混乱,而是代码逻辑冲突,可调试
  • 过拟合可控:通过简化规则、多 seed 测试、代码审查来约束

💡 老想法为什么现在才行得通?

规则系统、专家系统早就存在,但过去维护成本极高:

加一条规则修好 A,B 就坏了;越堆越乱,最后变成“大泥球”(Big Ball of Mud),谁也不敢碰。

LLM 编码代理彻底改变了维护曲线

  • 它能理解整个代码上下文
  • 能写测试、分析失败案例
  • 能做版本管理、生成 diff
  • 能根据视频回放提出改进建议

这让大规模、可持续的规则系统迭代成为现实。


🌱 未来展望

这不只是“用代码代替神经网络”,而是把智能系统的构建方式,从“训练黑箱”转向“协同编程”

LLM 不是替代人类,而是成为规则系统的协作者与维护者。 我们不再需要手动堆砌 if-else,而是让代理在反馈驱动下,持续进化一个可解释、可测试、可维护的智能体。

也许,真正的 AGI 不一定是更大的模型,而是一个能自我迭代、自我修复的软件系统

你对这个方向怎么看? 有没有试过用 LLM 改规则系统?欢迎分享你的经验!👇

AI #LLM #强化学习 #启发式学习 #代码生成 #OpenAI #JiayiWeng

加入讨论

4 条评论

延伸阅读