世界是一个损失函数(续)——从 ECHO 到 World Model:也许 Planner 与 Simulator 从来不是两个东西

June 4, 2026

引言

两周前写完《世界是一个损失函数—— echo 与 grpo 中那些被浪费的token》之后,我一直觉得 ECHO 最有趣的地方还没有被完全说透。

表面上看,ECHO 做的事情非常简单:

  • GRPO 只在 action token 上计算 loss
  • ECHO 额外在 observation token 上增加一个交叉熵损失

代码层面的改动甚至只有一个 mask。

但奇怪的是:

这个额外的 next-token prediction loss,居然提升了 policy。

为什么?

如果只是把它理解成:

「利用了更多 token」

那么实验结果未免有些过于强烈。

今天看到李飞飞刚发的关于世界模型(World Models)的长文:世界模型的功能分类学,突然意识到:

ECHO 可能不仅仅是一篇 RL 论文。

它也许触碰到了一个更大的问题:

为什么预测世界,会提升行动能力?


一、李飞飞的分类学:Renderer、Simulator、Planner

李飞飞将当前被称为 World Model 的系统划分为三类:

类别输出回答的问题
RendererObservation我会看到什么?
SimulatorState世界实际上是什么?
PlannerAction下一步应该做什么?

其背后的统一结构来自 POMDP:

Agent Action State Observation Agent

不同世界模型的区别,本质上是:

它们选择预测这个循环中的哪一部分。


二、ECHO 中隐藏的 POMDP

CLI Agent 的 rollout:

command terminal output command terminal output → ...

可以自然对应为:

Action Observation Action Observation

文件系统状态则对应隐藏的 State。

需要强调:

这里真正重要的不是 POMDP 映射本身。

因为几乎任何交互系统都能映射到 POMDP。

真正重要的是:

Loss 落在循环的哪里。


标准 GRPO:

Loss Action Tokens

ECHO:

Loss Action Tokens + Observation Tokens

区别仅此而已。

然而效果却显著提升。

这意味:

ECHO 第一次让 Observation 端成为训练目标的一部分。


三、世界模型的一个操作性定义

李飞飞从功能角度定义世界模型:

学习空间与时间中的统计结构。

这是一个描述性定义。

而 ECHO 给出了另一种更操作化的定义:

如果一个模型能够预测:

Action Observation

之间的映射,

那么它就在学习世界。

对于 CLI Agent:

ls 会出现哪些文件 grep 会返回哪些内容 rm 会产生什么后果

这些都属于:

动作导致什么环境反馈。

换句话说:

世界模型未必一定是物理引擎。

它也可以是:

关于环境反馈的预测能力。


四、失败为什么有价值

李飞飞认为:

模拟器最大的价值之一,是允许失败。

因为:

撞车 获得数据 学会不撞车

而 ECHO 做的是:

报错 获得数据 学会不报错

标准 GRPO:

失败轨迹几乎只有负奖励价值。

ECHO:

失败轨迹仍然包含:

  • traceback
  • error message
  • 文件信息
  • 编译信息

这些都是环境因果结构的直接体现。

于是:

失败不再只是负样本,失败变成世界模型监督信号。


五、Verifier-Free 的真正含义

论文最令人震惊的结果之一:

关闭 GRPO。

仅保留:

L_{env}

模型依然变强。

这意味着:

预测环境 策略提升

在某些条件下是成立的。

而且:

中间没有奖励。


这实际上触碰到了一个更深的问题:

到底是奖励塑造智能,

还是预测塑造智能?

传统 RL 的答案:

Reward Policy

World Model 路线的答案:

Prediction Policy

ECHO 站在两者交汇的位置。


六、World Model 与 Policy 的边界开始模糊

到这里为止,

我们仍然可以说:

World Model + Planner

是两个模块。

只是 ECHO 同时训练它们。

但问题在于:

Transformer 本身似乎并不这样认为。


对于 Transformer:

整个 rollout 其实只是:

command_1 stdout_1 command_2 stdout_2 ...

一个 token 序列。

模型内部并不知道:

这是 Action 这是 Observation

这些区分都是训练者后加上的。

对于模型而言:

它们都只是 token。


唯一的区别在于:

Loss 打在哪里

GRPO:

Action Token 参与梯度

ECHO:

Action Token + Observation Token 参与梯度

模型结构没有变化。

数据没有变化。

Rollout 没有变化。

变化的只有监督信号。


七、也许世界模型不是模块,而是训练目标

这是 ECHO 最值得深思的地方。

在经典强化学习里:

World Model 负责预测 Planner 负责决策

两者通常是不同模块。

Dreamer 如此。

MuZero 如此。

机器人系统也大多如此。


但 Transformer 提供了另一种可能。

对于它而言:

预测未来 Observation:

Predict Future Observation Tokens

和预测未来 Action:

Predict Future Action Tokens

本质上是同一种操作:

Predict Future Tokens

于是一个更激进的视角出现了:

World Model 也许不是一个模块。

而是一种训练目标。

当我们要求模型预测:

世界接下来会发生什么

世界模型能力出现。

当我们要求模型预测:

自己接下来该做什么

策略能力出现。

两种能力可能来自同一个预测器。


八、从边界崩塌到边界消失

李飞飞认为:

Renderer、Simulator、Planner 的边界正在崩塌。

例如:

同一个 Marble 模型同时承担:

  • 渲染
  • 模拟

两种职责。


ECHO 暗示的则是另一种崩塌。

不是:

多个模块 被统一到一个模型

而是:

多个能力 本来就是同一种学习过程

对于 Transformer:

预测世界:

What Happens Next

预测行动:

What Should I Do Next

可能都只是:

What Token Comes Next

的不同表现。


九、世界是一个损失函数

于是我们终于可以重新理解标题。

上篇文章中:

「世界是一个损失函数」

更像一句口号。

现在它有了更精确的含义。


对于学习系统而言:

世界并不是一个对象。

世界是:

那些能够产生梯度的反馈。

哪里产生损失,

哪里就被模型当成现实。


标准 GRPO:

Reality = Reward

ECHO:

Reality = Reward + Environment Feedback

更进一步:

如果 Planner 与 World Model 最终只是同一个预测器的不同侧面。

那么:

世界模型未必是一个额外模块。

它可能只是:

把 Loss 放在世界反馈上。


十、结语

李飞飞告诉我们:

世界模型正在统一渲染、模拟与规划。

ECHO 告诉我们:

世界反馈本身就是监督信号。

而更进一步的问题是:

如果一个 Transformer 同时能够预测:

  • 世界会发生什么
  • 自己应该做什么

那么:

Planner 与 Simulator 的边界,

是否本来就是人为划分出来的?


也许未来统一世界模型真正统一的,

并不是:

Renderer + Simulator + Planner

三个模块。

而是:

一个足够强大的预测器

在不同损失函数的照射下,

同时学会:

看见世界 理解世界 预测世界 改变世界

如果真是如此。

那么 ECHO 最重要的发现,

或许不是利用了被浪费的 token。

而是在无意间揭开了一件更大的事情:

World Model 与 Policy Learning,可能从来就不是两件事。