メインコンテンツまでスキップ
ステージ 3 · 第 15 章 · 実践

15. 最初の ACT ポリシーを訓練する

バッチサイズ・学習率・訓練ステップを理解し、lerobot-train で SO-ARM データセット上に最初の ACT ポリシーを訓練し、Loss と GPU を監視し、チェックポイントを管理します。

⚡ コード不要 · 環境構築不要

セットアップをスキップして — reBot Arm と LeRobot を 1 つのアプリから実行

SenseCraft Robotics は、SO-ARM101、reBot Arm 102 + B601-RS および B601-DM 向けの Seeed のノーコードプラットフォームです。アームを接続し、キャリブレーションを行い、デモを収集し、ガイド付きインターフェースから学習と推論を実行できます — Python 環境もターミナルも不要です。

  • ✅ 6 ステップのガイド付きワークフロー
  • ✅ クラウド学習 — ローカル GPU 不要
  • ✅ Windows / macOS クライアント
  • ✅ SO-ARM101 · B601-RS · B601-DM

15.1 3 つのキー設定:バッチサイズ・学習率・ステップ数​

設定

15.1 3 つのキー設定:バッチサイズ・学習率・ステップ数

バッチサイズ​

1 回の更新でモデルが見るフレーム数。大きいほど訓練は安定しますが VRAM を食います。CUDA メモリ不足になったら、最初に下げるのはバッチサイズです。まず ACT のデフォルトのまま、必要なときだけ触りましょう。

学習率​

1 回の更新でパラメータが動く距離。高すぎると Loss が振動・発散、低すぎると訓練が極端に遅くなります。ACT のデフォルト(1e-5 台)はテーブルトップタスクで十分検証済み。最初の実行では変更しないでください。

訓練ステップ数​

更新の総回数。SO-ARM 規模のタスクでは ACT のデフォルト 10 万〜30 万ステップが目安。難しいタスクでは増やすと有利ですが過学習リスクがあります。判断は Loss 曲線で — 検証 Loss が改善しなくなったら停止します。

ヒント

初回の戦略:すべてデフォルトのまま 10 万ステップ訓練し、実機で評価(第 16 章)してから何を調整するか決める。初心者の盲目調整で失う時間は、2 回訓練する時間に匹敵します。

15.2 チェックポイントの保存と管理​

チェックポイント

15.2 チェックポイントの保存と管理

手動保存は不要:save_freq ステップごとに自動保存され、最後に last が 1 つ追加されます。ステップ数を大きく設定しても大丈夫 — 小さいステップ数のモデルを選び、未熟・過学習なものを捨てられます。

outputs/train/act_so101_test/
├── train_config.json ← この実行の完全設定(再開に必要)
└── checkpoints/
├── 0020000/pretrained_model/ ← 各ステップ数でのモデルアーカイブ
├── 0040000/pretrained_model/
├── ...
└── last/pretrained_model/ ← 最後のチェックポイント。第 16 章で使用
  • ディスク使用量:各チェックポイントは完全なモデル重みファイルで、数十個分はかさみます。訓練が安定したら早中期は削除し last だけ残して構いません;
  • 推論時の --policy.path は checkpoints/last/pretrained_model を指します。

15.3 訓練の開始​

訓練

15.3 訓練の開始

すべての確認が済んだら(conda lerobot 環境で)開始します。ローカルデータセット(第 12 章で録画)では repo_id が採集時と一致していることを確認し、--policy.push_to_hub=false を付けます:

lerobot-train \
--dataset.repo_id=seeedstudio123/test \
--policy.type=act \
--output_dir=outputs/train/act_so101_test \
--job_name=act_so101_test \
--policy.device=cuda \
--wandb.enable=false \
--policy.push_to_hub=false \
--steps=300000

Hugging Face Hub 上のデータセットならユーザー名を使います:

lerobot-train \
--dataset.repo_id=${HF_USER}/so101_test \
--policy.type=act \
--output_dir=outputs/train/act_so101_test \
--job_name=act_so101_test \
--policy.device=cuda \
--wandb.enable=false \
--steps=300000

各引数の意味:

  • データセット指定:--dataset.repo_id は第 12 章のデータセットを指します;
  • 訓練ステップ数:--steps=300000。アルゴリズムのデフォルトはより大きいので、タスク難度と Loss 曲線に合わせて調整します;
  • ポリシータイプ:--policy.type=act は ACT 設定を読み込みます。ポリシーはあなたのロボットのモーター状態・モーターアクション・カメラ数に自動適応します — この情報はデータセットに保存済みです。他の選択肢は diffusion、pi0、pi0fast、smolvla、groot;
  • デバイス選択:NVIDIA GPU なら --policy.device=cuda。Apple Silicon は mps が使えます;
  • 可視化ツール:--wandb.enable=true に戻すと Weights and Biases で訓練をグラフ化できます(先に wandb login)。
ヒント

RTX 50 シリーズ GPU では --dataset.video_backend=pyav の追加が必須 — プレビュー版 torchvision に欠けている API を回避します。完全なコマンド:

lerobot-train \
--dataset.repo_id=seeedstudio123/test \
--dataset.video_backend=pyav \
--policy.type=act \
--output_dir=outputs/train/act_so101_test \
--policy.device=cuda \
--wandb.enable=false \
--policy.push_to_hub=false \
--steps=300000

15.4 Loss と GPU の監視​

監視

15.4 Loss と GPU の監視

  • Loss:log_freq ステップごとに端末へ表示。早期の急低下と、その後の長く浅い低下が健全な形です。Loss が上昇・激しく振動する場合は、その環境に学習率が合っていないことが多いです;
  • GPU:nvidia-smi(または watch -n 1 nvidia-smi)で VRAM と使用率を監視。使用率が長くほぼ 0% なら、ボトルネックは GPU ではなくデータパイプライン(ディスク / CPU)です;
  • 所要時間の目安:50 Episode の ACT 訓練は、ノート PC の RTX 3060 8GB で約 6 時間、RTX 4090 や A100 で約 2〜3 時間です。実時間はデータ量・解像度・バッチサイズ・ハードウェアに依存します。

15.5 中断した訓練の再開​

再開

15.5 中断した訓練の再開

last チェックポイントから再開するには、保存済み設定を渡します:

lerobot-train \
--config_path=outputs/train/act_so101_test/checkpoints/last/pretrained_model/train_config.json \
--resume=true

ポリシーのチェックポイントをアップロード(任意)​

訓練完了後、最新チェックポイントをアップロード:

huggingface-cli upload ${HF_USER}/act_so101_test \
outputs/train/act_so101_test/checkpoints/last/pretrained_model

15.6 よくある訓練エラー​

トラブル対応

15.6 よくある訓練エラー

エラー対処
TypeError: stack(): argument 'tensors' must be tuple of Tensors, not Columnpip install datasets==2.19
CUDA メモリ不足バッチサイズを下げる。他の GPU プロセスを閉じる。--dataset.video_backend=pyav を使う
データ読み込み時に No valid stream found in input fileconda install ffmpeg=7.1.1 -c conda-forge(第 5 章の修正)
データセットが見つからないローカルデータセットは録画時の repo_id を再確認。フォルダは ~/.cache/huggingface/lerobot/ の下にあります

訓練済みの checkpoints/last/pretrained_model が手に入ったら、次章でポリシーを実機に載せます。

Loading Comments...