ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Wan2.2-VAE如何编码机器人视频?libero4in1_wan2.2vae_latent_cosmos_style数据集编码方式深度解析

Wan2.2-VAE如何编码机器人视频?libero4in1_wan2.2vae_latent_cosmos_style数据集编码方式深度解析

【免费下载链接】libero4in1_wan2.2vae_latent_cosmos_style

项目地址:https://ai.gitcode.com/hf_mirrors/MangoGoes/libero4in1_wan2.2vae_latent_cosmos_style
点击查看免费下载

本文带你彻底看懂 libero4in1_wan2.2vae_latent_cosmos_style 数据集的Wan2.2-VAE 机器人视频编码方式。这个数据集把 LIBERO 四大套件(libero_spatial / libero_object / libero_goal / libero_10)的机器人操作视频,预先用 Wan2.2-VAE 编码成 latent 缓存,训练机器人策略时直接读 latent,跳过最耗时的 VAE 编码环节。

1️⃣ 这个数据集里到底存了什么?

整个数据集共1717 个文件、53.19 GB,按 LIBERO 的四个任务套件分成 4 个目录:

目录内容规模
libero_spatial/episodes/空间关系任务432 个 episode / 9.94 GB
libero_object/episodes/物体操作任务454 个 episode / 12.89 GB
libero_goal/episodes/目标导向任务428 个 episode / 9.76 GB
libero_10/episodes/长程组合任务379 个 episode / 20.60 GB

核心原则一句话:每个 episode 一个.pt文件(如 libero_goal/episodes/episode_000000.pt),文件里存的不是视频,而是 Wan2.2-VAE 编码后的 latent 张量。

2️⃣ Wan2.2-VAE 编码流程:从视频帧到 latent

整个编码链路可以拆成 5 步(参数均来自 libero_goal/dataset_manifest.json 的exact_window_v1元数据):

256×256 原始视频帧 ↓ 相机拼接(camera_mode: concat_view) 多视角拼接图 ↓ 裁出 192×320 目标窗口(target_h × target_w) 滑动窗口切分(chunk_length = 16,fps = 20) ↓ Wan2.2 VAE 编码(torch.bfloat16,--windowed 窗口模式) latent 张量:[5, 48, 12, 20]

latent_shape = [5, 48, 12, 20] 的含义(这是新手最容易迷糊的地方):

维度值怎么来的
时间帧5每个窗口 17 帧,Wan2.2-VAE 时间轴 4 倍压缩:(17−1)÷4+1 = 5
通道数48Wan2.2 VAE 的 latent 通道数(固定值)
高12窗口高 192,空间 16 倍下采样:192÷16
宽20窗口宽 320,空间 16 倍下采样:320÷16

也就是说:一段 17 帧的机器人视频窗口,编码后体积压缩到一张 5×48×12×20 的小张量,这就是"视频变 latent"的本质。

3️⃣ 关键参数逐项解读

打开任意套件的 dataset_manifest.json 都能找到这些字段:

字段示例值通俗解释
schema_versionexact_window_v1元数据格式版本,保证读写脚本可复现
image_size256原始图像统一缩放为 256×256
chunk_length16滑动窗口步长(帧)
camera_modeconcat_view多个相机视角横向拼接后再编码
sample_stride/fps1 / 20.0不抽帧,保持 20 fps 原始节奏
latent_shape[5, 48, 12, 20]全库统一的 latent 形状(四个套件完全一致)
vae_pathWan2.2_VAE.pth使用的 Wan2.2 VAE 权重
script_revision330f001编码脚本版本号,方便追溯一致性

其中vae_encode_contract描述了 VAE 的"编码契约",是复现编码的关键:

  • compute_dtype: torch.bfloat16:用 bf16 半精度编码,速度快、显存省;
  • encode_exact_durations: [17, 61, 73]:只编码 17/61/73 这三种时长——它们都满足4k+1,是 Wan2.2-VAE 时间压缩能整除的"合法帧数";
  • encode_chunk_frames: {256: 68, 480: 24, 720: 8, 768: 8}:不同分辨率下单次最多编码的帧数,分辨率越高、单次切的窗口越短,防止显存爆掉。

💡 简单记:17 帧的窗口 → 5 帧 latent,这就是本数据集最核心的编码规格。

4️⃣ 为什么要预先编码成 latent 缓存?

  • 省算力:VAE 编码是训练前的重头开销,缓存后训练循环里直接读张量,GPU 时间全留给策略网络;
  • 格式统一:四个套件的 latent 形状完全一致([5, 48, 12, 20]),4 合 1 混合训练零成本;
  • 可复现:manifest 里记录了脚本版本、VAE 权重路径和编码契约,任何人拿到数据都能确认"这些 latent 是怎么来的"。

这套缓存的典型用途,是在cosmos 风格的 VLA / action head 训练管线中作为视觉特征输入(见 README.md 的"用途"章节)。

5️⃣ 目录结构与 manifest 怎么配合使用

libero4in1_wan2.2vae_latent_cosmos_style/ ├── README.md # 数据集说明与编码方式 ├── libero_spatial/ │ ├── episodes/ # 每 episode 一个 .pt latent 文件 │ ├── dataset_manifest.json # 全量 episode 索引 │ └── dataset_manifest_shard_000X.json # 分片索引(5 片) ├── libero_object/ …(结构相同) ├── libero_goal/ … └── libero_10/ …
  • dataset_manifest.json:全量索引,含每个 episode 的window_count(滑窗样本数)、episode_path、latent_shape;
  • dataset_manifest_shard_XXXX.json:同一份索引按 86~88 个 episode 分成的 5 个分片,适合分布式训练时各节点只加载自己那片,避免单机解析大 JSON。

以 libero_goal/dataset_manifest.json 为例,顶层latent_shape给出全库统一的形状,episodes数组里逐项列出 428 个 episode 的明细;libero_10/dataset_manifest.json 中窗口总数多达 95405,是所有套件里样本最密集的。

6️⃣ 快速上手:三步读取 latent 缓存

  1. 定位文件:按 manifest 中的episode_path找到对应.pt(仓库内相对路径如 libero_spatial/episodes/episode_000000.pt);
  2. 加载张量:用torch.load()读入,按latent_shape校验形状是否为[5, 48, 12, 20];
  3. 对齐元信息:训练时把 manifest 里的chunk_length、fps、camera_mode传给数据 loader,保证窗口切分方式与编码时一致。
import torch latent = torch.load("libero_goal/episodes/episode_000000.pt", map_location="cpu") assert latent.shape == (5, 48, 12, 20) # 与 manifest 的 latent_shape 一致

7️⃣ 常见问题 FAQ

Q1:仓库里的.pt文件为什么只有 133 字节?它们是 Git LFS 指针文件,真实内容(单个约 22 MB)托管在 LFS 远端,用支持 LFS 的客户端拉取后即可得到完整 latent。

Q2:libero_10为什么只有 379 个 episode 却占 20.6 GB(最大)?libero_10是长程组合任务,单 episode 帧数更多,滑窗后每个 episode 的 latent 序列更长,所以体积最大。

Q3:四个套件能直接混着训练吗?可以。latent 形状、编码契约、窗口规格完全统一(schema_version: exact_window_v1),只需把四个 manifest 合并索引即可。

Q4:能换成别的分辨率重新编码吗?encode_chunk_frames里已预留 256/480/720/768 四档分辨率的单次编码帧数契约,说明编码脚本支持多档分辨率,但本仓库数据固定为 256 规格。

8️⃣ 总结

关键结论值
编码器Wan2.2 VAE(bf16,windowed 模式)
统一 latent 形状[5, 48, 12, 20]
窗口规格256 原图 → 192×320 窗口,17 帧/窗,20 fps
产出结构每 episode 一个.pt+ 全量/分片 manifest
核心价值训练 LIBERO 策略免 VAE 编码,4 套件统一可混训

一句话收尾:"17 帧视频 → 5 帧 latent"就是 Wan2.2-VAE 对机器人视频的压缩密码;libero4in1_wan2.2vae_latent_cosmos_style 把这套编码固化成了 53 GB 开箱即用的缓存,让你把全部算力花在训练机器人策略上。

【免费下载链接】libero4in1_wan2.2vae_latent_cosmos_style

项目地址:https://ai.gitcode.com/hf_mirrors/MangoGoes/libero4in1_wan2.2vae_latent_cosmos_style
点击查看免费下载

相关推荐

上一篇:QOwnNotes错误日志查看:定位问题的高级诊断技巧
下一篇:npugraph_ex 场景下 Host Tiling 参数刷新(任务更新)功能解析

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进