
Latih Action Chunking Transformer dari awal pada SO-100 dengan lerobot: konfigurasi act, chunk_size dan n_action_steps, jadual 100000 langkah, inferens 20 ms.
ACT adalah yang paling berbeza di antara polisi SO-100. GR00T N1.7 dan N1.5 bermula dari nvidia/GR00T-N1.7-3B dan nvidia/GR00T-N1.5-3B, Pi0.5 dari lerobot/pi05_base. ACT bermula dari kosong: tiada titik semak asas, kerana ia bukan model asas. Ia adalah transformer dengan kira-kira 80 juta parameter yang anda latih dari awal untuk satu tugas, pada lengan anda, di bawah pencahayaan anda.
Itulah juga sebabnya ia menjalankan langkah kawalan dalam 20 ms di mana VLA 3 bilion parameter memerlukan 152 hingga 485 ms, dan kos 1 hingga 3 USD setiap larian berbanding 4 hingga 12. Panduan ini menerangkan laluan manual dengan lerobot pada SO-100: rekod, konfigurasi act, apa yang chunk_size dan n_action_steps kawal, jadual 100000 langkah, pelancaran. Kemudian kerja yang sama pada AY-Robots, termasuk di mana platform tidak membantu.
Apa yang perlu anda tahu
- •ACT dilatih dari awal: tiada model asas, tiada pra-latihan, tiada input bahasa. Satu titik semak, satu tugas.
- •Kertas kerja: kira-kira 80 J parameter, sekitar 5 jam pada RTX 2080 Ti 11 GB, inferens 0.01 s.
- •Lalai lerobot: chunk_size 100, n_action_steps 100, batch 8, lr 1e-5, 100000 langkah, seed 1000.
- •Pada AY-Robots: 20 ms setiap langkah, yang terpantas antara lima. Minimum 50 episod, LeRobot v3.0, kad 24 GB, 1 hingga 3 USD setiap larian.
- •Ia menang pada tugas yang pernah dilihatnya, dan kalah sebaik sahaja anda mahukan pengkondisian bahasa.
Disemak 23 Ogos 2026 terhadap lerobot 0.6.x: pyproject.toml on main reads version = "0.6.2", newest tag v0.6.1, 3 Ogos 2026. Tutorial yang bermula dengan python lerobot/scripts/train.py mendahului titik masuk konsol lerobot-train, lerobot-record dan lerobot-rollout.
Apa sebenarnya ACT itu
Action Chunking with Transformers berasal dari kertas kerja ALOHA, Pembelajaran Manipulasi Bimanual Berbutir Halus dengan Perkakasan Kos Rendah, oleh Zhao, Kumar, Levine dan Finn, arXiv, 23 April 2023. Pelantar ini merekod pada 50 Hz dengan empat kamera web menstrim 480x640 pada 30 fps: dua pada pengepit, satu di atas, satu di hadapan. Abstrak tersebut mendakwa enam kemahiran dengan kejayaan 80 hingga 90 peratus, antaranya membuka cawan perasa lutsinar dan memasukkan bateri, daripada 10 minit demonstrasi.
Bahagian utama lebih berguna apabila merancang sesi rakaman: 50 demonstrasi setiap tugas, kecuali Thread Velcro pada 100, iaitu 10 hingga 20 minit data dan 30 hingga 60 minit masa jam dinding setelah penetapan semula dikira. Kejayaan juga tidak seragam: Thread Velcro berakhir pada 20 peratus, Put On Shoe pada 92, Cup Open 84, Prep Tape 64.
| Hiperparameter | Kertas kerja ALOHA, Jadual III | lerobot pada main |
|---|---|---|
| kadar pembelajaran | 1e-5 | optimizer_lr = 1e-5 |
| saiz kelompok | 8 | batch_size = 8, in TrainPipelineConfig not ACTConfig |
| lapisan pengekod / penyahkod | 4 / 7 | n_encoder_layers = 4 / n_decoder_layers = 1 |
| saiz ketulan k | 100 | chunk_size = 100 |
| dimensi laten z | tiada; Rajah 11 menunjukkan unjuran 32 hingga 512 | latent_dim = 32 |
| penyusunan temporal | tiada; --temporal_agg dalam kod rujukan | temporal_ensemble_coeff = None |
Kertas kerja menyenaraikan 7 lapisan penyahkod, lerobot menghantar 1, secara sengaja. Komen dalam configuration_act.py menyatakan bahawa pelaksanaan asal mempunyai pepijat yang bermaksud hanya lapisan pertama digunakan, memetik isu 25 dalam tonyzhaozh/act: kepala tindakan membaca hs[0], jadi ketujuh-tujuh lapisan berjalan tetapi hanya output pertama mencapai ramalan. Isu itu terbuka dan tidak dijawab sejak 23 April 2024. lerobot memadankan tingkah laku yang menghasilkan keputusan yang diterbitkan, bukan nombor yang dicetak. Tingkatkan --policy.n_decoder_layers dan anda melatih model yang tidak pernah dinilai oleh kertas kerja itu.
Pencungkilan tindakan adalah keseluruhan idea
Pengklonan tingkah laku biasa memetakan satu pemerhatian kepada satu tindakan, dan ralat terkumpul: sisihan meletakkan lengan di luar taburan, menghasilkan tindakan yang lebih buruk, dan tiga puluh langkah kemudian pengepit tidak berada berhampiran objek. Pencungkilan tindakan meramalkan k tindakan sekaligus dan melaksanakannya, mengurangkan ufuk berkesan dengan faktor k. Ia juga mengendalikan gangguan khusus kepada data manusia: pengendali jauh berhenti seketika, dan Markovian satu langkah dasar tidak dapat memodelkan jeda yang bergantung pada apa yang berlaku sebelumnya.
Kertas kerja itu mengablat k dan bukannya menegaskannya. Dengan ensembel temporal dimatikan, purata empat tetapan, kejayaan meningkat daripada 1 peratus pada k = 1 kepada 44 peratus pada k = 100, kemudian berkurangan pada 200 dan 400 apabila dasar menghampiri kawalan gelung terbuka. Lengkung itulah sebabnya nilai lalai ialah 100.
- chunk_size: berapa banyak tindakan masa depan yang diramalkan oleh penyahkod bagi setiap laluan ke hadapan. Lalai 100.
- n_action_steps: berapa banyak daripadanya yang anda laksanakan sebelum membuat pertanyaan semula. Lalai 100, jadi lerobot menjalankan keseluruhan cebisan dalam gelung terbuka.
- lerobot mengesahkan
n_action_steps <= chunk_sizedan akan menimbulkanValueErrorjika anda menetapkannya secara terbalik.
Apa yang penting dari segi operasi ialah chunk_size dibahagikan dengan kadar bingkai. Pada 30 fps yang digunakan oleh contoh SO-100 lerobot, satu cebisan 100 melakukan kira-kira 3.3 saat dari satu pemerhatian. Jika tugas memerlukan pembetulan dalam tetingkap itu, kurangkan n_action_steps, bukan chunk_size: anda mengekalkan ramalan panjang dan memerhati semula dengan lebih kerap.
# predict 100 actions, re-query after 25 of them (about 0.8 s at 30 fps)
lerobot-train \
--dataset.repo_id=${HF_USER}/so100_cube \
--policy.type=act \
--policy.chunk_size=100 \
--policy.n_action_steps=25 \
--policy.device=cudaTetapkan --policy.temporal_ensemble_coeff dan lerobot memerlukan n_action_steps = 1, menimbulkan NotImplementedError jika tidak. Ensembling menanyakan polisi pada setiap langkah masa dan menggabungkan ramalan bertindih untuk langkah masa itu dengan pemberat w_i = exp(-m * i), yang paling lama mendapat w_0. Kertas kerja meletakkannya pada 3.3 peratus untuk ACT: nyata tetapi sederhana, dan ia mendarabkan kiraan inferens dengan panjang cebisan. Mampu milik pada 20 ms setiap langkah, bukan pada 485 ms. Lihat kependaman inferens.
Apabila ACT mengatasi model asas
Lima polisi boleh latih sebelah menyebelah, dengan nombor yang diukur dan digunakan oleh AY-Robots untuk menentukan saiz GPU yang disewanya.
| Polisi | Keluarga | Parameter | Setiap langkah | Tahap GPU | Episod minimum | Set data |
|---|---|---|---|---|---|---|
| ACT | Transformer pencincangan, dari awal | ~80 M | 20 ms | RTX 4090 / 24 GB | 50 | LeRobot v3.0 |
| SmolVLA | VLA Padat | ~450 M | 245 ms | RTX 4090 / 24 GB | 30 | LeRobot v3.0 |
| GR00T N1.7 | Asas VLA, kepala resapan | ~3 B (~40 Juta dilatih) | 152 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 atau v2.1 |
| GR00T N1.5 | Asas VLA, pendahulu | ~3 B | 165 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 atau v2.1 |
| Pi0.5 | VLA padanan aliran, lihat padanan aliran | ~3 B, tulang belakang PaliGemma | 485 ms | A100 / H100 80 GB | 50 | LeRobot v3.0 |

- 20 ms setiap langkah tindakan, yang terpantas antara lima, pada kad 24 GB bukan A100.
- 1 hingga 3 USD setiap larian berbanding 4 hingga 12 untuk kelas 3 B.
- Tepat pada kerja yang kaya sentuhan yang pernah dilihatnya: 88 dan 96 peratus pada Slide Ziploc dan Slot Battery, di mana kaedah sebelumnya tidak pernah melepasi peringkat pertama.
- Tiada pengkondisian bahasa: rentetan tugas diabaikan, jadi satu titik semak adalah satu tugas.
- Tiada prior semantik: semua yang diketahuinya datang dari 50 episod anda.
- Generalisasi sempit: gerakkan kamera dan anda perlu melatih semula.
- Ia gagal secara senyap: kerugian menurun, lengan tidak melakukan apa-apa, log tidak menyatakan apa-apa.
- Kelebihan kelajuan hanya membantu jika inferens berada di sebelah servo.
Pilih ACT apabila tugas dan pemandangan adalah tetap dan pergerakan mestilah pantas dan tepat. Pilih apabila satu titik semak mesti meliputi beberapa arahan. Dua halaman membincangkan keputusan secara langsung: dan . Untuk penanda aras yang diterbitkan, memautkan setiap nombor kepada sumbernya.
Apa yang anda perlukan sebelum bermula
Satu lengan pengikut, satu lengan pemimpin untuk , sekurang-kurangnya satu kamera, GPU 24 GB. ACT hanya membaca imej dan kedudukan sendi. Dua kamera adalah pilihan terbaik: pandangan hadapan tetap untuk lokasi objek, kamera pergelangan tangan untuk apa yang akan sentuh, seperti pada ALOHA.
| Lengan | Servo | Voltan | Kos bahagian | Status |
|---|---|---|---|---|
| SO-100 | Feetech STS3215 | 7.4 V | ~110 hingga 150 EUR | Sokongan penuh, lengan rujukan |
| SO-101 | Feetech STS3215 | 7.4 V | ~130 hingga 170 EUR | Sokongan penuh |
| Koch v1.1 | Dynamixel XL330 / XL430 | Rel 5 V dan 12 V | ~250 hingga 350 EUR | Serasi |
| LeKiwi | Feetech STS3215 (lengan) | Lengan 7.4 V, tapak 12 V | ~400 hingga 500 EUR | Serasi |
SO-100 dan SO-101 menggunakan servo Feetech STS3215 pada rel 7.4 V. Memberi mereka 12 V akan merosakkannya, cukup senyap sehingga orang menyalahkan perisian terlebih dahulu, dan bekalan Koch 12 V secara fizikal sesuai dengan papan SO-100. Periksa label. Simptom: servo tidak bertindak balas, lengan berkedut kemudian kendur. Juga SO-100 lwn SO-101.
Dari lengan kosong ke set data yang direkodkan
Aliran di bawah adalah lerobot 0.6.x. Langkau jika anda mempunyai lengan yang ditentukur dan set data. Jika tidak, panduan permulaan SO-100, meliputi pemasangan, panduan rakaman meliputi penangkapan dan dokumen set data formatnya.
- 1Pasang lerobot dengan tambahan yang betul
Perekaman memerlukan
core_scripts, latihantraining, servo Feetechfeetech. Python 3.12+.bashconda create -y -n lerobot python=3.12 conda activate lerobot conda install ffmpeg -c conda-forge pip install 'lerobot[core_scripts,training,feetech]' lerobot-info - 2Cari port USB setiap lengan
Jalankan dengan kedua-dua lengan dipasang, cabut satu apabila diminta. Pada Linux, anda mungkin perlu membuka kebenaran nod.
bashlerobot-find-port # on Linux, if the port exists but is unreadable: sudo chmod 666 /dev/ttyACM0 - 3Tetapkan id motor dan kadar baud
Pada SO-100 ini berlaku sebelum pemasangan: tidak seperti SO-101, penyambung tidak dapat dicapai setelah dibina. Skrip ini melintasi bas satu motor pada satu masa dari pengepit, menulis id ke EEPROM.
bashlerobot-setup-motors \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 lerobot-setup-motors \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 - 4Tentukur kedua-dua lengan
Tetapkan setiap sendi ke tengah julatnya, tekan Enter, kemudian sapu setiap satu melalui julat penuhnya. Penentukuran membolehkan polisi yang dilatih pada satu lengan berjalan pada lengan yang lain. Gunakan semula
idyang sama.bashlerobot-calibrate \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_follower lerobot-calibrate \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --teleop.id=my_leader - 5Teleoperasi sekali dengan kamera dihidupkan
Peraturan umum lerobot: anda sepatutnya dapat melakukan tugas hanya dengan melihat imej kamera. Jika anda tidak dapat, ACT juga tidak dapat. Ini menangkap lebih banyak set data yang buruk daripada penyahpepijatan kemudian.
bashlerobot-teleoperate \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_follower \ --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --teleop.id=my_leader \ --display_data=true - 6Rakam 50 episod
50 adalah minimum AY-Robots dan apa yang ALOHA gunakan setiap tugas. lerobot menasihatkan 10 setiap lokasi objek, kamera tetap, genggaman konsisten.
nmenamatkan episod,rmerakam semula,qberhenti dan mengekod.bashHF_USER=$(NO_COLOR=1 hf auth whoami | awk -F': *' 'NR==1 {print $2}') lerobot-record \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_follower \ --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 \ --teleop.id=my_leader \ --dataset.repo_id=${HF_USER}/so100_cube \ --dataset.num_episodes=50 \ --dataset.single_task="Grab the black cube and put it in the bin" \ --display_data=true

ACT tidak mempunyai prior untuk bergantung, jadi setiap ketidakselarasan menjadi kekal. Tiga yang paling mahal: kamera teranjak antara episod 20 dan 21, cahaya yang berubah kerana anda merakam separuh set pada waktu petang, genggaman dilakukan dengan dua cara. Setiap satu memberikan lengkung kerugian yang kelihatan sempurna dan lengan yang pergi ke tempat yang salah. Lihat kerugian jatuh, polisi tidak melakukan apa-apa, polisi hanya berfungsi dalam satu persediaan dan mengumpul data latihan berkualiti tinggi.
Sebelum latihan, mainkan semula sekurang-kurangnya lima episod. menyimpan aliran kamera, keadaan sendi dan tindakan setiap , dan main semula menolak tindakan tersebut kembali ke lengan. Jika main semula tidak melakukan tugas, data tidak mengandungi ia dan latihan tidak akan menciptanya.
lerobot-replay \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower \
--dataset.repo_id=${HF_USER}/so100_cube \
--dataset.episode=0Melatih polisi ACT
Ini adalah keseluruhan arahan. Semua yang khusus untuk ACT sudah menjadi lalai, sebab itulah halaman ACT lerobot menyarankan untuk bermula dengan mereka.
lerobot-train \
--dataset.repo_id=${HF_USER}/so100_cube \
--policy.type=act \
--output_dir=outputs/train/act_so100_cube \
--job_name=act_so100_cube \
--policy.device=cuda \
--wandb.enable=true \
--policy.repo_id=${HF_USER}/act_so100_cube--policy.type=act memuatkan ACTConfig, yang menyesuaikan diri dengan berapa banyak motor dan kamera yang direkodkan oleh set data anda, jadi anda tidak perlu mengisytiharkan bentuk pemerhatian. --wandb.enable=true adalah pilihan dan berbaloi: lengkung kerugian adalah satu-satunya isyarat murah dalam larian 100000 langkah. Jadual ini berasal dari konfigurasi latihan lerobot, bukan ACTConfig: 100000 langkah, kelompok 8, seed 1000, satu titik semak setiap 20000 langkah, log setiap 200.
Larian penuh meninggalkan lima direktori titik semak, 020000 hingga 100000, serta symlink last. Simpan semuanya: polisi terbaik selalunya bukan yang terakhir.
| Tetapan | lalai lerobot | borang ACT AY-Robots | Komen |
|---|---|---|---|
| Saiz kelompok | 8 | 8 | Turunkannya dahulu jika anda mencapai had VRAM. |
| Kadar pembelajaran | 1e-5 | 1e-5 | Sama seperti kertas ALOHA. |
| Langkah maksimum | 100000 | 100000 | Kira-kira di mana set 50 episod berhenti bertambah baik. |
| Pengumpulan gradien | 1 | 1, tidak terpakai | Tukar saiz kelompok sebaliknya. |
| seed | 1000 | terdedah | Titik masuk tyro GR00T tidak mempunyai seed; larian ACT adalah yang boleh dihasilkan semula. |
| chunk_size / n_action_steps | 100 / 100 | 100 / 100, boleh diedit | Horizon ramalan dan pelaksanaan. Turunkan yang kedua, bukan yang pertama. |
| Kekerapan titik semak | 20000 | tidak terdedah | saveSteps adalah tombol GR00T di sini. |
ACT pada saiz kelompok 8 dengan dua kamera 640x480 muat dengan selesa pada 24 GB. Ia berhenti muat apabila orang menaikkan saiz kelompok untuk kelajuan, atau memberikannya bingkai 1920x1080 seperti yang ditunjukkan oleh satu contoh rakaman lerobot. Dua tulang belakang ResNet-18 pada 1080p mempunyai profil memori yang sangat berbeza. Turunkan --batch_size kepada 4 sebelum menyewa kad yang lebih besar. Lihat kekurangan memori dalam latihan.
Tempoh: sekitar 5 jam pada RTX 2080 Ti 11 GB dalam kertas kerja, beberapa jam untuk 100k langkah mengikut halaman ACT lerobot, 2 hingga 5 jam pada peringkat 24 GB AY-Robots. Jangan pendekkan. README repo rujukan menyatakan polisi yang tersentak-sentak atau berhenti seketika biasanya hanya memerlukan lebih banyak latihan, kerana kejayaan dan kelancaran terus meningkat selepas kerugian mendatar: untuk data dunia nyata ia memerlukan sekurang-kurangnya 5000 epok, atau 3 hingga 4 kali ganda tempoh lagi selepas mendatar.
lerobot-train \
--config_path=outputs/train/act_so100_cube/checkpoints/last/pretrained_model/train_config.json \
--resume=trueMenjalankan polisi terlatih pada lengan robot
Penerapan menggunakan lerobot-rollout. Kunci kamera mesti sepadan dengan yang direkodkan: polisi yang dilatih pada front dan wrist tidak akan menerima cam0 dan cam1, dan rename_map tidak membantu, kerana ia memerlukan titik semak praterlatih. Rentetan tugas boleh diabaikan; contoh lerobot sendiri menandakannya sebagai boleh dilangkau untuk ACT.
lerobot-rollout \
--strategy.type=base \
--policy.path=${HF_USER}/act_so100_cube \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower \
--robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \
--display_data=true \
--duration=60Penilaian dahulu dijalankan melalui lerobot-record --policy.path=.... Dalam 0.6.x ia adalah lerobot-rollout dengan pemilih --strategy.type: base, sentry (rakaman dengan muat naik automatik), highlight (penimbal cincin disimpan oleh ketukan kekunci), dagger (manusia dalam gelung) dan episodic. Sehingga 23 Ogos 2026, halaman dokumentasi ACT masih menyatakan "menggunakan arahan lerobot-record" betul-betul di atas blok yang menjalankan lerobot-rollout. Ikut arahan, bukan ayat.
Untuk menetapkan titik semak dan bukannya model akhir, tambah --policy.pretrained_revision. Itu memerlukan larian dimulakan dengan --save_checkpoint_to_hub=true, dimatikan secara lalai: tanpanya lerobot menolak model akhir dan tiada yang lain. Dengannya, setiap titik semak ditandakan dengan langkahnya yang diisi sifar, jadi --policy.pretrained_revision=060000 memulihkan yang langkah 60000. Membandingkannya dengan 100000 pada lengan sebenar adalah eksperimen termurah yang tersedia.
Dua laluan ke titik semak yang sama
Semua di atas adalah laluan manual dan ia berfungsi. Laluan platform menukar kawalan dengan tidak perlu memiliki GPU atau persekitaran Python.
- Pasang lerobot 0.6.x dengan
core_scripts,training,feetech, ffmpeg. - Cari port, tetapkan ID motor, kalibrasi kedua-dua lengan, rakam 50 episod.
- Main semula beberapa episod untuk mengesahkan data mengandungi tugas tersebut.
- Sewa atau miliki GPU 24 GB, padankan CUDA dan PyTorch, jalankan
lerobot-train --policy.type=act. - Tunggu beberapa jam, kemudian
lerobot-rolloutpada mesin di lengan robot.
# the two commands that matter, end to end
lerobot-record --robot.type=so100_follower --robot.port=/dev/ttyACM0 \
--teleop.type=so100_leader --teleop.port=/dev/ttyACM1 \
--dataset.repo_id=${HF_USER}/so100_cube --dataset.num_episodes=50 \
--dataset.single_task="Grab the black cube"
lerobot-train --dataset.repo_id=${HF_USER}/so100_cube --policy.type=act \
--output_dir=outputs/train/act_so100_cube --policy.device=cudaKawalan penuh: edit configuration_act.py, tambah kamera, fork pelatih. Untuk penyelidikan dan bukannya menghantar tugas, platform adalah gangguan.
- Rakam dengan klien desktop, atau bawa ID repo Hugging Face atau set data tempatan.
- Buka panduan ACT pada SO-100 dan pilih model serta set data. Lalai adalah yang lerobot; chunkSize, nActionSteps, seed dan logFreq boleh diedit.
- Bahagian belakang menyewa GPU bersaiz VRAM dan menulis titik semak ke storan objek.
/api/inference/podkemudian menghidangkan polisi kepada klien robot tempatan. Pengawas terbiar memusnahkan pod, jadi tiada bil secara senyap.- Operasi yang sama wujud dalam CLI, pelayan MCP dan dokumen latihan.
Ia tidak membetulkan data anda: set data dengan kamera yang dialihkan melatih sama teruk di sini, dan borang tidak dapat mengesannya. Ia juga tidak menyelesaikan masalah kependaman. Gelung kawalan adalah 20 hingga 485 ms setiap langkah tindakan, dengan perjalanan pergi balik internet awam di atasnya, dan ACT paling terjejas kerana langkahnya paling pendek: 60 ms adalah perlambatan 12 peratus pada 485 ms Pi0.5 tetapi empat kali ganda langkah pada 20 ms ACT. Inferens jauh sesuai untuk 'pick and place' yang perlahan, bukan gerakan reaktif yang pantas.

Apa yang sebenarnya berlaku salah
Hampir tiada masalah dalam arahan latihan. Masalahnya terletak pada perkara-perkara di sekelilingnya, disusun mengikut kekerapan ia berlaku pada kali pertama.
| Simptom | Punca biasa | Halaman |
|---|---|---|
| lerobot-find-port tidak menunjukkan apa-apa | Pemandu, kabel atau kebenaran nod | lengan tidak dikesan |
| Kamera tiada semasa rakaman | Indeks berubah selepas but semula, atau dua kamera pada satu pengawal USB | kamera tidak dikesan |
| Latihan menolak set data | ACT memerlukan v3.0, GR00T memerlukan v2.1 | set data ditolak sebagai v3 |
| CUDA kehabisan memori | Saiz kelompok ditingkatkan, atau bingkai 1080p dan bukannya 480p | kehabisan memori dalam latihan |
| Loss kelihatan baik, lengan tidak berfungsi | Data tidak mempunyai tugas, atau kamera bergerak | loss menurun, polisi tidak berfungsi |
| Pergerakan tersentak-sentak atau jeda di tengah episod | Kurang terlatih, tersekat pada sempadan 'chunk', atau panggilan inferens tamat masa | polisi terhenti di tengah pergerakan |
Dua baris patut diberi penekanan. ACT melatih pada LeRobot v3.0 manakala pemuat GR00T ranap padanya dan memerlukan v2.1, jadi set data yang melatih ACT boleh menyebabkan kegagalan larian GR00T. Dan baris terakhir mempunyai dua penyelesaian: penulis ACT menjawab pergerakan tersentak-sentak dengan lebih banyak latihan, manakala dengan n_action_steps pada 100, tersekat sebenar berlaku pada sempadan 'chunk', jeda yang kelihatan setiap 3.3 saat pada 30 fps. Dua lagi untuk diketahui: satu sendi mati biasanya adalah id servo yang tidak pernah ditulis, dan pencengkam yang mendekat tetapi tidak pernah menutup bermakna julat pencengkam terlalu kecil dalam demonstrasi. Indeks penuh: halaman mod kegagalan.
Berapa kos satu larian
| Tahap | Model | Masa larian | Harga sejam | Kos setiap larian |
|---|---|---|---|---|
| RTX 4090 / 24 GB | ACT, SmolVLA | 2 to 5 hours | 0.30 to 0.60 USD | about 1 to 3 USD |
| A100 80 GB / H100 | GR00T N1.7, GR00T N1.5, Pi0.5 | 3 to 6 hours | 1.20 to 2.00 USD | about 4 to 12 USD |
Ini adalah hujah untuk bermula dengan ACT walaupun anda mahukan VLA kemudian. Larian ACT yang gagal menelan belanja seperti harga kopi dan memberitahu anda dalam beberapa jam sama ada set data anda mengandungi tugas tersebut. Larian GR00T yang gagal menelan belanja empat kali ganda untuk pelajaran yang sama. Beralih kepada GR00T N1.7 atau SmolVLA selepas itu adalah perubahan bentuk, bukan pembinaan semula. Latar belakang: model tindakan bahasa-penglihatan, panduan lengkap SO-100, latih polisi pertama anda dan pembelajaran tiruan. Tiada lengan? Halaman langsung menstrim SO-100 sebenar untuk dipandu tanpa perlu mendaftar.
Latih ACT pada SO-100 anda
Panduan untuk kombinasi tepat ini: tetapan lalai, tahap GPU dan kos larian. Pilih set data, bahagian belakang menyewa kad dan menulis titik semak.
Buka panduan latihanAdakah terdapat model ACT pra-latih yang boleh saya tala halus sebagai ganti?▾
Tidak. ACT tidak mempunyai model asas; ia hanya wujud selepas anda melatihnya. Itu bukan jurang dalam peralatan, itulah ACT: kertas kerja melatih polisi dari awal untuk setiap tugas. Untuk titik semak vendor, gunakan GR00T N1.7 atau Pi0.5.
Berapa banyak episod yang saya benar-benar perlukan?▾
50: apa yang ALOHA rekodkan bagi setiap tugas (100 untuk Thread Velcro, yang paling sukar) dan minimum AY-Robots. lerobot menasihatkan kira-kira 10 bagi setiap lokasi objek, kamera ditetapkan, genggaman konsisten. Lima puluh episod bersih mengalahkan seratus episod di mana kamera bergerak.
Patutkah saya menukar chunk_size daripada 100?▾
Biasanya tidak. Ablasi meningkat dari 1 peratus pada k = 1 kepada 44 peratus pada k = 100 dan mengecil selepas itu, jadi 100 berada hampir di puncak. Jika lengan melakukan terlalu lama, kurangkan n_action_steps sebaliknya: pada 30 fps, 25 pertanyaan semula setiap 0.8 saat.
Berapa lama masa yang diambil untuk satu larian latihan, dan bolehkah saya menghentikannya lebih awal?▾
Dua hingga lima jam pada kad 24 GB untuk 100000 langkah. Titik semak mendarat setiap 20000 langkah dan --resume=true menyambung semula larian, jadi berhenti awal adalah selamat. Cuma jangan pada regangan rata pertama: kelancaran bertambah baik selepas kerugian mendatar.
Kerugian menurun tetapi lengan masih gagal. Apa sekarang?▾
Hampir selalu set data. Main semula episod yang direkodkan pada lengan: jika main semula tidak melakukan tugas, data tidak mengandungi tugas tersebut. Kemudian periksa sama ada ada apa-apa yang bergerak, terutamanya kamera. ACT tidak mempunyai prior, jadi dorongan pada episod 21 adalah kekal.
Sources
- Zhao, Kumar, Levine, Finn: Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware (ACT), arXiv 2304.13705
- ALOHA / ACT project page
- tonyzhaozh/act, the reference implementation and its training-length advice
- tonyzhaozh/act issue 25: the action head reads only the first decoder layer
- huggingface/lerobot
- lerobot ACTConfig: chunk_size, n_action_steps, n_decoder_layers and the rest of the defaults
- lerobot TrainPipelineConfig: steps, batch_size, seed, save_freq, log_freq, save_checkpoint_to_hub
- lerobot train_utils: zero-padded checkpoint dirs, the last symlink and checkpoint push tagging
- lerobot v0.6.1 release, 3 August 2026
- LeRobot docs: ACT
- LeRobot docs: imitation learning on real robots (record, replay, train, rollout)
- LeRobot docs: SO-100 setup, motor ids and calibration
- LeRobot docs: installation and the optional extras
- Hugging Face blog: LeRobot Community Datasets, the ImageNet of Robotics, When and How?
- TheRobotStudio/SO-ARM100: Standard Open Arm 100
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started