里程碑
机器人150+ tasks incl. DMC, Atari, Minecraft
物理感知
输入模态vision

DreamerV3:一个模型,一套超参,「白日做梦」横扫 150+ 任务

Danijar Hafner, Jurgis Pasukonis, Jimmy Ba, Timothy Lillicrap(Google DeepMind + 多伦多大学)。arXiv:2301.04104, 2023(Nature 2025 收录,Nature 标题改为「Mastering diverse control tasks through world models」)。 foundation_modelsworld model 线索model-based RL

🧠 一句话心智模型:让 agent 先在脑子里「想象」世界——学到环境的世界模型,然后在脑内 rollout 训练 actor 和 critic,不必每一步都去真实环境里试错。DreamerV3 的突破不在某一项 trick,而在「一套固定超参,跨 150+ 任务全打过专用算法」——RL 第一次有了「通用算法」的样子。

🎯 为什么重要:RL 一直有「调参玄学」的毛病

RL 的痛点很直接:换个任务、换个域,就得重新调超参。做连续控制的去调 Atari、做离散的去做机器人,几乎所有 SOTA 都是「针对特定域精调的专用算法」。这意味着把 RL 落到新问题上,需要大量专家经验和算力去做 hyperparameter sweep。

核心矛盾:不同域里,信号量级可以差好几个数量级(Atari 分数 vs 控制任务的 reward vs Minecraft 的稀疏奖励),同一个固定 loss 权重根本压不住。之前的世界模型算法(DreamerV2)在 Atari 上要专门调小 representation loss,在 3D 复杂视觉环境又要调大——没法用一套超参走天下

DreamerV3 给出的答案不是「更大的网络」,而是一套「信号归一化 + 损失平衡 + 分布变换」的工程组合拳,让同一个算法可以无修改地吃掉 8 个差异极大的域。

💡 核心思想:世界模型 + 在脑内训练 actor-critic

Dreamer 的关键词是「imagination」——世界模型预测未来的抽象状态序列,actor 和 critic 就在这条想象出来的轨迹上学习,完全脱离真实环境:

阶段 ① 与环境交互(只需少量真实样本) 观察 x_t 编码器 → z_t 循环状态 h_t (RSSM) Actor → a_t 送到环境 存 replay 阶段 ② 在「脑内」想象训练(不再碰真实环境,梯度全在想象里算) 从 replay 采样起始 z 世界模型预测 z_1 → z_2 → ... → z_T (T=16) Actor / Critic 在想象轨迹上更新 行为变强 回到阶段 ① 关键:actor 和 critic 的梯度完全「不污染」真实环境——这是 sample efficiency 的来源
图 1:DreamerV3 的两阶段训练。世界模型(RSSM)从真实样本学到环境动力学;之后 actor-critic 在世界模型 rollout 出来的「想象轨迹」上学习,完全脱离真实环境。

架构上是三个网络:World Model(RSSM 编码器 + 序列模型 + 解码器 + reward/continue 预测头)、Actor、Critic。三者从 replay buffer 同步训练。

🛠️ 让「一套超参」成立的关键工程

DreamerV3 论文真正发力的不是新架构,而是让三大组件对量级不敏感。下面这些技术合起来才能 fixed hyperparameters:

技术心智为什么关键
① symlog 变换对大数值取类 log 压缩;网络输出 symexp 还原reward / value 跨域差几个数量级(Minecraft 个位数,Atari 上千),压到对数空间后同一个 loss scale 就能 hold 住所有域
② Categorical 分布表示把 RSSM 的随机状态 $z_t$ 离散成一串 softmax 分类分布(而非高斯)避免 KL 散度数值爆炸,梯度更稳;且对多模态未来有表达力
③ Free bits把 dynamics loss / representation loss clip 在 1 nat 下,小于阈值就不再压防止表征塌缩成「容易预测但没信息」的退化解;让 representation loss 在简单/复杂视觉下不用分别调权重
④ 分布式 CriticCritic 输出回报分布(categorical),而不是标量值回报本身可能是多峰分布;学分布比学均值稳,且能跨量级
⑤ μ = 1% uniform mixing编码器和动力学预测头的 categorical 分布,混入 1% 均匀分布防止分布变 deterministic 后 KL 爆炸,训得更稳
🔮 直觉:为什么要 symlog?
回归一个范围 $[0, 1000]$ 的目标,均方误差会被大值主导,小值学不动;但如果你让网络去预测 $\text{symlog}(y) = \text{sign}(y)\ln(|y|+1)$,数值就被压到接近 $[-7, 7]$,小值大值同一把尺子。再配 symlog 平方损失(论文里命名为 symlog squared loss),梯度也不会因数值过大而爆炸。一个小小的变换,把「跨域 reward 量级」这个老大难直接解决。

📊 结果:8 域 150+ 任务,首个从零拿 Minecraft 钻石

任务数预算结果
Atari57200M 步超越 MuZero、Rainbow、IQN(算力只是其零头)
ProcGen1650M 步匹敌 tuned expert PPG、超越 Rainbow
DMLab30100M 步超越 IMPALA、R2D2+(10× 数据)
Minecraft1100M 步首个无人类数据、无课程,从零采到钻石
Atari100k26400K 步超越 IRIS、TWM
Proprio Control(CS)18500K 步超越 D4PG、DMPO
Visual Control(CS)201M 步超越 DrQ-v2、CURL
BSuite23超越 Boot DQN、DQN
关键洞察 — Minecraft 钻石的算力对比:此前 VPT 用了 720 块 GPU × 9 天 + 人类数据才完成;DreamerV3 只用 1 块 GPU × 9 天,从零开始,无人类数据、无课程。差距不只在于算力,更在于世界模型带来的 sample efficiency。所有训练的 Dreamer 智能体在 100M 步内都发现了钻石,而若干强基线只能进展到铁镐。

论文还给出一个反直觉的结论:模型越大,所需环境交互越少——从 12M 到 400M 参数,放大世界模型直接换来 sample efficiency。这意味着在 RL 里「scale up」第一次有了可预测的回报。

🌐 在领域中的位置

DreamerV1(2019,首个 RSSM,仅在控制) DreamerV2(2021,离散表征,Atari 200% overflow) DreamerV3(2023,通用算法 150+ 任务)⭐ 世界模型 / V-JEPA 类自监督前置 + model-based RL

DreamerV3 是model-based RL 走向「通用算法」的标志性节点。它证明了「学到环境模型 + 在模型里 imagine」这条范式不仅在某个域有效,而是跨域稳健的。后续大量工作(TWM、IRIS、TD-MPC2)都站在它肩上。

❓ 常见误区

DreamerV3 是「无模型(model-free)」还是「有模型(model-based)」?

明确的有模型 RL。它学的是一个世界模型(预测下一状态、reward、是否结束),actor-critic 在这个世界模型上训练。和 model-free 的 PPO / SAC 路线是两条平行路径。

既然在想象里训,世界模型不准怎么办?

论文 Fig. 4 展示了 45 步长期视频预测(DMLab 迷宫 + 四足机器人)——世界模型确实学到了环境的结构。此外 actor 在 imagination 中只展开 $T=16$ 步,加上 critic 学回报分布来吸收 horizon 之外的不确定性,短展开 + 分布 critic 把「模型误差累积」按住了。

「固定超参」真的一个数都不改吗?

对——同一套超参(包括 $\beta_{\text{pred}}=1, \beta_{\text{dyn}}=1, \beta_{\text{rep}}=0.1$,$\gamma=0.997$,$T=16$,free bits=1 nat 等)原样吃下 8 个域。这是论文最大的工程贡献:让 normalization / balancing / transformations 三招组合,使得超参对域不敏感。