Страница модели SmolVLA на AY-Robots, показывающая количество параметров, уровень GPU, задержку вывода на шаг действия и минимальное количество эпизодов
SmolVLALeRobotОбучение VLAТонкая настройкаSO-100

Как обучить SmolVLA на GPU с 24 ГБ (lerobot 0.6.1)

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

SmolVLA — это VLA с 450 миллионами параметров, который дообучается на одной карте с 24 ГБ. Реальные команды lerobot 0.6.1, фактические значения по умолчанию, подводные камни, которые могут стоить дня работы, и стоимость одного запуска.

SmolVLA на одном экране

  • 450 млн параметров, около 100 млн из них — эксперт по сопоставлению потоков действий. lerobot обучает только этого эксперта и сохраняет VLM замороженным, поэтому он помещается на одной карте.
  • Руководство по вычислениям LeRobot указывает, что группа smolvla требует примерно от 10 до 16 ГБ пиковой видеопамяти при размере пакета 8 с AdamW. Отсюда 24 ГБ.
  • Точкой входа является lerobot-train. В блоге SmolVLA от июня 2025 года по-прежнему указывается python lerobot/scripts/train.py, путь, который больше не существует. Все ниже относится к lerobot 0.6.1.
  • Косинусное расписание предустановлено на затухание в течение 30000 шагов. lerobot 0.6.1 масштабирует его вниз для более короткого запуска и логирует это, но никогда не масштабирует вверх: стандартный запуск на 100000 шагов заканчивается на уровне 2.5e-6 в течение 70000 шагов.
  • Тридцать эпизодов — это минимум для AY-Robots, на уровне 24 ГБ стоимостью от 1 до 3 USD за запуск по сравнению с 4 до 12 USD для моделей на 80 ГБ.

Большинство людей, которые хотят модель зрения, языка и действий на реальной руке, останавливаются на аппаратной части. GR00T N1.7 и Pi0.5 имеют около трех миллиардов параметров каждая и требуют A100 80 ГБ или H100. Если у вас игровой ПК с RTX 4090, то это конец пути. SmolVLA является исключением: 450 млн параметров, внутри LeRobot, созданная для тонкой настройки на одной потребительской карте и обслуживания с CPU.

Сначала ручной путь: установите lerobot, загрузите контрольную точку lerobot/smolvla_base, запустите реальную команду, читайте вывод во время выполнения. Затем путь через платформу и то, где он не помогает.

Что такое SmolVLA, в числах, которые можно проверить

SmolVLA — это согласование потоков политика, прикрепленная к небольшой визуально-языковой модели. Основой является SmolVLM2-500M-Video-Instruct; в статье сохраняются только первые 16 слоев ее языковой модели, каждый кадр камеры ограничивается 64 визуальными токенами с перемешиванием пикселей вместо мозаичного расположения изображений, и перекрестное внимание чередуется со слоем самовнимания через каждый второй блок. Стоимость инференса была проектным ограничением, а не второстепенной задачей.

СвойствоЗначениеИсточник
Общее количество параметровabout 450 Mpaper
Эксперт по действиямabout 100 M, flow matchingpaper
Основа VLMHuggingFaceTB/SmolVLM2-500M-Video-Instructvlm_model_name
Используемые слои VLMfirst 16 of the language modelnum_vlm_layers = 16
Визуальные токены на кадр64, pixel shuffle, no tilingpaper
Предварительное обучение481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUspaper

Бенчмарки объясняют, почему люди обращают внимание на модель с 450 миллионами параметров. На LIBERO она показывает в среднем 87,3 процента против 76,5 у OpenVLA (7 млрд) и 86,0 у Pi0 (3,3 млрд), предварительно обученной для робототехники; на Meta-World — 57,3 против 47,9. На реальном оборудовании SO-100 многозадачное обучение дает 75 процентов на задачах «взять и положить», 90 на укладке, 70 на сортировке, в среднем 78,3, тогда как ACT, обученная для каждой задачи, в среднем показала 48,3. Те же строки находятся рядом с каждой опубликованной VLA в записи арены SmolVLA и в сравнении ACT со SmolVLA.

Честная версия заявления о размере

SmolVLA не превосходит 3-миллиардную модель во всем. Таблица SO-101 из самой статьи является показателем: 90 процентов успеха в распределении, 50 процентов вне его, на платформе, на которой она никогда не обучалась. Что она действительно утверждает и подтверждает, так это то, что по сравнению с Pi0 она обучается примерно на 40 процентов быстрее, используя в 6 раз меньше памяти.

Почему карта на 24 ГБ — правильный выбор для первого запуска

LeRobot поставляет руководство по расчету вычислительных ресурсов, самую полезную страницу в репозитории для этой цели. Оно группирует политики по размеру бэкбона и предоставляет один объем VRAM на группу, измеренный при размере батча 8 с AdamW, что является настройкой по умолчанию для lerobot. Только состояние оптимизатора добавляет от 30 до 100 процентов по сравнению с простым прямым и обратным проходом, поэтому это не только данные о весах.

ГруппаПолитикиПиковая VRAM (батч 8, AdamW)Рекомендуемые GPU
Легкий BCact, vqbet, tdmpcоколо 2–6 ГБRTX 3060, L4
Диффузияdiffusion, multi_task_ditоколо 8–14 ГБRTX 4070+, L4
Малый VLAsmolvlaоколо 10–16 ГБRTX 4080+, L4, A10G
Большой VLApi0, pi0_fast, pi05, xvla, wall_xоколо 24–40 ГБA100 40 GB+
Мультимодальныйgroot, eo1около 24–40 ГБA100 40 GB+

Десять-шестнадцать гигабайт при размере батча 8 — вот аргумент: карта на 24 ГБ вмещает это плюс загрузчик данных. AY-Robots размещает SmolVLA на RTX 4090 или любой карте на 24 ГБ, минимум 30 эпизодов, LeRobot v3.0 данных, 245 ms за шаг действия. В аренду это 2–5 часов по 0.30–0.60 USD в час, около 1–3 USD за тонкую настройку запуск, против 4–12 USD на уровне 80 ГБ, который требуют GR00T и Pi0.5 (цены). Неудачный запуск SmolVLA — это стоимость кофе; неудачный запуск GR00T — стоимость обеда.

Таблица стоимости AY-Robots: карта на политику, время выполнения, цена за выполнение, необходимое количество эпизодов
SmolVLA и ACT находятся в строке 24 ГБ, три модели 3 B — в строке 80 ГБ.
Начало работы со SmolVLA вместо модели 3 B
Что вы получаете
  • Подходит для оборудования, которое у вас уже может быть: примерно 10–16 ГБ при размере пакета 8.
  • Неудачный запуск стоит часов и нескольких долларов, поэтому вы можете позволить себе ошибиться с набором данных.
  • Предварительно обучен на общедоступных наборах данных, распространяемых под тегом lerobot, с реальными результатами SO-100 и SO-101.
  • Он находится в самом lerobot: нет репозитория поставщика, и smolvla_base не ограничен.
Что вы теряете
  • 450 M — это все еще 450 M: успех вне распределения падает с 90 до 50 процентов в таблице SO-101 статьи.
  • Требуются данные LeRobot v3.0; запись v2.1 должна быть преобразована (набор данных отклонен v3).
  • 245 мс на шаг действия — это компетентный контроллер для операций «взять и положить», а не реактивный.
  • Пример из документации запускает пакет 64 на A100; на 24 ГБ вы меняете размер пакета на реальное время выполнения.

Шаг 0: набор данных определяет запуск, а не флаги

Ничто из нижеперечисленного не имеет значения, если запись плохая. Страница LeRobot SmolVLA прямо заявляет: эталонный набор данных состоял из 50 эпизодов по 5 позициям куба, по 10 на позицию, и та же задача с 25 эпизодами выполнялась плохо. Повторение для каждой вариации обобщает, а общее количество эпизодов — нет. Никогда не записывали? Начните с записи вашего первого набора данных, с настольным клиентом, который записывает данные в формате LeRobot из сессии телеуправления, или возьмите один из каталога наборов данных.

  • Не менее 30 эпизодов на AY-Robots, около 50 для эталонного рецепта LeRobot.
  • Каждая вариация, которую вы ожидаете при развертывании, повторенная несколько раз.
  • Одна строка задачи, написанная идентично во время записи и развертывания. Модель обусловлена этим текстом.
  • Фиксированные камеры. Камера, перемещенная между записью и развертыванием, является наиболее частой причиной того, что чистая кривая потерь приводит к неподвижной руке.
  • Отложенная вариация, на которой вы никогда не обучались, чтобы у вас было что-то честное для тестирования.
Ловушка набора данных, которая стоит дня

SmolVLA, Pi0.5 и ACT требуют LeRobot v3.0. GR00T N1.7 и N1.5 требуют v2.0 или v2.1 и их загрузчик аварийно завершает работу на v3.0. Запишите один раз, планируйте сравнить модели позже, и вы так или иначе конвертируете: dataset rejected v3.

bash
# v2.1 -> v3.0: aggregates per-episode files into shards and writes the episode offsets
python -m lerobot.scripts.convert_dataset_v21_to_v30 --repo-id=${HF_USER}/so100_pick_place
Конвертер поставляется внутри lerobot, поэтому ничего дополнительного устанавливать не нужно. В пакете нет конвертера в обратном направлении.

Подробнее об этом в как собирать высококачественные данные для обучения VLA. Краткая версия: от 30 до 50 чистых эпизодов одной задачи с преднамеренными вариациями превосходят 200 небрежных эпизодов из трех, с отрывом, который не может сократить ни один гиперпараметр.

Установка lerobot 0.6.1

bash
# LeRobot needs Python 3.12 or newer as of 0.6.x
conda create -y -n lerobot python=3.12
conda activate lerobot

# TorchCodec decodes the dataset videos and wants ffmpeg
conda install ffmpeg -c conda-forge

# Base package is deliberately thin; extras pull the rest
pip install 'lerobot[smolvla,training,core_scripts]'

# Sanity check: prints the lerobot version, the GPU torch sees, and the console scripts you got
lerobot-info
Путь PyPI. Чтобы внести изменения в тренажер, клонируйте репозиторий и используйте pip install -e ".[smolvla,training]" вместо этого.

Базовая установка lerobot является минимальной и скрывает тяжелые зависимости за дополнительными пакетами: smolvla добавляет transformers, num2words и accelerate, training — стек данных и wandb, core_scripts — зависимости для оборудования и визуализации. В Linux путь установки также определяет ваш CUDA-пакет: по умолчанию PyPI предлагает пакет cu130 с минимальной версией драйвера 580.65, поэтому при использовании более старого драйвера сначала установите torch из индекса cu128, а затем lerobot.

policy.path и policy.type — это не один и тот же флаг

--policy.path=lerobot/smolvla_base загружает предварительно обученную контрольную точку на 450 М и донастраивает ее. --policy.type=smolvla создает новый SmolVLA, а значение по умолчанию в конфигурации load_vlm_weights = False означает, что он даже не загружает веса основы SmolVLM2, если вы не запросите это явно. Если вы ошибетесь, запуск будет успешно выполнен, стоить столько же, но не научит ничему передаваемому.

Запуск обучения, команда за командой

  1. 1
    Аутентификация в Hub

    Базовая контрольная точка берется из Hub, и ваш набор данных, вероятно, тоже.

    bash
    hf auth login
  2. 2
    Ознакомьтесь с опциями

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

    bash
    lerobot-train --help
  3. 3
    Начните дообучение

    Пример в документации запускает пакет 64 на одной A100; собственная привязка A100 40 ГБ в руководстве по вычислениям — это пакет 16, а 8 — эквивалент для 24 ГБ. Флаг планировщика здесь отсутствует намеренно, см. ниже.

    bash
    lerobot-train \
      --policy.path=lerobot/smolvla_base \
      --dataset.repo_id=${HF_USER}/so100_pick_place \
      --batch_size=8 \
      --steps=20000 \
      --save_freq=2000 \
      --log_freq=200 \
      --seed=1000 \
      --output_dir=outputs/train/smolvla_pick_place \
      --job_name=smolvla_pick_place \
      --policy.device=cuda \
      --wandb.enable=true
  4. 4
    Читайте строку лога, а не только потери

    Каждые --log_freq шагов lerobot выводит loss, grdn, lr, updt_s, data_s, smp/s и, на CUDA, mem_gb. mem_gb показывает, помещается ли пакет, lr — затухает ли расписание, а data_s, приближающийся к updt_s, означает, что узким местом является загрузчик данных, а не GPU.

    bash
    # if data_s creeps toward updt_s
    lerobot-train ... --num_workers=8
  5. 5
    Собирайте контрольные точки для сравнения

    save_freq по умолчанию равен 20000, поэтому запуск на 20000 шагов оставляет одну контрольную точку, и не с чем ее сравнивать. Установите 2000. Для отправки в Hub требуется --policy.repo_id.

    bash
    --save_freq=2000 \
    --policy.repo_id=${HF_USER}/smolvla_pick_place \
    --save_checkpoint_to_hub=true
  6. 6
    Возобновите, если машина выйдет из строя

    Укажите --config_path на train_config.json рядом с контрольной точкой. lerobot отказывается запускаться в существующий output_dir, если вы не возобновляете работу, поэтому вы не сможете случайно перезаписать запуск.

    bash
    lerobot-train \
      --config_path=<path to the saved train_config.json> \
      --resume=true

Флаги, которые действительно влияют на результат

ФлагЧто делаетНа 24 ГБ
--batch_sizeОбразцы за шаг, примерно линейно зависящие от VRAMот 4 до 8
--stepsОбщее количество шагов оптимизатора20000 первый проход
--policy.scheduler_decay_stepsДлина косинусного затухания, предустановка 30000Влияет только после 30000
--policy.use_ampСмешанная точность; SmolVLA не имеет поля dtypetrue при нехватке памяти
--num_workersПроцессы загрузчика данных, по умолчанию 4Увеличивайте, пока data_s не перестанет расти
--dataset.eval_splitДоля эпизодов, отложенных для каждой задачи0.1, с --eval_steps
--policy.freeze_vision_encoderСохраняет визуальный энкодер замороженнымtrue на 24 ГБ
--policy.train_expert_onlyТолько эксперт (~100 М) получает градиентыtrue сначала
Расписание: что обрабатывает 0.6.1, а что нет

SmolVLA предустанавливает косинусное расписание: `scheduler_warmup_steps = 1000`, `scheduler_decay_steps = 30000`, `scheduler_decay_lr = 2.5e-6`. Более ранние рекомендации утверждают, что выполнение в 20000 шагов при этом останавливается в середине фазы затухания. В версии 0.6.1 это не так: `CosineDecayWithWarmupSchedulerConfig.build()` передается `--steps`, и ниже `num_decay_steps` он масштабирует оба значения: разогрев с 1000 до 666 и затухание с 30000 до 20000, выводя при этом *Автоматическое масштабирование планировщика LR*. Он никогда не масштабирует вверх: затухание ограничивается `min(current_step, decay_steps)`, поэтому стандартный `--steps=100000` остается на минимальном уровне с шага 30000 до конца, что составляет 70 процентов выполнения. Только для этой длинной части по-прежнему требуется `--policy.scheduler_decay_steps`. Столбец `lr` — это то, что нужно проверить.

Настройки по умолчанию, которые вы наследуете, если ничего не меняете

Конфигурация политики в lerobot содержит свои собственные предустановки оптимизатора и планировщика, и если вы не установите use_policy_training_preset=false эти предустановки будут применены. Половина вопросов, которые люди задают об обучении SmolVLA, отвечаются настройкой по умолчанию, о существовании которой они не знали.

НастройкаЗначение по умолчанию в lerobot 0.6.1Определено в
размер_чанка / количество_шагов_действия50 / 50SmolVLAConfig
количество_шагов (удаление шума методом flow matching)10SmolVLAConfig
скорость_обучения_оптимизатора1e-4SmolVLAConfig
шаги_разогрева_планировщика1000SmolVLAConfig
шаги_затухания_планировщика30000SmolVLAConfig
скорость_обучения_затухания_планировщика2.5e-6SmolVLAConfig
заморозить_визуальный_кодировщикtrueSmolVLAConfig
обучать_только_экспертаtrueSmolVLAConfig
размер_пакета / шаги8 / 100000TrainPipelineConfig
зерно / частота_сохранения / количество_работников1000 / 20000 / 4TrainPipelineConfig

Две строки, которые удивляют людей, это freeze_vision_encoder и train_expert_only, обе истинны. Из коробки вы обучаете примерно 100 M параметров, а не 450 M, поэтому это помещается на 24 ГБ. Собственный эталонный запуск LeRobot на кластере из четырех GPU H100 переключает обе в false; на одной 24 ГБ карте это превращает рабочий запуск в .

Ручка памяти, которой нет

Совет руководства, когда вы ограничены памятью, — уменьшить размер пакета и использовать накопление градиента для восстановления эффективного пакета. В lerobot 0.6.1 нет накопления градиента: TrainPipelineConfig не имеет такого поля, и эта строка нигде не встречается в выпущенном пакете. Форма AY-Robots показывает значение накопления градиента 8 для SmolVLA и также не применяет его. Ваши рычаги на 24 ГБ — это --batch_size, два значения по умолчанию для заморозки и --policy.use_amp.

Сколько времени занимает запуск и сколько шагов достаточно

LeRobot публикует привязки реального времени для пяти эпох на наборе данных примерно из 50 эпизодов, около 45000 кадров при 30 fps. Порядок величин, как говорится в документации, но они представляют собой разницу между ожиданием часа и дня.

НастройкаПолитикаПакетРеальное время
Один L4 / A10G (24 ГБ)smolvla4около 3–6 ч
Один A100 40 ГБsmolvla16около 1–2 ч
4 x H100 80 ГБ с acceleratesmolvla32около 1–2 ч
Один RTX 4090 / RTX 3090 (24 ГБ)act8около 30–60 мин
Выполните расчет эпох, прежде чем выбирать --steps

Правило состоит в 5–10 эпохах по всему набору данных, а не в фиксированном количестве шагов: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). В эталонном наборе данных, на который указывают документы, lerobot/svla_so100_pickplace, метаданные сообщают о 50 эпизодах и 19631 кадре: пакет из 8 дает около 2454 шагов за эпоху, поэтому 20000 шагов — это примерно 8 эпох. Уменьшите размер пакета вдвое, и тот же бюджет позволит выполнить вдвое меньше эпох, поэтому повторяйте это всякий раз, когда изменяете --batch_size.

Запуск доработанной политики на манипуляторе

bash
lerobot-rollout \
  --strategy.type=base \
  --robot.type=so100_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.id=my_follower_arm \
  --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
  --task="Grasp the cube and put it in the box." \
  --policy.path=${HF_USER}/smolvla_pick_place
Строка задачи должна совпадать с той, с которой вы производили запись. Модель обусловлена этим текстом, поэтому перефразирование является другой инструкцией.

245 мс на шаг действия легко неправильно истолковать: политика выдает chunk_size = 50 действий за один прямой проход и выполняет n_action_steps = 50 из них, поэтому частота оплаты этой стоимости определяется этими параметрами, а не частотой получения команд сервоприводами. Это то, что дает, и почему модель с задержкой 245 мс может управлять манипулятором с частотой 30 Гц. Что остается, так это в конце пакета.

Измерение (SmolVLA, реальный SO-100)СинхронныйАсинхронный
Время выполнения, захват и перемещение, 10 попыток13.75 s9.70 s
Циклы захвата и перемещения в фиксированном временном окне919
Средний процент успеха по трем задачам78.3 %73.3 %

Эта третья строка — то, что большинство статей пропускают. Асинхронный вывод примерно на 30 процентов быстрее и примерно удваивает пропускную способность в фиксированном окне, а в статье говорится, что показатели успеха сопоставимы, что в среднем так и есть. При этом сортировка упала с 70 до 50 процентов, в то время как захват и перемещение выросли на 5. lerobot 0.6.1 содержит другой рычаг в том же бинарном файле: --inference.type=rtc переключает развертывание на пакетирование в реальном времени, что собственный блок использования скрипта рекомендует для медленных VLA, Pi0, Pi0.5 и SmolVLA.

Вывод должен находиться рядом с сервоприводами

Контур управления составляет от 20 до 485 мс на шаг действия в зависимости от модели, а задержки при передаче данных через публичный интернет превращают работающую политику в нерешительную. Удаленный вывод жизнеспособен для медленного захвата и перемещения, но не для быстрого реактивного движения: если задача требует быстрых корректировок, GPU должен находиться в той же локальной сети, что и манипулятор.

7.4 В, не 12 В

Не по теме обучающего запуска, но это завершает больше проектов SO-100, чем любой гиперпараметр. Сервоприводы Feetech STS3215 в SO-100 и SO-101 работают при 7.4 В; 12 В их уничтожает. LeKiwi сочетает манипулятор на 7.4 В с основанием на 12 В, из-за чего неправильный штекер питания находит неправильное гнездо.

Два пути к одной контрольной точке

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

  • Вы контролируете CUDA, драйвер, сборку ffmpeg и загрузчик данных.
  • Вы можете исправить configuration_smolvla.py и переобучить модель в тот же день.
  • Вы платите за электричество и время, а не за каждый запуск, и отлаживаете TorchCodec самостоятельно.
bash
pip install 'lerobot[smolvla,training,core_scripts]'
hf auth login

lerobot-train \
  --policy.path=lerobot/smolvla_base \
  --dataset.repo_id=${HF_USER}/so100_pick_place \
  --batch_size=8 --steps=20000 \
  --save_freq=2000 --seed=1000 \
  --output_dir=outputs/train/smolvla_pick_place \
  --job_name=smolvla_pick_place \
  --policy.device=cuda --wandb.enable=true
Весь ручной маршрут в одном блоке, lerobot 0.6.1.

Когда SmolVLA — неправильный выбор

Критерий того, был ли SmolVLA правильным первым запуском, не в том, сработал ли он, а в том, дала ли неудача какую-то информацию. Достигните 60 или 70 процентов, и более крупная модель станет разумным следующим шагом: данные несут сигнал. Достигните 10 процентов, и модель в 3 миллиарда параметров, скорее всего, также достигнет 10 процентов, что вы только что узнали за три доллара вместо двенадцати.

Матрица обучения AY-Robots: пять политик в строках, четыре роботизированные руки в столбцах
Каждая ячейка — это свой собственный гид. SmolVLA имеет по одному для каждой из четырех рук.

Стоит прочитать, прежде чем тратить больше: Pi0.5 против SmolVLA, для большей производительности на той же идее, и GR00T N1.7 против SmolVLA, для пути NVIDIA, оба уровня 80 ГБ по цене от 4 до 12 USD за запуск. Другой путь, ACT — это более дешевая базовая модель: 80 млн параметров, 20 мс на шаг действия, без языкового обусловливания. Все пять находятся на странице политик; арене имеет 85 моделей и 332 результата бенчмарков.

Сравнение политик AY-Robots: параметры, уровень GPU, задержка, минимальное количество эпизодов
Четыре числа, которые определяют запуск.

Чек-лист перед масштабированием

  1. Достиг ли lr своего минимума в 2.5e-6? Ниже 30000 шагов lerobot перемасштабирует затухание и сообщает об этом при запуске; выше этого значения установите --policy.scheduler_decay_steps самостоятельно.
  2. Более одного чекпоинта и эпизоды, отложенные с помощью --dataset.eval_split, чтобы потери при оценке имели смысл.
  3. Движется ли политика вообще? Падающие потери при неподвижной руке имеют конкретные причины: потери падают, политика ничего не делает.
  4. Выдерживает ли она смену сцены? Если нет: политика работает только в одной конфигурации.
  5. Записали ли вы сид? lerobot по умолчанию использует 1000, поэтому два нетронутых запуска остаются сопоставимыми.
  6. Только потом: больше эпизодов, больше вариаций или более крупная модель. В таком порядке.

О том, почему эти модели существуют и что они делают с языковым вводом, — это предыстория; описывает сборку от до первого запуска . Для готового чекпоинта ; если рука так и не появляется, .

Обучите SmolVLA на своей собственной руке

Выберите модель и руку, и руководство предоставит вам точные значения по умолчанию, формат набора данных и стоимость запуска. SmolVLA находится на уровне 24 ГБ по цене от 1 до 3 долларов США за запуск.

Открыть руководства по обучению
Действительно ли я могу дообучить SmolVLA на RTX 4090?

Да. Руководство по вычислениям LeRobot оценивает пиковое потребление VRAM SmolVLA примерно в 10–16 ГБ при размере батча 8 с AdamW и указывает, что потребительские карты с 24 ГБ комфортны для этого. Батч 64 в примере документации используется с одной A100. Память масштабируется примерно линейно с размером батча, поэтому используйте 4 или 8 и следите за mem_gb.

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

AY-Robots устанавливает минимум в 30. Документация LeRobot рекомендует около 50 и сообщает, что 25 эпизодов одной и той же задачи показали плохие результаты. Структура важнее количества: эталонный набор состоял из 5 позиций куба по 10 эпизодов каждая, и именно это повторение обеспечивает обобщение.

Документация говорит батч 64, платформа отправляет батч 2. Что правильно?

Оба варианта, для разного оборудования. Пример в документации использует батч 64 и указывает около 4 часов для 20000 шагов на одной A100; для A100 40 ГБ в руководстве по вычислениям указан батч 16. Батч 2 — это то, что AY-Robots отправляет на уровне 24 ГБ. Локально 4–8 — это середина, и с этим меняется арифметика эпох.

SmolVLA или ACT для первого запуска на SO-100?

ACT, если задача — одно повторяющееся движение и вам нужен самый быстрый цикл: 20 мс на шаг действия, 80 млн параметров, без языкового обусловливания. SmolVLA, если вам нужно языковое обусловливание, несколько строк задач в одном чекпоинте и предварительно обученная база. Оба варианта работают на уровне 24 ГБ, поэтому выбор зависит от задачи, а не от бюджета.

Нужно ли мне устанавливать --policy.scheduler_decay_steps?

Только когда --steps превышает 30000. SmolVLA предустанавливает косинусное затухание на 30000 шагов, а lerobot 0.6.1 самостоятельно масштабирует его вниз для более короткого запуска, логируя "Auto-scaling LR scheduler" при этом. Он никогда не масштабируется вверх, поэтому стандартный --steps=100000 оставляет последние 70000 шагов на уровне 2.5e-6.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started