AY-Robots оқыту матрицасы, бес саясат жолы және төрт робот қол бағаны бар, әрбір ұяшық нақты модель мен қолды оқыту нұсқаулығына сілтеме жасайды
ACTSO-100lerobotеліктеу арқылы оқытусаясатты оқыту

ACT-ті SO-100-де нөлден бастап қалай үйрету керек

AY-Robots ResearchAugust 23, 202616 мин оқу

Action Chunking Transformer-ді SO-100-де lerobot арқылы нөлден бастап үйретіңіз: act config, chunk_size және n_action_steps, 100000 қадамдық кесте, 20 мс қорытынды.

ACT SO-100 саясаттарының ішінде ерекше болып табылады. GR00T N1.7 және N1.5 басталады nvidia/GR00T-N1.7-3B және nvidia/GR00T-N1.5-3B, Pi0.5 басталады lerobot/pi05_base. ACT ештеңеден басталады: негізгі бақылау нүктесі жоқ, себебі ол іргелі модель емес. Бұл шамамен 80 миллион параметрлі трансформер, оны сіз бір тапсырма бойынша, өз қолыңызда, өз жарығыңызда нөлден бастап үйретесіз.

Сондықтан да ол 20 мс ішінде басқару қадамын орындайды, ал 3 миллиард параметрлі VLA-ға 152-ден 485 мс қажет, және бір іске қосу үшін 4-тен 12 USD орнына 1-ден 3 USD тұрады. Бұл нұсқаулық қолмен орындалатын жолды көрсетеді lerobot арқылы SO-100: жазу, act конфигурациясы, не chunk_size және n_action_steps басқарады, 100000 қадамдық кесте, орындау. Содан кейін AY-Robots-та дәл сол жұмыс, платформа көмектеспейтін жағдайларды қоса алғанда.

Нені білу қажет

  • ACT нөлден бастап үйренеді: негізгі модель жоқ, алдын ала оқыту жоқ, тілдік енгізу жоқ. Бір бақылау нүктесі, бір тапсырма.
  • Мақала: шамамен 80 M параметр, 11 GB RTX 2080 Ti-да шамамен 5 сағат, 0.01 с қорытынды.
  • lerobot defaults: chunk_size 100, n_action_steps 100, batch 8, lr 1e-5, 100000 steps, seed 1000.
  • AY-Robots-та: бір қадамға 20 мс, бесеудің ішіндегі ең жылдамы. Ең аз 50 эпизод, LeRobot v3.0, 24 GB карта, бір іске қосу үшін 1-ден 3 USD.
  • Ол көрген тапсырмада жеңеді, және тілдік шарттауды қалаған сәтте жеңіледі.
Қай нұсқалар сипатталған

2026 жылғы 23 тамызда lerobot 0.6.x-қа қарсы тексерілді: pyproject.toml on main reads version = "0.6.2", newest tag v0.6.1, 2026 жылғы 3 тамыз. Басталатын оқулық python lerobot/scripts/train.py консольдік кіру нүктелерінен бұрын болған lerobot-train, lerobot-record and lerobot-rollout.

ACT іс жүзінде не?

Трансформаторлармен әрекетті бөліктеу (Action Chunking with Transformers) ALOHA мақаласынан алынған, Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware, авторлары Чжао, Кумар, Левин және Финн, arXiv, 2023 жылғы 23 сәуір. Қондырғы 50 Гц жиілікте жазады, төрт веб-камера 480x640 ажыратымдылықта 30 кадр/сек жылдамдықпен ағынмен жібереді: екеуі қысқыштарда, біреуі үстінде, біреуі алдында. Рефератта 10 минуттық демонстрациялардан кейін 80-90 пайыздық сәттілікпен алты дағды, соның ішінде мөлдір дәмдеуіш кесесін ашу және батареяны салу сияқты дағдылар бар делінген.

Жазба сессиясын жоспарлау кезінде негізгі мәтін пайдалырақ: әр тапсырмаға 50 демонстрация, тек Thread Velcro үшін 100 демонстрация, бұл 10-20 минут деректер және қайта орнатулар есептелгенде 30-60 минут нақты уақыт. Сәттілік біркелкі емес: Thread Velcro 20 пайызбен, Put On Shoe 92, Cup Open 84, Prep Tape 64 пайызбен аяқталады.

ГиперпараметрALOHA мақаласы, III кестеlerobot негізгіде
оқыту жылдамдығы1e-5optimizer_lr = 1e-5
пакет өлшемі8batch_size = 8, in TrainPipelineConfig not ACTConfig
кодер / декодер қабаттары4 / 7n_encoder_layers = 4 / n_decoder_layers = 1
бөлік өлшемі k100chunk_size = 100
z-тің латентті өлшеміжоқ; 11-сурет 32-ден 512-ге дейінгі проекцияны көрсетедіlatent_dim = 32
уақытша ансамбльдеужоқ; сілтеме кодындағы --temporal_aggtemporal_ensemble_coeff = None
Декодер қабатының жолы қате емес

Мақалада 7 декодер қабаты көрсетілген, lerobot әдейі 1-ін жеткізеді. configuration_act.py ішіндегі түсініктемеде бастапқы іске асыруда қате бар екені, яғни тек бірінші қабат қолданылатыны айтылған, tonyzhaozh/act-тағы 25-ші мәселеге сілтеме жасай отырып: әрекет басы hs[0] оқиды, сондықтан барлық жеті қабат жұмыс істейді, бірақ тек бірінші шығыс болжамға жетеді. Бұл мәселе 2024 жылдың 23 сәуірінен бастап ашық және жауапсыз қалған. lerobot жарияланған нәтижелерді берген мінез-құлыққа сәйкес келеді, басылған санға емес. --policy.n_decoder_layers мәнін арттырсаңыз, сіз мақалада ешқашан бағаланбаған модельді үйретесіз.

Әрекетті бөліктеу – бұл бүкіл идея

Қарапайым мінез-құлықты клондау бір бақылауды бір әрекетке сәйкестендіреді, және қателер жинақталады: ауытқу қолды бөлуден шығарады, нашар әрекет тудырады, және отыз қадамнан кейін қысқыш нысанға жақын жерде болмайды. Әрекетті бөліктеу бірден k әрекетті болжайды және оларды орындайды, тиімді көкжиекті k факторына азайтады. Ол сондай-ақ адам деректеріне тән кедергіні де шешеді: телеоператорлар кідіреді, және бір қадамдық Марковтық саясат бұрын болғанға байланысты кідірісті модельдей алмайды.

Мақала k мәнін растаудың орнына оны ажыратады. Уақытша ансамбльдеу өшірілген кезде, төрт параметр бойынша орташа алғанда, k = 1 кезіндегі 1 пайыздық сәттілік k = 100 кезінде 44 пайызға дейін көтеріледі, содан кейін саясат ашық циклді басқаруға жақындағанда 200 және 400-де төмендейді. Бұл қисық сызық әдепкі мәннің 100 болу себебі.

  • chunk_size: декодер бір алға басуда қанша болашақ әрекетті болжайды. Әдепкі 100.
  • n_action_steps: қайта сұрау алдында олардың қаншасын орындайсыз. Әдепкі 100, сондықтан lerobot бүкіл бөлікті ашық циклде орындайды.
  • lerobot тексереді n_action_steps <= chunk_size және егер сіз оны керісінше орнатсаңыз, ValueError қатесін шығарады.

Операциялық тұрғыдан маңыздысы – chunk_size-ды кадр жиілігіне бөлу. lerobot-тың SO-100 мысалдары қолданатын 30 кадр/сек жылдамдықта, 100 бөліктен тұратын бір үзінді бір бақылаудан шамамен 3.3 секундты қамтиды. Егер тапсырма сол терезе ішінде түзетуді қажет етсе, төмендетіңіз n_action_steps, ал емес chunk_size: сіз ұзақ болжамды сақтап, жиірек қайта бақылайсыз.

bash
# 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 және lerobot талап етеді n_action_steps = 1, әйтпесе NotImplementedError қатесін шығарады. Ансамбльдеу әр уақыт қадамында саясатты сұрайды және сол уақыт қадамы үшін қабаттасатын болжамдарды w_i = exp(-m * i) салмақтарымен араластырады, ең ескісі w_0 алады. Мақалада ACT үшін бұл 3.3 пайыз деп көрсетілген: нақты, бірақ қарапайым, және ол қорытындылау санын бөлік ұзындығына көбейтеді. Қадамға 20 мс-та қолжетімді, 485 мс-та емес. Қараңыз қорытындылау кідірісі.

ACT негізгі модельден асып түскенде

Бес оқытылатын саясат қатар, AY-Robots өлшейтін және жалға алатын GPU-ды өлшемдеу үшін қолданатын сандармен.

СаясатТүріПарам.Бір қадамғаGPU деңгейіМин. эпизодтарДеректер жинағы
ACTБөлшектеуші трансформер, нөлден бастап~80 M20 msRTX 4090 / 24 GB50LeRobot v3.0
SmolVLAЫқшам VLA~450 M245 msRTX 4090 / 24 GB30LeRobot v3.0
GR00T N1.7VLA негізі, диффузиялық бас~3 B (~40 M trained)152 msA100 / H100 80 GB50LeRobot v2.0 or v2.1
GR00T N1.5VLA негізі, алдыңғы нұсқасы~3 B165 msA100 / H100 80 GB50LeRobot v2.0 or v2.1
Pi0.5Ағынға сәйкестендіру VLA, қараңыз ағынға сәйкестендіру~3 B, PaliGemma backbone485 msA100 / H100 80 GB50LeRobot v3.0
The AY-Robots policies page showing a comparison table of ACT, SmolVLA, GR00T N1.5, GR00T N1.7 and Pi0.5 with parameter counts, GPU requirements, inference latency and minimum episode counts
The /policies table: ACT has the smallest parameter count and the shortest step time.
ACT-ті нөлден бастап оқыту
Артықшылықтар
  • Әрекет қадамына 20 мс, бесеудің ішіндегі ең жылдамы, A100 емес, 24 ГБ картада.
  • 3 B класы үшін 4-тен 12-ге дейін долларға қарсы, әр іске қосуға 1-ден 3-ке дейін USD.
  • Ол көрген жанасуға бай жұмыстарда дәлдігі жоғары: Slide Ziploc және Slot Battery-де 88 және 96 пайыз, бұрынғы әдістер бірінші кезеңнен өтпеген.
Ымыралар
  • Тілдік шарттау жоқ: тапсырма жолы еленбейді, сондықтан бір бақылау нүктесі бір тапсырма болып табылады.
  • Семантикалық алғышарттар жоқ: ол білетіннің бәрі сіздің 50 эпизодыңыздан алынған.
  • Тар жалпылау: камераны жылжытсаңыз, қайта оқыту қажет болады.
  • Ол үнсіз сәтсіздікке ұшырайды: шығын азаяды, қол ештеңе істемейді, журналдар ештеңе көрсетпейді.
  • Жылдамдық артықшылығы тек егер қорытынды сервоприводтардың жанында болса ғана көмектеседі.

Тапсырма мен көрініс тұрақты және қозғалыс жылдам әрі дәл болуы керек болса, ACT-ті таңдаңыз. Бір бақылау нүктесі бірнеше нұсқаулықты қамтуы керек болса, таңдаңыз. Екі бет шешімді тікелей салыстырады: және . Жарияланған эталондар үшін, әрбір санды оның дереккөзіне сілтейді.

Бастамас бұрын не қажет

Бір ілесуші қол, бір жетекші қол, кем дегенде бір камера, 24 ГБ GPU. ACT тек кескіндер мен буын позицияларын оқиды. Екі камера ең қолайлы нұсқа: заттардың қайда екенін көрсететін тұрақты алдыңғы көрініс, неге тиетінін көрсететін білек камерасы, ALOHA-дағы сияқты.

ҚолСерволарКернеуБөлшектер құныКүйі
SO-100Feetech STS32157.4 V~110 to 150 EURТолық қолдау, эталондық қол
SO-101Feetech STS32157.4 V~130 to 170 EURТолық қолдау
Koch v1.1Dynamixel XL330 / XL4305 V and 12 V rails~250 to 350 EURҮйлесімді
LeKiwiFeetech STS3215 (қол)7.4 V қол, 12 V негіз~400 to 500 EURҮйлесімді
7.4 V, 12 V емес

SO-100 және SO-101 Feetech STS3215 серволарын 7.4 V рельсте іске қосады. Оларға 12 V беру оларды істен шығарады, бұл өте тыныш болғандықтан, адамдар алдымен бағдарламалық жасақтаманы кінәлайды, ал Koch 12 V қуат көзі SO-100 тақтасына физикалық тұрғыдан сәйкес келеді. Жапсырманы тексеріңіз. Белгілері: серво жауап бермейді, қол дірілдеп, содан кейін салбырап қалады. Сондай-ақ SO-100 vs SO-101.

Жалаң қолдан жазылған деректер жинағына дейін

Төмендегі ағын lerobot 0.6.x. Егер сізде калибрленген қол және деректер жинағы болса, оны өткізіп жіберіңіз. Әйтпесе, SO-100 бастау нұсқаулығы құрастыруды қамтиды, ал жазуға шолу түсіруді қамтиды, ал деректер жинағы құжаттамасы пішімін қамтиды.

  1. 1
    lerobot-ты қажетті қосымшалармен орнату

    Жазу үшін core_scripts, оқыту үшін training, Feetech серволары үшін feetech қажет. Python 3.12+.

    bash
    conda 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
  2. 2
    Әр қолдың USB портын табу

    Екі қолды да қосып іске қосыңыз, сұралған кезде біреуін ажыратыңыз. Linux жүйесінде түйін рұқсаттарын ашу қажет болуы мүмкін.

    bash
    lerobot-find-port
    # on Linux, if the port exists but is unreadable:
    sudo chmod 666 /dev/ttyACM0
  3. 3
    Қозғалтқыш идентификаторлары мен бод жылдамдығын орнату

    SO-100-де бұл құрастыру алдында орындалады: SO-101-ден айырмашылығы, қосқыштар құрастырылғаннан кейін қол жетімсіз болады. Скрипт шинаны қысқыштан бастап, бір қозғалтқыштан кейін бір қозғалтқышты аралап, идентификаторларды EEPROM-ға жазады.

    bash
    lerobot-setup-motors \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM0
    
    lerobot-setup-motors \
        --teleop.type=so100_leader \
        --teleop.port=/dev/ttyACM1
  4. 4
    Екі қолды да калибрлеу

    Әрбір буынды диапазонының ортасына орнатыңыз, Enter пернесін басыңыз, содан кейін әрқайсысын толық диапазоны бойынша жылжытыңыз. Калибрлеу бір қолда оқытылған саясатты басқа қолда іске қосуға мүмкіндік береді. Бірдей id қайта пайдаланыңыз.

    bash
    lerobot-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
  5. 5
    Камералар қосулы кезде бір рет телеоперация жасау

    lerobot-тың жалпы ережесі: сіз тапсырманы тек камера кескіндеріне қарап орындай алуыңыз керек. Егер сіз орындай алмасаңыз, ACT та орындай алмайды. Бұл кейінгі жөндеуге қарағанда көптеген нашар деректер жинақтарын анықтайды.

    bash
    lerobot-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
  6. 6
    50 эпизодты жазу

    50 - AY-Robots минимумы және ALOHA әр тапсырмаға қолданған мөлшер. lerobot нысан орналасқан жеріне 10-нан, камералар бекітілген, ұстау тұрақты болуын ұсынады. n эпизодты аяқтайды, r қайта жазады, q тоқтатады және кодтайды.

    bash
    HF_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
AY-Robots жазу оқулығы беті, телеоперация сессиясынан LeRobot форматындағы деректер жинағын қалай түсіру керектігін түсіндіреді
Жазу оқулығы. Жұмыс үстелі клиенті lerobot-record сияқты орналасуды жазады.
Бір күнді жоғалтатын тұзақ: сәйкессіз деректер жинағы

ACT-тің сүйенетін алғышарттары жоқ, сондықтан әрбір сәйкессіздік тұрақты болып қалады. Ең қымбат үш жағдай: 20-шы және 21-ші эпизодтар арасында камераның жылжуы, түстен кейін жинақтың жартысын жазғандықтан өзгерген жарық, екі түрлі тәсілмен жасалған ұстау. Әрқайсысы мінсіз көрінетін шығын қисығын және қате жерге баратын қолды береді. Қараңыз: шығын төмендейді, саясат ештеңе істемейді, саясат тек бір конфигурацияда жұмыс істейді және жоғары сапалы оқыту деректерін жинау.

Оқыту алдында кем дегенде бес эпизодты қайталаңыз. LeRobot деректер жинағы форматы камера ағындарын, буын күйлерін және әрекеттерді әрбір эпизод, және қайталау бұл әрекеттерді қолға қайтарады. Егер қайталау тапсырманы орындамаса, деректер оны қамтымайды және оқыту оны ойлап таппайды.

bash
lerobot-replay \
    --robot.type=so100_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_follower \
    --dataset.repo_id=${HF_USER}/so100_cube \
    --dataset.episode=0
0-эпизодты қайта ойнату. Егер бұл сәтсіз болса, тоқтатып, қайта жазыңыз.

ACT саясатын оқыту

Бұл толық пәрмен. ACT-ке қатысты барлық нәрсе әдепкі бойынша орнатылған, сондықтан lerobot ACT бетінде олардан бастау керектігі айтылған.

bash
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
SO-100 деректер жинағындағы lerobot 0.6.x құжаттамасынан алынған оқыту пәрмені.

--policy.type=act ACTConfig-ті жүктейді, ол деректер жинағыңыз жазып алған қозғалтқыштар мен камералар санына бейімделеді, сондықтан сіз ешқашан бақылау пішінін жарияламайсыз. --wandb.enable=true міндетті емес, бірақ пайдалы: шығын қисығы 100000 қадамдық іске қосудағы жалғыз арзан сигнал болып табылады. Кесте ACTConfig-тен емес, lerobot-тың оқыту конфигурациясынан алынады: 100000 қадам, пакет 8, тұқым 1000, бақылау нүктесі әр 20000 қадам сайын, әр 200 қадам сайын журналға жазу.

Толық іске қосу бес бақылау нүктесі каталогын қалдырады, 020000-нан 100000-ға дейін, сонымен қатар соңғы символикалық сілтеме. Олардың барлығын сақтаңыз: ең жақсы саясат көбінесе соңғысы болмайды.

Параметрlerobot әдепкі мәніAY-Robots ACT формасыТүсініктеме
пакет өлшемі88Егер VRAM шектеулеріне жетсеңіз, алдымен оны төмендетіңіз.
оқыту жылдамдығы1e-51e-5ALOHA мақаласындағыдай.
максималды қадамдар100000100000Шамамен 50 эпизодтық жиын жақсаруды тоқтататын жер.
градиент жинақтау11, does not applyОның орнына пакет өлшемін өзгертіңіз.
тұқым1000exposedGR00T-тың tyro кіру нүктесінде тұқым жоқ; ACT іске қосулары қайталанатын болып табылады.
chunk_size / n_action_steps100 / 100100 / 100, editableБолжау және орындау көкжиегі. Екіншісін төмендетіңіз, біріншісін емес.
бақылау нүктесі жиілігі20000not exposedsaveSteps мұнда GR00T реттегіші болып табылады.
Жадтың жетіспеушілігі карта мәселесі емес, пакет өлшемі мәселесі

Екі 640x480 камерасы бар 8 пакет өлшеміндегі ACT 24 ГБ жадқа ыңғайлы орналасады. Адамдар жылдамдық үшін пакет өлшемін арттырғанда немесе lerobot жазу мысалында көрсетілген 1920x1080 кадрларды бергенде, ол сыймай қалады. 1080p-дегі екі ResNet-18 негізі мүлдем басқа жад профиліне ие. Үлкенірек картаны жалға алмас бұрын --batch_size мәнін 4-ке дейін төмендетіңіз. Қараңыз оқыту кезінде жадтың жетіспеушілігі.

Ұзақтығы: құжаттағы 11 ГБ RTX 2080 Ti-да шамамен 5 сағат, lerobot-тың ACT бетіндегі 100 мың қадам үшін бірнеше сағат, AY-Robots 24 ГБ деңгейінде 2-ден 5 сағатқа дейін. Оны қысқартпаңыз. Сілтеме репозиторийінің README файлында айтылғандай, дірілдеген немесе кідірген саясатқа әдетте көбірек жаттығу қажет болады, өйткені шығын тұрақтанғаннан кейін сәттілік пен тегістік жақсара береді: нақты әлем деректері үшін кем дегенде 5000 дәуір немесе тұрақтанғаннан кейін тағы 3-4 есе ұзақтық қажет.

bash
lerobot-train \
  --config_path=outputs/train/act_so100_cube/checkpoints/last/pretrained_model/train_config.json \
  --resume=true
Үзілген іске қосуды соңғы бақылау нүктесінен жалғастыру.

Оқытылған саясатты қолда іске қосу

Орналастыру lerobot-rollout пайдаланады. Камера кілттері жазылғандарға сәйкес келуі керек: front және wrist бойынша оқытылған саясат cam0 және cam1 қабылдамайды, және rename_map көмектеспейді, өйткені оған алдын ала оқытылған бақылау нүктесі қажет. Тапсырма жолын қалдыруға болады; lerobot-тың өз мысалы оны ACT үшін өткізіп жіберуге болатын етіп белгілейді.

bash
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=60
Жазбасыз автономды орындау. Бағалау эпизодтарын жазу үшін --strategy.type=sentry қолданыңыз.
Бұл команда жақында қайта аталды, сондықтан ескі нұсқаулықтар сәйкес келмейді

Бағалау бұрын lerobot-record --policy.path=... арқылы орындалатын. 0.6.x нұсқасында ол lerobot-rollout және --strategy.type селекторымен: base, sentry (автоматты жүктеумен жазу), highlight (перне басу арқылы сақталатын сақиналық буфер), dagger (адам қатысатын) және episodic. 2026 жылдың 23 тамызындағы жағдай бойынша ACT құжаттама бетінде lerobot-rollout орындайтын блоктың дәл үстінде әлі де "lerobot-record командасын пайдалану" деп жазылған. Сөйлемді емес, команданы орындаңыз.

Соңғы модельдің орнына бақылау нүктесін бекіту үшін --policy.pretrained_revision қосыңыз. Ол іске қосу --save_checkpoint_to_hub=true параметрімен басталғанын талап етеді, ол әдепкі бойынша өшірулі: онсыз lerobot тек соңғы модельді жібереді. Онымен әрбір бақылау нүктесі нөлмен толтырылған қадамымен белгіленеді, сондықтан --policy.pretrained_revision=060000 60000 қадамдық нүктені қалпына келтіреді. Оны нақты қолда 100000-мен салыстыру - қолжетімді ең арзан эксперимент.

Бір бақылау нүктесіне екі жол

Жоғарыда айтылғандардың бәрі қолмен орындалатын жол және ол жұмыс істейді. Платформалық жол GPU немесе Python ортасын иеленбеу үшін басқаруды айырбастайды.

  1. lerobot 0.6.x-ті core_scripts, training, feetech, ffmpeg арқылы орнатыңыз.
  2. Порттарды табыңыз, қозғалтқыш идентификаторларын орнатыңыз, екі қолды да калибрлеңіз, 50 эпизодты жазыңыз.
  3. Деректердің тапсырманы қамтитынын растау үшін бірнеше эпизодты қайталаңыз.
  4. 24 ГБ GPU жалға алыңыз немесе иеленіңіз, CUDA және PyTorch-ті сәйкестендіріңіз, lerobot-train --policy.type=act іске қосыңыз.
  5. Бірнеше сағат күтіңіз, содан кейін қолдағы машинада lerobot-rollout іске қосыңыз.
bash
# 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=cuda
Бұл жол сізге не береді

Толық басқару: configuration_act.py файлын өңдеңіз, камера қосыңыз, тренажерді тармақтаңыз. Тапсырманы жеткізуден гөрі зерттеу үшін платформа алаңдатушылық тудырады.

The AY-Robots training matrix with five policy rows and four robot arm columns, where every cell links to the specific training guide for that model and arm combination
The matrix on /train. The ACT row against the SO-100 column is this article's guide.

Нақты не қате болады

Ауырсынудың басым бөлігі жаттығу командасында емес. Ол оның айналасындағы нәрселерде, олардың алғаш рет қаншалықты жиі қателесетініне қарай реттелген.

СимптомӘдеттегі себепБет
lerobot-find-port ештеңе көрсетпейдіДрайвер, кабель немесе түйін рұқсаттарықол анықталмады
Жазу кезінде камера жоқҚайта жүктеу кезінде индекс өзгерді немесе бір USB контроллерінде екі камера баркамера анықталмады
Жаттығу деректер жинағын қабылдамайдыACT v3.0 нұсқасын қалайды, GR00T v2.1 нұсқасын қажет етедідеректер жинағы v3 ретінде қабылданбады
CUDA жады жеткіліксізПакет өлшемі ұлғайтылды немесе 480p орнына 1080p кадрларжаттығу кезінде жады жеткіліксіз
Жоғалту жақсы көрінеді, қол ештеңе істемейдіДеректерде тапсырма жоқ немесе камера жылжытылғанжоғалту төмендейді, саясат ештеңе істемейді
Эпизод ортасындағы дірілдеген қозғалыс немесе кідірісЖеткіліксіз жаттыққан, блок шекарасындағы тоқтау немесе уақыты біткен қорытынды шақырусаясат қозғалыс ортасында қатып қалады

Екі жолға ерекше назар аудару керек. ACT LeRobot v3.0 нұсқасында жаттығады, ал GR00T жүктегіші онымен жұмыс істемейді және v2.1 нұсқасын қажет етеді, сондықтан ACT-ті жаттықтыратын деректер жинағы GR00T жұмысын бұзуы мүмкін. Ал соңғы жолда екі түзету бар: ACT авторлары дірілдеген қозғалысқа көбірек жаттығумен жауап береді, ал n_action_steps 100-де нақты тоқтау блок шекарасында болады, яғни 30 кадр/сек жылдамдықта әр 3.3 секунд сайын көрінетін кідіріс. Тағы екі нәрсені білу керек: бір өлі буын әдетте ешқашан жазылмаған серво идентификаторы, және жақындайтын, бірақ ешқашан жабылмайтын қысқыш демонстрацияларда қысқыштың диапазоны тым аз екенін білдіреді. Толық индекс: ақаулық режимдері беттері.

Жүгіру қанша тұрады

ДеңгейМодельдерЖұмыс уақытыСағатына бағасыБір іске қосу құны
RTX 4090 / 24 GBACT, SmolVLA2-ден 5 сағатқа дейін0.30 to 0.60 USDшамамен 1-ден 3 USD-ға дейін
A100 80 GB / H100GR00T N1.7, GR00T N1.5, Pi0.53-тен 6 сағатқа дейін1.20 to 2.00 USDшамамен 4-тен 12 USD-ға дейін

Бұл кейінірек VLA қажет болса да, ACT-тен бастауға арналған дәлел. Сәтсіз ACT іске қосу кофе бағасына тең және деректер жинағыңызда тапсырма бар-жоғын бірнеше сағат ішінде хабарлайды. Сәтсіз GR00T іске қосу сол сабақ үшін одан төрт есе қымбатқа түседі. Кейіннен GR00T N1.7 немесе SmolVLA кейіннен форманы өзгерту болып табылады, қайта құру емес. Анықтама: көру-тіл-әрекет модельдері, SO-100 толық нұсқаулығы, алғашқы саясатыңызды үйретіңіз және еліктеу арқылы оқыту. Қолы жоқ па? Тікелей эфир беті тіркелмей-ақ нақты SO-100-ді басқаруға мүмкіндік береді.

ACT-ті SO-100-де үйретіңіз

Осы нақты комбинацияға арналған нұсқаулық: әдепкі параметрлер, GPU деңгейі және іске қосу құны. Деректер жинағын таңдаңыз, бэкэнд картаны жалға алып, бақылау нүктелерін жазады.

Оқыту нұсқаулығын ашу
Оның орнына мен дәлдей алатын алдын ала үйретілген ACT моделі бар ма?

Жоқ. ACT-тің негізгі моделі жоқ; ол сіз оны үйреткеннен кейін ғана пайда болады. Бұл құралдардағы олқылық емес, ACT дегеніміз осы: мақалада әр тапсырма үшін саясат нөлден бастап үйретіледі. Сатушының бақылау нүктесі үшін GR00T N1.7 немесе Pi0.5 қолданыңыз.

Маған қанша эпизод қажет?

50: ALOHA әр тапсырмаға жазған (ең қиыны Thread Velcro үшін 100) және AY-Robots минимумы. lerobot нысан орналасқан жеріне шамамен 10-ды, камералар бекітілген, ұстау тұрақты деп кеңес береді. Камера қозғалған жүз эпизодтан гөрі елу таза эпизод жақсы.

chunk_size мәнін 100-ден өзгертуім керек пе?

Әдетте жоқ. Абляция k = 1 кезінде 1 пайызға, k = 100 кезінде 44 пайызға дейін көтеріліп, одан кейін төмендейді, сондықтан 100 жоғарғы жағына жақын орналасқан. Егер қол тым ұзақ уақыт жұмыс істесе, оның орнына n_action_steps мәнін төмендетіңіз: 30 fps кезінде, 25 қайта сұрау әр 0.8 секунд сайын.

Оқыту қанша уақыт алады және оны ерте тоқтата аламын ба?

100000 қадам үшін 24 ГБ картада екі-бес сағат. Бақылау нүктелері әр 20000 қадам сайын сақталады және --resume=true іске қосуды қайта бастайды, сондықтан ерте тоқтату қауіпсіз. Тек бірінші тегіс учаскеде емес: шығын тұрақтанғаннан кейін тегістік жақсарады.

Шығын азайды, бірақ қол әлі де істен шығады. Енді не істеу керек?

Деректер жинағы дерлік әрқашан. Жазылған эпизодтарды қолда қайта ойнатыңыз: егер қайта ойнату тапсырманы орындамаса, деректерде ол жоқ. Содан кейін бірдеңе қозғалды ма, әсіресе камера, соны тексеріңіз. ACT-тің алдын ала білімдері жоқ, сондықтан 21-эпизодтағы түрткі тұрақты болып қалады.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started