
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.7とPi0.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-Instruct | vlm_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 |
|---|---|---|---|
| 軽量BC | act, vqbet, tdmpc | 約2〜6 GB | RTX 3060, L4 |
| 拡散 | diffusion, multi_task_dit | 約8〜14 GB | RTX 4070+, L4 |
| Small VLA | smolvla | 約10〜16 GB | RTX 4080+, L4, A10G |
| Large VLA | pi0, pi0_fast, pi05, xvla, wall_x | 約24〜40 GB | A100 40 GB+ |
| マルチモーダル | groot, eo1 | 約24〜40 GB | A100 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の実行失敗はランチ代です。

- すでに所有している可能性のあるハードウェアに適合します:バッチ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つ。モデルはそのテキストに基づいて条件付けされる。
- 固定カメラ。記録時とロールアウト時の間にカメラが移動すると、クリーンな損失曲線が得られてもアームが動かない最も一般的な原因となる。
- 訓練に使用しなかったホールドアウトされたバリエーション。これにより、正直なテスト対象が得られる。
SmolVLA、Pi0.5、ACTはLeRobot v3.0を必要とします。GR00T N1.7およびN1.5はv2.0またはv2.1を必要とし、v3.0ではローダーがクラッシュします。一度記録し、後でモデルを比較する予定がある場合、いずれかの方法で変換することになります:データセットがv3を拒否しました。
# 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詳細については高品質なVLAトレーニングデータを収集する方法を参照してください。簡潔に言えば、意図的なバリエーションを加えた1つのタスクの30〜50のクリーンなエピソードは、3つのタスクの200のずさんなエピソードを、いかなるハイパーパラメータでも埋められない差で上回ります。
lerobot 0.6.1 をインストール
# 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ベースのlerobotインストールは軽量であり、重い依存関係は追加機能の背後に隠されています。smolvlaはtransformers、num2words、accelerateを追加し、trainingはデータセットスタックとwandbを追加し、core_scriptsはハードウェアと視覚化の依存関係を追加します。Linuxでは、インストールパスによってCUDAホイールも決まります。PyPIのデフォルトはドライバーフロアが580.65のcu130ホイールなので、古いドライバーを使用している場合は、まずcu128インデックスからtorchをインストールし、次にlerobotをインストールしてください。
--policy.path=lerobot/smolvla_baseは、事前学習済みの450 Mチェックポイントをロードし、ファインチューニングします。--policy.type=smolvlaは、新しいSmolVLAを構築し、設定のデフォルトであるload_vlm_weights = Falseは、明示的に要求しない限りSmolVLM2のバックボーンウェイトをプルしないことを意味します。これを誤ると、実行は問題なくトレーニングされ、コストも同じですが、転移可能なものは何も学習しません。
トレーニングの実行、コマンドごとに
- 1Hubへの認証
ベースチェックポイントはHubから、データセットもおそらくHubから取得します。
bashhf auth login - 2オプションを一度確認する
パイプラインとポリシー設定のすべてのフィールドはフラグです。ソースを深く掘り下げる前に、ざっと目を通してください。
bashlerobot-train --help - 3ファインチューンの開始
ドキュメントの例では単一のA100でバッチ64を実行しますが、計算ガイドのA100 40 GBの基準はバッチ16であり、8は24 GB相当です。意図的にスケジューラフラグはありません。以下を参照してください。
bashlerobot-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損失だけでなく、ログ行全体を読む
--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比較可能なチェックポイントを収集する
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マシンが停止した場合の再開
--config_pathをチェックポイントの隣にあるtrain_config.jsonに向けます。lerobotは、再開する場合を除き、既存のoutput_dirへの開始を拒否するため、誤って実行を上書きすることはありません。
bashlerobot-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 | コサイン減衰長、プリセット30000 | 30000を超えた場合にのみ適用 |
| --policy.use_amp | 混合精度; SmolVLAにはdtypeフィールドなし | メモリが逼迫している場合はtrue |
| --num_workers | データローダープロセス、デフォルト4 | data_sが上昇しなくなるまで増やす |
| --dataset.eval_split | タスクごとに保持されるエピソードの割合 | --eval_stepsとともに0.1 |
| --policy.freeze_vision_encoder | ビジョンタワーをフリーズ状態に保つ | 24 GBではtrue |
| --policy.train_expert_only | 約1億の専門家のみが勾配を受け取る | 最初はtrue |
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_steps | 50 / 50 | SmolVLAConfig |
| num_steps (flow matching denoise) | 10 | SmolVLAConfig |
| optimizer_lr | 1e-4 | SmolVLAConfig |
| scheduler_warmup_steps | 1000 | SmolVLAConfig |
| scheduler_decay_steps | 30000 | SmolVLAConfig |
| scheduler_decay_lr | 2.5e-6 | SmolVLAConfig |
| freeze_vision_encoder | true | SmolVLAConfig |
| train_expert_only | true | SmolVLAConfig |
| batch_size / steps | 8 / 100000 | TrainPipelineConfig |
| seed / save_freq / num_workers | 1000 / 20000 / 4 | TrainPipelineConfig |
人々を驚かせる2つの行は、freeze_vision_encoderとtrain_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) | smolvla | 4 | about 3 to 6 h |
| Single A100 40 GB | smolvla | 16 | about 1 to 2 h |
| 4 x H100 80 GB with accelerate | smolvla | 32 | about 1 to 2 h |
| Single RTX 4090 / RTX 3090 (24 GB) | act | 8 | about 30 to 60 min |
ルールは、固定のステップ数ではなく、データセット全体で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` を変更するたびにこの計算をやり直してください。
ファインチューニングされたポリシーをアームで実行する
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 s | 9.70 s |
| 固定時間枠内でのピックアンドプレースサイクル数 | 9 | 19 |
| 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上に配置する必要があります。
同じチェックポイントへの2つのルート
マシン、環境、デバッグはあなたが所有します。唯一のクラウド依存は、ベースチェックポイントのHubからのダウンロードです。ポリシーを変更したい場合、データがネットワークから出られない場合、またはカードがアイドル状態の場合に適切なルートです。
- CUDAホイール、ドライバー、ffmpegビルド、データローダーを制御します。
- configuration_smolvla.pyをパッチし、同日の午後に再トレーニングできます。
- 実行ごとではなく、電気代と時間で支払い、TorchCodecは自分でデバッグします。
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フォームの背後にある同じ実行:モデルとデータセットを選択すると、バックエンドは必要なVRAMに応じてGPUをレンタルし、トレーナーを実行してをオブジェクトストレージに書き込みます。データセットはHugging FaceのリポジトリID、公開、またはあなたのマシンから取得できます。から始めるか、の行列から始めてください。
| フィールド | プラットフォームがSmolVLAに送信するデフォルト値 | 備考 |
|---|---|---|
| batch size | 2 | 24 GBティアでは控えめ |
| learning rate | 1e-4 | lerobotのプリセット |
| max steps | 20000 | LeRobotドキュメントの参照実行 |
| gradient accumulation | 8 | フォームに表示されるが、適用されない |
| extra knobs | seed, logFreq | シードにより実行が再現可能になる |
- 24 GBティアで2〜5時間、1実行あたり約1〜3 USD。
- /cliのターミナルから、および/mcpのAIエージェントから同じ操作が可能です。
- 推論ポッドにはアイドル状態のウォッチドッグが搭載されているため、忘れられたポッドは静かに課金されるのではなく、自己破壊します。
- まだアームがありませんか?/liveでは、サインアップなしで操作できる物理的なSO-100をストリーミングしています。
キューにスタックしたジョブは、バグではなくスポット市場の症状です:。ステップバイステップ:と。
SmolVLAが間違った選択である場合
SmolVLAが最初の実行として適切だったかどうかのテストは、それが機能したかどうかではなく、失敗が何かを教えてくれたかどうかです。60%または70%に達すれば、より大きなモデルは次の投資として妥当です。データには信号が含まれています。10%に達した場合、3 Bモデルもおそらく10%に達するでしょう。これは12ドルではなく3ドルで学んだことになります。

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

スケールする前のチェックリスト
lrは2.5e-6のフロアに達しましたか?30000ステップ未満では、lerobotは減衰を再スケーリングし、起動時にその旨を伝えます。それ以上の場合、--policy.scheduler_decay_stepsを自分で設定してください。- 複数のチェックポイントがあり、
--dataset.eval_splitでエピソードが保留されているため、評価損失が意味のあるものになっていますか。 - ポリシーは全く動いていますか?腕が動かない状態で損失が減少している場合、特定の原因があります:損失は減少するが、ポリシーは何も動作しない。
- シーンの変更に耐えられますか?そうでない場合:ポリシーが1つのセットアップでのみ機能する。
- シードを記録しましたか?lerobotはデフォルトで1000なので、2つの未変更の実行は比較可能です。
- その後初めて:より多くのエピソード、より多くのバリエーション、またはより大きなモデル。この順序で。
これらのモデルが存在する理由と、言語入力で何をするかについては、が背景にあります。は、組み立てをから最初の実行までをカバーしています。完成したチェックポイントについては、を参照してください。アームが表示されない場合は、。
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のフロアに残されます。
Sources
- SmolVLA: 手頃で効率的なロボティクス向けビジョン・言語・アクションモデル
- SmolVLA: 効率的なビジョン・言語・アクションモデル (Hugging Faceブログ)
- lerobot/smolvla_base モデルカード
- LeRobotドキュメント: SmolVLA
- LeRobotドキュメント: LeRobotトレーニング用計算ハードウェアガイド
- LeRobotドキュメント: インストール
- LeRobotドキュメント: LeRobotDataset v3.0とv2.1コンバーター
- LeRobotドキュメント: 非同期推論
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (戦略とRTC推論)
- lerobot v0.6.1: pyproject.toml (追加機能とコンソールエントリーポイント)
- PyPI上のlerobot
- lerobot/svla_so100_pickplace データセット (50エピソード、19631フレーム、v3.0)
Sources
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
- SmolVLA: Efficient Vision-Language-Action Model (Hugging Face blog)
- lerobot/smolvla_base model card
- LeRobot docs: SmolVLA
- LeRobot docs: Compute HW Guide for LeRobot Training
- LeRobot docs: Installation
- LeRobot docs: LeRobotDataset v3.0 and the v2.1 converter
- LeRobot docs: Asynchronous Inference
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (strategies and RTC inference)
- lerobot v0.6.1: pyproject.toml (extras and console entry points)
- lerobot on PyPI
- lerobot/svla_so100_pickplace dataset (50 episodes, 19631 frames, v3.0)
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started