【免费下载链接】DreamDojo
Official Codebase for "DreamDojo: A Generalist Robot World Model from Large-Scale Human Videos" (ICML 2026)
DreamDojo 是一个从 4.4 万小时人类第一视角视频中训练出来的通用机器人世界模型(Generalist Robot World Model,ICML 2026 官方代码库)。它最吸引眼球的能力是:经过蒸馏后,模型可以一边接收机器人动作(动作条件),一边实时逐帧生成未来视频——稳定在 10 FPS 持续输出 1 分钟以上,并且支持 LeapMotion 手势遥操作输入。
本文带你快速上手这套"边动边看"的实时交互推理,并讲清楚它背后的 KV Cache 流式生成原理。
一、实时交互世界模型是什么?🤖
普通视频生成模型是"离线渲染":给它提示词,等几分钟后输出一段完整视频。而 DreamDojo 的交互模式完全不同:
- 动作作为输入:每一小段时间(chunk),系统从动作源取一批动作(机械臂末端位姿/关节指令,维度 384);
- 逐块生成:模型只生成这一小段对应的 latent 帧,解码成像素后立即显示;
- 滚动更新:上一段的最后一帧自动成为下一段的条件帧,视频就这样无限延伸下去。
核心逻辑位于实时推理脚本 action_video2world_teleop.py 的run_realtime_generation方法中,它就是一个"取动作 → 生成一个 chunk → 解码显示 → 更新条件帧"的循环。
二、为什么能快?三阶段蒸馏是前提 ⚡
10 FPS 不是靠单卡硬堆算力,而是蒸馏流水线把"慢学生"练出来的。整个流程见官方文档 docs/DISTILL.md:
| 阶段 | 作用 | 启动脚本 |
|---|---|---|
| Teacher Generation | 用教师模型预生成多步去噪目标 | launch_teacher_gen.sh |
| Warmup | 训练因果学生网络对齐教师输出 | launch_warmup.sh |
| Self-Forcing | 用学生自己的自回归预测微调,消除长序列误差累积 | launch_self_forcing.sh |
蒸馏完成后,学生模型每帧只需4 步去噪(--num_steps 4),这就是实时性的第一块基石。
三、KV Cache 流式生成原理 🔍
流式生成的关键在 kv_cache.py。它给 DiT 的注意力层包了一个"K/V 缓存"外壳,可以理解为把大语言模型里 Transformer 推理的 KV Cache 思路搬到了视频扩散模型上:
- 按 chunk 缓存:每个 latent 帧对应一组 H×W 的 token,已生成帧的 K/V 直接复用,新 chunk 只需计算增量注意力,不用重算整段视频;
- 滚动窗口:
max_cache_size以"latent 帧数"为容量单位,超出后丢弃最老的帧,保证显存不随时长无限增长; - 无状态(stateless)模式:开启
--compile_model时,KV 状态不存放在模块内部,而是作为张量参数传入传出(TensorKVCacheLayerState),让torch.compile可以完整追踪计算图、零断图,进一步提速。
实时类RealtimeStreamingInference继承自 action_video2world.py 中的ActionStreamingInference,复用了后者的 TE 算子替换、按块编译、VAE 编译等全套加速配置。
四、动作从哪来?三种输入源 🕹️
推理脚本内置三种动作源,通过--action_source切换(见 参数定义):
random:随机游走动作,适合快速验证管线;file:从.npy文件顺序读取真实遥操作动作轨迹(用完自动重复最后一帧);leapmotion:LeapMotion 手势输入。需要注意,仓库中该源目前是占位实现——尚未接入 LeapMotion SDK 时会自动回退到随机动作,代码里留有明确的 TODO 接入点(LeapMotionActionSource)。也就是说"遥操作接口"已经就位,你只需把 SDK 数据填进get_actions即可。
五、一键运行:实时推理最快启动步骤 🚀
1. 环境准备
按照 docs/SETUP.md 安装环境(仓库提供 install.sh 一键脚本),并从 datasets/README.md 指引的 Hugging Face 数据集下载 GR-1 评估数据放到datasets/目录(含datasets/eval/video_131_cond_frame.png等条件帧和动作文件)。
2. 运行实时推理
仓库提供了开箱即用的 launch_student_inference_teleop.sh,等价于:
python -m cosmos_predict2._src.predict2.interactive.inference.action_video2world_teleop \ --config=cosmos_predict2/_src/predict2/interactive/configs/config_distill.py \ --experiment=cosmos_predict2p5_2B_action_gr00t_gr1_self_forcing_no_s3 \ --ckpt_path checkpoints/iter_000006000 \ --input_frame datasets/eval/video_131_cond_frame.png \ --fps 10.0 --num_steps 4 \ --action_source file --action_file datasets/eval/action_131.npy \ --max_latent_frames 100 \ --warmup --compile_model --save_output realtime.mp43. 关键参数速查
| 参数 | 含义 | 实时化建议 |
|---|---|---|
--num_steps | 每帧学生去噪步数 | 保持 4,步数越少越快 |
--max_latent_frames | 最多生成多少 latent chunk | 100 约对应 400 帧像素(>40 秒 @10FPS) |
--warmup | 预热迭代,先编译 CUDA kernel | 必加,否则首帧很慢 |
--compile_model | torch.compile编译 DiT 与 VAE | 必加,首次运行约 2 分钟编译 |
--fast_mode | 一键开启全部优化 | 想极致提速时使用 |
--no_display | 无头模式(服务器上用) | 配合--save_output输出视频 |
六、如何确认真的"实时"了?📈
脚本结束后会打印一份TIMING SUMMARY(统计逻辑):
- 它会统计稳态下每个 chunk 的平均耗时(毫秒),并和"播放预算"(每帧 100ms ÷ 帧数)对比;
- 若出现
✓ xx ms < 1000 ms — REAL-TIME (1.06x)字样,说明生成速度快于实时播放,10 FPS 无压力; - 本地显示窗口会用 OpenCV 实时渲染帧画面,左上角叠加
FPS: xx.x | Frame: N的实时帧率(RealtimeVisualizer),按q退出并保存结果。
另外,--skip_decode_display N可以让显示线程每 N 个 chunk 才解码一次,把解码开销摊薄。
七、常见问题排查 💡
- 首次运行极慢:正常现象,
torch.compile需要约 2 分钟做两次完整预热(warmup 日志会提示),之后进入稳态; - 显存不足:降低
--max_latent_frames或使用--resolution 256,320降低分辨率; - LeapMotion 没有生效:确认已替换占位实现为真实 SDK 数据,否则日志中会出现 "LeapMotion source not implemented" 警告并回退随机动作;
- 更多问题:参考官方排障文档 docs/ISSUES.md,评测流程见 docs/EVAL.md。
小结
DreamDojo 的实时交互管线 =蒸馏出的 4 步因果学生模型+KV Cache 流式增量生成+可插拔实时动作源。得益于无状态 KV Cache 与全链路编译,单卡即可做到 10 FPS 稳定输出 1 分钟以上,让"看动作、立刻看到未来画面"的机器人世界模型交互第一次成为现实。想继续深入,可以从 docs/DISTILL.md 的蒸馏细节和 docs/POSTTRAIN.md 的后训练流程看起。
【免费下载链接】DreamDojo
Official Codebase for "DreamDojo: A Generalist Robot World Model from Large-Scale Human Videos" (ICML 2026)
相关推荐
LMCache KV Cache 迁移(Move)实战指南:跨实例移动 KV Cache 的原理与操作
LMCache KV Cache 迁移(Move)实战指南:跨实例移动 KV Cache 的原理与操作 导读 本文聚焦 LMCache 提供的 move 接口,
人工智能大模型缓存抽象模型推理服务Gradio项目实战:掌握流式输出功能实现实时交互体验
Gradio项目实战:掌握流式输出功能实现实时交互体验 什么是流式输出 在传统的人机交互应用中,用户输入请求后需要等待系统完全处理完毕才能看到结果。而流式输出
前端后端AI 应用MCP代理流式输出:mcp-use实时交互开发
MCP代理流式输出:mcp use实时交互开发 MCP(代理连接协议)流式输出技术解决了传统批量响应模式下用户等待时间长、交互体验差的痛点。通过实时传输数据片段
后端MCP 服务MCP ClientsAI Agent人工智能
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考