LeRobot documentation

ACT(Action Chunking with Transformers)

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

ACT(Action Chunking with Transformers)

ACTは、模倣学習のための軽量かつ効率的なポリシーであり、特に細粒度の操作タスクに適しています。学習時間が短く、計算リソースの要件が低く、高いパフォーマンスを発揮するため、LeRobotでの入門として最初に推奨するモデルです。

LeRobotチームのこのチュートリアルを視聴して、ACTの仕組みを学びましょう: LeRobot ACT Tutorial

モデル概要

Action Chunking with Transformers (ACT) は、Zhao らの論文 Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware で提案されました。このポリシーは、安価なハードウェアと最小限のデモデータを用いて、精密な接触の多い操作タスクを可能にするよう設計されています。

ACTが初心者に最適な理由

ACTが優れた出発点として際立っているのには、いくつかの理由があります:

  • 高速トレーニング: 単一のGPUで数時間でトレーニング
  • 軽量: パラメータ数は約8000万に過ぎず、効率的で扱いやすい
  • データ効率: 50件のデモレーションだけで高い成功率を達成することがよくあります

アーキテクチャ

ACTは、3つの主要なコンポーネントを持つtransformerベースのアーキテクチャを使用しています:

  1. ビジョンバックボーン: ResNet-18 が複数のカメラ視点からの画像を処理します
  2. Transformer Encoder: カメラ特徴、関節位置、学習された潜在変数から情報を統合します
  3. Transformer Decoder: クロスアテンションを使用して、一貫性のあるアクションシーケンスを生成します

ポリシーのインプットは以下の通りです:

  • 複数のRGB画像(例: 手首カメラ、前面/上面カメラからのもの)
  • 現在のロボットの関節位置
  • 潜在スタイル変数z(学習時に学習され、推論時にはゼロに設定されます)

k 個の未来アクションシーケンスのチャンクを出力します。

インストール要件

  1. LeRobotのインストールは、インストールガイドに従って行ってください。
  2. ACTはLeRobotのベースインストールに含まれているため、追加の依存関係は不要です!

ACTの学習

ACTは、標準的なLeRobotの学習パイプラインとシームレスに連携します。以下は、ご自身のデータセットでACTを学習するための完全な例です。

lerobot-train \
  --dataset.repo_id=${HF_USER}/your_dataset \
  --policy.type=act \
  --output_dir=outputs/train/act_your_dataset \
  --job_name=act_your_dataset \
  --policy.device=cuda \
  --trackio.enable=true \
  --policy.repo_id=${HF_USER}/act_policy

トレーニングのコツ

  1. デフォルトから始める: ACTのデフォルトのハイパーパラメータは、ほとんどのタスクで良好に機能します
  2. 学習時間: 単一GPUで10万ステップの学習には数時間かかります
  3. バッチサイズ: 8から開始し、GPUメモリに基づいて調整してください

Google Colabを使用してトレーニング

ローカルコンピュータに高性能なGPUがない場合、ACTトレーニングノートブックに従ってGoogle Colabを利用してモデルをトレーニングできます。

ACTの評価

トレーニングが完了すると、lerobot-rollout を使用してロボット上で ACT ポリシーを評価できます。以下のコマンドは、何も記録せずに 60 秒間ポリシーを実行します(ACT の場合は --task を省略できます)。評価エピソードを記録する戦略については、ポリシーのデプロイを参照してください。

lerobot-rollout \
  --strategy.type=base \
  --policy.path=${HF_USER}/act_policy \
  --robot.type=so101_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
  --display_data=true \
  --task="Your task description" \
  --duration=60
Update on GitHub