SO-ARM101でACT学習を試みた話:ColabとAWSで格闘した記録

ロボットアームに「黄色いレゴブロックを掴む」という崇高なミッションを与えるべく、機械学習の訓練環境を整えようとした話です。道のりは平坦ではありませんでした。むしろデコボコでした。


そもそもACTって何?

まず前提として、今回使う学習アルゴリズム ACT(Action Chunking with Transformers) について簡単に説明します。

難しそうな名前ですが、やっていることはシンプルです。「人間がテレオペレーションでデモンストレーションした動きを、ロボットに丸ごと真似させる」というものです。

Action Chunking(アクション・チャンキング)とは、1フレームずつ次の動作を予測するのではなく、複数フレーム分の動作をまとめて予測する手法です。これによってロボットの動きがなめらかになります。そこにChatGPTでもおなじみの Transformerアーキテクチャ を組み合わせたのがACTです。

2023年にスタンフォード大学のALOHAプロジェクトが発表した手法で、LeRobot(ルロボ) × SO-ARM101の組み合わせではデファクトスタンダードになっています。

学習の流れはこうです。

テレオペレーションで操作を録画
  ↓
カメラ映像 + 関節角度のデータセットが完成
  ↓
ACTで学習(模倣)
  ↓
ロボットが自律的にレゴブロックを掴む(はず)

「はず」というのが今回のテーマです。


訓練環境の候補を洗い出した

SO-ARM101の組み立てとキャリブレーション、テレオペレーション、データ収集まではM1 Macで完結しました。しかし本番の学習となると話は別です。ACTの訓練は NVIDIA A100 GPUで約1.5時間かかります。M1 Macに搭載されているApple Silicon(MPS)ではどうでしょうか?

残念ながら、20時間以上という試算が出ました。丸一日以上待つのはさすがに現実的ではありません。MacはMPSのPyTorchサポートがまだ不完全で、ACTで使う演算の一部がCPUにフォールバックしてしまうからです。

ということで、外部のGPU環境を探すことになりました。


候補①:Google Colab(無料枠)

まず誰もが思いつくのがGoogle Colabです。無料でT4 GPUが使えて、LeRobotもHugging Face Hubのデータセットも問題なく動きます。

T4 GPUでの学習時間の目安:4〜6時間。

ここで問題が発覚します。Colabの無料枠にはアイドル切断という罠があります。ブラウザの操作がない状態が90分続くと、セッションが強制終了されるのです。

4〜6時間の学習中に90分のアイドル切断が来たら、当然途中で止まります。「じゃあPCを閉じないで放置すればいい」と思うかもしれませんが、PCを閉じるとブラウザのタブも非アクティブになり、同じく切断されやすくなります。

回避策として試みたこと:

ブラウザのコンソールに以下のJavaScriptを貼り付けて、1分ごとに自動クリックさせる方法があります。

function clickConnect() {
  document.querySelector("#top-toolbar button")?.click();
  console.log("clicked");
}
setInterval(clickConnect, 60000);

これで切断は防げますが、PCを開いたまま6時間放置という修行が発生します。そんなときに便利なのがKeepingYouAwakeです。これはMacが自動的にスリープモード(またはディスプレイオフ)になるのを一時的に無効にしてくれる、軽量で便利なmacOS用メニューバーアプリです。

結論:無料枠は「できなくはないが、修行が伴う」。


候補②:Google Colab Pro(月額約1,200円)

Proに課金すると状況が一変します。

  • アイドル切断の猶予が大幅に延長される
  • A100 GPUが使えるようになる(学習時間が1.5時間に短縮)
  • 最大24時間のセッション継続

月約1,200円でこれだけ改善されるなら、コスパとしては悪くありません。1ヶ月だけ課金して学習を済ませてしまう、という使い方が現実的です。

結論:短期的には最もストレスフリーな選択肢。


候補③:AWS EC2(GPU インスタンス)

次に調べたのがAWSです。いくつかのサービスを比較検討しました。

EC2 g4dn.xlarge(スポットインスタンス)

NVIDIA T4 GPU搭載、Colabの無料枠と同じGPUです。

購入方式時間単価(東京リージョン)5時間のコスト
オンデマンド約$0.75/時間約$3.75
スポット約$0.22/時間約$1.10

スポットインスタンスは空き容量を使う分だけ安い代わりに、AWSの都合で突然止められることがあります。とはいえACTの学習のような単発ジョブなら、チェックポイントを保存しておけば再開できます。

Deep Learning AMIから起動すれば、CUDA・PyTorchがあらかじめインストールされているので環境構築の手間もほぼゼロです。

学習コマンドもColabとほぼ同じで動きます:

lerobot-train \
  --dataset.repo_id=emboss369/record-test_20260606_114847 \
  --policy.type=act \
  --output_dir=/home/ubuntu/outputs/train/act_so101 \
  --policy.device=cuda

結論:時間制限なし、1回$1〜4程度。繰り返し学習するなら最もコスパが良い。


候補④:AWS SageMaker

「マネージドなML基盤でかっこよく学習させたい」という気持ちはわかります。しかし現実は厳しかったです。

SageMakerのインスタンス(ml.プレフィックス)は、同等のEC2インスタンスに比べて20〜40%割高です。チェックポイント管理やジョブ管理が自動化される分のコストです。

個人の実験レベルではオーバースペックです。複数チームが大規模なMLパイプラインを運用するような場面向けのサービスと考えた方がよいです。

結論:今回の用途には不要。スルー。


候補⑤:Amazon Bedrock

「AWSのAIサービスといえばBedrock」と思って調べ始めましたが、すぐに方向性の違いに気づきました。

BedrockはClaude・Llama・Titanなど、既製の基盤モデルにAPIでアクセスするサービスです。「既存のLLMを使いたい」人向けで、カスタムPyTorchモデルをゼロから訓練する用途には使えません

LeRobotのACTはまさに「カスタムPyTorchモデルをゼロから訓練する」ものなので、Bedrockは完全に的外れでした。

結論:用途が全く異なる。即撤退。


候補⑥:AWS Trainium(Trn1インスタンス)

AWSが独自開発したAI学習向けチップです。GPU比で30〜50%のコスト削減が可能とのことで、LeRobotとの組み合わせを紹介するAWS公式ドキュメントも存在します。

ただし、そのままのPyTorchコードでは動かず、NVIDIA Neuron SDKへの対応が必要です。つまりLeRobotのコードを修正する必要があります。

面白い選択肢ではありますが、今の段階ではハードルが高すぎます。将来の選択肢としてリストに残しておく程度です。

結論:将来有望だが、今はコード修正が必要で現実的ではない。


候補⑦:AWS Batch

AWSは実際にLeRobot × SO-ARM101を使ったロボット学習パイプラインをAWS Batch上で構築するガイドを公式ブログで公開しています。DockerコンテナとCDK(インフラをコードで管理するツール)を組み合わせた本格的な構成です。

ACTも対応フレームワークとして明記されており、夢が広がります。

ただし、これはインフラエンジニアリングの知識がある人向けです。「まずロボットを動かしたい」という段階でここに手を出すと、ロボット学習より先にAWSの設定で力尽きます。

結論:スケールアップ時には有効。今は複雑すぎる。


まとめ:現実的なおすすめ構成

フェーズおすすめ環境理由
動作確認・試し学習Colab無料枠(ステップ数を減らす)お金をかけずに確認
本格的な学習(単発)Colab Pro または EC2 スポットコスパと手軽さのバランス
繰り返し学習EC2 g4dn.xlarge スポット時間制限なし、安価
将来的な本番環境BTO PC(RTX 5070)ローカル最速・最安・待ち時間ゼロ

結局、何を選んだか

今すぐ試すなら Colab Proが一番ストレスフリーです。月1,200円でA100が使え、1.5時間で終わります。

EC2のスポットインスタンスはコスパ最強ですが、多少のセットアップが必要です。何度も学習を回す予定があるなら、一度環境を整えてしまえばコマンド一発で回せます。

そしてBTO PC(RTX 5070搭載予定)が届けば、それが最終解答になります。ローカルGPUはクラウドに比べて待ち時間ゼロ、追加コストゼロです。

というわけで、「黄色いレゴブロックを掴むロボット」を完成させる日は近いです。たぶん。


この記事はLeRobot v3.0、SO-ARM101を使った実際の試行錯誤をもとに書いています。環境や料金は変わることがあるので、最新情報はAWSおよびLeRobot公式ドキュメントをご確認ください。

コメント

タイトルとURLをコピーしました