メインコンテンツまでスキップ

LeRobot データセットと学習

LeRobot は Hugging Face が保守するロボット学習向けのデータ・ポリシー学習フレームワークです。IO-AI のデータプラットフォームでは、注釈付きロボットデータを再利用可能な LeRobot 形式にエクスポートし、LeRobot・OpenPI・ACT・Spirit-v1.5 などのスタックでファインチューニングできます。

本ページではエクスポートと検証の要点を示したうえで、学習経路の全体像をまとめます。公式の LeRobot 学習スタックを使う前に LeRobot のインストール を読んでください。モデル別のコマンドは各ガイドにあります。

データのエクスポート

プラットフォームは注釈付きデータを LeRobot 形式でエクスポートできます。エクスポート前に、次の項目が安定していることを確認してください。

  • observation.images.*:カメラ画像または動画。プロジェクト全体でカメラ名を揃えることを推奨します。
  • observation.state:ロボット状態(関節またはエンドエフェクタなど)。
  • action:制御指令。observation.state と時系列上で厳密に整合していること。
  • task:自然言語タスク。VLA では多くの場合必須で、欠落時は一部の学習用イメージで --prompt が代替になり得ます。

エクスポート設定の目安

項目推奨
サンプリング周波数まずロボット制御周波数を維持(10–30 Hz が一般的)。サイズ削減のためだけに過度にダウンサンプルしない。
画像形式大規模学習は MP4 を推奨。画質確認には一時的に JPG も可。
入出力の厳密一致観測・言語・動作のズレを減らすためオンを推奨。
顔の自動ぼかし人物が写り外部配布する場合はオンを推奨。

エクスポート後は .tar.gz をダウンロードし、専用ディレクトリに展開します。学習コマンドの /path/to/lerobot_datasetmeta/info.json を含むディレクトリ を指す必要があり、その親ディレクトリではありません。

your_dataset/
├── meta/
│ └── info.json
├── data/
└── videos/

トピックマッピング

プラットフォームは ROS/ROS2 のトピック名から状態と動作を推定します。

  • 末尾が /joint_state または /joint_states のトピック:positionobservation.state に書き込まれます。
  • 末尾が /joint_cmd または /joint_command のトピック:positionaction に書き込まれます。

命名が異なる場合は収録時に統一するのが望ましいです。既存データで改名できない場合は、学習失敗後ではなく事前にマッピングを用意してください。

データ検証

学習前に少なくとも一度は形式検証を行ってください。まず LeRobot Studio でアーカイブまたは展開ディレクトリを開き、meta/info.json・features・エピソード・表データ・動画の整合を確認します。

スクリプトで確認する場合は LeRobot からロードします。

from lerobot.datasets import LeRobotDataset

dataset = LeRobotDataset("local/my_dataset", root="/path/to/lerobot_dataset")
print(dataset.num_frames, dataset.num_episodes)

ロードに成功しても学習に最適とは限りませんが、ディレクトリ階層・メタデータ欠落・ファイル欠落は切り分けできます。

学習経路

本ドキュメント群の原則は 「公式ソースとモデルカードを正とし、イメージは再現用の近道」 です。能力・制約・主要コマンドは公式に従い、まず IO-AI が公開する ioaitech/* イメージでループを閉じ、必要に応じて公式ソースへ戻してください。

モデル推奨エントリ想定用途ガイド
Pi0 / Pi0.5ioaitech/train_openpi:pi0ioaitech/train_openpi:pi05大規模 VLA のファインチューニング(OpenPI・JAX/FSDP/LoRA)Pi0 / Pi0.5
SmolVLAioaitech/lerobot-gpu:v0.5.0単 GPU で LeRobot v0.5.0 公式コマンドを検証SmolVLA
ACTioaitech/train_act:cuda単タスク模倣学習。LeRobot を ACT/HDF5 に橋渡しACT
Spirit-v1.5ioaitech/train_spirit:1.5先端 VLA。RoboChallenge レイアウトまたは変換可能な LeRobotSpirit-v1.5
Diffusion Policyioaitech/lerobot-gpu:v0.5.0 または公式ソース滑らかな連続軌跡が重要な方策Diffusion Policy

事前チェック

GPU イメージには NVIDIA Container Toolkit が必要です。コンテナ内で GPU が見えることを確認します。

docker run --rm --gpus all nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi

ホスト側のディレクトリ例:

workspace/
├── dataset/ # 展開済み LeRobot データセット
└── output/ # チェックポイント・ログ・マニフェスト

LeRobot v0.5.0 の学習エントリ

LeRobot v0.5.0 インストール後は lerobot-train を使います。本ドキュメント群の LeRobot フレームワーク学習はこのコマンドを前提とします。

最小例:

lerobot-train \
--dataset.repo_id=local/my_dataset \
--dataset.root=/path/to/lerobot_dataset \
--policy.type=act \
--output_dir=outputs/train/act_baseline \
--job_name=act_baseline \
--policy.device=cuda

事前学習済みポリシーからのファインチューニングは --policy.path(例:SmolVLA):

lerobot-train \
--policy.path=lerobot/smolvla_base \
--dataset.repo_id=local/my_dataset \
--dataset.root=/path/to/lerobot_dataset \
--output_dir=outputs/train/smolvla_finetune \
--job_name=smolvla_finetune \
--policy.device=cuda

公式参照

技術判断の根拠として、次の資料を参照しています(執筆時点で URL を確認済み)。

よくある質問

データセット形式と LeRobot パッケージの対応

meta/info.jsoncodebase_versionデータセット形式 であり、Python パッケージのバージョンではありません。

データ形式推奨スタック
v2.1多くの場合 LeRobot v0.3.x 系。OpenPI/ACT イメージは互換処理を含むことがあります。
v3.0LeRobot v0.4+ を推奨。現状のデフォルトは v0.5.x

コンテナ内でデータセットが見つからない

バインドマウントを確認してください。コンテナ内に /data/input/meta/info.json が必要です。データルートの親だけをマウントするのはよくある誤りです。

最初に何を学習すべきか

ループを最速で閉じるなら SmolVLA または ACT。言語条件の一般化を強くしたい場合に Pi0/Pi0.5 や Spirit-v1.5 へ。データ・評価・1 つのベースラインを固定してから大規模実験に進んでください。

学習が有効かどうか

オフライン損失だけでは不十分です。少なくとも次を見てください。

  • 固定テスト初期状態での成功率
  • 物体位置・照明・背景を変えたときの成功率
  • 推論時の動作の連続性・停止・限界違反
  • 失敗が特定シーンやカメラに偏っていないか

いつ公式ソースに戻るか

次の場合はイメージから公式ソースへ切り替えてください。

  • データマッピング・アクション空間・ロボット I/O の変更
  • モデル構造・凍結・オプティマイザの変更
  • 論文や公式ベンチマークの厳密再現
  • イメージ外層より下位のフレームワーク問題の切り分け