DINO-WM
translate by GPT

DINO-WM:我的世界模型入门笔记

从预训练视觉特征到动作规划,尽量不借助数学公式,读懂 DINO-WM 的思路与方法。

这篇paper算是我学习世界模型的起点了,ok 开干!

(先叠个甲,很多内容是读到了就随性写下,正确性不做担保。本文的目的是尽量不涉及数学公式的前提下,把dino-wm的思路和方法讲清楚)

DINO-WM: World Models on Pre-trained Visual Features enable Zero-shot Planning, ICML 2025

世界模型应该做到什么

作者开头就写出了,他们认为一个真正的世界模型应该是什么样子:

  1. 能够基于离线预收集的轨迹进行训练(感觉是最基础的,不必多说)
  2. 支持测试时的行为优化(在线优化)
  3. 促进任务无关的推理(泛化性)

作者为了满足以上要求,提出了一种无需重建视觉世界即可建模视觉动态的新方法(好绕啊)。

把三条要求拆开看

我们来一条条拆开说明:

首先是第一条"1) 能够基于离线预收集的轨迹进行训练",作者文章中说是利用dinov2预训练的空间Patch特征,使其能够通过预测未来Patch特征从离线行为轨迹中学习。(把dinov2看作一个预训练的视觉编码器)

接着是第二条"2) 支持测试时的行为优化",文章中说测试期间使用模型预测控制与推理时最优化来达成目标,而无需任何额外信息。感觉就是在测试时固定世界模型参数,只优化动作序列。

最后是第三条"3)促进任务无关的推理"作者在6个环境上进行了zero-shot评估,涵盖非常全面,完全可以支撑这个论点。

DINO-WM 的建模流程

作者接着在文章中定义了什么是世界模型,简单来说世界模型就是:

现在看到什么 + 做什么动作 → 接下来世界会变成什么样

文章中dino-wm具体是这样做的:

  1. 图片送入dinov2变为潜在特征(Observation model)
  2. 将历史特征和动作相结合预测未来的特征(Transition model)
  3. 把未来特征变为RGB 图片(Decoder model),这一步用于可视化,不是必须的。
DINO-WM 方法图:视觉编码器、动作条件转移模型与可选解码器。
DINO-WM 方法图 · 点击查看大图 · 图片来自 DINO-WM.

上面是文章的方法图,左边和右边是dinov2为模型提供任务无关的状态表征。中间是Transition model使用vit架构,采用帧级注意力(当前帧只能读取过去帧,整帧所有 Patch 一起预测。其实llm也是这样,预测token时能看到之前的所有token)

动作经过MLP编码后拼接到每个Patch特征中,使模型能够学习动作如何改变环境。训练是直接最小化预测dinov2特征与真实下一帧dinov2特征的MSE损失。

如何搜索动作序列

在动作方面,作者使用MPC(Model Predictive Control模型预测控制)结合CEM(Cross-Entropy Method交叉熵方法)反复搜索动作序列,使预测最终状态尽可能接近目标状态。坦白来讲,交叉熵我是知道的,mpc让我想起来了去年火过一段时间的大模型mpc接口...

不扯了,这部分我感觉是一种最优搜索方法,有点抽象。在附录中作者说CEM是从分布中采样一组动作序列,初始分布设置为高斯分布,看起来是一种随机采样方法。

然后对每个采样的动作序列预测潜在空间中的结果轨迹,选择成本最低的前几个动作序列,并相应地更新分布的均值和协方差。一直这样更新循环直到满足条件或者达到迭代次数的阈值。

Newt
translate by GPT

Newt:多任务世界模型阅读笔记

从专家示范预训练到在线交互,记录 Newt 如何在潜在空间学习动力学、奖励与价值,并与 DINO-WM 作比较。

下面是世界模型第二篇文章,这里同样用不涉及数学的方式记录下文章的思路和方法。

Learning Massively Multitask World Models for Continuous Control,ICLR 2026

Newt 想解决什么

这篇文章作者同样认为世界模型应该具有泛化性,发布了一个包含200个多样化的任务benchmark。

并提出了自己的模型Newt:先看大量已有的示范轨迹,让模型学会相关任务大概在干什么以及通常应该怎么动。然后让同一个Newt真正在很多任务里与环境交互,根据获得的新经验进一步迭代模型。 (感觉思想其实和dinowm很像,都是要提出一个泛化到多个任务的模型,思路也比较类似 离线预训练 + 在线优化,有意思)

对世界模型的要求

作者认为合理的世界模型方法应该满足:

  • (i) 随着模型和数据规模的增加而扩展(scaling law)
  • (ii) 对各种观测空间、动作空间、奖励函数和任务时长具有鲁棒性(模型支持state、RGB等多种输入。奖励尺度不同,有离散回归/交叉熵和log变换。不同任务有不同的折扣因子,就是对未来的奖励进行打折,)
  • (iii) 能够充分区分不同任务
  • (iv) 在合理的时间范围内完成训练

Newt 的模型结构

Newt 方法图:多任务输入、共享世界模型和基于 TD-MPC2 的控制结构。
Newt 方法图 · 点击查看大图 · 图片来自 Newt.

上面是文章的方法图。左边是输入,Newt同时接收很多不同任务的数据,包括RGB图像、状态信息和任务文字描述。图像先经过dinov2(上一篇文章也是用这个做编码器,看来想法是一脉相承的),文字经过CLIP编码(感觉可以对应(iii) 能够充分区分不同任务 这一点,毕竟不同任务自然语言输入不同)。

然后中间是Newt World Model。 把这些不同任务的信息放进同一个世界模型中,主要是学习[ 当前状态下做什么动作,可能会得到什么奖励 ]。因为不同任务动作维度不一样,所以无效部分会被掩码mask掉。

右边是具体的世界模型结构。基于TD-MPC2,把观测编码成隐藏状态,然后学习隐藏状态如何随动作变化,同时预测奖励和价值,用这些预测来规划动作(其实就是先学习一个能够预测未来的世界模型,再利用这个模型在内部规划动作)。

Newt 学习什么

Newt主要学习以下内容:

  • Dynamics:执行动作后,下一状态会是什么;
  • Reward:这个动作能获得多少奖励;
  • Value/Q:长期来看这个动作好不好;
  • Policy Prior:在当前状态下,什么动作比较值得尝试。

看起来Newt是在潜在空间中预测未来,为控制服务。

从专家示范到在线交互

在训练时,Newt 同时学习: 当前状态 + 动作 → 下一状态 + 奖励 + 长期价值(同时看这个动作后的长期奖励,和折扣因子对应)

然后测试时选择预计回报最高的动作执行。值得一提的是,Newt的训练流程是:

专家示范预训练 → 得到初始世界模型和动作先验 → 与环境在线交互 → 收集新经验 → 持续更新世界模型和策略 (dinowm训练开始时是先随机采样,Newt也算是先用专家进行冷启动了?正好对应了(iv) 在合理的时间范围内完成训练)

与 DINO-WM 的比较

整体看下来,Newt和dinowm一样,都选择在潜空间预测未来(看来潜空间目前是对的)。两者区别在于Newt还显式学习Reward和Value,直接套用了强化学习控制的框架,直接服务于控制。

TAWM
translate by GPT

TAWM:让世界模型知道“这一步有多长”

从实习中的视频时间控制问题出发,读一篇让世界模型显式感知时间间隔的论文。

最近实习比较忙,有些文章看了没及时整理(找补忏悔 ing)。这次来看世界模型的第三篇笔记。

论文是 Time-Aware World Model for Adaptive Prediction and Control,发表于 2025 年国际机器学习大会(International Conference on Machine Learning,ICML)。

实习中的问题

之所以选这篇文章,是因为我最近在实习里用 Seedance 做视频生成,碰到了一些和时间有关的问题。能指定视频总时长,和能让动作严格发生在指定时间,其实是两回事。

比如“2.3 秒内拿起杯子”。实际使用时,这类细粒度的时间要求依然很难被严格遵守。所以我想看看:世界模型会怎么处理“时间”这件事?

论文想解决什么

世界模型(World Model)可以直观理解为:在内部预测“现在做这个动作,接下来会发生什么”。作者指出,传统方法通常在固定时间间隔下训练,因此可能适应了训练时的观测频率,却不适应部署时的另一种频率。

论文引言举了一个例子:训练时每隔 2.5 毫秒观察一次环境,部署时却每隔 20 毫秒才能获得一次观测。虽然都叫“预测下一步”,这两步实际对应的时间跨度并不一样。

某种程度上,可以把它理解为时间间隔上的分布变化。不过要注意:这是用来说明固定步长训练局限的例子,不是说本文模型只在 2.5 毫秒上训练。

文章的问题可以概括为:在不增加训练样本数量和训练步数的情况下,能不能让同一个世界模型学习不同时间尺度上的动态,并支持不同观测频率下的控制?

为此,作者提出时间感知世界模型(Time-Aware World Model,TAWM)。直觉很简单:不要让模型猜“下一步到底有多长”,直接把这段时间告诉它。

方法图解

TAWM 方法图:观测经编码器得到潜在状态,与动作、时间间隔一起输入时间感知模型,预测奖励、价值、候选动作和未来状态。
TAWM 方法图 · 点击查看大图 · 图片来自 TAWM.

左边的 oₜ 是当前时刻的观测,比如机械臂看到的画面。经过编码器 h,它被转换成潜在状态 zₜ,也就是模型内部对当前环境的表示。后面的预测都在这个表示空间中进行。

中间的 M 代表时间感知模型,包含动力学、奖励、价值和策略先验等子模型。分别可以理解为:环境怎么变化、当前能得到什么回报、长期来看值不值得,以及哪些动作比较值得尝试。

图中汇入模型的信息有三类:zₜ 是当前状态,aₜ 是当前动作,Δt 是这一步经过的时间。相比只根据状态和动作预测固定的“下一步”,TAWM 把时间间隔也作为明确条件。

例如,同样的状态和动作,当 Δt 分别为 10 毫秒和 50 毫秒时,模型需要预测两个不同时间跨度下的结果。编码器本身不需要时间条件,其余上述子模型则显式接收它。

下方橙色路径对应未来状态预测。模型先学习潜在状态的变化率,再通过数值积分(Numerical Integration,也就是把变化率累积成一段时间内的变化),更新当前状态。图里的两种更新方式是 Euler 和 RK4。

补充一下这两个名字,跳过也不影响继续往下读。

Euler 是欧拉法(Euler method)。直观理解是:下一状态 ≈ 当前状态 + 当前变化率 × 时间间隔。

RK4 是四阶龙格–库塔法(Fourth-order Runge–Kutta,第一次听说,名字还挺酷)。它会估计起点、两个中间试探状态和末端试探状态的变化率,再按规定权重合并。

相当于欧拉法只看开始时的变化趋势,RK4 还会探一下中间和末端的趋势。不过这里算的是潜在状态的变化率,不一定是物理意义上的速度或加速度,也不需要真的观察到那些未来状态。

上面的欧拉公式只是直觉示意。论文实际使用经过对数缩放的时间因子 τ(Δt),而不是直接乘原始时间间隔,以稳定训练。

更新后得到的 ẑ(t + Δt),就是模型预测的、经过这段时间后的状态。橙色旁路表示当前状态会直接参与更新:在原来的状态上,加上模型估计的变化。

最右边带帽子的 r、q、a,分别对应预测奖励、长期价值和策略先验给出的候选动作。后续还要通过规划,比较动作带来的预计回报,再决定执行什么。

还有一个很重要的点:不只是给模型多加一个时间输入,训练时也要让它见到不同时间间隔。作者会在每轮环境交互开始时抽取一个间隔,并在这一轮里保持不变。

比如在 Meta-World 这个机械臂任务测试环境中,TAWM 混合使用 1–50 毫秒的间隔训练。这样,时间条件才有对应的训练数据,而不是只在部署时突然改变它。

作者的对比里,Euler 在多数 Meta-World 任务中表现更好;涉及偏微分方程(Partial Differential Equation,PDE,这里用于描述一个量随空间和时间的变化)的控制任务中,RK4 的收益则随任务和时间间隔而变化,并不是始终更好。

这里“相同训练样本数和训练步数”也不等于“相同实际耗时”:RK4 的更新需要更多模型计算。

我的看法

基本这篇文章就到这里了。相对来说,感觉没有前两篇那么“惊艳”,但问题更具体,也更贴近我实际工程中碰到的困惑。

不过,读到后面发现,好像还是没有直接解决我遇到的问题(笑)。TAWM 主要回答的是“过了这么久以后,环境会变成什么样,以及应该怎么控制”;我想问的却是“能不能让生成视频里的动作,按指定时间发生”。

两者都和时间有关,但不是同一个问题。这篇论文没有直接验证视频生成里的动作时间约束。对我来说,它更像一个提醒:如果希望模型认真对待时间,训练数据和模型的条件输入里,也应该认真对待时间。

论文和演示可以在作者项目页查看。