AY-Robotsのトレーニングマトリックス。5つのポリシー行と4つのロボットアーム列があり、各セルは特定のモデルとアームのトレーニングガイドにリンクしています。
ACTSO-100lerobot模倣学習ポリシー学習

SO-100でACTをゼロからトレーニングする方法

AY-Robots ResearchAugust 23, 202616 分で読めます

lerobotを使用してSO-100でAction Chunking Transformerをゼロからトレーニングします。act config、chunk_sizeとn_action_steps、100000ステップのスケジュール、20 msの推論について説明します。

ACTはSO-100ポリシーの中で異質な存在です。GR00T N1.7とN1.5はnvidia/GR00T-N1.7-3Bおよびnvidia/GR00T-N1.5-3Bから、Pi0.5はlerobot/pi05_baseから始まります。ACTはゼロから始まります。基盤モデルではないため、ベースチェックポイントはありません。これは、約8000万パラメータのトランスフォーマーであり、特定のタスクに対して、ご自身のロボットアームで、ご自身の照明環境下で、スクラッチからトレーニングします。

そのため、30億パラメータのVLAが152~485ミリ秒を必要とするのに対し、ACTは20ミリ秒で制御ステップを実行し、実行あたりのコストも4~12米ドルではなく1~3米ドルです。このガイドでは、lerobotを使用してSO-100で手動で進める方法を説明します。具体的には、記録、act設定、chunk_sizen_action_stepsの制御、100000ステップのスケジュール、ロールアウトについてです。その後、AY-Robotsでの同じ作業についても、プラットフォームが役立たない点を含めて説明します。

知っておくべきこと

  • ACTはスクラッチからトレーニングします。ベースモデル、事前学習、言語入力はありません。1つのチェックポイント、1つのタスクです。
  • 論文によると、約8000万パラメータで、11 GBのRTX 2080 Tiで約5時間、推論は0.01秒です。
  • lerobotのデフォルト設定:chunk_size 100、n_action_steps 100、batch 8、lr 1e-5、100000ステップ、seed 1000。
  • AY-Robotsでは、1ステップあたり20ミリ秒で、5つの中で最速です。最低50エピソード、LeRobot v3.0、24 GBカード、実行あたり1~3米ドルです。
  • 既知のタスクでは優位ですが、言語条件付けを求めると性能が低下します。
対象バージョン

2026年8月23日、lerobot 0.6.xに対して確認済み: mainブランチのpyproject.tomlversion = "0.6.2"と読み取られ、最新タグはv0.6.1、2026年8月3日です。python lerobot/scripts/train.pyで始まるチュートリアルは、コンソールエントリーポイントであるlerobot-trainlerobot-recordlerobot-rolloutよりも前のものです。

ACTとは何か

Action Chunking with Transformersは、Zhao、Kumar、Levine、FinnによるALOHA論文「低コストハードウェアによるきめ細かな両手操作の学習」に由来し、arXivに2023年4月23日に公開されました。このリグは50 Hzで記録し、4台のウェブカメラが480x640ピクセル、30 fpsでストリーミングします。カメラはグリッパーに2台、上部に1台、前面に1台配置されています。要旨では、10分間のデモンストレーションから、半透明の調味料カップを開けることやバッテリーをスロットに挿入することを含む6つのスキルで80〜90パーセントの成功率を主張しています。

記録セッションを計画する際には、本文がより役立ちます。各タスクにつき50回のデモンストレーション(Thread Velcroは100回)で、これは10〜20分間のデータと、リセットを考慮すると30〜60分間の実時間となります。成功率は一様ではありません。Thread Velcroは20パーセント、Put On Shoeは92パーセント、Cup Openは84パーセント、Prep Tapeは64パーセントで終了します。

ハイパーパラメータALOHA論文、表IIIlerobot (main)
学習率1e-5optimizer_lr = 1e-5
バッチサイズ8batch_size = 8, in TrainPipelineConfig not ACTConfig
エンコーダ / デコーダ層4 / 7n_encoder_layers = 4 / n_decoder_layers = 1
チャンクサイズ k100chunk_size = 100
zの潜在次元なし; 図11は32から512への射影を示すlatent_dim = 32
時間的アンサンブルなし; 参照コードの--temporal_aggtemporal_ensemble_coeff = None
デコーダー層の行は誤植ではありません

論文には7つのデコーダー層が記載されていますが、lerobotは意図的に1つだけを実装しています。configuration_act.pyのコメントによると、元の実装にはバグがあり、最初の層のみが使用されると記載されており、tonyzhaozh/actのissue 25が引用されています。アクションヘッドがhs[0]を読み取るため、7つの層すべてが実行されますが、最初の出力のみが予測に到達します。このissueは2024年4月23日以降、未解決のままです。lerobotは、記載された数値ではなく、公開された結果を生み出した動作に合わせています。--policy.n_decoder_layersを増やすと、論文で評価されなかったモデルを訓練することになります。

アクションチャンキングがその核心です

通常の行動クローニングでは、1つの観測を1つの行動にマッピングするため、誤差が累積します。逸脱によってアームが分布から外れ、より悪い行動が生じ、30ステップ後にはグリッパーがオブジェクトの近くに全くない状態になります。アクションチャンキングは、k個の行動を一度に予測して実行し、実効的な予測期間をk分の1に短縮します。また、人間データに特有の厄介な問題も処理します。テレオペレーターは一時停止することがあり、単一ステップのマルコフ的なポリシーは、以前の状況に依存する一時停止をモデル化できません。

この論文では、kを断定するのではなく、アブレーション研究を行っています。時間的アンサンブルをオフにした場合、4つの設定で平均すると、成功率はk = 1で1%からk = 100で44%に上昇し、その後、ポリシーがオープンループ制御に近づくにつれて200および400で頭打ちになります。この曲線が、デフォルトが100である理由です。

  • chunk_size: デコーダが1回のフォワードパスで予測する将来のアクションの数。デフォルトは100です。
  • n_action_steps: 再度クエリを実行する前に、そのうちいくつを実行するか。デフォルトは100で、lerobotはチャンク全体をオープンループで実行します。
  • lerobotはn_action_steps <= chunk_sizeを検証し、逆の場合にはValueErrorを発生させます。

運用上重要なのは、chunk_sizeをフレームレートで割った値です。lerobotのSO-100の例が使用する30 fpsでは、100のチャンクは1つの観測から約3.3秒をコミットします。タスクがそのウィンドウ内で修正を必要とする場合、n_action_stepsを下げ、chunk_sizeは下げないでください。これにより、長い予測を維持しつつ、より頻繁に再観測できます。

bash
# predict 100 actions, re-query after 25 of them (about 0.8 s at 30 fps)
lerobot-train \
  --dataset.repo_id=${HF_USER}/so100_cube \
  --policy.type=act \
  --policy.chunk_size=100 \
  --policy.n_action_steps=25 \
  --policy.device=cuda
予測を短縮せずに、チャンクの実行部分を短縮する。
時間的アンサンブルの落とし穴

--policy.temporal_ensemble_coeffを設定すると、lerobotはn_action_steps = 1を要求し、そうでない場合はNotImplementedErrorを発生させます。アンサンブルは、各タイムステップでポリシーにクエリを実行し、そのタイムステップの重複する予測を重みw_i = exp(-m * i)でブレンドします。最も古い予測にはw_0が与えられます。論文ではACTの場合3.3パーセントとされており、効果はあるものの控えめであり、推論回数をチャンク長で乗算します。1ステップあたり20 msであれば許容できますが、485 msでは許容できません。推論レイテンシを参照してください。

ACTが基盤モデルを上回る時

5つの学習可能なポリシーを並べて比較し、AY-RobotsがレンタルするGPUのサイズを決定するために測定・使用する数値を示します。

ポリシーファミリーパラメータステップあたりGPUティア最小エピソード数データセット
ACTチャンキングトランスフォーマー、ゼロから~80 M20 msRTX 4090 / 24 GB50LeRobot v3.0
SmolVLAコンパクトVLA~450 M245 msRTX 4090 / 24 GB30LeRobot v3.0
GR00T N1.7VLA基盤、拡散ヘッド~3 B (~40 M trained)152 msA100 / H100 80 GB50LeRobot v2.0 or v2.1
GR00T N1.5VLA基盤、前身~3 B165 msA100 / H100 80 GB50LeRobot v2.0 or v2.1
Pi0.5フローマッチングVLA、参照:フローマッチング~3 B, PaliGemma backbone485 msA100 / H100 80 GB50LeRobot v3.0
AY-Robotsのポリシーページで、ACT、SmolVLA、GR00T N1.5、GR00T N1.7、Pi0.5のパラメータ数、GPU要件、推論レイテンシ、最小エピソード数の比較表を示しています
The /policies table: ACTは最も少ないパラメータ数と最短のステップ時間を持つ。
ACTをゼロからトレーニングする
利点
  • 24 GBカード(A100ではない)で、5つの中で最速の1アクションステップあたり20ミリ秒。
  • 3 Bクラスの4~12ドルに対し、1実行あたり1~3ドル。
  • 接触の多い作業で高い精度を発揮:Slide ZiplocとSlot Batteryで88%と96%を達成。これは、以前の方法ではステージ1をクリアできなかったものです。
トレードオフ
  • 言語条件付けなし:タスク文字列は無視されるため、1つのチェックポイントは1つのタスクです。
  • セマンティックな事前知識なし:学習したことはすべて、あなたの50エピソードから得られたものです。
  • 汎化能力が狭い:カメラを動かすと、再トレーニングが必要になります。
  • 静かに失敗する:損失は減少するが、アームは何もせず、ログにも何も表示されません。
  • 速度の利点は、推論がサーボの隣にある場合にのみ役立ちます。

タスクとシーンが固定されており、動作が高速かつ正確である必要がある場合はACTを選択してください。1つのチェックポイントで複数の指示をカバーする必要がある場合は、を選択してください。2つのページで意思決定を直接比較できます:およびです。公開されているベンチマークについては、がすべての数値をそのソースにリンクしています。

始める前に必要なもの

フォロワーアーム1本、用のリーダーアーム1本、少なくとも1台のカメラ、24 GB GPU。ACTは画像と関節位置のみを読み取ります。2台のカメラが最適です。固定された前方視点で物体の位置を把握し、手首カメラでが何に触れようとしているかを確認します。これはALOHAと同様です。

アームサーボ電圧部品費用ステータス
SO-100Feetech STS32157.4 V~110 to 150 EUR完全サポート、リファレンスアーム
SO-101Feetech STS32157.4 V~130 to 170 EUR完全サポート
Koch v1.1Dynamixel XL330 / XL4305 V and 12 V rails~250 to 350 EUR互換性あり
LeKiwiFeetech STS3215 (アーム)7.4 V arm, 12 V base~400 to 500 EUR互換性あり
7.4 V、12 Vではありません

SO-100およびSO-101は、7.4 VレールでFeetech STS3215サーボを動作させます。12 Vを供給するとサーボが破壊されます。その際、人々はまずソフトウェアのせいにするほど静かに壊れ、Kochの12 V電源はSO-100ボードに物理的に適合します。ラベルを確認してください。症状:サーボが応答しないアームが痙攣してから垂れ下がる。また、SO-100とSO-101の比較

アームの組み立てからデータセットの記録まで

以下のフローはlerobot 0.6.xのものです。調整済みのアームとデータセットをお持ちの場合はスキップしてください。そうでない場合は、SO-100入門ガイドで組み立てを、記録のウォークスルーでキャプチャを、データセットのドキュメントでフォーマットを説明しています。

  1. 1
    適切な追加機能でlerobotをインストールする

    記録にはcore_scripts、トレーニングにはtraining、Feetechサーボにはfeetechが必要です。Python 3.12+に対応しています。

    bash
    conda create -y -n lerobot python=3.12
    conda activate lerobot
    conda install ffmpeg -c conda-forge
    
    pip install 'lerobot[core_scripts,training,feetech]'
    lerobot-info
  2. 2
    各アームのUSBポートを見つける

    両方のアームを接続した状態で実行し、プロンプトが表示されたら片方を抜きます。Linuxでは、ノードのパーミッションを開く必要がある場合があります。

    bash
    lerobot-find-port
    # on Linux, if the port exists but is unreadable:
    sudo chmod 666 /dev/ttyACM0
  3. 3
    モーターIDとボーレートを設定する

    SO-100では、これは組み立て前に行われます。SO-101とは異なり、一度組み立てるとコネクタにアクセスできなくなります。スクリプトはグリッパーから一度に1つのモーターずつバスを巡回し、IDをEEPROMに書き込みます。

    bash
    lerobot-setup-motors \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM0
    
    lerobot-setup-motors \
        --teleop.type=so100_leader \
        --teleop.port=/dev/ttyACM1
  4. 4
    両方のアームをキャリブレーションする

    すべての関節を可動域の中央に設定し、Enterキーを押し、その後それぞれを全可動域にわたって動かします。キャリブレーションにより、一方のアームでトレーニングされたポリシーを別のアームで実行できるようになります。同じidを再利用してください。

    bash
    lerobot-calibrate \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM0 \
        --robot.id=my_follower
    
    lerobot-calibrate \
        --teleop.type=so100_leader \
        --teleop.port=/dev/ttyACM1 \
        --teleop.id=my_leader
  5. 5
    カメラをオンにして一度テレポート操作を行う

    lerobotの経験則:カメラ画像だけを見てタスクを実行できるはずです。それができない場合、ACTもできません。これは、後のデバッグよりも多くの不良データセットを発見します。

    bash
    lerobot-teleoperate \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM0 \
        --robot.id=my_follower \
        --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \
        --teleop.type=so100_leader \
        --teleop.port=/dev/ttyACM1 \
        --teleop.id=my_leader \
        --display_data=true
  6. 6
    50エピソードを記録する

    50はAY-Robotsの最小値であり、ALOHAがタスクごとに使用した数です。lerobotは、オブジェクトの位置ごとに10、カメラは固定、把持は一貫していることを推奨しています。nでエピソードを終了し、rで再記録し、qで停止してエンコードします。

    bash
    HF_USER=$(NO_COLOR=1 hf auth whoami | awk -F': *' 'NR==1 {print $2}')
    
    lerobot-record \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM0 \
        --robot.id=my_follower \
        --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \
        --teleop.type=so100_leader \
        --teleop.port=/dev/ttyACM1 \
        --teleop.id=my_leader \
        --dataset.repo_id=${HF_USER}/so100_cube \
        --dataset.num_episodes=50 \
        --dataset.single_task="Grab the black cube and put it in the bin" \
        --display_data=true
AY-Robotsの記録チュートリアルページで、テレポート操作セッションからLeRobot形式のデータセットをキャプチャする方法を説明しています。
記録チュートリアル。デスクトップクライアントはlerobot-recordと同じレイアウトで書き込みます。
一日を無駄にする落とし穴:一貫性のないデータセット

ACTには頼るべき事前知識がないため、あらゆる不整合が永続的になります。最もコストのかかる3つの例:エピソード20と21の間でカメラがわずかに動いた、午後に半分を記録したために光が変わった、2通りの方法で行われた把持。それぞれが完璧に見える損失曲線と、間違った場所に行くアームをもたらします。損失は減少するがポリシーは何もしないポリシーが特定のセットアップでのみ機能する高品質なトレーニングデータの収集を参照してください。

トレーニングの前に、少なくとも5つのエピソードを再生してください。は、カメラストリーム、関節の状態、およびアクションをごとに保存し、再生はそのアクションをアームに押し戻します。再生がタスクを実行しない場合、データにはそれが含まれておらず、トレーニングがそれを発明することはありません。

bash
lerobot-replay \
    --robot.type=so100_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_follower \
    --dataset.repo_id=${HF_USER}/so100_cube \
    --dataset.episode=0
エピソード0を再生中。もし失敗した場合は、停止して再記録してください。

ACTポリシーのトレーニング

これがコマンド全体です。ACT固有のものはすべてデフォルト設定になっているため、lerobot ACTのページではこれらから始めるように指示されています。

bash
lerobot-train \
  --dataset.repo_id=${HF_USER}/so100_cube \
  --policy.type=act \
  --output_dir=outputs/train/act_so100_cube \
  --job_name=act_so100_cube \
  --policy.device=cuda \
  --wandb.enable=true \
  --policy.repo_id=${HF_USER}/act_so100_cube
lerobot 0.6.xのドキュメントにあるトレーニングコマンドで、SO-100データセットに対するものです。

--policy.type=actはACTConfigをロードします。これは、データセットに記録されたモーターとカメラの数に適応するため、観測形状を宣言する必要はありません。 --wandb.enable=trueはオプションですが、価値があります。100000ステップの実行において、損失曲線は唯一の安価なシグナルです。スケジュールはACTConfigではなく、lerobotの学習設定から取得されます。100000ステップ、バッチ8、シード1000、チェックポイントが20000ステップごと、ログ記録が200ごとに行われます。

完全な実行では、020000から100000までの5つのチェックポイントディレクトリと、最後のシンボリックリンクが残されます。これらすべてを保持してください。最適なポリシーは、多くの場合、最後のポリシーではありません。

設定lerobotデフォルトAY-Robots ACTフォームコメント
バッチサイズ88VRAM制限に達した場合、まずこれを下げてください。
学習率1e-51e-5ALOHA論文と同じです。
最大ステップ数100000100000約50エピソードのセットで改善が止まるあたりです。
勾配蓄積11, 適用されません代わりにバッチサイズを変更してください。
シード1000利用可能GR00Tのtyroエントリーポイントにはシードがありません。ACTの実行は再現可能です。
chunk_size / n_action_steps100 / 100100 / 100, 編集可能予測および実行のホライズン。最初の値ではなく、2番目の値を下げてください。
チェックポイント頻度20000利用不可ここではsaveStepsがGR00Tの調整項目です。
メモリ不足はバッチサイズの問題であり、カードの問題ではありません

バッチサイズ8で2台の640x480カメラを使用するACTは、24 GBに快適に収まります。速度のためにバッチサイズを上げたり、lerobotの記録例が示す1920x1080フレームを供給したりすると、収まらなくなります。1080pで2つのResNet-18バックボーンを使用すると、メモリプロファイルは大きく異なります。より大きなカードを借りる前に、--batch_sizeを4に下げてください。「学習中のメモリ不足」を参照してください。

期間:論文では11 GB RTX 2080 Tiで約5時間、lerobotのACTページでは10万ステップあたり数時間、AY-Robots 24 GBティアでは2〜5時間かかります。途中で中断しないでください。参照リポジトリのREADMEには、ぎこちない、または一時停止するポリシーは通常、より多くのが必要であると述べられています。損失が安定した後も成功と滑らかさは改善し続けるためです。実世界のデータでは、少なくとも5000エポック、または安定期の後さらに3〜4倍の長さが必要です。

bash
lerobot-train \
  --config_path=outputs/train/act_so100_cube/checkpoints/last/pretrained_model/train_config.json \
  --resume=true
中断された実行を最後のチェックポイントから再開する。

訓練済みポリシーをアームで実行する

デプロイにはlerobot-rolloutを使用します。カメラキーは記録されたものと一致する必要があります。つまり、frontwristで訓練されたポリシーは、cam0cam1を受け入れません。また、rename_mapは、事前学習済みチェックポイントが必要なため役に立ちません。タスク文字列は省略できます。lerobot自身の例では、ACTではスキップ可能とされています。

bash
lerobot-rollout \
  --strategy.type=base \
  --policy.path=${HF_USER}/act_so100_cube \
  --robot.type=so100_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.id=my_follower \
  --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \
  --display_data=true \
  --duration=60
記録なしの自律ロールアウト。評価エピソードを記録するには、<code>--strategy.type=sentry</code> を使用します。
このコマンドは最近名前が変更されたため、古いチュートリアルとは異なります

評価は以前、lerobot-record --policy.path=... を介して実行されていました。0.6.x では、--strategy.type セレクター(basesentry(自動アップロード付き記録)、highlight(キーストロークで保存されるリングバッファ)、dagger(ヒューマン・イン・ザ・ループ)、episodic)を使用する lerobot-rollout です。2026年8月23日現在、ACTのドキュメントページでは、lerobot-rollout を実行するブロックの直上に「lerobot-record コマンドを使用する」と記載されています。文ではなく、コマンドに従ってください。

最終モデルではなくチェックポイントを固定するには、--policy.pretrained_revision を追加します。そのためには、実行が --save_checkpoint_to_hub=true で開始されている必要があります。これはデフォルトでオフになっています。これがないと、lerobot は最終モデルのみをプッシュし、他には何もプッシュしません。これがあると、各チェックポイントはゼロパディングされたステップでタグ付けされるため、--policy.pretrained_revision=060000 で60000ステップのものを復元します。実機で100000ステップのものと比較することは、利用可能な最も安価な実験です。

同じチェックポイントへの2つの経路

上記は手動ルートであり、機能します。プラットフォームルートは、GPUやPython環境を所有しない代わりに制御を犠牲にします。

  1. core_scriptstrainingfeetech、ffmpeg を使用して lerobot 0.6.x をインストールします。
  2. ポートを見つけ、モーターIDを設定し、両腕をキャリブレーションし、50エピソードを記録します。
  3. いくつかのエピソードを再生して、データにタスクが含まれていることを確認します。
  4. 24 GB GPU をレンタルまたは所有し、CUDA と PyTorch を一致させ、lerobot-train --policy.type=act を実行します。
  5. 数時間待ってから、アームのあるマシンで lerobot-rollout を実行します。
bash
# the two commands that matter, end to end
lerobot-record --robot.type=so100_follower --robot.port=/dev/ttyACM0 \
  --teleop.type=so100_leader --teleop.port=/dev/ttyACM1 \
  --dataset.repo_id=${HF_USER}/so100_cube --dataset.num_episodes=50 \
  --dataset.single_task="Grab the black cube"

lerobot-train --dataset.repo_id=${HF_USER}/so100_cube --policy.type=act \
  --output_dir=outputs/train/act_so100_cube --policy.device=cuda
このルートが提供するもの

完全な制御:configuration_act.py を編集し、カメラを追加し、トレーナーをフォークします。タスクをデプロイするよりも研究目的の場合、プラットフォームは邪魔になります。

The AY-Robots training matrix with five policy rows and four robot arm columns, where every cell links to the specific training guide for that model and arm combination
The matrix on /train. The ACT row against the SO-100 column is this article's guide.

実際に何が問題なのか

訓練コマンド自体に問題があることはほとんどありません。問題は、その周辺にあり、初めて遭遇する頻度順に並べられています。

症状よくある原因ページ
lerobot-find-port が何も表示しないドライバー、ケーブル、またはノードの権限アームが検出されない
記録時にカメラが見つからない再起動時にインデックスが変更された、または1つのUSBコントローラーに2台のカメラカメラが検出されない
訓練がデータセットを拒否するACTはv3.0を要求し、GR00Tはv2.1を必要とするデータセットがv3として拒否される
CUDAメモリ不足バッチサイズが大きすぎる、または480pの代わりに1080pフレーム訓練中にメモリ不足
ロスは良好だが、アームが何も動作しないデータにタスクが不足している、またはカメラが移動したロスは低下するが、ポリシーが何も動作しない
ぎくしゃくした動き、またはエピソード途中の停止訓練不足、チャンク境界での停止、またはタイムアウトした推論呼び出しポリシーが動作中にフリーズする

2つの行は特に強調する価値があります。ACTはLeRobot v3.0で訓練されますが、GR00Tのローダーはそれを使用するとクラッシュし、v2.1を必要とします。そのため、ACTを訓練するデータセットはGR00Tの実行を失敗させる可能性があります。そして最後の行には2つの修正策があります。ACTの作者はぎくしゃくした動きに対してより多くの訓練で対応しますが、n_action_stepsが100の場合、実際の停止がチャンク境界で発生し、30 fpsで3.3秒ごとに目に見える一時停止が生じます。さらに2つ知っておくべきことがあります。単一の関節が動かない場合は通常、書き込まれていないサーボIDであり、近づくが閉じないグリッパーは、デモンストレーションにおけるグリッパーの可動範囲が小さすぎることを意味します。完全なインデックス:失敗モードのページ

実行にかかる費用

ティアモデル実行時間1時間あたりの料金1回の実行あたりのコスト
RTX 4090 / 24 GBACT, SmolVLA2 to 5 hours0.30 to 0.60 USDabout 1 to 3 USD
A100 80 GB / H100GR00T N1.7, GR00T N1.5, Pi0.53 to 6 hours1.20 to 2.00 USDabout 4 to 12 USD

後でVLAを使いたい場合でも、ACTから始めるべき理由がこれです。ACTの実行が失敗してもコーヒー1杯程度の費用で済み、数時間以内にデータセットにそのタスクが含まれているかどうかがわかります。GR00Tの実行が失敗した場合、同じ教訓を得るのにその4倍の費用がかかります。その後、GR00T N1.7SmolVLAに移行するのは、再構築ではなく形式の変更です。背景:ビジョン言語アクションモデルSO-100完全ガイド最初のポリシーをトレーニングするおよび模倣学習。アームがない場合でも?ライブページは、サインアップなしで実際のSO-100を操作できるライブストリームを提供しています。

SO-100でACTをトレーニングする

この正確な組み合わせに関するガイド:デフォルト設定、GPUティア、実行にかかる費用。データセットを選択すると、バックエンドがカードをレンタルし、チェックポイントを書き込みます。

トレーニングガイドを開く
代わりにファインチューニングできる事前学習済みACTモデルはありますか?

いいえ。ACTにはベースモデルがありません。トレーニング後にのみ存在します。これはツールの欠陥ではなく、ACTがそうであるということです。論文ではタスクごとにポリシーをゼロからトレーニングします。ベンダーのチェックポイントを使用する場合は、GR00T N1.7またはPi0.5を使用してください。

本当に必要なエピソード数はいくつですか?

50:ALOHAがタスクごとに記録した数(最も難しいThread Velcroでは100)、およびAY-Robotsの最小値。lerobotは、オブジェクトの位置ごとに約10、カメラ固定、把持の一貫性を推奨しています。カメラが動いた100エピソードよりも、50のクリーンなエピソードの方が優れています。

chunk_sizeを100から変更すべきですか?

通常は変更しません。アブレーションはk=1で1%からk=100で44%まで上昇し、その後は横ばいになるため、100はほぼ上限に位置します。アームのコミット時間が長すぎる場合は、代わりにn_action_stepsを下げてください。30 fpsの場合、25回の再クエリは0.8秒ごとに行われます。

トレーニングの実行にはどのくらい時間がかかり、途中で停止できますか?

100000ステップの場合、24 GBカードで2〜5時間かかります。チェックポイントは20000ステップごとに保存され、--resume=trueで中断した実行を再開できるため、早期停止は安全です。ただし、最初の平坦な区間では停止しないでください。損失がプラトーに達した後で滑らかさが向上します。

損失は減少しましたが、アームはまだ失敗します。どうすればよいですか?

ほとんどの場合、データセットが原因です。記録されたエピソードをアームで再生してください。再生がタスクを実行しない場合、データにはそのタスクが含まれていません。次に、何か、特にカメラが動いていないか確認してください。ACTには事前知識がないため、エピソード21でのわずかな動きも永続的な影響を与えます。

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started