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

LeRobotデータセット

LeRobotは、HuggingFaceが提供するロボット学習と強化学習シナリオ向けのオープンソース標準化データセットソリューションです。研究者がロボット学習実験を共有、比較、再現しやすくする統一フォーマットを提供します。

データのエクスポート

IOデータプラットフォームは、VLA(Vision-Language-Action)モデルの訓練に直接使用できるLeRobotフォーマットでのデータエクスポートをサポートしています。このフォーマットには、ロボット操作の視覚情報、言語指示、動作データの完全なマッピングが含まれています。

ヒント

エクスポートには高い計算リソースが必要なため、IOデータオープンプラットフォームの無料版では、ユーザーごとのエクスポート数が制限されています。有料版ではこの制限がなく、GPU加速によりエクスポート速度を向上させることができます。

1. エクスポートするデータの選択

まずデータにアノテーションを行う必要があります。アノテーションは動作と自然言語指示を関連付けるもので、VLAモデルの訓練に不可欠です。このプロセスにより、モデルが言語コマンドを理解し、対応するロボット動作に変換できるようになります。

アノテーションの方法や迅速なバッチアノテーションについては、ドキュメントを参照してください:データアノテーション

アノテーション完了後、エクスポート画面で関連するアノテーション済みデータを確認し、特定のデータサブセットを選択してエクスポートできます。

エクスポートするデータの選択

データセット名はカスタマイズできます。Hugging Faceにデータをアップロードする予定の場合は、myproject/myrepo1のような標準的なリポジトリ名形式を使用することをお勧めします。これにより、後続の公開プロセスが簡素化されます。

ヒント

選択するデータ量が多いほど、エクスポート速度は遅くなります。一度にすべてをエクスポートするのではなく、タスクタイプ別に選択することをお勧めします。これにより、エクスポート速度が向上し、後続のデータ管理とモデル訓練も容易になります。

2. エクスポートファイルのダウンロードと解凍

エクスポートプロセスは、データサイズとシステム負荷に応じて数分から数十分かかる場合があります。進捗は自動的に更新されるため、後でエクスポートページに戻って結果を確認できます。

エクスポートが成功すると、ページ右側のエクスポート記録セクションにデータダウンロードボタンが表示されます。クリックすると**.tar.gz**アーカイブがダウンロードされます。

エクスポート結果

ファイルの混乱を避けるため、~/Downloads/mylerobot3のような新しい空のディレクトリをローカルに作成してファイルを解凍することをお勧めします:

新しいディレクトリの作成

解凍後のファイル構造は、視覚データ、状態情報、動作ラベルを含む標準的なLeRobotデータセットフォーマットに従います:

解凍データ

データの閲覧

ユーザーがデータを迅速に閲覧、理解、デバッグできるよう、2つの一般的な可視化方法があります。それぞれ異なるシナリオに適しています。

シナリオ方法利点
ローカル開発とデバッグRerun SDKローカル閲覧完全な機能、高いインタラクティブ性、ネットワーク依存なし
迅速なプレビューまたはデモ読み込みHugging Faceオンライン閲覧インストール不要、共有が容易、いつでもアクセス可能

1. Rerun SDKを使用したローカル閲覧

lerobotリポジトリをローカルにダウンロードしてインストールし、lerobot/scripts/visualize_dataset.pyRerun SDKを使用して、タイムライン形式のインタラクティブなマルチモーダルデータ閲覧(画像、状態、動作など)を実現します。この方法は最も豊富なインタラクティブ機能とカスタマイズオプションを提供します。

Rerun SDKのインストール

Python 3.10以上を使用していることを確認し、以下のコマンドを実行して必要な依存関係をインストールしてください:

python3 -m pip install rerun-sdk==0.23.1
git clone https://github.com/huggingface/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:表示するエピソードインデックスを指定(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/uncap_pen
  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

上記のコマンドは、単一のNVIDIAグラフィックカードで訓練コマンドを実行します。 /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:訓練されたモデルを保存するディレクトリ

smolVLA微調整推奨事項(推奨)

smolVLAは消費者向け/単一カード環境に最適化されたVLAモデルです。ゼロから訓練するよりも、公式の事前訓練重みで微調整することをお勧めします。

インストールと準備

git clone https://github.com/huggingface/lerobot.git
cd lerobot
pip install -e ".[smolvla]"

事前訓練モデルからの微調整(推奨)

python -m lerobot.scripts.train \
--policy.path=lerobot/smolvla_base \
--dataset.root=/data/lerobot_dataset \
--dataset.repo_id=your-name/your-repo \
--policy.device=cuda \
--output_dir=/data/lerobot_smolvla_finetune \
--training.num_train_steps=20000 \
--batch_size=64

実践的推奨事項:

  • データ量:約50のタスクセグメントから開始し、オブジェクト位置、姿勢、開始/終了点などの多様性をカバーするよう努める
  • リソースと時間:単一A100で20kステップの訓練は約4時間;消費者向けグラフィックカードは適切にバッチサイズを減らすか、勾配累積を有効化
  • ハイパーパラメータ開始点:batch_size=64training.num_train_steps=20k、学習率はデフォルトを維持するか1e-4から微調整
  • --policy.type=smolvlaを使用する場合:ゼロから訓練用;通常より多くのデータとより長い時間が必要、小データセットにはゼロから訓練は推奨されない

ゼロから訓練(オプション)

python -m lerobot.scripts.train \
--policy.type=smolvla \
--dataset.root=/data/lerobot_dataset \
--dataset.repo_id=your-name/your-repo \
--policy.device=cuda \
--output_dir=/data/lerobot_smolvla_fromscratch \
--training.num_train_steps=200000 \
--batch_size=64

一般的な最適化

  • メモリ最適化:--training.fp16=true--training.gradient_accumulation_steps=4(メモリに応じて調整)
  • マルチビュー/マルチシーンデータ拡張:微調整段階での汎化に大きな影響
  • 監視ツール:W&Bを設定して訓練曲線と評価指標を監視し、早期停止とバックトラッキングを容易にすることを推奨

ACT微調整推奨事項

ACT(Action-Conditioned Transformer)は単一タスクまたは短い時系列ポリシー学習に適している;マルチタスク汎化では通常smolVLAより劣る。タスクが明確で、制御頻度が高く、時系列が比較的短い場合、ACTは依然としてコストパフォーマンスの高い選択肢です。

データと前処理:

  • 軌道スライス:統一されたセグメント長とアライメントを保証(例:10-20ステップのアクションチャンク)
  • 動作正規化:統一されたスケール/単位は訓練を大幅に安定化
  • 観測一貫性:カメラ内部パラメータ/視点を可能な限り一貫させるか、典型的な摂動をカバーする多様なデモンストレーションを録画

訓練ハイパーパラメータ開始点(メモリとタスク難易度に応じて微調整):

  • batch_size=64、学習率1e-4、ウォームアップ1000ステップ、訓練ステップ数100k-200k
  • 過学習の場合:データ多様性を増加、正則化または早期停止を追加;未学習の場合:ステップ数を延長または正則化を緩和

コマンド例(ローカルlerobotバージョンにACTポリシーが含まれている場合):

python -m lerobot.scripts.train \
--policy.type=act \
--dataset.root=/data/lerobot_dataset \
--dataset.repo_id=your-name/your-repo \
--policy.device=cuda \
--output_dir=/data/lerobot_act_finetune \
--batch_size=64 \
--training.num_train_steps=100000 \
--training.learning_rate=1e-4

注意:異なるバージョンではポリシー名と利用可能なパラメータが異なる場合があります。ローカルのsrc/lerobot/policies実装と公式ドキュメントを参照してください。

よくある質問(FAQ)

Q: LeRobotデータのエクスポートにはどのくらい時間がかかりますか?

A: エクスポート時間はデータサイズと現在のシステム負荷に依存します。通常、GBあたり3-5分かかり、効率を向上させるためにバッチエクスポートをお勧めします。

Q: 無料版ではどのくらいのデータをエクスポートできますか?

A: 無料版にはエクスポート数量制限があり、エクスポート画面に表示されます。大量エクスポートが必要な場合は、有料版へのアップグレードをお勧めします。

Q: エクスポートされたデータはどのモデルの訓練に使用できますか?

A: LeRobotフォーマットは、smolvla、Pi0、ACTなど、さまざまなVLAモデルをサポートしています。 詳細は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: 以下の方法を試してください:

  • バッチサイズを減らす
  • データローダーの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

関連リンク