LeRobot documentation

LeRobotトレーニング用のCompute HWガイド

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

LeRobotトレーニング用のCompute HWガイド

LeRobotのポリシーを学習するための大まかなサイズ感: 各ポリシーに必要なVRAM量、学習時間の目安、そしてローカルハードウェアが不足している場合にどこで実行すべきか。

以下の数値は参考値であり、ハードウェア選定のための桁数の目安であり、正確な予測ではありません。スループットは、データセットのI/O、画像の解像度、バッチサイズ、GPUの台数に大きく依存します。

ポリシーグループ別のメモリ

Policies はバックボーンサイズごとにクラスタリングされます。以下のグループ分けでは、各ポリシーごとに数値を繰り返す代わりに、グループごとに単一の VRAM 上限を示しています。メモリはバッチサイズに対して概ね線形にスケーリングされます。AdamW(LeRobot のデフォルト)はオプティマイザ状態を保持するため、フォワードパスとバックワードパスのみの場合と比べて、約 30〜100% 追加のメモリが必要です。

グループポリシーピークVRAM(BS 8、AdamW)おすすめの入門用GPU
Light BCact, vqbet, tdmpc約2〜6GBLaptop GPU (RTX 3060)、L4、A10G
Diffusiondiffusion, multi_task_dit約8〜14GBRTX 4070+ / L4 / A10G
小型VLAsmolvla約10〜16GBRTX 4080+ / L4 / A10G
大規模VLApi0, pi0_fast, pi05, xvla, wall_x約24〜40GBA100 40 GB以上 (24 GBはBS 1では厳しい)
マルチモーダルgroot, eo1約24〜40GBA100 40 GB以上
RLsacconfig-dep.HIL-SERLガイドを参照してください

メモリがボトルネックですか?バッチサイズを下げてください(ほぼ線形に効きます)。効果的なバッチサイズを回復するには勾配の蓄積を使用するか、SmolVLAの場合はfreeze_vision_encoder=Trueのままにしてください。

学習時間

ロボティクスの模倣学習は、通常、生データステップの数十万回ではなく、データセットに対する5〜10エポックで収束します。エポック数がわかれば、実時間は基本的に次のようになります。

total_frames    = sum of frames over all episodes      # 50 ep × 30 fps × 30 s ≈ 45,000
steps_per_epoch = ceil(total_frames / (num_gpus × batch_size))
total_steps     = epochs × steps_per_epoch
wall_clock      ≈ total_steps × per_step_time

ステップあたりの所要時間は、ポリシーとGPUに依存します。下表の数値は目安です。ご自身の環境に近い行を選択し、total_stepsが長い場合や短い場合は、それに比例してスケーリングしてください。

一般的なシナリオ

約50エピソードのデータセット(30 fps × 30秒で約45kフレーム)での5エポックの目安となる実時間、デフォルトのオプティマイザー(AdamW)、640×480の画像:

セットアップポリシーバッチ実時間
単一のRTX 4090 / RTX 3090 (24 GB)act8約30〜60分
単一のRTX 4090 / RTX 3090 (24 GB)diffusion8~2–4h
Single L4 / A10G (24 GB)act8~1–2h
Single L4 / A10G (24 GB)smolvla4~3–6h
Single A100 40 GBsmolvla16~1–2h
Single A100 40 GBpi0 / pi054~4–8h
4× H100 80 GB クラスタ (accelerate)diffusion32約30〜60分
4× H100 80 GB クラスタ (accelerate)smolvla32~1–2h
Apple Silicon M1/M2/M3 Max (MPS)act4~6–14h

これらは桁数レベルの概算値です。実際の実行時間は、画像の解像度、データセットのI/O、dataloaderのスレッド数、および正確なGPUのSKUによって±50%程度変動します。これらはSLAとしてではなく、「この実行は1時間かかるのか、1日かかるのか?」という直感的な目安としてご利用ください。

マルチGPUは非常に重要です

accelerate launch --num_processes=N は、学習時間を短縮する最も簡単な方法です。各オプティマイザーステップで、N × batch_size サンプルを、単一 GPU の 1 ステップとほぼ同じ実時間で処理できるため、計算リソースがボトルネックとなる実行では、4 GPU で約 4 倍の高速化が期待できます。完全なセットアップについては、マルチ GPU での学習 ガイドを参照してください。

4×H100 80 GB クラスタでの参考データポイント(accelerate launch --num_processes=4)、5000 ステップ、バッチサイズ 32、AdamW、データセット imstevenpmwork/super_poulain_draft(約 50 エピソード、約 640×480 の画像):

ポリシー実時間update_sdataloading_sGPU利用率主なフラグ
diffusion16m 17s0.1670.015~90%デフォルト(ゼロからの学習)
smolvla27m 49s0.3120.011~80%--policy.path=lerobot/smolvla_base, freeze_vision_encoder=false, train_expert_only=false
pi053h 41m2.5480.014~95%--policy.pretrained_path=lerobot/pi05_base、gradient_checkpointing=true、dtype=bfloat16、ビジョンエンコーダーとエキスパートを学習済み

トレーニングログでは、1回のイテレーション全体をdataloading_s(next(dl_iter))、preprocessing_s(画像変換とポリシーのパイプライン)、update_s(オプティマイザーの更新)に分離して記録します。step_sはこれら3つのすべてを含み、samples_per_sを決定します。上記のベンチマークはこの分離以前のものであるため、そのdataloading_sには前処理が含まれています。

スケジュールとチェックポイント

学習を短縮する場合(例:小規模なデータセットで5k〜10kステップ)、--policy.scheduler_decay_steps≈--steps でも LR スケジュールを短縮してください。そうしないと、LR がピーク付近に留まったまま減衰しません。--save_freq も同様です。

実行場所

VRAMが最初のフィルタです。同じティア内では、予算と入手可能性で選びます。$〜$$$$の列は相対的なものです。実際に利用するプロバイダーの最新価格を確認してください。

クラスVRAMティア快適な
RTX 3090 / 4090(コンシューマー向け)24 GB$Light BC、Diffusion、SmolVLA。バッチサイズ1のVLAではきつい。
L4 / A10G(クラウド)24 GB$–$$同じエンベロープ。Google Cloud、RunPod、AWSのg5/g6で一般的です。
A100 40 GB40 GB$$$適切なバッチサイズであれば、どのポリシーでも。
A100 80 GB / H100 80 GB80 GB$$$$マルチGPUクラスタ;VLA向けの大きなバッチ。
CPU のみ——トレーニングは行わないでください。Colabを使用するか、GPUをレンタルしてください。

Hugging Face Jobs

Hugging Face Jobs を使用すると、GPU を所有することなく、管理された HF インフラ上でトレーニングを実行でき、秒単位で課金されます。lerobot-train がジョブの送信とストリーミングを代行します。通常のトレーニングコマンドに --job.target=<flavor> を追加するだけです:

lerobot-train \
  --policy.type=act --dataset.repo_id=<USER>/<DATASET> \
  --policy.repo_id=<USER>/act_<task> \
  --job.target=a10g-large

注:

  • 提出する前に一度hf auth loginを実行してください。ジョブはあなたのトークンで実行されます。
  • --job.target は上記のテーブルに対応しています: t4-small/t4-medium (T4、ACT のみ)、l4x1/l4x4 (L4 24 GB)、a10g-small/large/largex2/largex4 (A10G 24 GB スケールアウト)、a100-large (A100)。現在のカタログと価格については hf jobs hardware で確認するか、https://huggingface.co/docs/hub/jobs を参照してください。
  • ジョブのタイムアウトはデフォルトで2d(48時間)です。--job.timeout=4h(または他の有効な期間文字列)を指定して、タイムアウトを短縮または延長できます。コマンドが完了すると、ジョブは自動的に停止します。
  • 完全な手順(データセットのアップロード、チェックポイントのストリーミング、ジョブでのランの再開)については、imitation-learning 学習ガイドを参照してください。
Update on GitHub