-
构建一个比自己更聪明、能够自我改进的AI,然后退休。
-
感觉rl和游戏的关系真的很紧密, no game no life bush
一、世界模型的历史
- 古希腊人 Ptolemy 提出:人类识别物体靠收集内部的 蓝图/模板 (
blueprints/templates) - 后继者补充:心理意象(
mental images)允许人类在没有真实物体的情况下想象未来、操作图像、规划动作序列 - 这些观点距今已有 2000 多年历史
2. 神经网络世界模型的先驱
- 1987 年 :Paul Werbos 提出两个网络的架构
- 一个是 controller(控制器),感知环境输入、发出动作
- 另一个是 system identification(系统辨识网络) ,
预测 controller 动作的后果 - 用反向传播为 controller 提供好的梯度,使其动作能最大化 model 预测的奖励
- 1987 年 Paul Munro 也提出过非常类似的想法
- 1990 年 :Schmidhuber 对当时的"世界模型"不满意,提出更一般的框架
- 面向部分可观测环境,因此需要循环神经网络或类似记忆系统
- 关键:controller 自己也接收 reward 信号作为输入,而不是只最大化 reward
- 这一设计对 meta-learning 至关重要------controller 要能
改进自己的学习算法,就必须看到外部的评价信号
3. 多模态 pain sensor
- 机器人有"疼痛传感器",不止一个 reward 信号,而是多模态的疼痛信号
- 每个关节、每个部位对应一个传感器,机器人能精确定位"我现在哪个部位碰到了障碍物"
- 把所有 error 信号和 reward 信号都作为输入,再把 controller 的输出送到世界模型中预测未来的输入(包括 reward、神经信号、视频、音频、触觉等)
二、Controller vs World Model
世界模型初始是stupid的,什么都不知道。Controller 该做什么来改进世界模型?
答案:Controller 必须变成科学家,生成能带来新数据的动作序列。
2. 两种目标函数
| 角色 | 目标 | 动作 |
|---|---|---|
| World Model | 最小化预测误差(MSE) | 调整连接权值以更好预测 |
| Controller | 最大化同样的误差 | 制造让 model 感到意外的环境区域 |
形成了一个 Min-Max 对抗游戏(220 年前 Gauss 和 Legendre 在做线性回归/人工神经网络时在用同一招)。
3. Controller 的实现
- 隐藏层使用 Gaussian 单元(含可学习的均值和方差),通过梯度下降学习
- 当 world model 把某部分环境预测得很准,controller 会"感到无聊"(没新 reward),于是去探索另一片区域
- 当年 Schmidhuber 把这个称为 artificial curiosity
- 今天学界把它叫做 generator-adversarial network
4. 局限
1990 年的版本是millisecond by millisecond 规划 :在 world model 中模拟可能的动作序列,挑一个能获得高预测奖励的序列执行。这在简单环境里能用,但本质上是mental rollout,太简单。
三、可预测性最大化Pmax:1992 年 JEPA 的真正前身
不要预测每一个像素,而是预测输入的抽象表示(abstract representations):
- 这些内部表示丢掉一些信息,但仍然是有信息量的
- 同时仍然可预测 ,并且尽量多地保留输入信息
2. 损失函数的双项设计
训练两个网络,最小化两类误差:
- 预测误差:预测下一个抽象表示的误差
- 信息保持项 (DL / D1 / D2,1992 年论文中的命名):强制保留尽量多的输入信息,防止 collapse(即内部表示变得超级可预测但不携带任何输入信息)
3. 与现代架构的对应
1992 Pmax(DL + 预测误差)
↓ 去除 DL,引入 implicit architectural tricks
2020 BYOL(Build Your Own Latent,DeepMind / Michael Valko)
↓ 沿用 BYOL tricks
2023-2024 I-JEPA / V-JEPA
↓ 2025
2025 Le-JEPA(Valko 团队):完全丢弃 tricks,回到 1992 的 explicit anti-collapse regularizer
Le-JEPA full circle return ------学界花了 5 年探索 BYOL 打开的新范式,最终又回到了 1992 年 Pmax 论文中那个显式信息最大化项的设计。
maybe JEPA / Pmax 这类方法只是用来提取可预测的抽象表示的技术,并不是通向 AGI 的有前途路径。
四、不要只预测潜空间,要预测一切
1. "Holy Data" 原则
- 人的一生只有一次 trial(single lifetime),要在这一个 trial 中最大化奖励
- 视频、音频等高维数据中包含大量与强化学习无关的算法信息,可以学到世界是三维的、有重力等规律
- 这一切都通过预测每一个像素学到
2. 可预测性
- 你不预先知道世界哪些东西可预测、哪些不可预测
- 所以策略就是
predict everything - 这样得到的内部表示会自然学会:
- 预测每个像素的期望值
- 预测像素上的概率分布
- 有些预测可能需要记忆 1000 步之前的信息 ------
好的学习算法会通过梯度下降自动学会这种长程依赖
3. 数据存储的策略
| 层级 | 内容 | 价值 |
|---|---|---|
| 原始数据(holy data) | 所有像素、所有传感器信号 | 极占存储,但蕴含世界唯一完整信息 |
| 算法/压缩模式 | 从原始数据中提取的规律、规则 | 占存储小,是真正的价值所在 |
- 人脑按每个突触 4-5 bit 估算,足以完整保存一个人一生的高分辨率经验
- 存储够大就不要扔任何原始数据
- 在
大量的原始数据之上,还有微小的算法,从数据中提取模式和规律 - 目标:发现新的压缩模式,比之前的压缩更好地压缩整个数据集,尽可能的保留原始特征信息
五、Controller 作为 Prompt Engineer
1. 为什么不用 mental rollout 模拟一切
- 1990 年那种逐毫秒展开 simulation 显然不可行
- 真实世界规划靠的是抽象、层次化、sub-program 的复用
举例:从当前位置去里约热内卢,不是模拟手指怎么动、怎么拿手机、怎么叫出租车......而是调用已有的子程序:
当前位置 → 出租车站 → 机场 → 飞行 9 小时 → 里约
规划时只看少量高层未来节点(junctions),而不是毫秒级动作。
2. 架构设计
┌──────────────────┐ ┌──────────────────┐
│ │ prompt vectors (问题) │ │
│ Controller │ ─────────────────────► │ World Model │
│ (Prompt Eng.) │ │ (RNN / 大模型) │
│ │ ◄───────────────────── │ │
└──────────────────┘ 回答(内部表示激活) └──────────────────┘
│
▼
策略 / 动作
- Controller 学习向 world model 发送 prompt(数字向量序列)
- Prompt 的作用:寻址(address)world model 学到的相关内部表示
- 重要的是输入 prompt 的连接 和读取返回结果的连接都属于 controller
- Controller 通过大量任务训练,学会做更好的 prompt engineer :
- 发送更好的"问题"
- 更好地解读返回的"答案"
- 忽略不相关的部分,关注当前任务重要的部分
3. 核心测试(Ace Test)
一个诚实的检验:controller 忽略 world model 时,能否比向 world model 发几个 prompt 后学到新任务更快?
- Prompt 是 controller 自己发明的语言,不是英语
- 返回的信息是算法信息,可以让 controller 编辑策略的几个 bit 然后获利
- 这种方式可以以任意可计算的方式利用 world model 隐藏单元中的信息
4. 与 DeepSeek 的联系
Schmidhuber 在此提到:2015 年的 Learning to Think 工作,与 2025 年 DeepSeek 的某些做法相当类似(暗示 DeepSeek 的某次重大进展受其启发)。
5. LLM 中的对应
现代大语言模型已经在做这件事的受限版本:
- Prompt 不再是任意数字向量,而是自然语言(通常是英语,也可以是图像等)
- LLM 内部已经有大量学到的"世界知识"
- 输入 prompt 唤醒相关内部表示,输出回答
- 这就是 controller 当 prompt engineer 的现实实例
六、循环神经网络作为通用计算机
1. 理论能力
- 几个 recurrent 连接就能实现 NAND gate
- 由 NAND gate 构成的 ALU 可以模拟笔记本的算术单元
- 因此 RNN 至少和笔记本一样强大
- 现实中没有真正的"通用计算机"(需要无限存储),但 RNN 总是可以按需增加存储,接近 universality
2. 两种使用方式
| 方式 | 年份 | 思路 | 适用场景 |
|---|---|---|---|
| 毫秒级 rollout 规划 | 1990 | 逐毫秒模拟,巨型搜索树 + 函数逼近剪枝 | 棋类等简单场景 |
| Prompt Engineering | 2015 | Controller 向世界模型发问、读回答 | 真实世界、抽象层次任务 |
毫秒级 rollout 在简单场景(棋盘游戏)够用,但真实世界完全不行------必须有抽象和层次化,把未来规划分解为 chunks。
七、问答环节要点
Q1:从毫秒动作到抽象动作怎么过渡?
答:使用通用 RNN 作为 world model 时,world model 看到所有过去的动作和所有过去的输入------它不仅看上一个毫秒,还看五分钟前。内部会自然形成这样的隐藏单元:每当有人说"我想建一个忽略像素细节的世界模型"时就激活。
RL prompt engineer 的任务是找到那些高层抽象单元,结合当前任务(可能是"花一天去里约"这种长程任务)一起寻址。
Q2:如何把 25 年前的层次化、符号化高层规划工作与现代模型结合?
答:先回顾 Dyna 架构------它用 lookup table 做预测,没有神经网络,本质上也是 rollout 规划。
Schmidhuber 提到他 1990-1991 年就做过 sub-goal generator:
Start + Goal → Subgoal Generator → Subgoal
↓
┌───────────┴───────────┐
▼ ▼
Evaluator1 Evaluator2
(Start → Subgoal) (Subgoal → Goal)
预测难度 → 代价 a 预测难度 → 代价 b
- 两个 Evaluator 副本预测从 Start→Subgoal 和 Subgoal→Goal 的难度(代价)
- Subgoal Generator 通过梯度下降学习生成好的 subgoals,使两段代价之和最小
- 这就是 1990 年代的层次化跳过长动作序列的设计
但 Schmidhuber 认为 2015 年的 Learning to Think 更通用------它通过通用 RNN 和 prompt engineering,可以学习任意可计算的算法,处理任意子问题。
八、Schmidhuber 总结的方法论选择
| 维度 | 路线 A:Pmax / JEPA 路线 | 路线 B:预测一切 + Prompt Engineering |
|---|---|---|
| 预测目标 | 抽象潜空间表示 | 原始像素的完整分布 |
| 模型使用方式 | 学习可预测的内部表示 | 作为被 controller 寻址的知识库 |
| Controller 角色 | 隐式 / 不强调 | 显式的 prompt engineer |
| 信息利用 | 丢失部分像素细节 | 不扔任何 holy data |
| 规划方式 | 隐式 / 抽象 | 高层 chunk + 子程序复用 |
| Schmidhuber 评价 | 只是提取抽象表示的技术 | 才是通往 AGI 的方向 |
附录
| 原文 | 中文 |
|---|---|
| World Model | 世界模型 |
| Controller | 控制器 |
| System Identification | 系统辨识 |
| Artificial Curiosity | 人工好奇心 |
| Predictability Maximization (Pmax) | 可预测性最大化 |
| Predictable Maximization (PMax) | (同上的不同写法) |
| BYOL (Build Your Own Latent) | 构建你自己的潜空间 |
| JEPA / I-JEPA / V-JEPA / Le-JEPA | 联合嵌入预测架构系列 |
| Prompt Engineering | 提示工程 |
| Learning to Think | 学习思考 |
| Holy Data | 神圣数据(不可丢弃的原始数据) |
| Collapse | (表征学习中的)坍缩 |
| Anti-collapse regularizer | 抗坍缩正则化项 |
| Rollout | (推演/展开) |
| Sub-goal Generator | 子目标生成器 |
| Evaluator | 评估器 |
| Dyna | Sutton 1990 年的经典集成规划与学习的架构 |