1. 从"看懂视频"到"动手做事":DreamZero 到底在解决什么
第一次看到"把 14B 视频世界模型变成可实时闭环执行的零样本机器人策略"这个说法,我的直觉是:这又是一篇把生成模型硬往机器人上套的工作。但仔细拆完它的思路之后,我改变了看法——它真正想解决的,是一个困扰具身智能很久的断层问题:视频生成模型明明"见过"海量物理世界,却没法把这些知识直接变成机器人能执行的动作。
传统的做法是这样的:先训一个视频预测模型,让它学会"下一帧长什么样";再单独训一个策略网络,让它学会"当前状态该输出什么动作"。这两步之间隔着一道墙,视频模型学到的物理直觉很难直接迁移到动作空间。而 DreamZero 的核心主张是:视频世界模型本身就可以被当作策略来用,不需要再额外蒸馏一个动作头,只要把"预测未来帧"这件事和"输出动作"在同一个闭环里对齐起来。
这个思路的价值在于零样本泛化。所谓零样本,指的是机器人在训练时没见过的新任务、新物体、新场景下,依然能靠世界模型对物理规律的建模能力直接完成任务。这跟大语言模型靠海量文本获得通用推理能力是同一个逻辑——世界模型靠海量视频获得通用物理推理能力。
适合读这篇内容的人大概有三类:一是做具身智能、机器人学习的研究者,想搞清楚视频世界模型怎么落地到闭环控制;二是做多模态大模型工程的开发者,关心 14B 这种量级的模型怎么做到实时推理;三是对"世界模型"这个概念好奇、想知道它和普通视频生成有啥区别的技术爱好者。我会尽量把原理讲透,同时把工程上真正卡人的地方说清楚。
需要先说明一点:下面涉及的具体实现细节,凡是原始描述里没写死的部分,我会基于这个方向上的常见工程实践做合理补充,并明确标注哪些是推断。毕竟这类工作各家实现差异很大,我不想给你一个"看起来确定其实是我编的"的答案。
2. 视频世界模型当策略用,为什么以前没人这么干
2.1 世界模型和策略网络的分工是怎么形成的
要理解 DreamZero 的突破点,得先搞清楚为什么过去大家习惯把世界模型和策略分开。世界模型(World Model)这个概念本身不新,早期在强化学习里就有,典型代表是在潜空间里做前向预测、再基于预测做规划。它的定位一直是"环境的模拟器"——你给我当前状态和动作,我告诉你下一个状态是什么。
策略网络(Policy Network)则是另一套东西,输入观测、输出动作,直接决定机器人怎么动。这两者分开训有很现实的原因:世界模型的训练数据是海量视频,不需要动作标签;策略网络的训练需要动作标签,数据量小得多。数据来源不同、目标函数不同,自然就分开了。
但分开的代价是明显的。世界模型学到的物理知识(比如"杯子被推会滑动""门被拉会转")被困在像素空间里,策略网络要从零开始学这些常识,样本效率极低。你在仿真里训一个抓取策略可能要几百万步,而人类看几个视频就会了。这个差距的根源,就是知识没有在模型之间流动。
2.2 把预测目标直接对齐到动作空间
DreamZero 的关键动作,是让视频世界模型在预测未来帧的同时,把"要产生这个未来所需要的动作"也一并预测出来。换句话说,模型不只是在回答"下一帧是什么样",而是在回答"要让世界变成这样,机器人该做什么"。
这个转变听起来简单,实现上却有个核心难点:视频帧是连续的像素,动作是低维的控制量,两者的表示空间差了好几个数量级。常见的处理方式是引入一个动作编码器,把动作映射到和视频 latent 同一维度的空间,然后在世界模型的 transformer 里让两者做交叉注意力。这样模型在预测下一帧 latent 的时候,动作 latent 是作为条件参与进去的,反向就能从"想要的未来"推出"需要的动作"。
这里有个容易踩的坑:动作编码器和视频编码器的 latent 维度如果不匹配,交叉注意力会退化成近似恒等映射,模型学不到真正的动作-视觉关联。实践中通常会让动作 latent 维度对齐到视频 patch 的 embedding 维度,而不是强行压缩到很小的值。
2.3 零样本能力从哪来
零样本泛化的底气,来自视频世界模型见过的数据规模。14B 参数、海量互联网视频,意味着模型对"物理世界通常怎么演化"有极强的先验。当机器人面对一个新任务时,它不需要重新学习物理规律,只需要在闭环里不断预测"如果我这么做,世界会变成什么样",然后选那个预测结果最接近目标的动作。
这本质上是一种基于模型的规划(Model-Based Planning),只不过规划器换成了大模型,而且是在 latent 空间里做,速度快得多。跟传统 MPC(模型预测控制)的区别在于,传统 MPC 需要精确的动力学模型,而这里用的是学出来的、带泛化能力的神经世界模型。
3. 14B 模型跑实时闭环,工程上到底难在哪
3.1 实时闭环的硬性时间预算
机器人闭环控制的频率要求,是这类工作最容易被低估的约束。一个机械臂做精细操作,控制频率通常要到 10Hz 以上,也就是每 100 毫秒必须出一个动作。人形机器人做动态平衡,可能要 50Hz 甚至更高。这意味着从观测进来到动作出去,整个前向推理必须在几十毫秒内完成。
14B 参数的模型,就算用 FP16,光权重就占 28GB 显存,单次前向在高端 GPU 上也要几百毫秒。直接跑,频率连 2Hz 都到不了,根本没法闭环。所以 DreamZero 这类工作真正的技术含量,一大半在怎么把这个庞然大物压进实时预算里。
3.2 让世界模型"少算几步"的几种思路
我梳理下来,常见的加速手段有这么几类,它们往往组合使用:
| 加速手段 | 核心思路 | 代价 |
|---|---|---|
| 潜空间预测 | 不在像素空间预测,在压缩后的 latent 上做 | 需要好的视频 tokenizer |
| 动作分块 | 一次预测未来 K 步动作,而不是每步都推理 | 反应延迟增加 |
| 缓存复用 | 相邻帧的视觉特征高度相似,复用 KV cache | 实现复杂,易出错 |
| 蒸馏/量化 | 用更小的学生模型或低比特权重 | 精度损失 |
| 异步推理 | 推理和控制解耦,用预测填补推理间隙 | 需要预测补偿机制 |
其中**动作分块(Action Chunking)**是最实用的一个。与其每 100ms 推理一次出一个动作,不如一次推理出未来 8 到 16 步的动作序列,然后让底层控制器按顺序执行。这样推理频率可以降到 1-2Hz,而实际控制频率还是高的。代价是遇到突发情况反应会慢半拍,所以通常配合一个轻量的反应式控制器兜底。
3.3 潜空间预测为什么是刚需
在像素空间预测未来帧,对 14B 模型来说太奢侈了。假设输出 256x256 的 RGB 帧,一帧就是 20 万维,预测 16 帧就是 300 多万维的输出。而如果先用视频 tokenizer 把每帧压成比如 16x16x8 的 latent,维度直接降两个数量级。
这里的关键是 tokenizer 的质量。它必须保留足够的物理细节——物体的位置、姿态、接触关系,这些是策略决策的依据。如果 tokenizer 压得太狠,把"杯子边缘和桌沿的距离"这种关键信息丢了,世界模型预测得再准也没用。所以实践中 tokenizer 往往是在大规模视频上单独训的,而且会针对机器人数据做微调。
我的经验是:tokenizer 的重建损失不能只看 PSNR 这类像素指标,更要看下游任务的表现。有时候 PSNR 高一点,但关键区域的细节糊了,策略性能反而掉。评估 tokenizer 最好直接拿它训一个小策略看效果。
4. 闭环执行里那些"论文不会写"的细节
4.1 预测误差累积怎么破
闭环执行最怕的是误差累积。世界模型每一步预测都有小误差,如果一直用自己预测的结果当下一步输入(自回归),误差会像滚雪球一样放大,跑几十步之后预测的画面可能已经跟现实完全脱节了。
解决办法的核心是用真实观测不断校正。每执行几步动作,就重新从真实传感器拿一次观测,把世界模型的状态重置到真实状态上。这跟 SLAM 里的回环检测是一个道理——不能纯靠里程计积分,得时不时用绝对观测纠偏。
具体到实现,通常有两种策略:一是固定间隔重观测,比如每执行 4 步就重新编码一次真实帧;二是自适应重观测,当模型预测的不确定性(比如输出分布的方差)超过阈值时触发。后者更省算力,但需要模型能输出可靠的不确定性估计,实现难度更高。
4.2 动作平滑与抖动抑制
大模型输出的动作序列,往往不够平滑。相邻两次推理出来的动作可能在衔接处跳变,机器人执行起来会抖。这在精细操作里是致命的——你让机械臂去插一个孔,动作一抖就插不进去。
常见的处理是在动作序列之间做插值或滤波。简单点用线性插值,好一点用样条插值保证速度连续,再讲究一点会加一个低通滤波。但滤波会引入延迟,所以参数要调得很小心。我见过不少项目,模型本身没问题,就是动作后处理没做好,导致实机效果大打折扣。
一个实用技巧:在训练时就让模型输出动作的"速度"而不只是"位置",然后在执行端做积分。这样即使位置有噪声,积分后也会平滑很多。代价是积分会累积漂移,需要定期用位置反馈校正。
4.3 安全边界不能只靠模型
再强的世界模型,也可能在某个没见过的场景下输出危险动作。机器人不像聊天机器人,说错话顶多尴尬,动错手可能撞坏东西甚至伤人。所以闭环系统里必须有一层独立于模型的安全约束。
这层约束通常是硬编码的:关节角度限位、力矩上限、工作空间边界、碰撞检测。这些不依赖模型,是物理层面的兜底。模型输出的动作要先过这层检查,超限就截断或拒绝。听起来很土,但这是实机部署的底线,任何"模型很聪明所以不需要"的想法都是危险的。
5. 零样本泛化的边界:它能做什么,不能做什么
5.1 泛化的三个层次
零样本泛化这个词容易被滥用,实际上它分好几个层次,难度天差地别:
- 新物体泛化:训练见过抓杯子,测试抓没见过的瓶子。这个相对容易,因为物理规律一样,只是外观变了。
- 新任务泛化:训练见过"推",测试要求"拉"。这个难一些,需要模型理解动作的语义。
- 新场景泛化:训练在桌面,测试在厨房台面。这个最难,光照、背景、相机视角全变了。
DreamZero 这类基于大规模视频世界模型的方法,理论上三个层次都能沾一点,但实际表现通常是新物体最好、新任务次之、新场景最弱。原因在于视频数据虽然多样,但机器人视角的数据分布和互联网视频还是有差距,域间隙(domain gap)在场景层面最明显。
5.2 什么任务适合,什么任务不适合
从任务特性看,适合世界模型做零样本的任务通常有这些特点:物理规律清晰、视觉反馈充分、容错空间大。比如推物体到指定位置、开门、把东西放进容器,这些任务的成功与否能从视觉上直接判断,模型可以靠预测-校正的循环慢慢逼近目标。
不适合的任务则相反:需要精确力控、视觉反馈不足、容错极小。比如拧一个很紧的螺丝、插一个间隙只有零点几毫米的连接器,这些任务光靠视觉预测不够,需要力觉反馈,而且误差容忍度极低。世界模型在这类任务上目前还很难跟专门的力控策略比。
5.3 评估零样本能力时的常见陷阱
评估这类系统时,有几个坑我踩过或者见别人踩过。第一个是测试集泄漏:如果测试任务在训练视频里出现过类似场景,那就不算真正的零样本。第二个是成功标准太松:比如"把物体推到目标区域",区域划得很大,随便推推就成功,这种结果没有说服力。第三个是忽略失败模式:只报成功率,不分析失败案例,看不出系统的真实边界在哪。
我的建议是,评估时一定要有分布外(OOD)测试集,而且要明确划分 OOD 的维度——是物体 OOD、任务 OOD 还是场景 OOD。同时要记录失败模式,比如是预测发散、动作抖动还是安全约束触发。这些信息比一个孤零零的成功率数字有价值得多。
6. 如果想自己复现,从哪下手
6.1 算力门槛的现实评估
先说结论:完整复现 14B 级别的世界模型闭环,个人基本不现实。训练需要几十上百张高端 GPU,推理虽然可以单卡,但也要 40GB 以上显存才跑得动 FP16。所以对大多数人来说,更现实的路径是用现成的开源世界模型做下游适配,而不是从零训一个。
如果只是想验证思路,可以退而求其次:用 1B 到 3B 量级的小世界模型,在仿真环境里跑闭环。虽然泛化能力差很多,但整个 pipeline——tokenizer、动作编码、闭环校正、安全约束——是通的。把 pipeline 跑通之后,再换大模型就是替换组件的事。
6.2 最小可复现的 pipeline 拆解
一个能跑起来的最小系统,大概需要这几个模块:
- 视频 tokenizer:把观测帧编码成 latent。可以直接用开源的视频 VAE,或者针对机器人数据微调。
- 世界模型主干:预测下一帧 latent。开源的选择有基于 transformer 的视频预测模型。
- 动作编码器:把动作映射到 latent 空间,和视频 latent 对齐。
- 闭环控制器:负责重观测、动作平滑、安全约束。
- 仿真环境:用来做快速迭代,比实机便宜太多。
这五个模块里,最容易出问题的是 3 和 4。动作编码器的对齐没做好,模型学不到动作-视觉关联;闭环控制器没写好,实机效果和仿真差十万八千里。
6.3 仿真到实机的鸿沟怎么填
仿真里跑得再好,搬到实机往往一塌糊涂。这个鸿沟主要来自几个方面:视觉差异(渲染和真实照片的差距)、动力学差异(仿真的摩擦、间隙、延迟和真实不一样)、传感器噪声(真实相机有噪声、有延迟)。
填鸿沟的常见手段是域随机化(Domain Randomization):在仿真里随机化光照、纹理、物理参数,让模型见过足够多的变化,从而对真实世界的差异不敏感。另一个手段是实机微调:在仿真预训练的基础上,用少量真实数据做微调。后者效果通常更好,但需要能安全地采集真实数据。
我的体会是:域随机化能解决视觉差异,但解决不了动力学差异。动力学差异最好靠系统辨识(System Identification)——先测出真实系统的关键参数,再把这些参数注入仿真。两者结合,鸿沟能小很多。
7. 我对这个方向的一点个人判断
拆完 DreamZero 这套思路,我最认可的一点是它把"世界模型"从"环境模拟器"的定位里解放出来了。过去大家默认世界模型是用来做规划的,规划完还要单独学一个策略去执行。而它直接让世界模型承担策略的角色,省掉了中间那层蒸馏,知识流动更直接。
但我也得说,这条路离真正好用还有距离。14B 模型的实时推理,目前还是靠各种工程 trick 硬撑,离"优雅"差得远。零样本泛化在受控环境里看着不错,一到真实世界的长尾场景就容易翻车。而且这类系统的可解释性很差——它为什么输出这个动作,你很难说清楚,这在安全攸关的场景里是个大问题。
不过方向是对的。视频世界模型见过的东西,比任何机器人数据集都多得多,把这些知识用起来是必然趋势。现在缺的可能不是想法,而是把想法工程化的耐心——怎么让大模型跑得够快、怎么让闭环够稳、怎么让泛化够可靠。这些问题的答案,大概率不在论文里,而在一次次实机调试的深夜里。
如果你也在做这个方向,我的建议是别一上来就追 14B。先用小模型把闭环 pipeline 跑通,把重观测、动作平滑、安全约束这些"脏活"做扎实,再考虑上大模型。很多时候,系统跑不稳不是因为模型不够大,而是因为这些工程细节没做到位。