
Bir Action Chunking Transformer'ı SO-100 üzerinde lerobot ile sıfırdan eğitin: act config, chunk_size ve n_action_steps, 100000 adımlık program, 20 ms çıkarım.
ACT, SO-100 politikaları arasında farklı olandır. GR00T N1.7 ve N1.5 şuradan başlar: nvidia/GR00T-N1.7-3B ve nvidia/GR00T-N1.5-3B, Pi0.5 şuradan: lerobot/pi05_base. ACT sıfırdan başlar: temel bir kontrol noktası yoktur, çünkü bir temel model değildir. Yaklaşık 80 milyon parametreli bir transformatördür ve onu kolunuzda, kendi aydınlatmanız altında, tek bir görev için sıfırdan eğitirsiniz.
Bu aynı zamanda, 3 milyar parametreli bir VLA'nın 152 ila 485 ms'ye ihtiyaç duyduğu ve çalıştırma başına 4 ila 12 USD yerine 1 ila 3 USD'ye mal olduğu yerde, bir kontrol adımını 20 ms'de çalıştırmasının nedenidir. Bu kılavuz, lerobot ile manuel yolu anlatır. Bir SO-100 üzerinde: kayıt, act yapılandırması, neyin chunk_size ve n_action_steps kontrol ettiğini, 100000 adımlık programı, dağıtımı. Ardından, platformun yardımcı olmadığı durumlar da dahil olmak üzere AY-Robots üzerinde aynı iş.
Bilmeniz Gerekenler
- •ACT sıfırdan eğitilir: temel model yok, ön eğitim yok, dil girişi yok. Tek kontrol noktası, tek görev.
- •Makale: yaklaşık 80 M parametre, 11 GB RTX 2080 Ti üzerinde yaklaşık 5 saat, 0.01 s çıkarım.
- •lerobot varsayılanları: chunk_size 100, n_action_steps 100, batch 8, lr 1e-5, 100000 adım, seed 1000.
- •AY-Robots üzerinde: adım başına 20 ms, beşinin en hızlısı. Minimum 50 bölüm, LeRobot v3.0, 24 GB kart, çalıştırma başına 1 ila 3 USD.
- •Gördüğü bir görevde kazanır ve dil koşullandırması istediğiniz anda kaybeder.
23 Ağustos 2026 tarihinde lerobot 0.6.x ile kontrol edildi: pyproject.toml üzerindeki main, version = "0.6.2" olarak okunur, en yeni etiket v0.6.1, 3 Ağustos 2026. python lerobot/scripts/train.py ile başlayan bir eğitim, konsol giriş noktalarından önce gelir: lerobot-train, lerobot-record ve lerobot-rollout.
ACT aslında nedir
Action Chunking with Transformers, ALOHA makalesinden gelmektedir: Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware, Zhao, Kumar, Levine ve Finn tarafından yazılan, arXiv, 23 Nisan 2023 tarihli. Kurulum, 50 Hz hızında kayıt yapar ve 480x640 çözünürlükte 30 fps yayın yapan dört web kamerası kullanır: ikisi tutucularda, biri üstte, biri önde. Özet, 10 dakikalık gösterimlerden sonra, şeffaf bir sos kabını açma ve bir pili yuvaya yerleştirme dahil olmak üzere altı beceride %80 ila %90 başarı oranı olduğunu iddia ediyor.
Kayıt oturumu planlarken makalenin ana kısmı daha faydalıdır: görev başına 50 gösterim, ancak Thread Velcro için 100 gösterim. Bu, 10 ila 20 dakikalık veri ve sıfırlamalar sayıldığında 30 ila 60 dakikalık gerçek zaman demektir. Başarı da tekdüze değildir: Thread Velcro %20, Put On Shoe %92, Cup Open %84, Prep Tape %64 ile sonuçlanır.
| Hiperparametre | ALOHA makalesi, Tablo III | lerobot ana dalında |
|---|---|---|
| öğrenme oranı | 1e-5 | optimizer_lr = 1e-5 |
| toplu iş boyutu | 8 | batch_size = 8, in TrainPipelineConfig not ACTConfig |
| kodlayıcı / kod çözücü katmanları | 4 / 7 | n_encoder_layers = 4 / n_decoder_layers = 1 |
| parça boyutu k | 100 | chunk_size = 100 |
| z'nin gizli boyutu | yok; Şekil 11, 32 ila 512'lik bir projeksiyon gösteriyor | latent_dim = 32 |
| zamansal topluluk oluşturma | yok; referans kodda --temporal_agg | temporal_ensemble_coeff = None |
Makale 7 kod çözücü katmanı listeler, lerobot ise bilerek 1 tane gönderir. `configuration_act.py` dosyasındaki yorum, orijinal uygulamanın yalnızca ilk katmanın kullanıldığı anlamına gelen bir hata içerdiğini belirtir ve tonyzhaozh/act'teki 25 numaralı sorunu referans gösterir: eylem başlığı `hs[0]` değerini okur, bu nedenle yedi katmanın tümü çalışır ancak yalnızca ilk çıktı tahmine ulaşır. Bu sorun 23 Nisan 2024'ten beri açık ve yanıtsızdır. lerobot, basılı sayıyı değil, yayınlanmış sonuçları üreten davranışı eşleştirir. `--policy.n_decoder_layers` değerini artırırsanız, makalenin hiç değerlendirmediği bir model eğitmiş olursunuz.
Eylem öbekleme tüm fikirdir
Sıradan davranışsal klonlama, bir gözlemi bir eyleme eşler ve hatalar birikir: bir sapma kolu dağılım dışına çıkarır, daha kötü bir eylem üretir ve otuz adım sonra tutucu nesnenin hiçbir yerinde değildir. Eylem öbekleme aynı anda k eylemi tahmin eder ve bunları yürütür, böylece etkin ufku k faktörü kadar düşürür. Ayrıca insan verilerine özgü bir rahatsızlığı da ele alır: teleoperatörler duraklar ve tek adımlı Markovcu bir ilke daha önce ne olduğuna bağlı olan bir duraklamayı modelleyemez.
Makale, k'yi iddia etmek yerine ablasyon yapar. Zamansal topluluk kapalıyken, dört ayar üzerinden ortalama alındığında, başarı k = 1'de yüzde 1'den k = 100'de yüzde 44'e yükselir, ardından ilke açık döngü kontrole yaklaştıkça 200 ve 400'de azalır. Bu eğri, varsayılanın 100 olmasının nedenidir.
- chunk_size: kod çözücünün her ileri geçişte kaç gelecek eylem tahmin ettiği. Varsayılan 100.
- n_action_steps: tekrar sorgulamadan önce bunlardan kaçını yürüttüğünüz. Varsayılan 100, bu nedenle lerobot tüm bloğu açık döngüde çalıştırır.
- lerobot,
n_action_steps <= chunk_sizedeğerini doğrular ve tersini yaparsanız birValueErrorhatası verir.
Operasyonel olarak önemli olan, chunk_size'ın kare hızına bölünmesidir. lerobot'un SO-100 örneklerinin kullandığı 30 fps'de, 100'lük bir blok, tek bir gözlemden yaklaşık 3.3 saniye taahhüt eder. Görev bu pencere içinde bir düzeltme gerektiriyorsa, n_action_steps, değil chunk_size: uzun tahmini korur ve daha sık yeniden gözlemlersiniz.
# 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=cuda--policy.temporal_ensemble_coeff ayarlandığında, lerobot n_action_steps = 1 gerektirir, aksi takdirde bir NotImplementedError hatası verir. Topluluk oluşturma, politikayı her zaman adımında sorgular ve o zaman adımı için çakışan tahminleri w_i = exp(-m * i) ağırlıklarıyla harmanlar, en eski olan w_0'ı alır. Makale, ACT için bunu %3.3 olarak belirtir: gerçek ama mütevazı ve çıkarım sayısını blok uzunluğuyla çarpar. Adım başına 20 ms'de uygun fiyatlı, 485 ms'de değil. Bkz. çıkarım gecikmesi.
ACT bir temel modeli yendiğinde
Beş eğitilebilir politika yan yana, AY-Robots'un kiraladığı GPU'nun boyutunu belirlemek için ölçtüğü ve kullandığı sayılarla birlikte.
| Politika | Aile | Parametreler | Adım başına | GPU seviyesi | Min. bölüm | Veri kümesi |
|---|---|---|---|---|---|---|
| ACT | Parçalama transformeri, sıfırdan | ~80 M | 20 ms | RTX 4090 / 24 GB | 50 | LeRobot v3.0 |
| SmolVLA | Kompakt VLA | ~450 M | 245 ms | RTX 4090 / 24 GB | 30 | LeRobot v3.0 |
| GR00T N1.7 | VLA temeli, difüzyon kafası | ~3 B (~40 M eğitilmiş) | 152 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 veya v2.1 |
| GR00T N1.5 | VLA temeli, öncül | ~3 B | 165 ms | A100 / H100 80 GB | 50 | LeRobot v2.0 veya v2.1 |
| Pi0.5 | Akış eşleştirme VLA, bkz. flow matching | ~3 B, PaliGemma omurgası | 485 ms | A100 / H100 80 GB | 50 | LeRobot v3.0 |

- Beşinin en hızlısı olan, A100 değil 24 GB'lık bir kartta eylem adımı başına 20 ms.
- 3 B sınıfı için 4 ila 12 USD'ye karşılık, çalıştırma başına 1 ila 3 USD.
- Gördüğü temas yoğun işlerde hassas: Slide Ziploc ve Slot Battery'de %88 ve %96, önceki yöntemlerin birinci aşamayı asla geçemediği yerlerde.
- Dil koşullandırması yok: görev dizisi göz ardı edilir, bu nedenle bir kontrol noktası bir görevdir.
- Semantik ön bilgiler yok: bildiği her şey 50 bölümünüzden geldi.
- Dar genelleme: bir kamerayı hareket ettirirseniz yeniden eğitim yapmanız gerekir.
- Sessizce başarısız olur: kayıp düşer, kol hiçbir şey yapmaz, loglar hiçbir şey söylemez.
- Hız avantajı yalnızca çıkarım servoların yanında yer alıyorsa yardımcı olur.
Görev ve sahne sabit olduğunda ve hareketin hızlı ve hassas olması gerektiğinde ACT'yi seçin. Bir bir kontrol noktasının birden fazla talimatı kapsaması gerektiğinde seçin. İki sayfa kararı başa baş ele alır: ve . Yayınlanmış karşılaştırmalar için, her sayıyı kaynağına bağlar.
Başlamadan önce ihtiyacınız olanlar
Bir takipçi kol, için bir lider kol, en az bir kamera, 24 GB GPU. ACT yalnızca görüntüleri ve eklem pozisyonlarını okur. İki kamera idealdir: nesnelerin nerede olduğunu gösteren sabit bir ön görünüm, 'ın neye dokunmak üzere olduğunu gösteren bir bilek kamerası, ALOHA'da olduğu gibi.
| Kol | Servolar | Voltaj | Parça maliyeti | Durum |
|---|---|---|---|---|
| SO-100 | Feetech STS3215 | 7.4 V | ~110 ila 150 EUR | Tam destek, referans kol |
| SO-101 | Feetech STS3215 | 7.4 V | ~130 ila 170 EUR | Tam destek |
| Koch v1.1 | Dynamixel XL330 / XL430 | 5 V ve 12 V raylar | ~250 ila 350 EUR | Uyumlu |
| LeKiwi | Feetech STS3215 (kol) | 7.4 V kol, 12 V taban | ~400 ila 500 EUR | Uyumlu |
SO-100 ve SO-101, Feetech STS3215 servolarını 7.4 V bir ray üzerinde çalıştırır. Onlara 12 V beslemek onları bozar, bu o kadar sessiz olur ki insanlar önce yazılımı suçlar ve bir Koch 12 V güç kaynağı fiziksel olarak bir SO-100 kartına uyar. Etiketi kontrol edin. Belirtiler: servo yanıt vermiyor, kol seğiriyor sonra sarkıyor. Ayrıca SO-100 ve SO-101 karşılaştırması.
Çıplak koldan kaydedilmiş veri setine
Aşağıdaki akış lerobot 0.6.x'tir. Kalibre edilmiş bir kolunuz ve bir veri setiniz varsa bunu atlayın. Aksi takdirde SO-100 başlangıç kılavuzu, montajı kapsar, kayıt kılavuzu yakalamayı ve veri seti belgeleri formatı kapsar.
- 1lerobot'u doğru ekstralarla kurun
Kayıt için
core_scripts, eğitim içintraining, Feetech servolar içinfeetechgerekir. 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 - 2Her kolun USB bağlantı noktasını bulun
Her iki kol takılıyken çalıştırın, istendiğinde birini çıkarın. Linux'ta düğüm izinlerini açmanız gerekebilir.
bashlerobot-find-port # on Linux, if the port exists but is unreadable: sudo chmod 666 /dev/ttyACM0 - 3Motor kimliklerini ve baud hızını ayarlayın
SO-100'de bu, montajdan önce gerçekleşir: SO-101'in aksine, konektörlere bir kez yapıldıktan sonra ulaşılamaz. Komut dosyası, tutucudan başlayarak veri yolunu her seferinde bir motor olacak şekilde tarar ve kimlikleri EEPROM'a yazar.
bashlerobot-setup-motors \ --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 lerobot-setup-motors \ --teleop.type=so100_leader \ --teleop.port=/dev/ttyACM1 - 4Her iki kolu kalibre edin
Her eklemi menzilinin ortasına ayarlayın, Enter tuşuna basın, ardından her birini tam menzili boyunca hareket ettirin. Kalibrasyon, bir kol üzerinde eğitilmiş bir politikanın başka bir kol üzerinde çalışmasını sağlar. Aynı
id'yi yeniden kullanın.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 - 5Kameralar açıkken bir kez teleoperasyon yapın
lerobot'un genel kuralı: görevi yalnızca kamera görüntülerine bakarak yapabilmelisiniz. Eğer yapamıyorsanız, ACT de yapamaz. Bu, sonraki hata ayıklamadan daha fazla kötü veri kümesini yakalar.
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 - 650 bölüm kaydedin
50, AY-Robots minimumudur ve ALOHA'nın görev başına kullandığı miktardır. lerobot, nesne konumu başına 10, kameralar sabit, kavrama tutarlı olmasını önerir.
nbir bölümü sonlandırır,ryeniden kaydeder,qdurdurur ve kodlar.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'nin dayanacak ön bilgisi yoktur, bu nedenle her tutarsızlık kalıcı hale gelir. En maliyetli üçü: 20. ve 21. bölümler arasında hafifçe hareket ettirilmiş bir kamera, setin yarısını öğleden sonra kaydettiğiniz için değişen ışık, iki farklı şekilde yapılan bir kavrama. Her biri mükemmel görünen bir kayıp eğrisi ve yanlış yere giden bir kol verir. Bkz. kayıp düşüyor, politika hiçbir şey yapmıyor, politika yalnızca tek bir kurulumda çalışıyor ve yüksek kaliteli eğitim verisi toplama.
Eğitimden önce en az beş bölümü tekrar oynatın. LeRobot veri kümesi formatı kamera akışlarını, eklem durumlarını ve eylemleri her bir bölüm, olarak depolar ve tekrar oynatma bu eylemleri kola geri gönderir. Eğer tekrar oynatma görevi yapmıyorsa, veri bunu içermiyor demektir ve eğitim bunu icat etmeyecektir.
lerobot-replay \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower \
--dataset.repo_id=${HF_USER}/so100_cube \
--dataset.episode=0ACT politikasını eğitme
Bu komutun tamamıdır. ACT'ye özgü her şey zaten varsayılandır, bu yüzden lerobot ACT sayfası onlarla başlamanızı önerir.
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 ACTConfig'i yükler, bu, veri setinizin kaydettiği motor ve kamera sayısına uyum sağlar, böylece gözlem şeklini asla belirtmezsiniz. --wandb.enable=true isteğe bağlıdır ve buna değerdir: kayıp eğrisi, 100000 adımlık bir çalıştırmadaki tek ucuz sinyaldir. Zamanlama, ACTConfig'ten değil, lerobot'un eğitim yapılandırmasından gelir: 100000 adım, toplu iş 8, çekirdek 1000, her kontrol noktası 20000 adımda bir, her 200 adımda bir günlük kaydı.
Tam bir çalıştırma, 020000'den 100000'e kadar beş kontrol noktası dizini ve bir last sembolik bağlantı bırakır. Hepsini saklayın: en iyi politika genellikle sonuncusu değildir.
| Ayar | lerobot varsayılanı | AY-Robots ACT formu | Yorum |
|---|---|---|---|
| toplu iş boyutu | 8 | 8 | VRAM sınırlarına ulaşırsanız önce bunu düşürün. |
| öğrenme oranı | 1e-5 | 1e-5 | ALOHA makalesiyle aynı. |
| maksimum adım | 100000 | 100000 | Yaklaşık olarak 50 bölümlük bir setin iyileşmeyi durdurduğu yer. |
| gradyan birikimi | 1 | 1, geçerli değil | Bunun yerine toplu iş boyutunu değiştirin. |
| çekirdek | 1000 | açıkta | GR00T'nin tyro giriş noktasında çekirdek yok; ACT çalıştırmaları tekrarlanabilir olanlardır. |
| parça boyutu / eylem adımı sayısı | 100 / 100 | 100 / 100, düzenlenebilir | Tahmin ve yürütme ufku. İkincisini düşürün, birincisini değil. |
| kontrol noktası sıklığı | 20000 | açıkta değil | saveSteps burada bir GR00T ayarıdır. |
İki adet 640x480 kamera ile 8 toplu iş boyutunda ACT, 24 GB'a rahatça sığar. İnsanlar hızı artırmak için toplu iş boyutunu yükselttiğinde veya bir lerobot kayıt örneğinin gösterdiği 1920x1080 kareleri beslediğinde sığmamaya başlar. 1080p'de iki ResNet-18 omurgası çok farklı bir bellek profiline sahiptir. Daha büyük bir kart kiralamadan önce --batch_size değerini 4'e düşürün. Bkz. eğitimde bellek yetersizliği.
Süre: makalede 11 GB RTX 2080 Ti üzerinde yaklaşık 5 saat, lerobot'un ACT sayfasına göre 100 bin adım için birkaç saat, AY-Robots 24 GB katmanında 2 ila 5 saat. Süreyi kısaltmayın. Referans deposunun README'si, sarsıntılı veya duraklayan bir politikanın genellikle daha fazla eğitim gerektirdiğini belirtir, çünkü kayıp platosundan sonra başarı ve akıcılık artmaya devam eder: gerçek dünya verileri için en az 5000 epoch veya platodan sonra 3 ila 4 kat daha fazla süre ister.
lerobot-train \
--config_path=outputs/train/act_so100_cube/checkpoints/last/pretrained_model/train_config.json \
--resume=trueEğitilmiş politikayı kola uygulama
Dağıtım lerobot-rollout kullanır. Kamera anahtarları kaydedilenlerle eşleşmelidir: front ve wrist üzerinde eğitilmiş bir politika cam0 ve cam1'i kabul etmeyecektir, ve rename_map yardımcı olmaz, çünkü önceden eğitilmiş bir kontrol noktasına ihtiyaç duyar. Görev dizisi atlanabilir; lerobot'un kendi örneği bunu ACT için atlanabilir olarak işaretler.
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=60Değerlendirme eskiden lerobot-record --policy.path=... aracılığıyla çalıştırılırdı. 0.6.x sürümünde ise lerobot-rollout, --strategy.type seçicisi ile kullanılır: base, sentry (otomatik yüklemeli kayıt), highlight (tuş vuruşuyla kaydedilen halka arabellek), dagger (döngüde insan) ve episodic. 23 Ağustos 2026 itibarıyla, ACT dokümantasyon sayfası, lerobot-rollout komutunu çalıştıran bir bloğun hemen üzerinde hala "lerobot-record komutunu kullanarak" demektedir. Cümleyi değil, komutu takip edin.
Son model yerine bir kontrol noktasını sabitlemek için --policy.pretrained_revision ekleyin. Bunun için çalıştırmanın --save_checkpoint_to_hub=true ile başlaması gerekir, varsayılan olarak kapalıdır: bu olmadan lerobot sadece son modeli iter. Bununla birlikte, her kontrol noktası sıfırla doldurulmuş adımıyla etiketlenir, bu yüzden --policy.pretrained_revision=060000 60000 adımlık olanı kurtarır. Bunu gerçek kol üzerinde 100000 ile karşılaştırmak, mevcut en ucuz deneydir.
Aynı kontrol noktasına iki yol
Yukarıdakilerin hepsi manuel yoldur ve çalışır. Platform yolu, bir GPU veya Python ortamına sahip olmama karşılığında kontrolü feda eder.
core_scripts,training,feetech, ffmpeg ile lerobot 0.6.x'i kurun.- Portları bulun, motor kimliklerini ayarlayın, her iki kolu da kalibre edin, 50 bölüm kaydedin.
- Verilerin görevi içerdiğini doğrulamak için birkaç bölümü tekrar oynatın.
- 24 GB'lık bir GPU kiralayın veya satın alın, CUDA ve PyTorch'u eşleştirin,
lerobot-train --policy.type=actkomutunu çalıştırın. - Birkaç saat bekleyin, ardından kolun bulunduğu makinede
lerobot-rolloutkomutunu çalıştırın.
# 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=cudaTam kontrol: configuration_act.py dosyasını düzenleyin, bir kamera ekleyin, eğiticiyi çatallayın. Bir görevi göndermek yerine araştırma için bir platform dikkat dağıtıcıdır.
- masaüstü istemcisi ile kaydedin veya bir Hugging Face repo kimliği ya da yerel veri kümesi getirin.
- SO-100 üzerindeki ACT kılavuzunu açın ve model ile veri kümesini seçin. Varsayılanlar lerobot'unkilerdir; chunkSize, nActionSteps, seed ve logFreq düzenlenebilir.
- Arka uç, VRAM boyutunda bir GPU kiralar ve kontrol noktalarını nesne depolamaya yazar.
/api/inference/poddaha sonra politikayı yerel robot istemcisine sunar. Boşta kalan bir izleyici pod'u yok eder, böylece hiçbir şey sessizce faturalandırılmaz.- Aynı işlemler CLI, MCP sunucusu ve eğitim belgelerinde mevcuttur.
Verilerinizi düzeltmez: hareket ettirilmiş bir kameraya sahip bir veri kümesi burada da aynı derecede kötü eğitilir ve form bunu algılayamaz. Gecikme sorununu da ortadan kaldırmaz. Kontrol döngüsü, her eylem adımı başına 20 ila 485 ms'dir, buna ek olarak genel internet gidiş-dönüş süreleri de vardır ve ACT en çok etkilenir çünkü adımı en kısadır: 60 ms, Pi0.5'in 485 ms'sinde yüzde 12'lik bir yavaşlama iken, ACT'nin 20 ms'sinde adımın dört katıdır. Uzak çıkarım, yavaş alma ve yerleştirme için uygundur, hızlı reaktif hareket için değil.

Gerçekte ne yanlış gidiyor
Acının neredeyse hiçbiri eğitim komutunda değildir. İlk seferde ne sıklıkla sorun çıkardıklarına göre sıralanmış, etrafındaki şeylerde yatar.
| Belirti | Olağan neden | Sayfa |
|---|---|---|
| lerobot-find-port hiçbir şey göstermiyor | Sürücü, kablo veya düğüm izinleri | kol algılanmadı |
| Kayıt sırasında kamera eksik | Yeniden başlatmada dizin değişti veya tek bir USB denetleyicide iki kamera var | kamera algılanmadı |
| Eğitim veri kümesini reddediyor | ACT v3.0 istiyor, GR00T v2.1'e ihtiyaç duyuyor | veri kümesi v3 olarak reddedildi |
| CUDA bellek yetersizliği | Yükseltilmiş yığın boyutu veya 480p yerine 1080p kareler | eğitimde bellek yetersizliği |
| Kayıp harika görünüyor, kol hiçbir şey yapmıyor | Veri görevi eksik veya bir kamera hareket etti | kayıp düşüyor, politika hiçbir şey yapmıyor |
| Sarsıntılı hareket veya bölüm ortasında duraklama | Yetersiz eğitim, bir öbek sınırı takılması veya zaman aşımına uğramış bir çıkarım çağrısı | politika hareket ortasında donuyor |
İki satır vurguyu hak ediyor. ACT, LeRobot v3.0 üzerinde eğitim yaparken, GR00T'un yükleyicisi üzerinde çöküyor ve v2.1'e ihtiyaç duyuyor, bu nedenle ACT'yi eğiten bir veri kümesi GR00T çalışmasını başarısız kılabilir. Ve son satırda iki düzeltme var: ACT yazarları sarsıntılı hareketi daha fazla eğitimle yanıtlıyor, oysa n_action_steps 100'de gerçek bir takılma bir öbek sınırına denk gelir, 30 fps'de her 3.3 saniyede bir görünür bir duraklama. Bilmeniz gereken iki şey daha: tek bir ölü eklem genellikle bir hiç yazılmamış bir servo kimliği, ve yaklaşan ama asla kapanmayan bir tutucu gösterilerde çok az tutucu aralığı anlamına gelir. Tam dizin: hata modu sayfaları.
Bir çalıştırmanın maliyeti nedir
| Katman | Modeller | Çalışma süresi | Saatlik fiyat | Çalışma başına maliyet |
|---|---|---|---|---|
| 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 |
Bu, daha sonra bir VLA isteseniz bile ACT ile başlamak için bir argümandır. Başarısız bir ACT çalıştırması bir kahve fiyatına mal olur ve veri kümenizin görevi içerip içermediğini size saatler içinde söyler. Başarısız bir GR00T çalıştırması aynı ders için bunun dört katına mal olur. Daha sonra GR00T N1.7 veya SmolVLA yükseltmek bir yeniden inşa değil, bir form değişikliğidir. Arka plan: görsel-dil-eylem modelleri, eksiksiz SO-100 kılavuzu, ilk politikanızı eğitin ve taklit öğrenimi. Kolunuz yok mu? Canlı sayfa gerçek bir SO-100'ü kaydolmadan sürmek için yayınlar.
SO-100'ünüzde ACT Eğitin
Bu tam kombinasyon için kılavuz: varsayılanlar, GPU katmanı ve bir çalıştırmanın maliyeti. Veri kümesini seçin, arka uç kartı kiralar ve kontrol noktalarını yazar.
Eğitim kılavuzunu açBunun yerine ince ayar yapabileceğim önceden eğitilmiş bir ACT modeli var mı?▾
Hayır. ACT'nin temel bir modeli yoktur; yalnızca siz onu eğittikten sonra var olur. Bu, araç setinde bir eksiklik değil, ACT'nin kendisidir: makale, her görev için sıfırdan bir politika eğitir. Bir satıcı kontrol noktası için GR00T N1.7 veya Pi0.5 kullanın.
Gerçekten kaç bölüme ihtiyacım var?▾
50: ALOHA'nın görev başına kaydettiği (en zoru olan Thread Velcro için 100) ve AY-Robots minimumu. lerobot, nesne konumu başına yaklaşık 10, kameralar sabit, kavrama tutarlı olmasını önerir. Elli temiz bölüm, kameranın hareket ettiği yüz bölümden daha iyidir.
chunk_size'ı 100'den değiştirmeli miyim?▾
Genellikle hayır. Ablasyon, k = 1'de yüzde 1'den k = 100'de yüzde 44'e çıkar ve sonra azalır, bu nedenle 100 zirveye yakındır. Kol çok uzun süre bağlı kalırsa, bunun yerine n_action_steps'i düşürün: 30 fps'de, her 0.8 saniyede bir 25 yeniden sorgulama.
Bir eğitim çalıştırması ne kadar sürer ve erken durdurabilir miyim?▾
100000 adım için 24 GB'lık bir kartta iki ila beş saat. Kontrol noktaları her 20000 adımda bir kaydedilir ve --resume=true bir çalıştırmayı kaldığı yerden devam ettirir, bu nedenle erken durdurmak güvenlidir. Sadece ilk düzlükte değil: kayıp plato çizdikten sonra pürüzsüzlük artar.
Kayıp azaldı ve kol hala başarısız oluyor. Şimdi ne olacak?▾
Neredeyse her zaman veri kümesi. Kaydedilen bölümleri kolda tekrar oynatın: eğer tekrar oynatma görevi yapmıyorsa, veriler onu içermiyordur. Ardından, özellikle bir kamera olmak üzere herhangi bir şeyin hareket edip etmediğini kontrol edin. ACT'nin ön bilgileri yoktur, bu nedenle 21. bölümdeki bir dürtme kalıcıdır.
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