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.state、action)、形状、数据类型、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 设置)
- 真实世界的人形机器人数据
- 仿真数据集
- 自动驾驶汽车数据