
SmolVLA ialah VLA 450 M parameter yang boleh ditala halus pada satu kad 24 GB. Perintah lerobot 0.6.1 sebenar, tetapan lalai sebenar, perangkap yang memakan masa sehari, dan kos satu larian.
SmolVLA dalam satu skrin
- •450 M parameter, kira-kira 100 M daripadanya adalah pakar tindakan padanan aliran. lerobot hanya melatih pakar tersebut dan mengekalkan VLM beku, itulah sebabnya ia muat pada satu kad.
- •Panduan pengiraan LeRobot meletakkan kumpulan smolvla pada kira-kira 10 hingga 16 GB VRAM puncak pada kelompok 8 dengan AdamW. Oleh itu 24 GB.
- •Titik masuk adalah lerobot-train. Catatan blog SmolVLA Jun 2025 masih mencetak python lerobot/scripts/train.py, laluan yang tidak lagi wujud. Semua di bawah adalah lerobot 0.6.1.
- •Jadual kosinus dipratetap untuk mereput melebihi 30000 langkah. lerobot 0.6.1 mengecilkan semula itu untuk larian yang lebih pendek dan mencatatkannya, tetapi tidak pernah meningkat: larian stok 100000 langkah berakhir pada lantai 2.5e-6 untuk 70000 langkah.
- •Tiga puluh episod adalah minimum AY-Robots, pada peringkat 24 GB yang berharga 1 hingga 3 USD setiap larian berbanding 4 hingga 12 untuk model 80 GB.
Kebanyakan orang yang mahukan model tindakan bahasa penglihatan pada lengan sebenar berhenti pada had perkakasan. GR00T N1.7 dan Pi0.5 adalah sekitar tiga bilion parameter setiap satu dan memerlukan A100 80 GB atau H100. Jika apa yang anda miliki adalah PC permainan dengan RTX 4090, itu adalah penghujung jalan. SmolVLA adalah pengecualian: 450 M parameter, di dalam LeRobot, dibina untuk penalaan halus pada satu kad pengguna dan berkhidmat dari CPU.
Laluan manual dahulu: pasang lerobot, tarik lerobot/smolvla_base checkpoint, jalankan arahan sebenar, baca larian semasa ia berlaku. Kemudian laluan platform, dan di mana ia tidak membantu.
Apa itu SmolVLA, dalam nombor yang boleh anda semak
SmolVLA ialah pemadanan aliran polisi yang dipasang pada model bahasa penglihatan kecil. Tulang belakangnya ialah SmolVLM2-500M-Video-Instruct; kertas kerja ini hanya mengekalkan 16 lapisan pertama model bahasanya, mengehadkan setiap bingkai kamera kepada 64 token visual dengan pengacakan piksel dan bukannya jubin imej, serta menyisipkan perhatian silang dengan lapisan perhatian kendiri setiap blok kedua. Kos inferens adalah kekangan reka bentuk, bukan sesuatu yang difikirkan kemudian.
| Ciri | Nilai | Sumber |
|---|---|---|
| Jumlah parameter | about 450 M | paper |
| Pakar tindakan | about 100 M, flow matching | paper |
| Tulang belakang 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 setiap bingkai | 64, pixel shuffle, no tiling | paper |
| Pra-latihan | 481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUs | paper |
Penanda aras adalah sebab mengapa orang mengambil berat tentang model 450 M. Pada LIBERO, ia mencatatkan purata 87.3 peratus berbanding 76.5 untuk OpenVLA pada 7 B dan 86.0 untuk Pi0 yang telah dilatih robotik pada 3.3 B; pada Meta-World, 57.3 berbanding 47.9. Pada perkakasan SO-100 sebenar, latihan berbilang tugas memberikan 75 peratus pada ambil dan letak, 90 pada susun, 70 pada isih, dengan purata 78.3, di mana ACT yang dilatih mengikut tugas mencatatkan purata 48.3. Baris yang sama terletak di sebelah setiap VLA yang diterbitkan dalam entri arena SmolVLA dan perbandingan ACT dengan SmolVLA.
SmolVLA tidak lebih baik daripada model 3 B dalam segala hal. Jadual SO-101 kertas kerja itu sendiri adalah petunjuknya: 90 peratus kejayaan dalam pengedaran, 50 peratus di luar pengedaran, pada platform yang tidak pernah dilatih sebelumnya. Apa yang didakwa, dan disokong, ialah berbanding Pi0, ia melatih kira-kira 40 peratus lebih cepat dengan 6 kali ganda kurang memori.
Mengapa kad 24 GB adalah pilihan yang tepat untuk larian pertama
LeRobot menghantar panduan saiz pengkomputeran, halaman paling berguna dalam repo untuk ini. Ia mengelaskan polisi mengikut saiz tulang belakang dan memberikan satu sampul VRAM bagi setiap kumpulan, diukur pada saiz kelompok 8 dengan AdamW, lalai lerobot. Keadaan pengoptimum sahaja menambah 30 hingga 100 peratus berbanding laluan ke hadapan dan ke belakang yang kosong, jadi ini bukan angka berat sahaja.
| Kumpulan | Polisi | VRAM Puncak (kelompok 8, AdamW) | GPU Permulaan |
|---|---|---|---|
| BC Ringan | act, vqbet, tdmpc | sekitar 2 hingga 6 GB | RTX 3060, L4 |
| Penyebaran | diffusion, multi_task_dit | sekitar 8 hingga 14 GB | RTX 4070+, L4 |
| VLA Kecil | smolvla | sekitar 10 hingga 16 GB | RTX 4080+, L4, A10G |
| VLA Besar | pi0, pi0_fast, pi05, xvla, wall_x | sekitar 24 hingga 40 GB | A100 40 GB+ |
| Multimodal | groot, eo1 | sekitar 24 hingga 40 GB | A100 40 GB+ |
Sepuluh hingga enam belas gigabait pada kelompok 8 adalah hujah: kad 24 GB sesuai untuk itu ditambah dengan pemuat data. AY-Robots meletakkan SmolVLA pada RTX 4090 atau mana-mana kad 24 GB, minimum 30 episod, LeRobot v3.0 data, 245 ms setiap langkah tindakan. Disewa, iaitu 2 hingga 5 jam pada 0.30 hingga 0.60 USD sejam, kira-kira 1 hingga 3 USD untuk satu penalaan halus larian, berbanding 4 hingga 12 USD pada peringkat 80 GB yang diperlukan oleh GR00T dan Pi0.5 (harga). Larian SmolVLA yang gagal adalah harga secawan kopi; larian GR00T yang gagal, harga makan tengah hari.

- Sesuai dengan perkakasan yang mungkin anda sudah miliki: kira-kira 10 hingga 16 GB pada kelompok 8.
- Jalankan yang sia-sia memakan masa berjam-jam dan beberapa dolar, jadi anda mampu untuk tersilap mengenai set data.
- Dilatih awal pada set data komuniti yang dikongsi di bawah tag lerobot, dengan hasil SO-100 dan SO-101 sebenar.
- Ia berada dalam lerobot itu sendiri: tiada repo vendor, dan smolvla_base tidak digated.
- 450 M masih 450 M: kejayaan di luar taburan menurun dari 90 kepada 50 peratus dalam jadual SO-101 kertas kerja.
- Ia memerlukan data LeRobot v3.0; rakaman v2.1 perlu ditukar (dataset ditolak v3).
- 245 ms setiap langkah tindakan adalah pengawal pilih dan letak yang cekap, bukan yang reaktif.
- Contoh dokumen menjalankan kelompok 64 pada A100; pada 24 GB anda menukar kelompok untuk masa sebenar.
Langkah 0: set data menentukan jalankan, bukan bendera
Tiada apa-apa di bawah ini penting jika rakaman itu buruk. Halaman LeRobot SmolVLA adalah terus terang: set data rujukan adalah 50 episod merentasi 5 posisi kiub, 10 setiap posisi, dan tugas yang sama pada 25 episod menunjukkan prestasi yang buruk. Pengulangan setiap variasi menggeneralisasi, kiraan episod mentah tidak. Tidak pernah merakam satu? Mulakan di rakam set data pertama anda dengan klien desktop, yang menulis format LeRobot daripada teleoperasi sesi, atau pinjam satu daripada direktori set data.
- Sekurang-kurangnya 30 episod di AY-Robots, kira-kira 50 untuk resipi rujukan LeRobot.
- Setiap variasi yang anda jangkakan semasa pelancaran, diulang beberapa kali.
- Satu rentetan tugas, dieja sama semasa rakaman dan masa pelancaran. Model ini dikondisikan pada teks tersebut.
- Kamera tetap. Kamera yang digerakkan antara rakaman dan pelancaran adalah sebab paling biasa lengkung kerugian yang bersih menghasilkan lengan yang tidak bergerak.
- Variasi yang disimpan yang tidak pernah anda latih, supaya anda mempunyai sesuatu yang jujur untuk diuji.
SmolVLA, Pi0.5 dan ACT memerlukan LeRobot v3.0. GR00T N1.7 dan N1.5 memerlukan v2.0 atau v2.1 dan pemuatnya ranap pada v3.0. Rakam sekali, rancang untuk membandingkan model kemudian, dan anda akan menukar dengan satu cara atau yang lain: 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 mengenai ini di cara mengumpul data latihan VLA berkualiti tinggi. Versi ringkas: 30 hingga 50 episod bersih satu tugas dengan variasi yang disengajakan mengalahkan 200 episod ceroboh tiga tugas, dengan margin yang tiada hiperparameter dapat tutup.
Pasang 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-infoPemasangan asas lerobot adalah nipis dan menyekat kebergantungan berat di sebalik tambahan (extras): smolvla menambah transformers, num2words dan accelerate, training timbunan set data dan wandb, core_scripts kebergantungan perkakasan dan visualisasi. Pada Linux, laluan pemasangan juga menentukan roda CUDA anda: lalai PyPI ialah roda cu130 dengan lantai pemacu 580.65, jadi pada pemacu yang lebih lama, pasang torch dari indeks cu128 dahulu, kemudian lerobot.
--policy.path=lerobot/smolvla_base memuatkan titik semak (checkpoint) 450 M yang telah dilatih dan menala halusnya. --policy.type=smolvla membina SmolVLA yang baharu, dan lalai konfigurasi load_vlm_weights = False bermakna ia tidak akan menarik berat tulang belakang SmolVLM2 melainkan anda memintanya. Jika tersilap, proses akan berjalan dengan gembira, menelan kos yang sama, dan tidak mempelajari apa-apa yang boleh dipindahkan.
Pelaksanaan latihan, arahan demi arahan
- 1Mengesahkan terhadap Hub
Titik semak asas datang dari Hub, dan set data anda mungkin juga.
bashhf auth login - 2Baca pilihan sekali
Setiap medan konfigurasi saluran paip dan polisi adalah bendera. Imbasnya sebelum mendalami sumber.
bashlerobot-train --help - 3Mulakan penalaan halus
Contoh dokumen menjalankan kelompok 64 pada satu A100; panduan pengiraan A100 40 GB sendiri adalah kelompok 16, dan 8 adalah setara 24 GB. Tiada bendera penjadual 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 kerugian
Setiap --log_freq langkah, lerobot mencetak loss, grdn, lr, updt_s, data_s, smp/s dan, pada CUDA, mem_gb. mem_gb menyatakan sama ada kelompok muat, lr sama ada jadual merosot, dan data_s yang menghampiri updt_s bermakna pemuat data adalah kesesakan, bukan GPU.
bash# if data_s creeps toward updt_s lerobot-train ... --num_workers=8 - 5Kumpul titik semak yang boleh anda bandingkan
save_freq lalai kepada 20000, jadi larian 20000 langkah meninggalkan satu titik semak dan tiada apa untuk dibandingkan. Tetapkan 2000. Menolak ke Hub memerlukan --policy.repo_id.
bash--save_freq=2000 \ --policy.repo_id=${HF_USER}/smolvla_pick_place \ --save_checkpoint_to_hub=true - 6Sambung semula jika mesin mati
Tunjuk --config_path pada train_config.json di sebelah titik semak. lerobot enggan bermula ke output_dir yang sedia ada melainkan anda menyambung semula, jadi anda tidak boleh menimpa larian secara tidak sengaja.
bashlerobot-train \ --config_path=<path to the saved train_config.json> \ --resume=true
Bendera yang sebenarnya mengubah hasil
| Bendera | Apa yang dilakukannya | Pada 24 GB |
|---|---|---|
| --batch_size | Sampel setiap langkah, kira-kira linear dalam VRAM | 4 hingga 8 |
| --steps | Jumlah langkah pengoptimum | 20000 laluan pertama |
| --policy.scheduler_decay_steps | Panjang pereputan kosinus, pratetap 30000 | Hanya berkesan di atas 30000 |
| --policy.use_amp | Ketepatan campuran; SmolVLA tiada medan dtype | true apabila memori terhad |
| --num_workers | Proses pemuat data, lalai 4 | Naikkan sehingga data_s berhenti meningkat |
| --dataset.eval_split | Pecahan episod yang ditahan setiap tugas | 0.1, dengan --eval_steps |
| --policy.freeze_vision_encoder | Memastikan menara penglihatan beku | true pada 24 GB |
| --policy.train_expert_only | Hanya pakar ~100 Juta yang mendapat gradien | true dahulu |
SmolVLA menetapkan jadual kosinus: scheduler_warmup_steps = 1000, scheduler_decay_steps = 30000, scheduler_decay_lr = 2.5e-6. Nasihat lama mengatakan larian 20000 langkah oleh itu terhenti di tengah-tengah pereputan. Dalam 0.6.1 ia tidak berlaku: CosineDecayWithWarmupSchedulerConfig.build() diberikan --steps, dan di bawah num_decay_steps ia menskala semula kedua-duanya, pemanasan 1000 kepada 666 dan pereputan 30000 kepada 20000, mencetak Auto-scaling LR scheduler semasa ia melakukannya. Ia tidak pernah menskala semula ke atas: pereputan diketatkan dengan min(current_step, decay_steps), jadi `--steps=100000` stok berada di paras terendah dari langkah 30000 hingga akhir, 70 peratus daripada larian. Hanya bahagian panjang itu masih memerlukan `--policy.scheduler_decay_steps`. Lajur lr adalah tempat anda menyemak.
Lalai yang anda warisi jika anda tidak mengubah apa-apa
Konfigurasi dalam lerobot membawa pratetap pengoptimum dan penjadualnya sendiri, dan melainkan anda menetapkan use_policy_training_preset=false pratetap tersebut akan diguna pakai. Separuh daripada soalan yang ditanya orang tentang latihan SmolVLA dijawab oleh lalai yang mereka tidak tahu wujud.
| Tetapan | Lalai dalam lerobot 0.6.1 | Ditakrifkan dalam |
|---|---|---|
| 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 |
Dua baris yang mengejutkan orang ialah freeze_vision_encoder dan train_expert_only, kedua-duanya benar. Secara lalai anda melatih kira-kira 100 J parameter, bukan 450 J, itulah sebabnya ia muat pada 24 GB. Larian rujukan LeRobot sendiri pada kluster H100 empat-GPU menukar kedua-duanya kepada palsu; pada satu kad 24 GB itu mengubah larian yang berfungsi menjadi .
Nasihat panduan apabila anda terhad memori adalah untuk mengurangkan saiz kelompok (batch size) dan menggunakan pengumpulan gradien (gradient accumulation) untuk memulihkan kelompok berkesan. Tiada pengumpulan gradien dalam lerobot 0.6.1: TrainPipelineConfig tiada medan sedemikian dan rentetan itu tidak muncul di mana-mana dalam pakej yang dikeluarkan. Borang AY-Robots menunjukkan nilai pengumpulan gradien 8 untuk SmolVLA dan tidak menerapkannya juga. Tuas anda pada 24 GB ialah --batch_size, dua lalai pembekuan, dan --policy.use_amp.
Berapa lama larian mengambil masa, dan berapa banyak langkah yang mencukupi
LeRobot menerbitkan penanda jam dinding untuk lima epok merentasi set data kira-kira 50 episod, kira-kira 45000 bingkai pada 30 fps. Angka magnitud, kata dokumen, tetapi ia adalah perbezaan antara menjangkakan sejam dan sehari.
| Persediaan | Polisi | Kelompok | Masa sebenar |
|---|---|---|---|
| L4 / A10G Tunggal (24 GB) | smolvla | 4 | kira-kira 3 hingga 6 jam |
| A100 40 GB Tunggal | smolvla | 16 | kira-kira 1 hingga 2 jam |
| 4 x H100 80 GB dengan accelerate | smolvla | 32 | kira-kira 1 hingga 2 jam |
| RTX 4090 / RTX 3090 Tunggal (24 GB) | act | 8 | kira-kira 30 hingga 60 min |
Peraturannya ialah 5 hingga 10 epok ke atas set data, bukan kiraan langkah tetap: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). Pada set data rujukan yang ditunjukkan oleh dokumen, lerobot/svla_so100_pickplace, metadata melaporkan 50 episod dan 19631 bingkai: kelompok 8 memberikan kira-kira 2454 langkah setiap epok, jadi 20000 langkah adalah kira-kira 8 epok. Kurangkan separuh kelompok dan bajet yang sama akan membeli separuh epok, jadi ulangi ini setiap kali anda menyentuh --batch_size.
Menjalankan semula polisi yang telah ditala 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 tindakan mudah disalah tafsir: polisi mengeluarkan chunk_size = 50 tindakan per laluan hadapan dan melaksanakan n_action_steps = 50 daripadanya, jadi kekerapan anda membayar kos itu ditetapkan oleh tetapan tersebut, bukan oleh kekerapan servo menerima arahan. Itulah yang tawarkan, dan mengapa model 245 ms boleh menggerakkan lengan 30 Hz. Apa yang tinggal ialah pada akhir cebisan.
| Pengukuran (SmolVLA, SO-100 sebenar) | Sinkron | Asinkron |
|---|---|---|
| Masa siap, ambil dan letak, 10 percubaan | 13.75 s | 9.70 s |
| Kitaran ambil dan letak dalam tetingkap masa tetap | 9 | 19 |
| Kadar kejayaan purata bagi ketiga-tiga tugas | 78.3 % | 73.3 % |
Baris ketiga itu adalah apa yang kebanyakan penulisan abaikan. Inferens asinkron adalah kira-kira 30 peratus lebih pantas dan secara kasarnya menggandakan daya pemprosesan dalam tetingkap tetap, dan kertas kerja itu menyatakan kadar kejayaan adalah setanding, yang secara purata memang begitu. Di bawahnya, pengisihan menurun dari 70 kepada 50 peratus manakala ambil dan letak meningkat 5. lerobot 0.6.1 membawa tuil lain dalam binari yang sama: --inference.type=rtc menukar pelaksanaan kepada pengecilan masa nyata, yang disyorkan oleh blok penggunaan skrip itu sendiri untuk VLA yang perlahan, Pi0, Pi0.5 dan SmolVLA.
Gelung kawalan adalah 20 hingga 485 ms per langkah tindakan bergantung pada model, dan perjalanan pergi balik internet awam di atasnya mengubah polisi yang berfungsi menjadi ragu-ragu. Inferens jauh boleh dilaksanakan untuk ambil dan letak yang perlahan, bukan gerakan reaktif yang pantas: jika tugas memerlukan pembetulan pantas, GPU perlu berada di LAN yang sama dengan lengan.
Tidak berkaitan dengan sesi latihan, tetapi ia menamatkan lebih banyak projek SO-100 berbanding mana-mana hiperparameter. Servo Feetech STS3215 dalam SO-100 dan SO-101 beroperasi pada 7.4 V; 12 V akan merosakkannya. LeKiwi menggabungkan lengan 7.4 V dengan tapak 12 V, yang merupakan punca bicu tong yang salah menemui soket yang salah.
Dua laluan ke pusat pemeriksaan yang sama
Anda memiliki mesin, persekitaran dan penyahpepijatan. Satu-satunya kebergantungan awan ialah muat turun Hub bagi pusat pemeriksaan asas. Laluan yang betul jika anda ingin mengubah suai polisi, jika data tidak boleh meninggalkan rangkaian anda, atau jika kad tidak digunakan.
- Anda mengawal roda CUDA, pemacu, binaan ffmpeg dan pemuat data.
- Anda boleh menampal configuration_smolvla.py dan melatih semula pada petang yang sama.
- Anda membayar dalam elektrik dan masa, bukan setiap larian, dan menyahpepijat 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=trueLarian yang sama di sebalik borang: anda memilih model dan set data, bahagian belakang menyewa GPU mengikut VRAM yang diperlukan, menjalankan pelatih dan menulis ke storan objek. Set data boleh datang dari ID repo Hugging Face, awam, atau mesin anda. Mulakan di , atau matriks di .
| Medan | Lalai yang dihantar platform untuk SmolVLA | Nota |
|---|---|---|
| saiz kelompok | 2 | Konservatif untuk tier 24 GB |
| kadar pembelajaran | 1e-4 | Pratetap lerobot |
| langkah maksimum | 20000 | Larian rujukan dalam dokumen LeRobot |
| pengumpulan gradien | 8 | Ditunjukkan dalam borang, tidak digunakan |
| tombol tambahan | seed, logFreq | Seed menjadikan larian boleh diulang |
- 2 hingga 5 jam pada tier 24 GB, kira-kira 1 hingga 3 USD setiap larian.
- Operasi yang sama dari terminal di /cli dan dari agen AI di /mcp.
- Pod inferens membawa pengawas terbiar, jadi pod yang terlupa akan memusnahkan dirinya sendiri dan bukannya mengebil secara senyap.
- Belum ada lengan? /live menstrim SO-100 fizikal yang boleh anda pandu tanpa mendaftar.
Tugas yang tersekat dalam barisan adalah simptom pasaran spot, bukan pepijat: . Langkah demi langkah: dan .
Apabila SmolVLA adalah pilihan yang salah
Ujian sama ada SmolVLA adalah percubaan pertama yang betul bukanlah sama ada ia berjaya, tetapi sama ada kegagalan itu memberitahu anda sesuatu. Capai 60 atau 70 peratus dan model yang lebih besar adalah perbelanjaan seterusnya yang munasabah: data membawa isyarat. Capai 10 peratus dan model 3 B kemungkinan besar juga mencapai 10 peratus, yang baru anda pelajari dengan tiga dolar dan bukannya dua belas.

Berbaloi dibaca sebelum berbelanja lebih: Pi0.5 berbanding SmolVLA untuk kapasiti lebih pada idea yang sama, dan GR00T N1.7 berbanding SmolVLA untuk laluan NVIDIA, kedua-duanya tier 80 GB pada 4 hingga 12 USD setiap larian. Cara lain, ACT adalah garis dasar yang lebih murah: 80 M parameter, 20 ms setiap langkah tindakan, tiada pengkondisian bahasa. Kesemua lima berada di halaman polisi; arena mempunyai 85 model dan 332 hasil penanda aras.

Senarai semak sebelum anda menskalakan apa-apa
- Adakah
lrmencapai had bawah 2.5e-6? Di bawah 30000 langkah, lerobot menskalakan semula pereputan dan menyatakan demikian semasa permulaan; di atasnya, tetapkan--policy.scheduler_decay_stepssendiri. - Lebih daripada satu titik semak, dan episod yang dikecualikan dengan
--dataset.eval_splitsupaya kerugian penilaian bermakna sesuatu. - Adakah polisi bergerak sama sekali? Kerugian yang menurun dengan lengan yang tidak bergerak mempunyai punca tertentu: kerugian menurun, polisi tidak melakukan apa-apa.
- Adakah ia bertahan dalam perubahan suasana? Jika tidak: polisi hanya berfungsi dalam satu persediaan.
- Adakah anda mencatat benih (seed)? lerobot lalai kepada 1000, jadi dua larian yang tidak disentuh kekal setanding.
- Hanya selepas itu: lebih banyak episod, lebih banyak variasi, atau model yang lebih besar. Mengikut urutan itu.
Untuk mengapa model-model ini wujud dan apa yang mereka lakukan dengan input bahasa, adalah latar belakang; menjalankan pemasangan melalui kepada larian pertama. Untuk titik semak yang telah siap, ; jika lengan tidak pernah muncul, .
Latih SmolVLA pada lengan anda sendiri
Pilih model dan lengan, dan panduan akan memberikan anda tetapan lalai yang tepat, format set data dan kos larian. SmolVLA berada pada tahap 24 GB dengan kos 1 hingga 3 USD setiap larian.
Buka panduan latihanBolehkah saya benar-benar melakukan fine-tune SmolVLA pada RTX 4090?▾
Ya. Panduan pengiraan LeRobot meletakkan SmolVLA pada kira-kira 10 hingga 16 GB VRAM puncak pada batch 8 dengan AdamW dan menyenaraikan kad pengguna 24 GB sebagai selesa untuknya. Batch 64 dalam contoh dokumen dipasangkan dengan satu A100. Memori berskala secara linear dengan batch, jadi gunakan 4 atau 8 dan perhatikan mem_gb.
Berapa banyak episod yang sebenarnya saya perlukan?▾
AY-Robots menetapkan minimum pada 30. Dokumen LeRobot mengesyorkan kira-kira 50 dan melaporkan bahawa 25 episod tugas yang sama menunjukkan prestasi yang buruk. Struktur lebih penting daripada bilangan: set rujukan adalah 5 posisi kiub dengan 10 episod setiap satu, dan pengulangan itulah yang membolehkan generalisasi.
Dokumen menyatakan batch 64, platform menghantar batch 2. Yang mana satu betul?▾
Kedua-duanya, untuk perkakasan yang berbeza. Contoh dokumen menggunakan batch 64 dan menyatakan kira-kira 4 jam untuk 20000 langkah pada satu A100; panduan pengiraan A100 40 GB menggunakan batch 16. Batch 2 adalah apa yang AY-Robots hantar pada peringkat 24 GB. Secara tempatan 4 hingga 8 adalah pertengahan, dan aritmetik epoch berubah dengannya.
SmolVLA atau ACT untuk larian pertama pada SO-100?▾
ACT jika tugasnya adalah satu gerakan berulang dan anda mahukan gelung terpantas: 20 ms setiap langkah tindakan, 80 M parameter, tiada pengkondisian bahasa. SmolVLA jika anda mahukan pengkondisian bahasa, beberapa rentetan tugas dalam satu checkpoint, dan pangkalan pra-latih. Kedua-duanya berada pada peringkat 24 GB, jadi pilihannya adalah tugas, bukan bajet.
Adakah saya perlu menetapkan --policy.scheduler_decay_steps?▾
Hanya apabila --steps melebihi 30000. SmolVLA menetapkan pereputan kosinus pada 30000 langkah, dan lerobot 0.6.1 mengubah skalanya sendiri untuk larian yang lebih pendek, mencatat "Auto-scaling LR scheduler" apabila ia berlaku. Ia tidak pernah meningkatkan skala, jadi --steps=100000 yang asal meninggalkan 70000 langkah terakhir pada paras 2.5e-6.
Sources
- SmolVLA: Model Visi-Bahasa-Tindakan untuk Robotik yang Mampu Milik dan Cekap
- SmolVLA: Model Visi-Bahasa-Tindakan yang Cekap (blog Hugging Face)
- Kad model lerobot/smolvla_base
- Dokumen LeRobot: SmolVLA
- Dokumen LeRobot: Panduan HW Pengiraan untuk Latihan LeRobot
- Dokumen LeRobot: Pemasangan
- Dokumen LeRobot: LeRobotDataset v3.0 dan penukar v2.1
- Dokumen LeRobot: Inferens 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 inferens RTC)
- lerobot v0.6.1: pyproject.toml (tambahan dan titik masuk konsol)
- lerobot di PyPI
- set data lerobot/svla_so100_pickplace (50 episod, 19631 bingkai, 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