
SmolVLA adalah VLA 450 J parameter yang dapat di-fine-tune pada satu kartu 24 GB. Perintah lerobot 0.6.1 yang sebenarnya, nilai default yang sebenarnya, jebakan yang memakan waktu sehari, dan berapa biaya satu kali jalankan.
SmolVLA dalam satu layar
- •450 J parameter, sekitar 100 J di antaranya adalah pakar tindakan pencocokan aliran. lerobot hanya melatih pakar tersebut dan menjaga VLM tetap beku, itulah sebabnya ia muat di satu kartu.
- •Panduan komputasi LeRobot menempatkan grup smolvla pada sekitar 10 hingga 16 GB VRAM puncak pada batch 8 dengan AdamW. Oleh karena itu 24 GB.
- •Titik masuknya adalah lerobot-train. Postingan blog SmolVLA Juni 2025 masih mencetak python lerobot/scripts/train.py, sebuah jalur yang tidak lagi ada. Semua di bawah ini adalah lerobot 0.6.1.
- •Jadwal kosinus telah diatur untuk meluruh selama 30000 langkah. lerobot 0.6.1 menyesuaikan skala itu ke bawah untuk durasi yang lebih pendek dan mencatatnya, tetapi tidak pernah ke atas: durasi standar 100000 langkah berakhir pada batas bawah 2.5e-6 selama 70000 langkah.
- •Tiga puluh episode adalah minimum AY-Robots, pada tingkat 24 GB dengan biaya 1 hingga 3 USD per jalankan dibandingkan 4 hingga 12 untuk model 80 GB.
Kebanyakan orang yang menginginkan model tindakan bahasa visual pada lengan robot sungguhan berhenti pada batas perangkat keras. GR00T N1.7 dan Pi0.5 masing-masing sekitar tiga miliar parameter dan membutuhkan A100 80 GB atau H100. Jika yang Anda miliki adalah PC gaming dengan RTX 4090, itu adalah akhir dari perjalanan. SmolVLA adalah pengecualian: 450 J parameter, di dalam LeRobot, dibangun untuk fine-tuning pada satu kartu konsumen dan melayani dari CPU.
Rute manual terlebih dahulu: instal lerobot, tarik checkpoint lerobot/smolvla_base, jalankan perintah sebenarnya, baca jalannya saat itu terjadi. Kemudian rute platform, dan di mana itu tidak membantu.
Apa itu SmolVLA, dalam angka yang dapat Anda periksa
SmolVLA adalah pencocokan aliran kebijakan yang disematkan pada model bahasa visual kecil. Tulang punggungnya adalah SmolVLM2-500M-Video-Instruct; makalah ini hanya mempertahankan 16 lapisan pertama dari model bahasanya, membatasi setiap bingkai kamera menjadi 64 token visual dengan pengacakan piksel alih-alih pengubinan gambar, dan menyisipkan perhatian silang dengan lapisan perhatian diri setiap blok kedua. Biaya inferensi adalah batasan desain, bukan pemikiran di kemudian hari.
| Properti | Nilai | Sumber |
|---|---|---|
| Total parameter | about 450 M | paper |
| Pakar tindakan | about 100 M, flow matching | paper |
| Tulang punggung VLM | HuggingFaceTB/SmolVLM2-500M-Video-Instruct | vlm_model_name |
| Lapisan VLM yang digunakan | first 16 of the language model | num_vlm_layers = 16 |
| Token visual per bingkai | 64, pixel shuffle, no tiling | paper |
| Pelatihan awal | 481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUs | paper |
Tolok ukur adalah alasan orang repot-repot dengan model 450 M. Pada LIBERO, rata-ratanya 87,3 persen dibandingkan 76,5 untuk OpenVLA pada 7 B dan 86,0 untuk Pi0 yang dilatih robotika pada 3,3 B; pada Meta-World, 57,3 dibandingkan 47,9. Pada perangkat keras SO-100 yang sebenarnya, pelatihan multi-tugas memberikan 75 persen pada pengambilan dan penempatan, 90 pada penumpukan, 70 pada penyortiran, rata-rata 78,3, di mana ACT yang dilatih per tugas rata-rata 48,3. Baris yang sama berada di samping setiap VLA yang diterbitkan di entri arena SmolVLA dan perbandingan ACT dengan SmolVLA.
SmolVLA tidak lebih baik dari model 3 B dalam segala hal. Tabel SO-101 dari makalah itu sendiri adalah buktinya: 90 persen keberhasilan dalam distribusi, 50 persen di luar itu, pada platform yang tidak pernah dilatih sebelumnya. Apa yang diklaim, dan didukung, adalah bahwa dibandingkan Pi0, ia melatih sekitar 40 persen lebih cepat dengan memori 6 kali lebih sedikit.
Mengapa kartu 24 GB adalah pilihan yang tepat untuk percobaan pertama
LeRobot menyediakan panduan ukuran komputasi, halaman paling berguna di repositori untuk ini. Ini mengelompokkan kebijakan berdasarkan ukuran backbone dan memberikan satu batas VRAM per kelompok, diukur pada ukuran batch 8 dengan AdamW, standar LeRobot. Keadaan optimizer saja menambahkan 30 hingga 100 persen di atas satu kali forward dan backward pass, jadi ini bukan angka khusus bobot.
| Grup | Kebijakan | VRAM Puncak (batch 8, AdamW) | GPU Pemula |
|---|---|---|---|
| BC Ringan | act, vqbet, tdmpc | about 2 to 6 GB | RTX 3060, L4 |
| Difusi | diffusion, multi_task_dit | about 8 to 14 GB | RTX 4070+, L4 |
| VLA Kecil | smolvla | about 10 to 16 GB | RTX 4080+, L4, A10G |
| VLA Besar | pi0, pi0_fast, pi05, xvla, wall_x | about 24 to 40 GB | A100 40 GB+ |
| Multimodal | groot, eo1 | about 24 to 40 GB | A100 40 GB+ |
Sepuluh hingga enam belas gigabyte pada batch 8 adalah argumennya: kartu 24 GB cocok untuk itu ditambah dataloader. AY-Robots menempatkan SmolVLA pada RTX 4090 atau kartu 24 GB apa pun, minimal 30 episode, LeRobot v3.0 data, 245 ms per langkah aksi. Disewa, itu adalah 2 hingga 5 jam dengan biaya 0.30 hingga 0.60 USD per jam, sekitar 1 hingga 3 USD per fine-tuning percobaan, dibandingkan 4 hingga 12 USD pada tier 80 GB yang dibutuhkan GR00T dan Pi0.5 (harga). Percobaan SmolVLA yang gagal adalah harga secangkir kopi; percobaan GR00T yang gagal, harga makan siang.

- Sesuai dengan perangkat keras yang mungkin sudah Anda miliki: sekitar 10 hingga 16 GB pada batch 8.
- Jalankan yang sia-sia memakan waktu berjam-jam dan biaya beberapa dolar, jadi Anda bisa salah tentang dataset.
- Dilatih sebelumnya pada dataset komunitas yang dibagikan di bawah tag lerobot, dengan hasil SO-100 dan SO-101 yang nyata.
- Ini ada di lerobot itu sendiri: tidak ada repo vendor, dan smolvla_base tidak dibatasi.
- 450 M tetap 450 M: keberhasilan di luar distribusi turun dari 90 menjadi 50 persen dalam tabel SO-101 di makalah.
- Ini membutuhkan data LeRobot v3.0; rekaman v2.1 harus dikonversi (dataset rejected v3).
- 245 ms per langkah tindakan adalah pengontrol pick and place yang kompeten, bukan yang reaktif.
- Contoh dokumen menjalankan batch 64 pada A100; pada 24 GB Anda menukar batch dengan waktu nyata.
Langkah 0: dataset menentukan jalannya, bukan flag
Tidak ada di bawah ini yang penting jika rekaman buruk. Halaman LeRobot SmolVLA blak-blakan: dataset referensi adalah 50 episode di 5 posisi kubus, 10 per posisi, dan tugas yang sama pada 25 episode berkinerja buruk. Pengulangan per variasi menggeneralisasi, jumlah episode mentah tidak. Belum pernah merekamnya? Mulai di rekam dataset pertama Anda, dengan klien desktop, yang menulis format LeRobot dari sesi teleoperasi, atau pinjam satu dari direktori dataset.
- Setidaknya 30 episode di AY-Robots, sekitar 50 untuk resep referensi LeRobot.
- Setiap variasi yang Anda harapkan saat peluncuran, diulang beberapa kali.
- Satu string tugas, dieja secara identik pada waktu perekaman dan peluncuran. Model dikondisikan pada teks tersebut.
- Kamera tetap. Kamera yang digerakkan antara perekaman dan peluncuran adalah alasan paling umum mengapa kurva kerugian yang bersih menghasilkan lengan yang tidak bergerak.
- Variasi yang disimpan yang belum pernah Anda latih, sehingga Anda memiliki sesuatu yang jujur untuk diuji.
SmolVLA, Pi0.5 dan ACT membutuhkan LeRobot v3.0. GR00T N1.7 dan N1.5 membutuhkan v2.0 atau v2.1 dan pemuatnya mengalami crash pada v3.0. Rekam sekali, rencanakan untuk membandingkan model nanti, dan Anda akan mengonversi dengan satu cara atau lainnya: dataset rejected 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_placeLebih lanjut tentang ini di cara mengumpulkan data pelatihan VLA berkualitas tinggi. Versi singkatnya: 30 hingga 50 episode bersih dari satu tugas dengan variasi yang disengaja mengalahkan 200 episode ceroboh dari tiga tugas, dengan selisih yang tidak dapat ditutup oleh hyperparameter apa pun.
Instal 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-infoInstalasi dasar lerobot tipis dan membatasi dependensi berat di balik fitur tambahan (extras): smolvla menambahkan transformers, num2words, dan accelerate, training tumpukan dataset dan wandb, core_scripts dependensi perangkat keras dan visualisasi. Di Linux, jalur instalasi juga menentukan CUDA wheel Anda: default PyPI adalah cu130 wheel dengan batas driver 580.65, jadi pada driver yang lebih lama, instal torch dari indeks cu128 terlebih dahulu, lalu lerobot.
--policy.path=lerobot/smolvla_base memuat checkpoint 450 M yang sudah dilatih sebelumnya dan menyempurnakannya. --policy.type=smolvla membangun SmolVLA baru, dan default konfigurasi load_vlm_weights = False berarti ia bahkan tidak menarik bobot backbone SmolVLM2 kecuali Anda memintanya. Jika salah, proses akan berjalan dengan baik, biayanya sama, dan tidak mempelajari apa pun yang dapat ditransfer.
Proses pelatihan, perintah demi perintah
- 1Otentikasi ke Hub
Checkpoint dasar berasal dari Hub, dan dataset Anda mungkin juga.
bashhf auth login - 2Baca opsi-opsinya sekali
Setiap bidang konfigurasi pipeline dan kebijakan adalah sebuah flag. Bacalah sekilas sebelum mendalami kodenya.
bashlerobot-train --help - 3Mulai fine-tune
Contoh di dokumentasi menjalankan batch 64 pada satu A100; panduan komputasi sendiri merekomendasikan batch 16 untuk A100 40 GB, dan 8 adalah setara untuk 24 GB. Tidak ada flag scheduler di sini dengan sengaja, lihat di bawah.
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 - 4Baca baris log, bukan hanya loss
Setiap --log_freq langkah, lerobot mencetak loss, grdn, lr, updt_s, data_s, smp/s dan, pada CUDA, mem_gb. mem_gb menunjukkan apakah batch muat, lr menunjukkan apakah jadwal meluruh, dan data_s yang mendekati updt_s berarti dataloader adalah bottleneck, bukan GPU.
bash# if data_s creeps toward updt_s lerobot-train ... --num_workers=8 - 5Kumpulkan checkpoint yang dapat Anda bandingkan
save_freq defaultnya 20000, jadi proses 20000 langkah hanya menyisakan satu checkpoint dan tidak ada yang bisa dibandingkan. Atur ke 2000. Mendorong ke Hub memerlukan --policy.repo_id.
bash--save_freq=2000 \ --policy.repo_id=${HF_USER}/smolvla_pick_place \ --save_checkpoint_to_hub=true - 6Lanjutkan jika mesin mati
Arahkan --config_path ke train_config.json di samping checkpoint. lerobot menolak untuk memulai ke output_dir yang sudah ada kecuali Anda melanjutkan, jadi Anda tidak dapat menimpa proses secara tidak sengaja.
bashlerobot-train \ --config_path=<path to the saved train_config.json> \ --resume=true
Flag yang benar-benar mengubah hasil
| Flag | Fungsinya | Pada 24 GB |
|---|---|---|
| --batch_size | Sampel per langkah, kira-kira linear dengan VRAM | 4 to 8 |
| --steps | Total langkah optimizer | 20000 langkah pertama |
| --policy.scheduler_decay_steps | Panjang peluruhan kosinus, preset 30000 | Hanya berlaku di atas 30000 |
| --policy.use_amp | Presisi campuran; SmolVLA tidak memiliki bidang dtype | true saat memori terbatas |
| --num_workers | Proses dataloader, default 4 | Tingkatkan sampai data_s berhenti naik |
| --dataset.eval_split | Fraksi episode yang ditahan per tugas | 0.1, with --eval_steps |
| --policy.freeze_vision_encoder | Menjaga vision tower tetap beku | true on 24 GB |
| --policy.train_expert_only | Hanya expert ~100 M yang mendapatkan gradien | true pada awalnya |
SmolVLA mengatur jadwal kosinus: `scheduler_warmup_steps = 1000`, `scheduler_decay_steps = 30000`, `scheduler_decay_lr = 2.5e-6`. Saran lama mengatakan bahwa eksekusi 20000 langkah akan terhenti di tengah-tengah peluruhan. Pada 0.6.1 tidak demikian: `CosineDecayWithWarmupSchedulerConfig.build()` diberikan `--steps`, dan di bawah `num_decay_steps` ia menskalakan ulang keduanya, pemanasan 1000 menjadi 666 dan peluruhan 30000 menjadi 20000, mencetak Auto-scaling LR scheduler saat melakukannya. Ia tidak pernah menskalakan ulang ke atas: peluruhan dibatasi dengan `min(current_step, decay_steps)`, sehingga `--steps=100000` standar berada di dasar dari langkah 30000 hingga akhir, 70 persen dari eksekusi. Hanya sisi panjang itu yang masih membutuhkan `--policy.scheduler_decay_steps`. Kolom `lr` adalah tempat Anda memeriksa.
Pengaturan default yang Anda warisi jika Anda tidak mengubah apa pun
Sebuah kebijakan konfigurasi di lerobot membawa preset pengoptimal dan penjadwalnya sendiri, dan kecuali Anda mengatur use_policy_training_preset=false preset tersebut akan berlaku. Setengah dari pertanyaan yang diajukan orang tentang pelatihan SmolVLA dijawab oleh pengaturan default yang tidak mereka ketahui keberadaannya.
| Pengaturan | Default di lerobot 0.6.1 | Didefinisikan dalam |
|---|---|---|
| chunk_size / n_action_steps | 50 / 50 | SmolVLAConfig |
| num_steps (denoise pencocokan aliran) | 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 |
Dua baris yang mengejutkan orang adalah freeze_vision_encoder dan train_expert_only, keduanya benar. Secara default, Anda melatih sekitar 100 M parameter, bukan 450 M, itulah sebabnya ia muat di 24 GB. Referensi LeRobot sendiri yang berjalan pada klaster H100 empat-GPU mengubah keduanya menjadi false; pada satu kartu 24 GB, hal itu mengubah jalannya proses yang berfungsi menjadi .
Saran panduan ketika Anda terikat memori adalah mengurangi ukuran batch dan menggunakan akumulasi gradien untuk memulihkan batch yang efektif. Tidak ada akumulasi gradien di lerobot 0.6.1: TrainPipelineConfig tidak memiliki bidang tersebut dan string tersebut tidak muncul di mana pun dalam paket yang dirilis. Formulir AY-Robots menunjukkan nilai akumulasi gradien 8 untuk SmolVLA dan juga tidak menerapkannya. Pengaturan Anda pada 24 GB adalah --batch_size, dua default pembekuan, dan --policy.use_amp.
Berapa lama proses berjalan, dan berapa banyak langkah yang cukup
LeRobot menerbitkan patokan waktu nyata untuk lima epoch di atas dataset sekitar 50 episode, sekitar 45000 frame pada 30 fps. Angka-angka orde besaran, kata dokumen, tetapi itu adalah perbedaan antara mengharapkan satu jam dan satu hari.
| Penyiapan | Kebijakan | Batch | Waktu sebenarnya |
|---|---|---|---|
| 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 |
Aturannya adalah 5 hingga 10 epoch di atas dataset, bukan jumlah langkah yang tetap: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). Pada dataset referensi yang ditunjuk oleh dokumen, lerobot/svla_so100_pickplace, metadata melaporkan 50 episode dan 19631 frame: batch 8 menghasilkan sekitar 2454 langkah per epoch, jadi 20000 langkah kira-kira 8 epoch. Kurangi separuh batch dan anggaran yang sama akan menghasilkan separuh epoch, jadi ulangi ini setiap kali Anda mengubah --batch_size.
Menjalankan kembali kebijakan yang telah disetel halus pada lengan robot
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_place245 ms per langkah aksi mudah disalahartikan: kebijakan mengeluarkan chunk_size = 50 aksi per forward pass dan mengeksekusi n_action_steps = 50 di antaranya, jadi seberapa sering Anda membayar biaya tersebut diatur oleh parameter tersebut, bukan oleh seberapa sering servo menerima perintah. Itulah yang dibeli oleh pemotongan aksi (action chunking), dan mengapa model 245 ms dapat menggerakkan lengan 30 Hz. Yang tersisa adalah latensi inferensi di akhir potongan.
| Pengukuran (SmolVLA, SO-100 nyata) | Sinkron | Asinkron |
|---|---|---|
| Waktu penyelesaian, ambil dan letakkan, 10 percobaan | 13.75 s | 9.70 s |
| Siklus ambil dan letakkan dalam jendela waktu tetap | 9 | 19 |
| Tingkat keberhasilan rata-rata dari tiga tugas | 78.3 % | 73.3 % |
Baris ketiga itulah yang dilewatkan sebagian besar tulisan. Inferensi asinkron sekitar 30 persen lebih cepat dan kira-kira menggandakan throughput dalam jendela waktu tetap, dan makalah tersebut menyebut tingkat keberhasilan sebanding, yang rata-rata memang demikian. Di baliknya, penyortiran turun dari 70 menjadi 50 persen sementara ambil dan letakkan naik 5. lerobot 0.6.1 membawa tuas lain dalam biner yang sama: --inference.type=rtc mengalihkan rollout ke real time chunking, yang direkomendasikan oleh blok penggunaan skrip itu sendiri untuk VLA yang lambat, Pi0, Pi0.5, dan SmolVLA.
Loop kontrol adalah 20 hingga 485 ms per langkah aksi tergantung pada model, dan perjalanan pulang-pergi internet publik di atasnya mengubah kebijakan yang berfungsi menjadi ragu-ragu. Inferensi jarak jauh dapat dilakukan untuk tugas ambil dan letakkan yang lambat, bukan gerakan reaktif yang cepat: jika tugas membutuhkan koreksi cepat, GPU harus berada di LAN yang sama dengan lengan.
Tidak relevan untuk sesi pelatihan, tetapi ini mengakhiri lebih banyak proyek SO-100 daripada hyperparameter lainnya. Servo Feetech STS3215 pada SO-100 dan SO-101 beroperasi pada 7.4 V; 12 V akan merusaknya. LeKiwi menggabungkan lengan 7.4 V dengan dasar 12 V, itulah mengapa jack barel yang salah dapat menemukan soket yang salah.
Dua jalur menuju checkpoint yang sama
Anda memiliki mesin, lingkungan, dan proses debugging. Satu-satunya ketergantungan cloud adalah unduhan checkpoint dasar dari Hub. Ini adalah jalur yang tepat jika Anda ingin memodifikasi kebijakan, jika data tidak dapat meninggalkan jaringan Anda, atau jika kartu grafis sedang tidak digunakan.
- Anda mengontrol CUDA wheel, driver, build ffmpeg, dan dataloader.
- Anda dapat menambal configuration_smolvla.py dan melatih ulang pada sore yang sama.
- Anda membayar dalam listrik dan waktu, bukan per sesi, dan melakukan debug TorchCodec sendiri.
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=trueSesi yang sama di balik sebuah formulir: Anda memilih model dan dataset, backend menyewa GPU berdasarkan VRAM yang dibutuhkan, menjalankan trainer, dan menulis checkpoint ke penyimpanan objek. Dataset dapat berasal dari ID repo Hugging Face, direktori publik, atau mesin Anda. Mulai di SmolVLA di SO-100, atau matriks di halaman pelatihan.
| Bidang | Default yang dikirim platform untuk SmolVLA | Catatan |
|---|---|---|
| ukuran batch | 2 | Konservatif untuk tier 24 GB |
| laju pembelajaran | 1e-4 | Preset lerobot |
| langkah maks | 20000 | Sesi referensi dalam dokumen LeRobot |
| akumulasi gradien | 8 | Ditampilkan dalam formulir, tidak diterapkan |
| pengaturan tambahan | seed, logFreq | Seed membuat sesi dapat diulang |
- 2 hingga 5 jam pada tier 24 GB, sekitar 1 hingga 3 USD per sesi.
- Operasi yang sama dari terminal di /cli dan dari agen AI di /mcp.
- Pod inferensi membawa watchdog idle, sehingga pod yang terlupakan akan menghancurkan dirinya sendiri alih-alih menagih secara diam-diam.
- Belum punya lengan? /live menyiarkan SO-100 fisik yang dapat Anda kendalikan tanpa mendaftar.
Pekerjaan yang macet dalam antrean adalah gejala pasar spot, bukan bug: pekerjaan pelatihan macet dalam antrean. Langkah demi langkah: latih kebijakan pertama Anda dan dokumen pelatihan.
Ketika SmolVLA adalah pilihan yang salah
Uji apakah SmolVLA adalah percobaan pertama yang tepat bukanlah apakah itu berhasil, tetapi apakah kegagalannya memberi tahu Anda sesuatu. Capai 60 atau 70 persen dan model yang lebih besar adalah pengeluaran berikutnya yang masuk akal: data membawa sinyal. Capai 10 persen dan model 3 B kemungkinan besar juga mencapai 10 persen, yang baru saja Anda pelajari dengan biaya tiga dolar alih-alih dua belas.

Penting untuk dibaca sebelum mengeluarkan lebih banyak biaya: Pi0.5 against SmolVLA untuk kapasitas lebih besar dengan ide yang sama, dan GR00T N1.7 against SmolVLA untuk jalur NVIDIA, keduanya tier 80 GB dengan biaya 4 hingga 12 USD per eksekusi. Di sisi lain, ACT adalah dasar yang lebih murah: 80 M parameters, 20 ms per langkah aksi, tanpa pengkondisian bahasa. Kelima-limanya ada di halaman kebijakan; arena memiliki 85 model dan 332 hasil benchmark.

Daftar periksa sebelum Anda menskalakan apa pun
- Apakah
lrmencapai batas bawah 2.5e-6? Di bawah 30000 langkah, lerobot menskalakan ulang peluruhan dan mengatakannya saat startup; di atas itu, atur--policy.scheduler_decay_stepssendiri. - Lebih dari satu checkpoint, dan episode yang ditahan dengan
--dataset.eval_splitagar kerugian evaluasi berarti. - Apakah kebijakan bergerak sama sekali? Kerugian yang menurun dengan lengan yang tidak bergerak memiliki penyebab spesifik: kerugian menurun, kebijakan tidak melakukan apa-apa.
- Apakah ia bertahan dalam perubahan adegan? Jika tidak: kebijakan hanya berfungsi dalam satu pengaturan.
- Apakah Anda mencatat seed-nya? lerobot secara default menggunakan 1000, sehingga dua eksekusi yang tidak tersentuh tetap sebanding.
- Baru kemudian: lebih banyak episode, lebih banyak variasi, atau model yang lebih besar. Dalam urutan tersebut.
Untuk mengapa model-model ini ada dan apa yang mereka lakukan dengan masukan bahasa, adalah latar belakangnya; menjalankan perakitan melalui ke pertama. Untuk checkpoint yang sudah selesai, ; jika lengan tidak pernah muncul, .
Latih SmolVLA pada lengan Anda sendiri
Pilih model dan lengan, dan panduan akan memberikan default yang tepat, format dataset, dan biaya eksekusi. SmolVLA berada di tingkat 24 GB dengan biaya 1 hingga 3 USD per eksekusi.
Buka panduan pelatihanBisakah saya benar-benar melakukan fine-tune SmolVLA pada RTX 4090?▾
Ya. Panduan komputasi LeRobot menempatkan SmolVLA pada sekitar 10 hingga 16 GB VRAM puncak pada batch 8 dengan AdamW dan mencantumkan kartu konsumen 24 GB nyaman untuk itu. Batch 64 dalam contoh dokumen dipasangkan dengan satu A100. Memori berskala kira-kira linier dengan batch, jadi gunakan 4 atau 8 dan pantau mem_gb.
Berapa banyak episode yang sebenarnya saya butuhkan?▾
AY-Robots menetapkan minimum 30. Dokumen LeRobot merekomendasikan sekitar 50 dan melaporkan bahwa 25 episode dari tugas yang sama berkinerja buruk. Struktur lebih penting daripada jumlah: set referensi adalah 5 posisi kubus dengan masing-masing 10 episode, dan pengulangan itulah yang menggeneralisasi.
Dokumen mengatakan batch 64, platform mengirimkan batch 2. Mana yang benar?▾
Keduanya, untuk perangkat keras yang berbeda. Contoh dokumen menggunakan batch 64 dan mengutip sekitar 4 jam untuk 20000 langkah pada satu A100; jangkar A100 40 GB panduan komputasi adalah batch 16. Batch 2 adalah yang dikirim AY-Robots pada tingkat 24 GB. Secara lokal 4 hingga 8 adalah tengahnya, dan aritmatika epoch berubah dengannya.
SmolVLA atau ACT untuk percobaan pertama pada SO-100?▾
ACT jika tugasnya adalah satu gerakan berulang dan Anda menginginkan loop tercepat: 20 ms per langkah aksi, 80 M parameter, tanpa pengkondisian bahasa. SmolVLA jika Anda menginginkan pengkondisian bahasa, beberapa string tugas dalam satu checkpoint, dan basis yang sudah dilatih. Keduanya berada pada tingkat 24 GB, jadi pilihannya adalah tugasnya, bukan anggarannya.
Apakah saya harus mengatur --policy.scheduler_decay_steps?▾
Hanya ketika --steps di atas 30000. SmolVLA mengatur ulang peluruhan kosinus pada 30000 langkah, dan lerobot 0.6.1 menyesuaikannya sendiri untuk durasi yang lebih pendek, mencatat "Auto-scaling LR scheduler" saat melakukannya. Ini tidak pernah menskalakan ke atas, jadi --steps=100000 standar meninggalkan 70000 langkah terakhir pada batas bawah 2.5e-6.
Sources
- SmolVLA: Model Visi-Bahasa-Aksi untuk Robotika yang Terjangkau dan Efisien
- SmolVLA: Model Visi-Bahasa-Aksi yang Efisien (blog Hugging Face)
- Kartu model lerobot/smolvla_base
- Dokumen LeRobot: SmolVLA
- Dokumen LeRobot: Panduan HW Komputasi untuk Pelatihan LeRobot
- Dokumen LeRobot: Instalasi
- Dokumen LeRobot: LeRobotDataset v3.0 dan konverter v2.1
- Dokumen LeRobot: Inferensi Asinkron
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (strategi dan inferensi RTC)
- lerobot v0.6.1: pyproject.toml (ekstra dan titik masuk konsol)
- lerobot di PyPI
- Dataset lerobot/svla_so100_pickplace (50 episode, 19631 frame, 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