Матрица обучения AY-Robots с пятью строками политик и четырьмя столбцами роботизированных манипуляторов, каждая ячейка ссылается на конкретную модель и руководство по обучению манипулятора
ACTSO-100lerobotобучение с имитациейобучение политики

Как обучить ACT на SO-100 с нуля

AY-Robots ResearchAugust 23, 202616 мин чтения

Обучите Action Chunking Transformer с нуля на SO-100 с помощью lerobot: конфигурация ACT, 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 мс, тогда как VLA с 3 миллиардами параметров требуется от 152 до 485 мс, а стоимость одного запуска составляет от 1 до 3 USD вместо 4 до 12. Это руководство описывает ручной путь с lerobot на SO-100: запись, конфигурация act, что chunk_size и n_action_steps контролируют, расписание из 100000 шагов, развертывание. Затем та же задача на AY-Robots, включая случаи, когда платформа не помогает.

Что нужно знать

  • ACT обучается с нуля: без базовой модели, без предварительного обучения, без языкового ввода. Одна контрольная точка, одна задача.
  • В статье: около 80 млн параметров, около 5 часов на 11 ГБ RTX 2080 Ti, вывод 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 ГБ, от 1 до 3 USD за запуск.
  • Он выигрывает в задаче, которую видел, и проигрывает, как только вы хотите языковое обусловливание.
Какие версии это описывает

Проверено 23 августа 2026 года на соответствие lerobot 0.6.x: pyproject.toml в main содержит version = "0.6.2", новейший тег v0.6.1, 3 августа 2026 года. Руководство, начинающееся с python lerobot/scripts/train.py, предшествует точкам входа консоли lerobot-train, lerobot-record и lerobot-rollout.

Что такое ACT на самом деле

Метод Action Chunking with Transformers основан на статье ALOHA, Обучение точной бимануальной манипуляции с использованием недорогого оборудования, авторы Zhao, Kumar, Levine и Finn, arXiv, 23 апреля 2023 года. Установка записывает данные с частотой 50 Гц с четырех веб-камер, транслирующих видео 480x640 при 30 кадрах в секунду: две на захватах, одна сверху, одна спереди. В аннотации заявлено о шести навыках с успехом от 80 до 90 процентов, среди которых открытие полупрозрачной чашки для приправ и установка батарейки, на основе 10 минут демонстраций.

Основная часть статьи более полезна при планировании сессии записи: 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 до 512latent_dim = 32
темпоральное ансамблированиеотсутствует; --temporal_agg в эталонном кодеtemporal_ensemble_coeff = None
Строка о слоях декодера — не опечатка

В статье указано 7 слоев декодера, lerobot поставляет 1, намеренно. Комментарий в configuration_act.py гласит, что оригинальная реализация содержит ошибку, из-за которой используется только первый слой, ссылаясь на проблему 25 в tonyzhaozh/act: головка действий считывает hs[0], поэтому все семь слоев выполняются, но только первый выход достигает предсказания. Эта проблема открыта и остается без ответа с 23 апреля 2024 года. lerobot соответствует поведению, которое привело к опубликованным результатам, а не напечатанному числу. Увеличьте --policy.n_decoder_layers, и вы обучите модель, которую статья никогда не оценивала.

Разбиение действий на чанки — это вся идея

Обычное клонирование поведения сопоставляет одно наблюдение одному действию, и ошибки накапливаются: отклонение выводит руку из распределения, что приводит к худшему действию, и через тридцать шагов захват находится далеко от объекта. Разбиение действий на чанки предсказывает k действий одновременно и выполняет их, уменьшая эффективный горизонт в k раз. Это также решает проблему, специфичную для человеческих данных: телеоператоры делают паузы, а одношаговая марковская политика не может моделировать паузу, которая зависит от того, что было раньше.

В статье k исследуется путем абляции, а не постулируется. При отключенном временном ансамблировании, усредненном по четырем настройкам, успех возрастает с 1 процента при k = 1 до 44 процентов при k = 100, затем снижается при 200 и 400, когда политика приближается к управлению с разомкнутым контуром. Эта кривая объясняет, почему значение по умолчанию равно 100.

  • chunk_size: сколько будущих действий декодер предсказывает за один прямой проход. По умолчанию 100.
  • n_action_steps: сколько из них вы выполняете до повторного запроса. По умолчанию 100, поэтому lerobot выполняет весь фрагмент в разомкнутом цикле.
  • lerobot проверяет, что n_action_steps <= chunk_size, и вызывает ValueError, если вы зададите их наоборот.

Что имеет значение с операционной точки зрения, так это chunk_size, деленный на частоту кадров. При 30 кадрах в секунду, используемых в примерах SO-100 от lerobot, фрагмент из 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.7Основа VLA, диффузионная голова~3 B (~40 M trained)152 msA100 / H100 80 GB50LeRobot v2.0 or v2.1
GR00T N1.5Основа VLA, предшественник~3 B165 msA100 / H100 80 GB50LeRobot v2.0 or v2.1
Pi0.5VLA с сопоставлением потоков, см. сопоставление потоков~3 B, PaliGemma backbone485 msA100 / H100 80 GB50LeRobot v3.0
Страница политик AY-Robots, показывающая сравнительную таблицу ACT, SmolVLA, GR00T N1.5, GR00T N1.7 и Pi0.5 с количеством параметров, требованиями к GPU, задержкой инференса и минимальным количеством эпизодов
Таблица /policies: ACT имеет наименьшее количество параметров и кратчайшее время шага.
Обучение ACT с нуля
Преимущества
  • 20 мс на шаг действия, самый быстрый из пяти, на карте 24 ГБ, а не A100.
  • От 1 до 3 долларов США за запуск против 4–12 долларов для класса 3 B.
  • Точность в контактных задачах, которые модель видела: 88 и 96 процентов на Slide Ziploc и Slot Battery, где предыдущие методы никогда не проходили первый этап.
Компромиссы
  • Отсутствие языкового обусловливания: строка задачи игнорируется, поэтому одна контрольная точка — это одна задача.
  • Отсутствие семантических априорных знаний: все, что модель знает, получено из ваших 50 эпизодов.
  • Узкая обобщаемость: переместите камеру, и вам придется переобучать модель.
  • Отказы происходят незаметно: потери уменьшаются, рука ничего не делает, логи молчат.
  • Преимущество в скорости помогает только в том случае, если вывод находится рядом с сервоприводами.

Выбирайте ACT, когда задача и сцена фиксированы, а движение должно быть быстрым и точным. Выбирайте модель зрения-языка-действия, когда одна контрольная точка должна охватывать несколько инструкций. Две страницы сравнивают решения напрямую: ACT vs SmolVLA и ACT vs GR00T N1.7. Для опубликованных бенчмарков запись ACT на арене ссылается на источник каждого числа.

Что вам понадобится, прежде чем начать

Одна ведомая рука, одна ведущая рука для телеуправления, как минимум одна камера, GPU 24 ГБ. 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 против 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, изменилось освещение, потому что вы записали половину набора данных днем, захват выполнен двумя способами. Каждый из них дает идеально выглядящую кривую потерь и руку, которая движется не туда. См. потери падают, политика ничего не делает, политика работает только в одной конфигурации и сбор высококачественных данных для обучения.

Перед обучением воспроизведите как минимум пять эпизодов. хранит потоки с камер, состояния суставов и действия для каждого , а воспроизведение передает эти действия обратно руке. Если воспроизведение не выполняет задачу, данные не содержат ее, и обучение не сможет ее изобрести.

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 шагов. Расписание берется из конфигурации обучения lerobot, а не из ACTConfig: 100000 шагов, пакет 8, seed 1000, контрольная точка каждые 20000 шагов, логирование каждые 200.

Полный запуск оставляет пять директорий контрольных точек, от 020000 до 100000, плюс last символическую ссылку. Сохраните их все: лучшая политика часто не последняя.

НастройкаЗначение по умолчанию lerobotФорма AY-Robots ACTКомментарий
Размер пакета88Сначала уменьшите его, если столкнетесь с ограничениями VRAM.
Скорость обучения1e-51e-5То же, что и в статье ALOHA.
Максимальное количество шагов100000100000Примерно там, где набор из 50 эпизодов перестает улучшаться.
Накопление градиента11, does not applyВместо этого измените размер пакета.
Зерно1000exposedТочка входа tyro GR00T не имеет зерна; запуски ACT являются воспроизводимыми.
chunk_size / n_action_steps100 / 100100 / 100, editableГоризонт предсказания и выполнения. Уменьшайте второе, а не первое.
Частота контрольных точек20000not exposedsaveSteps здесь является параметром GR00T.
Нехватка памяти — это проблема размера пакета, а не видеокарты

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

Продолжительность: около 5 часов на 11 ГБ RTX 2080 Ti (согласно статье), несколько часов для 100 тыс. шагов (согласно странице ACT lerobot), от 2 до 5 часов на уровне AY-Robots 24 ГБ. Не сокращайте. 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. По состоянию на 23 августа 2026 года на странице документации ACT по-прежнему говорится «используя команду lerobot-record» непосредственно над блоком, который запускает lerobot-rollout. Следуйте команде, а не предложению.

Чтобы закрепить контрольную точку, а не финальную модель, добавьте --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. Арендуйте или приобретите GPU на 24 ГБ, согласуйте 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, добавьте камеру, форкните тренажер. Для исследований, а не для выполнения задачи, платформа является отвлекающим фактором.

Матрица обучения AY-Robots с пятью строками политик и четырьмя столбцами роботизированных манипуляторов, где каждая ячейка ссылается на конкретное руководство по обучению для этой комбинации модели и манипулятора
Матрица на /train. Строка ACT против столбца SO-100 — это руководство данной статьи.

Что на самом деле идет не так

Почти все трудности не в команде обучения. Они в сопутствующих вещах, упорядоченных по частоте возникновения при первом запуске.

СимптомОбычная причинаСтраница
lerobot-find-port ничего не показываетДрайвер, кабель или права доступа к узлурука не обнаружена
Камера отсутствует во время записиИндекс изменился после перезагрузки, или две камеры на одном USB-контроллерекамера не обнаружена
Обучение отклоняет набор данныхACT требует v3.0, GR00T нуждается в v2.1набор данных отклонен как v3
Недостаточно памяти CUDAРазмер пакета увеличен, или кадры 1080p вместо 480pнедостаточно памяти при обучении
Потери выглядят отлично, рука ничего не делаетДанные не содержат задачу, или камера переместиласьпотери падают, политика ничего не делает
Рывковое движение или пауза в середине эпизодаНедостаточно обучено, задержка на границе блока или вызов вывода по таймаутуполитика зависает в середине движения

Две строки заслуживают особого внимания. ACT обучается на LeRobot v3.0, в то время как загрузчик GR00T на нем падает и требует v2.1, поэтому набор данных, который обучает ACT, может привести к сбою GR00T. И последняя строка содержит два исправления: авторы ACT отвечают на рывковое движение дополнительным обучением, в то время как при n_action_steps равном 100, настоящая задержка происходит на границе блока, видимая пауза каждые 3.3 секунды при 30 кадрах в секунду. Еще два момента, которые стоит знать: один неработающий сустав обычно является идентификатором сервопривода, который никогда не был записан, и захват, который приближается, но никогда не закрывается означает слишком малый диапазон захвата в демонстрациях. Полный индекс: страницы режимов отказа.

Что стоит запуск

УровеньМоделиВремя выполненияЦена за часСтоимость одного запуска
RTX 4090 / 24 GBACT, SmolVLA2 to 5 hours0.30 to 0.60 USDabout 1 to 3 USD
A100 80 GB / H100GR00T N1.7, GR00T N1.5, Pi0.53 to 6 hours1.20 to 2.00 USDabout 4 to 12 USD

Это аргумент в пользу начала работы с ACT, даже если позже вы захотите использовать VLA. Неудачный запуск ACT стоит как чашка кофе и в течение нескольких часов покажет, содержит ли ваш набор данных нужную задачу. Неудачный запуск GR00T стоит в четыре раза дороже за тот же урок. Переход на GR00T N1.7 или SmolVLA впоследствии — это изменение формы, а не перестройка. Справочная информация: модели зрения, языка и действий, полное руководство по SO-100, обучите свою первую политику и обучение с имитацией. Нет манипулятора? Страница трансляции транслирует реальный SO-100, которым можно управлять без регистрации.

Обучите ACT на вашем SO-100

Руководство по этой конкретной комбинации: настройки по умолчанию, уровень GPU и стоимость запуска. Выберите набор данных, бэкенд арендует карту и записывает контрольные точки.

Открыть руководство по обучению
Существует ли предварительно обученная модель ACT, которую я могу дообучить?

Нет. У ACT нет базовой модели; она существует только после того, как вы ее обучите. Это не недостаток инструментария, это суть ACT: в статье политика обучается с нуля для каждой задачи. Для контрольной точки поставщика используйте GR00T N1.7 или Pi0.5.

Сколько эпизодов мне действительно нужно?

50: столько ALOHA записывала для каждой задачи (100 для Thread Velcro, самой сложной) и минимум для AY-Robots. lerobot рекомендует около 10 на каждое местоположение объекта, при фиксированных камерах и постоянном захвате. Пятьдесят чистых эпизодов лучше ста, где камера двигалась.

Стоит ли менять chunk_size со 100?

Обычно нет. Абляция поднимается с 1 процента при k = 1 до 44 процентов при k = 100 и затем снижается, так что 100 находится близко к максимуму. Если манипулятор слишком долго выполняет действие, вместо этого уменьшите n_action_steps: при 30 fps, 25 повторных запросов каждые 0.8 секунды.

Сколько времени занимает обучающий запуск, и можно ли его остановить раньше?

От двух до пяти часов на карте 24 ГБ для 100000 шагов. Контрольные точки сохраняются каждые 20000 шагов, и --resume=true возобновляет запуск, так что ранняя остановка безопасна. Только не на первом ровном участке: плавность улучшается после того, как потери стабилизируются.

Потери снизились, а манипулятор все еще не справляется. Что теперь?

Почти всегда дело в наборе данных. Воспроизведите записанные эпизоды на манипуляторе: если воспроизведение не выполняет задачу, значит, данные ее не содержат. Затем проверьте, не перемещалось ли что-либо, особенно камера. У ACT нет априорных знаний, поэтому небольшое изменение в эпизоде 21 является постоянным.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started