AY-Robots上のSmolVLAモデルページで、パラメータ数、GPUティア、アクションステップあたりの推論レイテンシ、および最小エピソード数を示す画像
SmolVLALeRobotVLAトレーニングファインチューニングSO-100

24 GB GPUでSmolVLAをトレーニングする方法 (lerobot 0.6.1)

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

SmolVLAは4億5000万パラメータのVLAで、単一の24 GBカードでファインチューニングできます。実際のlerobot 0.6.1コマンド、デフォルト設定、1日を無駄にする落とし穴、そして実行にかかるコストについて解説します。

SmolVLAを1画面で

  • 4億5000万パラメータのうち、約1億がフローマッチングアクションエキスパートです。lerobotはそのエキスパートのみを学習させ、VLMをフリーズしたままにするため、1枚のカードに収まります。
  • LeRobotの計算ガイドによると、SmolVLAグループはAdamW、バッチサイズ8でピークVRAMが約10~16GB必要です。そのため、24GBが推奨されます。
  • エントリーポイントはlerobot-trainです。2025年6月のSmolVLAブログ記事には、もはや存在しないパスであるpython lerobot/scripts/train.pyがまだ記載されています。以下の内容はすべてlerobot 0.6.1に基づいています。
  • コサインスケジュールは30000ステップで減衰するようにプリセットされています。lerobot 0.6.1は、短い実行のためにこれを下方修正してログに記録しますが、上方修正することはありません。標準の100000ステップの実行では、70000ステップの間2.5e-6のフロアで終了します。
  • 30エピソードはAY-Robotsの最小要件であり、24GBティアでは1実行あたり1~3米ドルかかりますが、80GBモデルでは4~12米ドルかかります。

ほとんどの人がビジョン言語アクションモデルを実機アームで使いたい場合、ハードウェアの壁にぶつかります。GR00T N1.7Pi0.5はそれぞれ約30億パラメータを持ち、A100 80GBまたはH100を必要とします。もしお持ちのものがRTX 4090を搭載したゲーミングPCであれば、そこで行き止まりです。SmolVLAは例外です。LeRobot内で4億5000万パラメータを持ち、1枚のコンシューマーカードでファインチューニングし、CPUからサービス提供できるように構築されています。

まず手動での手順です。lerobotをインストールし、lerobot/smolvla_baseチェックポイントをプルし、実際のコマンドを実行し、実行中にその内容を読みます。次にプラットフォーム経由の手順と、それが役に立たない点について説明します。

SmolVLAとは、確認可能な数値で

SmolVLAはフローマッチングポリシーを小型のビジョン言語モデルに組み込んだものです。バックボーンはSmolVLM2-500M-Video-Instructです。論文では、その言語モデルの最初の16層のみを使用し、各カメラフレームを画像タイリングではなくピクセルシャッフルで64個の視覚トークンに制限し、2ブロックごとにクロスアテンションと自己アテンション層を交互に配置しています。推論コストは設計上の制約であり、後付けではありませんでした。

特性出典
総パラメータ数約4億5千万論文
アクションエキスパート約1億、フローマッチング論文
VLMバックボーンHuggingFaceTB/SmolVLM2-500M-Video-Instructvlm_model_name
使用VLM層言語モデルの最初の16層num_vlm_layers = 16
フレームあたりの視覚トークン数64、ピクセルシャッフル、タイリングなし論文
事前学習481のコミュニティデータセット、22.9 Kエピソード、10.6 Mフレーム;4つのGPUでグローバルバッチ256、200000ステップ論文

ベンチマークこそが、人々が450 Mモデルに手間をかける理由です。LIBEROでは、7 BのOpenVLAの76.5%と3.3 Bのロボティクス事前学習済みPi0の86.0%に対し、平均87.3%を達成しています。Meta-Worldでは、47.9%に対し57.3%です。実際のSO-100ハードウェアでは、マルチタスク学習により、ピックアンドプレースで75%、スタッキングで90%、ソーティングで70%の成功率を達成し、平均78.3%です。一方、ACTをタスクごとに学習したものは平均48.3%でした。同じ行は、SmolVLAアリーナエントリおよびACTとSmolVLAの比較に掲載されているすべての公開VLAの隣にあります。

サイズに関する正直な主張

SmolVLAは、あらゆる点で3 Bモデルよりも優れているわけではありません。論文自身のSO-101の表がそれを物語っています。事前学習されていないプラットフォームで、分布内では90%の成功率ですが、分布外では50%です。しかし、Pi0と比較して、約40%速く学習でき、メモリ使用量は6分の1であると主張し、それを裏付けています。

なぜ24 GBカードが最初の実行に適しているのか

LeRobotは、このリポジトリで最も役立つページである計算サイジングガイドを提供しています。これは、ポリシーをバックボーンサイズでグループ化し、lerobotのデフォルトであるAdamWを使用し、バッチサイズ8で測定されたグループごとに1つのVRAMエンベロープを提供します。オプティマイザの状態だけで、純粋な順方向および逆方向パスに30〜100パーセントが追加されるため、これらは重みのみの数値ではありません。

グループポリシーピークVRAM (バッチ8、AdamW)推奨GPU
軽量BCact, vqbet, tdmpc約2〜6 GBRTX 3060, L4
拡散diffusion, multi_task_dit約8〜14 GBRTX 4070+, L4
Small VLAsmolvla約10〜16 GBRTX 4080+, L4, A10G
Large VLApi0, pi0_fast, pi05, xvla, wall_x約24〜40 GBA100 40 GB+
マルチモーダルgroot, eo1約24〜40 GBA100 40 GB+

バッチ8で10〜16ギガバイトというのがその根拠です。24 GBカードであれば、それに加えてデータローダーも収まります。AY-Robotsは、SmolVLAをRTX 4090または任意の24 GBカードに搭載し、最低30 エピソードLeRobot v3.0データ、アクションステップあたり245 ms。レンタルでは、1時間あたり0.30〜0.60 USDで2〜5時間、つまり1回あたり約1〜3 USDのファインチューニング実行となり、80 GBティアのGR00TとPi0.5が必要とする4〜12 USDと比較すると安価です(価格)。SmolVLAの実行失敗はコーヒー代程度ですが、GR00Tの実行失敗はランチ代です。

AY-Robotsのコスト表:ポリシーあたりのカード、実行時間、実行あたりの価格、必要なエピソード数
SmolVLAとACTは24 GBの行に、3つの3 Bモデルは80 GBの行に配置されています。
3 Bモデルの代わりにSmolVLAから始める
得られるもの
  • すでに所有している可能性のあるハードウェアに適合します:バッチ8で約10〜16 GB。
  • 無駄な実行は数時間と数ドルの費用がかかるため、データセットについて間違っていても許容できます。
  • lerobotタグで共有されているコミュニティデータセットで事前学習されており、実際のSO-100およびSO-101の結果が得られています。
  • lerobot自体に存在します。ベンダーリポジトリはなく、smolvla_baseはゲートされていません。
失うもの
  • 450 Mは依然として450 Mです。論文のSO-101表では、分布外の成功率が90パーセントから50パーセントに低下しています。
  • LeRobot v3.0データが必要です。v2.1の記録は変換する必要があります(データセットがv3で拒否されました)。
  • アクションステップあたり245 msは、反応型ではなく、有能なピックアンドプレースコントローラーです。
  • ドキュメントの例ではA100でバッチ64を実行します。24 GBでは、バッチをウォールクロックと交換することになります。

ステップ0:実行を決定するのはデータセットであり、フラグではありません

記録が悪い場合、以下の内容はすべて無意味です。LeRobot SmolVLAのページは率直に述べています。参照データセットは5つのキューブ位置にわたる50エピソードで、各位置につき10エピソードでした。同じタスクを25エピソードで実行した場合、パフォーマンスは悪化しました。バリエーションごとの繰り返しは汎用化しますが、生のエピソード数はそうではありません。まだ記録したことがありませんか?最初のデータセットを記録するで、デスクトップクライアントを使用してください。これはテレオペレーションセッションからLeRobot形式で書き出すか、データセットディレクトリから借りてください。

  • AY-Robotsでのエピソードは最低30、LeRobotのリファレンスレシピでは約50。
  • ロールアウト時に予想されるあらゆるバリエーションを数回繰り返す。
  • 記録時とロールアウト時で全く同じスペルのタスク文字列を1つ。モデルはそのテキストに基づいて条件付けされる。
  • 固定カメラ。記録時とロールアウト時の間にカメラが移動すると、クリーンな損失曲線が得られてもアームが動かない最も一般的な原因となる。
  • 訓練に使用しなかったホールドアウトされたバリエーション。これにより、正直なテスト対象が得られる。
1日を無駄にするデータセットの落とし穴

SmolVLA、Pi0.5、ACTはLeRobot v3.0を必要とします。GR00T N1.7およびN1.5はv2.0またはv2.1を必要とし、v3.0ではローダーがクラッシュします。一度記録し、後でモデルを比較する予定がある場合、いずれかの方法で変換することになります:データセットがv3を拒否しました

bash
# v2.1 -> v3.0: aggregates per-episode files into shards and writes the episode offsets
python -m lerobot.scripts.convert_dataset_v21_to_v30 --repo-id=${HF_USER}/so100_pick_place
このコンバーターはlerobot内に同梱されているため、追加でインストールするものはありません。パッケージには逆方向のコンバーターはありません。

詳細については高品質なVLAトレーニングデータを収集する方法を参照してください。簡潔に言えば、意図的なバリエーションを加えた1つのタスクの30〜50のクリーンなエピソードは、3つのタスクの200のずさんなエピソードを、いかなるハイパーパラメータでも埋められない差で上回ります。

lerobot 0.6.1 をインストール

bash
# LeRobot needs Python 3.12 or newer as of 0.6.x
conda create -y -n lerobot python=3.12
conda activate lerobot

# TorchCodec decodes the dataset videos and wants ffmpeg
conda install ffmpeg -c conda-forge

# Base package is deliberately thin; extras pull the rest
pip install 'lerobot[smolvla,training,core_scripts]'

# Sanity check: prints the lerobot version, the GPU torch sees, and the console scripts you got
lerobot-info
PyPIパス。トレーナーをパッチするには、リポジトリをクローンし、代わりに pip install -e ".[smolvla,training]" を使用してください。

ベースのlerobotインストールは軽量であり、重い依存関係は追加機能の背後に隠されています。smolvlaはtransformers、num2words、accelerateを追加し、trainingはデータセットスタックとwandbを追加し、core_scriptsはハードウェアと視覚化の依存関係を追加します。Linuxでは、インストールパスによってCUDAホイールも決まります。PyPIのデフォルトはドライバーフロアが580.65のcu130ホイールなので、古いドライバーを使用している場合は、まずcu128インデックスからtorchをインストールし、次にlerobotをインストールしてください。

policy.pathとpolicy.typeは同じフラグではありません

--policy.path=lerobot/smolvla_baseは、事前学習済みの450 Mチェックポイントをロードし、ファインチューニングします。--policy.type=smolvlaは、新しいSmolVLAを構築し、設定のデフォルトであるload_vlm_weights = Falseは、明示的に要求しない限りSmolVLM2のバックボーンウェイトをプルしないことを意味します。これを誤ると、実行は問題なくトレーニングされ、コストも同じですが、転移可能なものは何も学習しません。

トレーニングの実行、コマンドごとに

  1. 1
    Hubへの認証

    ベースチェックポイントはHubから、データセットもおそらくHubから取得します。

    bash
    hf auth login
  2. 2
    オプションを一度確認する

    パイプラインとポリシー設定のすべてのフィールドはフラグです。ソースを深く掘り下げる前に、ざっと目を通してください。

    bash
    lerobot-train --help
  3. 3
    ファインチューンの開始

    ドキュメントの例では単一のA100でバッチ64を実行しますが、計算ガイドのA100 40 GBの基準はバッチ16であり、8は24 GB相当です。意図的にスケジューラフラグはありません。以下を参照してください。

    bash
    lerobot-train \
      --policy.path=lerobot/smolvla_base \
      --dataset.repo_id=${HF_USER}/so100_pick_place \
      --batch_size=8 \
      --steps=20000 \
      --save_freq=2000 \
      --log_freq=200 \
      --seed=1000 \
      --output_dir=outputs/train/smolvla_pick_place \
      --job_name=smolvla_pick_place \
      --policy.device=cuda \
      --wandb.enable=true
  4. 4
    損失だけでなく、ログ行全体を読む

    --log_freqステップごとに、lerobotはloss、grdn、lr、updt_s、data_s、smp/s、そしてCUDAではmem_gbを出力します。mem_gbはバッチが収まるかどうか、lrはスケジュールが減衰しているかどうかを示し、data_sがupdt_sに近づいている場合は、GPUではなくデータローダーがボトルネックであることを意味します。

    bash
    # if data_s creeps toward updt_s
    lerobot-train ... --num_workers=8
  5. 5
    比較可能なチェックポイントを収集する

    save_freqのデフォルトは20000なので、20000ステップの実行では1つのチェックポイントしか残らず、比較対象がありません。2000に設定してください。Hubにプッシュするには--policy.repo_idが必要です。

    bash
    --save_freq=2000 \
    --policy.repo_id=${HF_USER}/smolvla_pick_place \
    --save_checkpoint_to_hub=true
  6. 6
    マシンが停止した場合の再開

    --config_pathをチェックポイントの隣にあるtrain_config.jsonに向けます。lerobotは、再開する場合を除き、既存のoutput_dirへの開始を拒否するため、誤って実行を上書きすることはありません。

    bash
    lerobot-train \
      --config_path=<path to the saved train_config.json> \
      --resume=true

結果を実際に変更するフラグ

フラグ機能24 GBの場合
--batch_sizeステップあたりのサンプル数、VRAMにほぼ比例4から8
--steps合計オプティマイザーステップ数最初のパスで20000
--policy.scheduler_decay_stepsコサイン減衰長、プリセット3000030000を超えた場合にのみ適用
--policy.use_amp混合精度; SmolVLAにはdtypeフィールドなしメモリが逼迫している場合はtrue
--num_workersデータローダープロセス、デフォルト4data_sが上昇しなくなるまで増やす
--dataset.eval_splitタスクごとに保持されるエピソードの割合--eval_stepsとともに0.1
--policy.freeze_vision_encoderビジョンタワーをフリーズ状態に保つ24 GBではtrue
--policy.train_expert_only約1億の専門家のみが勾配を受け取る最初はtrue
スケジュール: 0.6.1が処理するものと処理しないもの

SmolVLAはコサインスケジュールをプリセットします: `scheduler_warmup_steps = 1000`、`scheduler_decay_steps = 30000`、`scheduler_decay_lr = 2.5e-6`。以前のアドバイスでは、20000ステップの実行は減衰途中で停止するとされていました。0.6.1ではそうではありません: `CosineDecayWithWarmupSchedulerConfig.build()` には `--steps` が渡され、`num_decay_steps` の下で、ウォームアップ1000を666に、減衰30000を20000に両方を再スケーリングし、その際にAuto-scaling LR schedulerと出力します。上方向への再スケーリングは決して行われません: 減衰は `min(current_step, decay_steps)` でクランプされるため、標準の `--steps=100000` はステップ30000から終了まで、実行の70パーセントの間、底に張り付いたままになります。その長い部分だけが依然として `--policy.scheduler_decay_steps` を必要とします。確認するには `lr` 列を見てください。

何も変更しない場合に継承されるデフォルト

A の設定は、独自のオプティマイザとスケジューラプリセットを保持しており、use_policy_training_preset=false を設定しない限り、これらのプリセットが優先されます。SmolVLAのトレーニングについて人々が尋ねる質問の半分は、彼らが知らなかったデフォルトによって答えられます。

設定lerobot 0.6.1でのデフォルト定義元
chunk_size / n_action_steps50 / 50SmolVLAConfig
num_steps (flow matching denoise)10SmolVLAConfig
optimizer_lr1e-4SmolVLAConfig
scheduler_warmup_steps1000SmolVLAConfig
scheduler_decay_steps30000SmolVLAConfig
scheduler_decay_lr2.5e-6SmolVLAConfig
freeze_vision_encodertrueSmolVLAConfig
train_expert_onlytrueSmolVLAConfig
batch_size / steps8 / 100000TrainPipelineConfig
seed / save_freq / num_workers1000 / 20000 / 4TrainPipelineConfig

人々を驚かせる2つの行は、freeze_vision_encodertrain_expert_onlyの両方がtrueであることです。そのままだと、450 Mではなく約100 Mのパラメータを学習するため、24 GBに収まります。LeRobot自身の4-GPU H100クラスターでのリファレンス実行では、これら両方をfalseに設定しています。24 GBのカード1枚では、動作する実行がに変わります。

存在しないメモリ調整ノブ

メモリ制約がある場合のガイドのアドバイスは、バッチサイズを減らし、勾配累積を使用して実効バッチを回復することです。lerobot 0.6.1には勾配累積がありません。TrainPipelineConfigにはそのようなフィールドがなく、リリースされたパッケージのどこにもこの文字列は現れません。AY-Robotsのフォームでは、SmolVLAに対して勾配累積値8が示されていますが、これも適用されていません。24 GBでの調整手段は、--batch_size、2つのフリーズデフォルト、および--policy.use_ampです。

実行にかかる時間と、十分なステップ数

LeRobotは、約50エピソードのデータセットに対して5エポック、約45000フレームを30 fpsで実行した場合の実時間基準を公開しています。ドキュメントには桁違いの数値とありますが、これらは1時間と1日という期待値の差になります。

セットアップポリシーバッチ実時間
Single L4 / A10G (24 GB)smolvla4about 3 to 6 h
Single A100 40 GBsmolvla16about 1 to 2 h
4 x H100 80 GB with acceleratesmolvla32about 1 to 2 h
Single RTX 4090 / RTX 3090 (24 GB)act8about 30 to 60 min
--steps を選択する前にエポックの計算を行う

ルールは、固定のステップ数ではなく、データセット全体で5〜10エポックです: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size))。ドキュメントが示す参照データセット `lerobot/svla_so100_pickplace` では、メタデータは50エピソードと19631フレームを報告しています。バッチ8では1エポックあたり約2454ステップとなり、20000ステップは約8エポックに相当します。バッチを半分にすると、同じ予算でエポック数も半分になるため、`--batch_size` を変更するたびにこの計算をやり直してください。

ファインチューニングされたポリシーをアームで実行する

bash
lerobot-rollout \
  --strategy.type=base \
  --robot.type=so100_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.id=my_follower_arm \
  --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
  --task="Grasp the cube and put it in the box." \
  --policy.path=${HF_USER}/smolvla_pick_place
タスク文字列は、記録時に使用したものと一致している必要があります。モデルはそのテキストに条件付けされているため、言い換えは異なる指示となります。

「アクションステップあたり245ミリ秒」という記述は誤解されやすい点です。ポリシーは1回のフォワードパスでchunk_size = 50個のアクションを出力し、そのうちn_action_steps = 50個を実行します。したがって、このコストを支払う頻度は、サーボがコマンドを受け取る頻度ではなく、これらの設定によって決まります。これががもたらすものであり、245 msのモデルが30 Hzのアームを駆動できる理由です。残るのは、チャンクの終わりにおけるです。

測定項目 (SmolVLA, 実機SO-100)同期非同期
完了時間、ピックアンドプレース、10試行13.75 s9.70 s
固定時間枠内でのピックアンドプレースサイクル数919
3つのタスク全体での平均成功率78.3 %73.3 %

ほとんどの報告書が省略しているのが、この3行目です。非同期推論は約30パーセント高速で、固定時間枠内でのスループットをほぼ2倍にします。論文では成功率を同等と呼んでいますが、平均的にはその通りです。その内訳を見ると、ソートは70パーセントから50パーセントに低下しましたが、ピックアンドプレースは5パーセント増加しました。lerobot 0.6.1は、同じバイナリ内に別のレバーを搭載しています。--inference.type=rtcは、ロールアウトをリアルタイムチャンキングに切り替えます。これは、スクリプトの自身の使用法ブロックが、低速VLAであるPi0、Pi0.5、SmolVLAに推奨しているものです。

推論はサーボの隣に配置する必要がある

制御ループはモデルによってアクションステップあたり20 msから485 msかかります。その上に公衆インターネットの往復遅延が加わると、機能するポリシーもためらいがちなものになってしまいます。リモート推論は、低速なピックアンドプレースには有効ですが、高速な反応動作には向きません。タスクが迅速な修正を必要とする場合、GPUはアームと同じLAN上に配置する必要があります。

7.4 V、12 Vではありません

トレーニング実行とは関係ありませんが、どのハイパーパラメータよりも多くのSO-100プロジェクトを終了させます。 SO-100 および SO-101 のFeetech STS3215サーボは7.4 Vで動作します。12 Vはそれらを破壊します。LeKiwi は7.4 Vのアームと12 Vのベースを組み合わせており、これが間違ったバレルジャックが間違ったソケットを見つける原因となります。

同じチェックポイントへの2つのルート

マシン、環境、デバッグはあなたが所有します。唯一のクラウド依存は、ベースチェックポイントのHubからのダウンロードです。ポリシーを変更したい場合、データがネットワークから出られない場合、またはカードがアイドル状態の場合に適切なルートです。

  • CUDAホイール、ドライバー、ffmpegビルド、データローダーを制御します。
  • configuration_smolvla.pyをパッチし、同日の午後に再トレーニングできます。
  • 実行ごとではなく、電気代と時間で支払い、TorchCodecは自分でデバッグします。
bash
pip install 'lerobot[smolvla,training,core_scripts]'
hf auth login

lerobot-train \
  --policy.path=lerobot/smolvla_base \
  --dataset.repo_id=${HF_USER}/so100_pick_place \
  --batch_size=8 --steps=20000 \
  --save_freq=2000 --seed=1000 \
  --output_dir=outputs/train/smolvla_pick_place \
  --job_name=smolvla_pick_place \
  --policy.device=cuda --wandb.enable=true
lerobot 0.6.1での手動ルート全体を1つのブロックで。

SmolVLAが間違った選択である場合

SmolVLAが最初の実行として適切だったかどうかのテストは、それが機能したかどうかではなく、失敗が何かを教えてくれたかどうかです。60%または70%に達すれば、より大きなモデルは次の投資として妥当です。データには信号が含まれています。10%に達した場合、3 Bモデルもおそらく10%に達するでしょう。これは12ドルではなく3ドルで学んだことになります。

AY-Robotsのトレーニングマトリックス:行に5つのポリシー、列に4つのロボットアーム
各セルが独自のガイドです。SmolVLAは4つのアームそれぞれに1つずつ持っています。

さらに費用をかける前に読む価値があるもの:Pi0.5とSmolVLAの比較で、同じアイデアでより高い能力を実現し、GR00T N1.7とSmolVLAの比較で、NVIDIAのルートを辿るものです。どちらも80 GBティアで、1実行あたり4~12 USDです。もう一つの方法として、ACTはより安価なベースラインです。80 Mパラメータ、アクションステップあたり20 ms、言語条件付けなし。これら5つすべてはポリシーページにあります。アリーナには85のモデルと332のベンチマーク結果があります。

AY-Robotsのポリシー比較:パラメータ、GPUティア、レイテンシ、最小エピソード数
実行を決定する4つの数値。

スケールする前のチェックリスト

  1. lrは2.5e-6のフロアに達しましたか?30000ステップ未満では、lerobotは減衰を再スケーリングし、起動時にその旨を伝えます。それ以上の場合、--policy.scheduler_decay_stepsを自分で設定してください。
  2. 複数のチェックポイントがあり、--dataset.eval_splitでエピソードが保留されているため、評価損失が意味のあるものになっていますか。
  3. ポリシーは全く動いていますか?腕が動かない状態で損失が減少している場合、特定の原因があります:損失は減少するが、ポリシーは何も動作しない
  4. シーンの変更に耐えられますか?そうでない場合:ポリシーが1つのセットアップでのみ機能する
  5. シードを記録しましたか?lerobotはデフォルトで1000なので、2つの未変更の実行は比較可能です。
  6. その後初めて:より多くのエピソード、より多くのバリエーション、またはより大きなモデル。この順序で。

これらのモデルが存在する理由と、言語入力で何をするかについては、が背景にあります。は、組み立てをから最初の実行までをカバーしています。完成したチェックポイントについては、を参照してください。アームが表示されない場合は、。

SmolVLAを独自のアームでトレーニングする

モデルとアームを選択すると、ガイドが正確なデフォルト設定、データセット形式、および実行コストを提示します。SmolVLAは、1回の実行あたり1〜3米ドルで24 GBティアにあります。

トレーニングガイドを開く
RTX 4090で本当にSmolVLAをファインチューニングできますか?

はい。LeRobotの計算ガイドによると、SmolVLAはAdamWを使用しバッチサイズ8でピークVRAMが約10~16 GBに達し、24 GBのコンシューマーカードでも快適に動作するとされています。ドキュメントの例にあるバッチサイズ64は、単一のA100と組み合わせています。メモリはバッチサイズにほぼ線形にスケールするため、4または8を使用し、mem_gbを監視してください。

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

AY-Robotsは最低30と設定しています。LeRobotのドキュメントでは約50を推奨しており、同じタスクで25エピソードではパフォーマンスが悪いと報告されています。数よりも構造が重要です。参照セットは5つのキューブ位置でそれぞれ10エピソードであり、この繰り返しが汎化につながります。

ドキュメントにはバッチサイズ64とありますが、プラットフォームはバッチサイズ2を送信します。どちらが正しいですか?

どちらも、異なるハードウェア向けです。ドキュメントの例ではバッチサイズ64を使用し、単一のA100で20000ステップに約4時間かかると記載されています。計算ガイドのA100 40 GBの基準はバッチサイズ16です。バッチサイズ2は、AY-Robotsが24 GBティアで送信するものです。ローカルでは4から8が中間であり、それに伴いエポックの計算も変わります。

SO-100での初回実行にはSmolVLAとACTのどちらが良いですか?

タスクが単一の反復動作で、最速のループを求めるならACTです。アクションステップあたり20 ms、80 Mパラメータ、言語条件付けなしです。言語条件付け、1つのチェックポイントに複数のタスク文字列、そして事前学習済みベースが必要ならSmolVLAです。どちらも24 GBティアで動作するため、選択は予算ではなくタスクによります。

--policy.scheduler_decay_stepsを設定する必要がありますか?

--stepsが30000を超える場合のみです。SmolVLAはコサイン減衰を30000ステップにプリセットしており、lerobot 0.6.1は短い実行のために自動的にスケールダウンし、その際に「Auto-scaling LR scheduler」とログに記録します。スケールアップすることはなく、デフォルトの--steps=100000では最後の70000ステップが2.5e-6のフロアに残されます。

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started