LeRobotDataset v3.0 发布说明 / 新功能

Hugging Face 已发布 LeRobotDataset:v3.0,这是一种面向机器人学习的标准化数据集格式,旨在扩展到数百万个 episode。此更新通过将多个 episode 打包到单个文件中,解决了 2.0 版中出现的文件系统限制,并引入了原生流式模式,以在无需完整本地下载的情况下处理大型数据集。

可扩展的数据存储架构

LeRobotDataset:v3.0 从每个文件一个 episode 的方式转变为串联存储模型,以降低本地和远程文件系统的压力。该格式将数据组织为三个主要支柱:

  • 表格数据:低维、高频的数据(例如关节状态和动作)存储在 Apache Parquet 文件中。可通过 datasets 库进行快速的内存映射或流式访问。
  • 视觉数据:相机帧被串联并编码为 MP4 文件。多个 episode 被聚合到单个视频文件中,多个视频再按相机视角进行分组。为进一步优化文件系统性能,这些文件被组织在子目录中。
  • 元数据:JSON 文件充当关系层,映射表格数据和视觉数据。包括特征模式、帧率、归一化统计信息以及 episode 边界。

数据集仓库结构

尽管采用了串联存储,为了在单个 episode 级别保持检索效率,仓库使用以下结构:

  • meta/info.json:定义特征(例如 observation.stateaction)、形状、数据类型、FPS 和路径模板的中心模式。
  • meta/stats.json:每个特征的聚合统计信息(均值、标准差、最小值、最大值),用于数据归一化。
  • meta/tasks.jsonl:将自然语言任务描述映射到整数索引,以用于任务条件化策略训练。
  • meta/episodes/:存储每个 episode 的特定元数据(长度、任务、数据指针),以分块 Parquet 文件形式保存。
  • data/:核心逐帧表格数据,存放在 Parquet 文件中,多个 episode 的数据被串联成更大的文件。
  • videos/:包含多个 episode 串联画面的 MP4 文件,按相机键和块进行组织。

流式和数据访问

LeRobotDataset:v3.0 引入了 StreamingLeRobotDataset 接口,允许用户直接从 Hugging Face Hub 实时处理数据批次,而无需将整个集合下载到本地磁盘。

对于标准本地访问,LeRobotDataset 类与 PyTorch DataLoader 集成。它通过 delta_timestamps 参数支持原生窗口操作,允许用户检索给定帧前后特定秒数内的观测和动作堆叠——这是强化学习(RL)和行为克隆(BC)算法的关键需求。

迁移与安装

LeRobotDataset:v3.0 将正式集成到 lerobot-v0.4.0 稳定版中。用户目前可以通过 lerobot-v0.3.x 的预发布版本访问该格式。

要将已有的 v2.1 数据集迁移到 v3.0,Hugging Face 提供了一个转换工具,可将单个 episode 文件聚合为新的串联格式并更新元数据:

python -m lerobot.datasets.v30.convert_dataset_v21_to_v30 --repo-id=<HFUSER/DATASET_ID>

支持的实现

该格式旨在可扩展,目前支持广泛的机器人数据,包括:

  • 机械臂平台(例如 SO-100 机械臂、ALOHA-2 设置)
  • 真实世界的人形机器人数据
  • 仿真数据集
  • 自动驾驶汽车数据

Sources