跳到主要内容

LeRobot数据集

LeRobot是由HuggingFace开源的,面向机器人学习和强化学习场景的标准化数据集方案。它提供了一种统一的格式,使研究人员能够更轻松地共享、比较和复现机器人学习实验。

导出数据

艾欧数据平台支持将数据导出为LeRobot格式数据,用于直接投入VLA(Vision-Language-Action)模型的训练。这种格式包含了机器人操作的视觉信息、语言指令和动作数据的完整映射。

提示

由于导出需要消耗较高的算力,所以免费版的艾欧数据开放平台限制了每个用户可以导出的数量。而收费版则不限制导出量,并且配合GPU加速导出的速度可以更快。

1. 选择要导出的数据

需要先对数据进行标注。标注的作用是将动作与自然语言指令对应起来,才能进行VLA模型的训练。这个过程确保了模型能够理解语言命令并将其转化为相应的机器人动作。

关于如何标注以及快速批量标注请浏览文档: 数据标注

标注完成后,就能在导出界面看到相关的标注好的数据了。您可以选择特定的数据子集进行导出。

选择要导出的数据

数据集的名称可以自定义设置。如果您计划将数据上传到Hugging Face上,建议设置成标准的仓库名格式,例如myproject/myrepo1,这将简化后续的发布流程。

提示

选择的数据量越大,导出速度会越慢。建议按任务类型区分选择,不要一次性全部导出。这样不仅能加快导出速度,还便于后续的数据管理和模型训练。

2. 下载导出文件并解压

导出的过程可能持续数十分钟,取决于数据量大小和系统负载。进度会自动刷新,您可以稍后再回到导出页面查看结果。

导出成功后,您可以在页面右侧的 导出记录 看到 下载数据 按钮,点击将会下载一个 .tar.gz 的压缩文件。

导出结果

建议在本地新建一个空目录,例如~/Downloads/mylerobot3,用来解压文件,以避免文件混乱:

新建目录

解压后的文件结构遵循标准的LeRobot数据集格式,包含视觉数据、状态信息和动作标签:

解压数据

浏览数据

有两种常见的可视化方式,方便用户快速浏览、理解和调试数据内容。每种方式适用于不同的使用场景。

场景方式优势
本地开发和调试Rerun SDK 本地观看完整功能、高度交互性、无网络依赖
快速预览或载入示范Hugging Face 在线查看无需安装、便于分享、随时访问

1. 使用 Rerun SDK 本地查看

需要在本地下载并安装 lerobot 仓库,通过 lerobot/scripts/visualize_dataset.py,可以使用 Rerun SDK 实现时间轴式的交互式多模态数据查看(包括图像、状态、动作等)。这种方式提供了最丰富的交互功能和定制选项。

安装 Rerun SDK

确保使用 Python 3.10及以上版本,并执行以下命令安装必要的依赖:

python3 -m pip install rerun-sdk==0.23.1
git clone https://github.com/lerobot-ai/lerobot.git # 克隆仓库
cd lerobot
pip install -e . # 安装开发模式

启动可视化脚本

python3 -m lerobot.scripts.visualize_dataset \
--repo-id io-ai-data/lerobot_dataset \
--root ~/Downloads/mylerobot3 \
--episode-index 0

参数说明:

  • --repo-id:Hugging Face 数据集名,如 io-ai-data/lerobot_dataset
  • --root: LeRobot数据存放在本地的路径,指向解压后的目录
  • --episode-index:指定要查看的 episode 索引(从 0 开始)

保存为 .rrd 文件

可将数据可视化结果保存为 Rerun 格式,便于离线查看或分享给团队成员:

python3 -m lerobot.scripts.visualize_dataset \
--repo-id io-ai-data/lerobot_dataset \
--root ~/Downloads/mylerobot3 \
--episode-index 0 \
--save 1 \
--output-dir ./rrd_out

# 随后可以离线查看
rerun ./rrd_out/lerobot_pusht_episode_0.rrd

远程 WebSocket 方式

如果需要远程查看(例如服务器上的数据在本地查看),可使用 WebSocket 模式:

# 服务器端
python3 -m lerobot.scripts.visualize_dataset \
--repo-id io-ai-data/lerobot_dataset \
--root ~/Downloads/mylerobot3 \
--episode-index 0 \
--mode distant \
--ws-port 9091

# 本地端
rerun ws://服务器IP:9091

2. 通过 Hugging Face Spaces 在线查看

如果不想安装任何本地环境,LeRobot 提供了基于 Hugging Face Spaces 的在线观看工具,无需任何本地依赖。这种方式特别适合快速预览或与团队分享数据集内容。

提示

在线可视化需要您将数据上传到 Hugging Face 的在线仓库。Hugging Face免费账户只能可视化公开的仓库,也就是您的数据需要被公开访问才能可视化。如需保持私密性,请使用本地可视化方式。

操作步骤

  1. 打开页面:https://huggingface.co/spaces/lerobot/visualize_dataset
  2. 填写 Dataset Repo ID,如 io-ai-data/DesktopCleanup_RM_AIDAL_demo
  3. 左侧选择任务编号,如 Episode 0
  4. 页面顶部有更多选项,可以选择最适合的播放方式

训练模型

训练模型是实现机器人学习的关键步骤。不同模型对参数和数据的要求可能有所不同。

我们以 smolvla 模型为例,说明基本的训练命令和参数配置:

基本训练命令

使用以下命令启动 smolvla 模型的训练:

python -m lerobot.scripts.train \
--policy.type=smolvla \
--dataset.root=/data/lerobot_dataset \
--dataset.repo_id=io-ai-data/lerobot-dataset \
--policy.device=cuda
--output_dir=/data/lerobot_model

以上命令,将在单个英伟达显卡上运行训练命令。 将会使用 /data/lerobot_dataset 的LeRobot数据训练 smolvla 模型,模型保存在目录 /data/lerobot_model

参数说明

  • --policy.type:指定训练的模型类型,例如 smolvla
  • --dataset.root:本地数据集的根目录,需指向解压后的 LeRobot 数据集路径。
  • --dataset.repo_id:Hugging Face 数据集的仓库 ID,例如 io-ai-data/lerobot-dataset
  • --policy.device:指定训练设备,支持 cuda(GPU)或 cpu
  • --output_dir: 保存训练出来的模型的目录

常见问题 (FAQ)

Q: 导出LeRobot数据需要多长时间?

A: 导出时间取决于数据量大小和当时的系统负载。通常每GB数据需要3-5分钟,建议分批导出以提高效率。

Q: 免费版可以导出多少数据?

A: 免费版有导出数量限制,具体限制会显示在导出界面上。如需大量导出,建议升级到付费版。

Q: 导出的数据可以用于哪些模型训练?

A: LeRobot格式支持多种VLA模型,包括但不限于:smolvla、Pi0等当前知名的模型。 具体请参考LeRobot官方代码库: https://github.com/huggingface/lerobot/tree/main/src/lerobot/policies

Q: 在线可视化需要公开数据集吗?

A: 是的,Hugging Face Spaces的在线可视化工具只能访问公开数据集。如需保持私密性,请使用本地的Rerun SDK。

Q: Rerun SDK安装失败怎么办?

A: 确保使用Python 3.10+版本,并检查网络连接。如果仍有问题,可以尝试使用conda环境或虚拟环境。

Q: 训练时内存不足怎么办?

A: 可以尝试以下方法:

  • 减少batch size
  • 使用数据加载器的num_workers参数
  • 启用梯度累积
  • 使用混合精度训练

Q: 如何评估训练效果?

A: LeRobot提供了多种评估指标,包括任务成功率、动作准确性等。具体评估方法请参考LeRobot官方文档。

Q: 支持哪些硬件加速?

A: 支持CUDA GPU加速,也支持CPU训练。建议使用GPU以获得更好的训练性能。

Q: 如何上传数据到Hugging Face?

A: 使用Hugging Face CLI工具:

pip install huggingface_hub
huggingface-cli login
huggingface-cli upload-dataset your-username/dataset-name /path/to/dataset

Q: 数据集太大怎么办?

A: 建议降低导出时的频率FPS设置,默认是30帧每秒,可以下调到10或15。

Q: 如何验证导出数据完整性?

A: 使用LeRobot提供的验证工具:

python -m lerobot.scripts.validate_dataset --root /path/to/dataset

相关链接