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 ms дотор хяналтын алхам гүйцэтгэдэг бол 3 тэрбум параметртэй VLA нь 152-485 ms шаарддаг бөгөөд нэг ажиллуулалт нь 4-12 USD-ийн оронд 1-3 USD үнэтэй байдаг. Энэхүү гарын авлага нь lerobot дээрх SO-100: бичлэг, act тохиргоо, chunk_size болон n_action_steps хяналт, 100000 алхамт хуваарь, гүйцэтгэл зэргийг авч үзнэ. Дараа нь AY-Robots дээрх ижил ажлыг, тухайн платформ тус болохгүй байгаа хэсгүүдийг оруулан авч үзнэ.

Та юу мэдэх хэрэгтэй вэ

  • ACT нь эхнээсээ сургагддаг: суурь загвар байхгүй, урьдчилсан сургалт байхгүй, хэлний оролт байхгүй. Нэг шалгах цэг, нэг даалгавар.
  • Энэхүү баримт бичигт: ойролцоогоор 80 сая параметр, 11 GB RTX 2080 Ti дээр ойролцоогоор 5 цаг, 0.01 s дүгнэлт хийх хугацаа.
  • lerobot-ийн анхдагч утгууд: chunk_size 100, n_action_steps 100, batch 8, lr 1e-5, 100000 алхам, seed 1000.
  • AY-Robots дээр: алхам тутамд 20 ms, таван загвараас хамгийн хурдан нь. Хамгийн багадаа 50 анги, LeRobot v3.0, 24 GB карт, нэг ажиллуулалт нь 1-3 USD.
  • Энэ нь өмнө нь харсан даалгавар дээр ялдаг бөгөөд хэлний нөхцөл шаардсан үед ялагддаг.
Энэ нь ямар хувилбаруудыг тайлбарлаж байна вэ

2026 оны 8-р сарын 23-нд lerobot-той харьцуулж шалгасан 0.6.x: pyproject.toml on main reads version = "0.6.2", newest tag v0.6.1, 3 August 2026. Эхлэх заавар 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, Zhao, Kumar, Levine, Finn нарын arXiv-т 2023 оны 4-р сарын 23-нд нийтлэгдсэн. Энэхүү төхөөрөмж нь 50 Гц давтамжтайгаар бичлэг хийдэг бөгөөд дөрвөн вэбкамер 480x640 нягтралтай, 30 fps хурдтайгаар дамжуулдаг: хоёр нь баригч дээр, нэг нь дээрээс, нэг нь урдаас. Хураангуйд 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 баримт бичиг, Хүснэгт IIIlerobot main дээр
Суралцах хурд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 оны 4-р сарын 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 fps хурдтай үед, 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 ms байхад боломжийн, харин 485 ms байхад үгүй. дүгнэлтийн хоцрогдол-ийг үзнэ үү.

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 ам.доллар.
  • Холбоо барих шаардлагатай ажлууд дээр нарийн гүйцэтгэлтэй: 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 (arm)7.4 V arm, 12 V base~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 дээр та node-ийн зөвшөөрлийг нээх шаардлагатай байж магадгүй.

    bash
    lerobot-find-port
    # on Linux, if the port exists but is unreadable:
    sudo chmod 666 /dev/ttyACM0
  3. 3
    Моторын ID болон baudrate-ийг тохируулах

    SO-100 дээр энэ нь угсрахаас өмнө хийгддэг: SO-101-ээс ялгаатай нь угсарч дууссаны дараа холбогчдод хүрэх боломжгүй болдог. Энэ скрипт нь баригчаас эхлэн нэг нэгээр нь моторын автобусаар явж, ID-уудыг 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
lerobot 0.6.x баримт бичигт дурдагдсан сургалтын тушаал, SO-100 өгөгдлийн багц дээр.

--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-ын тохируулга юм.
Санах ой дутагдах нь багцын хэмжээний асуудал, картны асуудал биш

8 багцын хэмжээтэй, хоёр 640x480 камертай ACT нь 24 ГБ-д тав тухтай багтдаг. Хүмүүс хурд нэмэхийн тулд багцын хэмжээг нэмэгдүүлэх эсвэл lerobot-ын бичлэгийн жишээнд үзүүлсэн 1920x1080 фрэймийг оруулах үед энэ нь багтахаа больдог. 1080p-ийн хоёр ResNet-18 backbone нь санах ойн хувьд огт өөр профайлтай. Илүү том карт түрээслэхээс өмнө --batch_size-ийг 4 болгож буулгана уу. Сургалтын явцад санах ой дутагдах-ыг үзнэ үү.

Үргэлжлэх хугацаа: баримт бичигт дурдсанаар 11 ГБ RTX 2080 Ti дээр 5 цаг орчим, lerobot-ын ACT хуудсанд 100k алхамд хэдэн цаг, 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 хувилбарт энэ нь --strategy.type сонгогчтой lerobot-rollout болсон: base, sentry (автоматаар байршуулах бичлэгтэй), highlight (товчлуур дарахад хадгалагддаг цагираг буфер), dagger (хүн оролцсон) болон episodic. 2026 оны 8-р сарын 23-ны байдлаар ACT баримт бичгийн хуудсанд lerobot-rollout командыг ажиллуулдаг блокийн яг дээр "lerobot-record командыг ашиглах" гэж хэвээр байна. Өгүүлбэрийг бус, командыг дагана уу.

Эцсийн загварыг бус, харин шалгалтын цэгийг тогтоохын тулд --policy.pretrained_revision. Үүний тулд ажиллагааг --save_checkpoint_to_hub=true гэж эхлүүлсэн байх шаардлагатай. Энэ нь анхдагчаар идэвхгүй байдаг: үүнгүйгээр lerobot зөвхөн эцсийн загварыг түлхэж, өөр юу ч хийдэггүй. Үүнийг ашигласнаар шалгалтын цэг бүрийг тэгээр дүүргэсэн алхамаар тэмдэглэдэг тул --policy.pretrained_revision=060000 нь 60000 алхамтайг сэргээнэ. Үүнийг бодит гарт 100000-тай харьцуулах нь хамгийн хямд туршилт юм.

Нэг шалгалтын цэг рүү хүрэх хоёр зам

Дээрх бүх зүйл бол гарын авлагын арга бөгөөд энэ нь ажилладаг. Платформын арга нь GPU эсвэл Python орчин эзэмшихгүй байхын тулд хяналтыг солилцдог.

  1. core_scripts, training, feetech, ffmpeg-тэй хамт lerobot 0.6.x-ийг суулгана уу.
  2. Портуудыг олж, моторын ID-г тохируулж, хоёр гарыг тохируулж, 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 fps хурдтай үед 3.3 секунд тутамд харагдахуйц түр зогсолт үүсгэдэг. Нэмж мэдэх хоёр зүйл: нэг үхсэн үе нь ихэвчлэн хэзээ ч бичигдээгүй серво ID, ба ойртох боловч хэзээ ч хаагдахгүй баригч нь үзүүлбэрүүдэд баригчийн хүрээ хэт бага байсныг илтгэнэ. Бүрэн индекс: алдааны горимын хуудаснууд.

Нэг ажиллагааны зардал

ТүвшинЗагваруудАжиллах хугацааЦагийн үнэНэг ажиллагааны зардал
RTX 4090 / 24 GBACT, SmolVLA2-5 цаг0.30 to 0.60 USDойролцоогоор 1-3 ам.доллар
A100 80 GB / H100GR00T N1.7, GR00T N1.5, Pi0.53-6 цаг1.20 to 2.00 USDойролцоогоор 4-12 ам.доллар

Хэрэв та хожим VLA ашиглахыг хүсэж байсан ч ACT-аас эхлэх нь зөв гэдгийг энэ нь харуулж байна. Амжилтгүй болсон ACT ажиллагаа нь нэг аяга кофений үнэтэй тэнцэх бөгөөд таны өгөгдлийн багц тухайн даалгаврыг агуулж байгаа эсэхийг хэдхэн цагийн дотор хэлж өгнө. Амжилтгүй болсон GR00T ажиллагаа нь ижил сургамжийн хувьд дөрөв дахин их үнэтэй. Дараа нь GR00T N1.7 эсвэл SmolVLA руу шилжих нь дахин бүтээх биш, харин хэлбэр өөрчлөх явдал юм. Ерөнхий мэдээлэл: хараа-хэл-үйлдэл загварууд, SO-100-ийн иж бүрэн гарын авлага, анхны бодлогоо сургах болон дуурайх сургалт. Гар байхгүй юу? Шууд дамжуулалтын хуудас нь бүртгүүлэхгүйгээр жолоодох боломжтой бодит SO-100-г шууд дамжуулдаг.

Өөрийн SO-100 дээр ACT-г сургах

Энэхүү яг таарсан хослолын гарын авлага: үндсэн тохиргоо, 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 GB карт дээр хоёроос таван цаг. Шалгалтын цэгүүд 20000 алхам тутамд үүсдэг бөгөөд --resume=true нь ажиллагааг үргэлжлүүлдэг тул эрт зогсоох нь аюулгүй. Зөвхөн эхний тэгш хэсэгт биш: алдагдал тогтворжсоны дараа гөлгөр байдал сайжирдаг.

Алдагдал буурсан ч гар ажиллахгүй хэвээр байна. Одоо яах вэ?

Бараг үргэлж өгөгдлийн багц. Бичигдсэн ангиудыг гар дээр дахин тоглуул: хэрэв дахин тоглуулалт даалгаврыг гүйцэтгэхгүй бол өгөгдөл үүнийг агуулаагүй байна. Дараа нь ямар нэгэн зүйл хөдөлсөн эсэхийг, ялангуяа камерыг шалга. ACT нь урьдчилсан мэдээлэлгүй тул 21-р анги дээрх бага зэргийн хөдөлгөөн нь байнгын шинжтэй.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started