LeRobot documentation

Panduan HW Komputasi untuk Pelatihan LeRobot

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Panduan HW Komputasi untuk Pelatihan LeRobot

Perkiraan ukuran untuk melatih kebijakan LeRobot: berapa banyak VRAM yang dibutuhkan oleh masing-masing kebijakan, bagaimana perkiraan waktu latihannya, dan di mana harus menjalankannya jika perangkat keras lokal tidak mencukupi.

Angka-angka di bawah ini bersifat indikatif — angka orde magnitudo untuk memilih perangkat keras, bukan prediksi yang tepat. Throughput sangat bergantung pada I/O dataset, resolusi gambar, ukuran batch, dan jumlah GPU.

Memori per grup kebijakan

Policies dikelompokkan berdasarkan ukuran backbone; pengelompokan di bawah ini memberikan satu batas VRAM per kelompok alih-alih mengulang angka untuk setiap policy. Memori berskala kira-kira linier dengan ukuran batch; AdamW (default LeRobot) membawa state optimizer yang menambah sekitar 30–100% di atas jalur forward+backward saja.

GrupKebijakanVRAM Puncak (BS 8, AdamW)GPU pemula yang cocok
BC Ringanact, vqbet, tdmpc~2–6GBGPU Laptop (RTX 3060), L4, A10G
Diffusiondiffusion, multi_task_dit~8–14GBRTX 4070+ / L4 / A10G
VLA Kecilsmolvla~10–16GBRTX 4080+ / L4 / A10G
VLA Besarpi0, pi0_fast, pi05, xvla, wall_x~24–40GBA100 40 GB+ (24 GB ketat pada BS 1)
Multimodalgroot, eo1~24–40GBA100 40 GB+
RLsacconfig-dep.Lihat panduan HIL-SERL

Terbatas memori? Kurangi ukuran batch (~linear), gunakan akumulasi gradien untuk memulihkan batch efektif, atau untuk SmolVLA biarkan freeze_vision_encoder=True.

Waktu pelatihan

Pembelajaran imitasi dalam robotika biasanya konvergen dalam 5–10 epoch pada dataset, bukan ratusan ribu langkah mentah. Setelah Anda mengetahui jumlah epoch, waktu nyata pada dasarnya adalah:

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

Waktu per langkah bergantung pada kebijakan dan GPU. Angka dalam tabel di bawah ini adalah acuan — pilih baris yang paling mendekati konfigurasi Anda dan skalakan secara linear dengan total_steps jika Anda melatih lebih lama atau lebih singkat.

Skenario umum

Estimasi waktu nyata untuk 5 epoch pada dataset ~50 episode (~45k frame pada 30 fps × 30 s), optimizer default (AdamW), gambar 640×480:

SetupKebijakanBatchWaktu nyata
Satu RTX 4090 / RTX 3090 (24 GB)act8~30–60 menit
Satu RTX 4090 / RTX 3090 (24 GB)diffusion8~2–4h
Satu L4 / A10G (24 GB)act8~1–2h
Satu L4 / A10G (24 GB)smolvla4~3–6h
Satu A100 40 GBsmolvla16~1–2h
Satu A100 40 GBpi0 / pi054~4–8h
Klaster 4× H100 80 GB (accelerate)diffusion32~30–60 menit
Klaster 4× H100 80 GB (accelerate)smolvla32~1–2h
Apple Silicon M1/M2/M3 Max (MPS)act4~6–14h

Angka-angka ini bersifat perkiraan orde magnitudo. Eksekusi nyata dapat menyimpang ±50% tergantung pada resolusi gambar, I/O dataset, threading dataloader, dan SKU GPU yang tepat. Angka-angka ini berguna sebagai intuisi untuk pertanyaan “apakah eksekusi ini akan memakan waktu satu jam atau satu hari?”, bukan sebagai SLA.

Multi-GPU sangat penting

accelerate launch --num_processes=N adalah cara termudah untuk memangkas waktu pelatihan. Setiap langkah optimizer memproses N × batch_size sampel dalam waktu nyata yang kurang lebih sama dengan satu langkah pada GPU tunggal, sehingga 4 GPU ≈ percepatan 4× untuk eksekusi yang terikat komputasi. Lihat panduan Multi GPU training untuk pengaturan lengkap.

Titik data referensi pada klaster 4×H100 80 GB (accelerate launch --num_processes=4), 5000 langkah, batch 32, AdamW, dataset imstevenpmwork/super_poulain_draft (~50 episode, ~640×480 gambar):

KebijakanWaktu nyataupdate_sdataloading_sUtilisasi GPUFlag yang menonjol
diffusion16m 17s0.1670.015~90%default (pelatihan dari awal)
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, vision encoder + expert dilatih

Log pelatihan memisahkan iterasi penuh menjadi dataloading_s (next(dl_iter)), preprocessing_s (konversi gambar dan pipeline kebijakan), serta update_s (pembaruan optimizer). step_s mencakup ketiga bagian tersebut dan menggerakkan samples_per_s. Benchmark di atas dibuat sebelum pemisahan ini, sehingga dataloading_s di dalamnya mencakup pra-pemrosesan.

Jadwal dan checkpoint

Jika Anda mempersingkat pelatihan (misalnya 5k–10k langkah pada dataset kecil), persingkat juga jadwal LR dengan --policy.scheduler_decay_steps≈--steps. Jika tidak, LR akan tetap dekat puncaknya dan tidak pernah meluruh. Hal yang sama berlaku untuk --save_freq.

Di mana untuk dijalankan

VRAM adalah filter pertama. Dalam satu tier, pilih berdasarkan anggaran dan ketersediaan — kolom $–$$$$ bersifat relatif; periksa harga terkini di penyedia yang Anda gunakan.

KelasVRAMTierNyaman untuk
RTX 3090 / 4090 (konsumen)24 GB$Light BC, Diffusion, SmolVLA. Ketat untuk VLAs pada batch 1.
L4 / A10G (cloud)24 GB$–$$Sampul yang sama; umum di Google Cloud, RunPod, AWS g5/g6.
A100 40 GB40 GB$$$Setiap kebijakan pada ukuran batch yang wajar.
A100 80 GB / H100 80 GB80 GB$$$$Klaster multi-GPU; batch besar untuk VLA.
Hanya CPU——Jangan melatih. Gunakan Colab atau sewa GPU.

Hugging Face Pekerjaan

Hugging Face Jobs memungkinkan Anda menjalankan pelatihan pada infrastruktur HF yang dikelola, dengan penagihan per detik, tanpa perlu memiliki GPU. lerobot-train mengirimkan dan mengalirkan pekerjaan untuk Anda — cukup tambahkan --job.target=<flavor> ke perintah pelatihan biasa:

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

Catatan:

  • Jalankan hf auth login sekali sebelum mengirim, pekerjaan akan berjalan di bawah token Anda.
  • --job.target dipetakan ke tabel di atas: t4-small/t4-medium (T4, hanya ACT), l4x1/l4x4 (L4 24 GB), a10g-small/large/largex2/largex4 (A10G 24 GB scaled out), a100-large (A100). Daftarkan katalog saat ini beserta harganya melalui hf jobs hardware, atau lihat https://huggingface.co/docs/hub/jobs.
  • Job secara default menggunakan timeout 2d (48 jam). Timpa dengan --job.timeout=4h (atau string durasi valid lainnya) untuk memperpendek atau memperpanjang timeout. Job akan berhenti secara otomatis ketika perintah selesai.
  • Untuk panduan lengkap — unggah dataset, streaming checkpoint, melanjutkan run pada job — lihat panduan pelatihan imitation-learning.
Update on GitHub