JEPA4Japan · 教程

第 21 章——官方代码仓库与实验环境

1,398字 4分钟阅读 #LeWorldModel#世界模型#JEPA

浏览官方代码、Hydra 配置、HDF5 轨迹、单 GPU 工作流、检查点,以及从训练到评估的调用图。

课程进度 课程大纲 已发布 48/48 课

第 0 部分——阅读指南:我们究竟要学什么?

  1. 01 第 0 章——开始之前 已发布

第 1 部分——世界模型:智能体内部的沙盒

  1. 02 第 1 章——智能体为什么需要“想象未来” 已发布
  2. 03 第 2 章——为什么不直接预测下一张图像? 已发布
  3. 04 第 3 章——JEPA 思想:预测意义,而不是图像的复制品 已发布
  4. 05 第 4 章——用一张图看懂 LeWM 已发布

第 2 部分——把图像变成状态:LeWM 架构

  1. 06 第 5 章——轨迹数据:对模型而言,世界不是图像集合 已发布
  2. 07 第 6 章——视觉编码器:为每一帧签发“状态护照” 已发布
  3. 08 第 7 章——动力学预测器:在头脑中推动时间前进 已发布
  4. 09 第 8 章——一次完整的前向传播:跟随一个批次从头走到尾 已发布

第 3 部分——防止模型作弊:预测损失与 SIGReg

  1. 10 第 9 章——最危险的捷径:表示崩塌 已发布
  2. 11 第 10 章——预测损失:模型怎样学习下一步 已发布
  3. 12 第 11 章——SIGReg 的直觉:让表示空间“呼吸” 已发布
  4. 13 第 12 章——只保留最少却足够的数学 已发布
  5. 14 第 13 章——原始 LeWM 的端到端训练机制 已发布
  6. 15 第 14 章——训练一个不会立即崩塌的模型 已发布

第 4 部分——让模型行动起来:在潜在空间中规划

  1. 16 第 15 章——目标条件规划:从“我在哪里?”到“我要去哪里?” 已发布
  2. 17 第 16 章——潜在欧氏距离:方便,但未必可靠 已发布
  3. 18 第 17 章——CEM:用淘汰赛搜索动作 已发布
  4. 19 第 18 章——MPC:不要一次信任模型太久 已发布
  5. 20 第 19 章——长视界滚动:小误差怎样滚成大失败 已发布
  6. 21 第 20 章——从零实现一个最小 LeWM 规划器 已发布

第 5 部分——工程复现:从论文到可运行系统

  1. 22 第 21 章——官方代码仓库与实验环境 当前课程
  2. 23 第 22 章——第一个实验:TwoRoom 冒烟测试 已发布
  3. 24 第 23 章——第二个实验:复现 PushT 已发布
  4. 25 第 24 章——怎样公平评估世界模型 已发布
  5. 26 第 25 章——失败诊断手册 已发布

第 6 部分——LeWM 究竟学到了什么?

  1. 27 第 26 章——线性探针:潜在状态编码了哪些物理变量? 已发布
  2. 28 第 27 章——为潜在空间做一次“健康检查” 已发布
  3. 29 第 28 章——预期违背:模型会对“不可能事件”感到惊讶吗? 已发布
  4. 30 第 29 章——怎样严谨讨论“理解世界” 已发布

第 7 部分——为什么“预测准确”仍可能“规划很差”

  1. 31 第 30 章——训练目标与规划目标之间的差距 已发布
  2. 32 第 31 章——全局不崩塌不保证保留任务相关动力学 已发布
  3. 33 第 32 章——各向同性高斯先验何时过强? 已发布
  4. 34 第 33 章——长视界规划:预测得更远,还是规划得更聪明? 已发布
  5. 35 第 34 章——从位置距离到任务进度 已发布
  6. 36 第 35 章——多任务学习、真实机器人与视觉干扰 已发布
  7. 37 第 36 章——理论边界:何时能辨识真实状态? 已发布

第 8 部分——从复现者到研究者

  1. 38 第 37 章——设计一项可信的 LeWM 改进实验 已发布
  2. 39 第 38 章——十二个可执行的研究项目 已发布
  3. 40 第 39 章——LeWM 研究中的开放问题 已发布

附录

  1. 41 附录 A——最低限度的必需数学工具箱 已发布
  2. 42 附录 B——PyTorch 实现速查 已发布
  3. 43 附录 C——完整张量形状表 已发布
  4. 44 附录 D——实验配置卡 已发布
  5. 45 附录 E——论文时间线与证据等级 已发布
  6. 46 附录 F——术语表 已发布
  7. 47 附录 G——复现检查清单 已发布
  8. 48 附录 H——专家审阅检查清单 已发布

先看全景

  1. 论文论文描述了什么实验?
  2. 核心使用哪个冻结 LeWM 代码?
  3. 工坊依赖采用哪些版本?
  4. 凭据实际上运行了什么?
“官方”说明的是来源。要形成可复现的完整装配,还必须记录每一个接头。

LeWM 论文、冻结核心、依赖和产物构成彼此独立的层次。

一个小故事

你拿到了一台官方引擎、一套官方工具箱和一把官方钥匙。但钥匙仍可能打不开引擎,因为工具箱在钥匙制成后发生过变化。

LeWorldModel 同样由多个层次组成。论文是设计说明,小型冻结仓库是核心引擎,stable-pretraining 和 stable-worldmodel 提供训练、环境、规划与评估,数据和检查点则是另外的产物。“官方 + 官方”并不能自动重建作者当时使用的历史工坊。

真正规则

冻结的 LeWM 核心是提交 8edfeb3。jepa.py/module.py 负责模型和 SIGReg;train.py 连接数据与损失;eval.py 则连接冻结模型、CEM 或随机动作、环境和指标。

核心没有依赖锁定文件。本课程检查了 stable-worldmodel@addbab4 和 stable-pretraining@9aa93f8。这些版本使当前行为可以检查,却不是 LeWM 提供的历史版本锁定。

完成下面五项健康检查,就足以称一次运行在机械结构上准备就绪:

  1. 记录 Python、PyTorch、加速器栈和操作系统;
  2. 记录所有源代码版本;
  3. 计算数据和检查点文件的哈希,并记录解压后的名称;
  4. 验证一个不跨回合的 batch、有限值前向传播和短时环境交互;
  5. 归档解析后的配置、硬件、日志和输出。

README 指定 Python 3.10。诊断缺失字段前,必须完整组合 Hydra 配置:launcher 片段会提供 wandb 和 cache_dir。解析后的运行记录,而不是散落的 YAML,才是可执行实验记录。

原始 v3 仍由一个共享且完全可训练的视觉编码器、动作条件预测器和 SIGReg 组成。目标保持连接。训练中没有 stop-gradient 目标、EMA 教师、预训练视觉骨干、奖励、目标或 CEM 监督。

可能骗过我们的把戏

论文、代码和运行时数值是三张不同的卡片:

设置论文卡片冻结代码卡片
指定任务训练10 个 epoch最多 100
TwoRoom history1全局默认值 3
SIGReg 权重除非另有说明,否则为 0.10.09
非 PushT CEM 优化轮数10共享配置为 30
PushT 训练数据轨迹描述YAML 指定 Lance;公开产物是压缩 HDF5

不要对这些卡片取平均,也不要悄悄选择方便的数值。

另一个陷阱是检查点身份。接受检查的官方仓库提供 weights.pt 和 config.json,其目标类位于 stable_worldmodel.wm.lewm;冻结核心则构造 jepa.JEPA,并记录了转换方式。应记录类路径、架构、预处理、来源和依赖版本、哈希以及转换过程。

训练脚本会在委托出去的随机划分之前,对完整载入数据集拟合非图像归一化器,因此这条已提交代码路径并不是只用训练集做归一化。回合分组也依赖最终解析出的 stable-pretraining 版本。成功载入模型并不能消除这些科学差异。

实验凭据

这里检查的官方产物版本分别是:TwoRoom 数据 6903a2d、PushT 数据 655cd44、TwoRoom 模型 77adaae 和 PushT 模型 22b330c。数据集凭据必须包含回合/时间字段、预处理、归一化划分、时间窗口、frame skip、加载器、格式转换,以及证明任何窗口都不会跨越回合边界的测试。

论文描述的模型约含 1,500 万参数,在单张 GPU 上训练数小时,并报告在其设置下规划最高加速 48×。冻结训练器以 GPU、自动设备选择和 bfloat16 为目标,但确切的历史 GPU 和计时软件栈并未提供。应把这些说法保留为作者报告且依赖配置的结果。

一项独立的 TwoRoom 研究 及其公开提交 efa9e5d 报告了发布 YAML 之外四项影响重大的约定:每个 frame-skip 块包含五个原始动作、动作编码器宽度为 10、采用 ImageNet 归一化,以及对每个动作坐标执行 z-score。在匹配的 50 回合协议下,它报告自己的检查点成功率为 94%,发布的作者检查点为 84%,位置探针 Pearson 相关系数为 0.9988。它只覆盖一个环境,并且每项配置只有一个训练随机种子——不是四任务表格,也不是精确的历史环境。

快速检查

  1. “在机械结构上准备就绪”能证明什么,不能证明什么?
  2. 为什么必须保存解析后的 Hydra 配置?
  3. 为什么两个官方产物仍可能无法重建论文环境?