
SmolVLA — це VLA з 450 мільйонами параметрів, який доопрацьовується на одній 24 ГБ карті. Справжні команди lerobot 0.6.1, фактичні значення за замовчуванням, пастки, що коштували цілий день, і вартість одного запуску.
SmolVLA на одному екрані
- •450 мільйонів параметрів, з яких близько 100 мільйонів — це експерт з узгодження потоків дій. lerobot тренує лише цього експерта і залишає VLM замороженим, тому він поміщається на одній карті.
- •Посібник з обчислень LeRobot вказує, що група smolvla потребує приблизно від 10 до 16 ГБ пікової VRAM при розмірі пакету 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 для моделей на 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 M | paper |
| Експерт з дій | about 100 M, flow matching | paper |
| Основа VLM | HuggingFaceTB/SmolVLM2-500M-Video-Instruct | vlm_model_name |
| Використані шари VLM | first 16 of the language model | num_vlm_layers = 16 |
| Візуальні токени на кадр | 64, pixel shuffle, no tiling | paper |
| Попереднє навчання | 481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUs | paper |
Бенчмарки — це причина, чому люди звертають увагу на модель розміром 450 M. На LIBERO вона показує в середньому 87.3 відсотка проти 76.5 для OpenVLA на 7 B і 86.0 для попередньо навченої робототехнічної Pi0 на 3.3 B; на Meta-World — 57.3 проти 47.9. На реальному обладнанні SO-100 багатозадачне навчання дає 75 відсотків на операціях «взяти і покласти», 90 на укладанні, 70 на сортуванні, в середньому 78.3, тоді як ACT навчена для кожного завдання, в середньому показала 48.3. Ті ж самі рядки знаходяться поруч з кожним опублікованим VLA у записі SmolVLA на арені та у порівнянні ACT зі SmolVLA.
SmolVLA не краща за модель 3 B у всьому. Власна таблиця SO-101 у статті є доказом: 90 відсотків успіху в розподілі, 50 відсотків поза ним, на платформі, на якій вона ніколи не була попередньо навчена. Що вона стверджує і підтримує, так це те, що порівняно з Pi0 вона навчається приблизно на 40 відсотків швидше, використовуючи в 6 разів менше пам'яті.
Чому карта на 24 ГБ є правильним вибором для першого запуску
LeRobot постачає посібник з розрахунку обчислювальних ресурсів, найкориснішу сторінку в репозиторії для цього. Він групує політики за розміром основи та надає один об'єм VRAM на групу, виміряний при розмірі пакету 8 з AdamW, що є стандартним для lerobot. Сам стан оптимізатора додає від 30 до 100 відсотків до чистого прямого та зворотного проходу, тому це не лише показники ваг.
| Група | Політики | Піковий VRAM (пакет 8, AdamW) | Початкові GPU |
|---|---|---|---|
| Легкий BC | act, vqbet, tdmpc | about 2 to 6 GB | RTX 3060, L4 |
| Дифузія | diffusion, multi_task_dit | about 8 to 14 GB | RTX 4070+, L4 |
| Малий VLA | smolvla | about 10 to 16 GB | RTX 4080+, L4, A10G |
| Великий VLA | pi0, pi0_fast, pi05, xvla, wall_x | about 24 to 40 GB | A100 40 GB+ |
| Мультимодальний | groot, eo1 | about 24 to 40 GB | A100 40 GB+ |
Десять-шістнадцять гігабайт при розмірі пакету 8 — це аргумент: карта на 24 ГБ вміщує це плюс завантажувач даних. AY-Robots розміщує SmolVLA на RTX 4090 або будь-якій карті на 24 ГБ, мінімум 30 епізодів, LeRobot v3.0 даних, 245 мс на крок дії. Орендовано, це 2-5 годин за 0.30-0.60 USD за годину, близько 1-3 USD за доналаштування запуск, проти 4-12 USD на рівні 80 ГБ, який потрібен GR00T та Pi0.5 (ціни). Невдалий запуск SmolVLA — це кава; невдалий запуск GR00T — обід.

- Підходить для обладнання, яке у вас вже може бути: приблизно 10-16 ГБ при пакеті 8.
- Невдалий запуск коштує годин і кілька доларів, тому ви можете дозволити собі помилитися щодо набору даних.
- Попередньо навчений на громадських наборах даних, поширених під тегом lerobot, з реальними результатами SO-100 та SO-101.
- Він знаходиться в самому lerobot: немає репозиторію постачальника, і smolvla_base не є закритим.
- 450 M — це все ще 450 M: успіх поза розподілом падає з 90 до 50 відсотків у таблиці SO-101 статті.
- Він вимагає дані LeRobot v3.0; запис v2.1 потрібно конвертувати (dataset rejected 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.
# 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Більше про це в як збирати високоякісні дані для навчання VLA. Коротка версія: від 30 до 50 чистих епізодів одного завдання з навмисною варіацією перевершують 200 недбалих епізодів трьох, з перевагою, яку не закриє жоден гіперпараметр.
Встановлення lerobot 0.6.1
# 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Базова lerobot інсталяція є мінімальною і приховує важкі залежності за додатковими пакетами: smolvla додає transformers, num2words та accelerate, training стек даних та wandb, core_scripts залежності для апаратного забезпечення та візуалізації. У Linux шлях встановлення також визначає ваш CUDA wheel: за замовчуванням PyPI використовує cu130 wheel з мінімальною версією драйвера 580.65, тому на старому драйвері спочатку встановіть torch з індексу cu128, а потім lerobot.
--policy.path=lerobot/smolvla_base loads the pretrained 450 M checkpoint and fine-tunes it. --policy.type=smolvla builds a fresh SmolVLA, and the config default load_vlm_weights = False means it does not even pull the SmolVLM2 backbone weights unless you ask. Get it wrong and the run trains happily, costs the same, and learns nothing transferable.
Запуск навчання, команда за командою
- 1Автентифікація в Hub
Базовий контрольний пункт походить з Hub, і ваш набір даних, ймовірно, також.
bashhf auth login - 2Прочитайте параметри один раз
Кожне поле конфігурації конвеєра та політики є прапорцем. Перегляньте його, перш ніж заглиблюватися у вихідний код.
bashlerobot-train --help - 3Почніть доналаштування
Приклад у документації запускає пакет 64 на одному A100; власний якір A100 40 ГБ у посібнику з обчислень — це пакет 16, а 8 — еквівалент 24 ГБ. Прапорець планувальника тут відсутній навмисно, дивіться нижче.
bashlerobot-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Читайте рядок логу, а не лише втрати
Кожні --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Збирайте контрольні пункти, які можна порівняти
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Відновіть, якщо машина вийде з ладу
Вкажіть --config_path на train_config.json поруч із контрольним пунктом. lerobot відмовляється запускатися в існуючий output_dir, якщо ви не відновлюєте роботу, тому ви не можете випадково перезаписати запуск.
bashlerobot-train \ --config_path=<path to the saved train_config.json> \ --resume=true
Прапорці, які насправді змінюють результат
| Прапорець | Що він робить | На 24 ГБ |
|---|---|---|
| --batch_size | Зразки за крок, приблизно лінійно залежить від VRAM | 4 to 8 |
| --steps | Загальна кількість кроків оптимізатора | 20000 first pass |
| --policy.scheduler_decay_steps | Довжина косинусного розпаду, попередньо встановлено 30000 | Діє лише після 30000 |
| --policy.use_amp | Змішана точність; SmolVLA не має поля dtype | true, коли пам'яті мало |
| --num_workers | Процеси завантажувача даних, за замовчуванням 4 | Збільшуйте, доки data_s не перестане зростати |
| --dataset.eval_split | Частка епізодів, що виділяються для кожного завдання | 0.1, with --eval_steps |
| --policy.freeze_vision_encoder | Залишає візуальну вежу замороженою | true on 24 GB |
| --policy.train_expert_only | Лише експерт ~100 М отримує градієнти | true first |
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, виводячи при цьому Auto-scaling LR scheduler. Він ніколи не масштабує вгору: спад обмежується за допомогою `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 | Визначено в |
|---|---|---|
| chunk_size / n_action_steps | 50 / 50 | SmolVLAConfig |
| num_steps (зіставлення потоків, усунення шуму) | 10 | SmolVLAConfig |
| optimizer_lr | 1e-4 | SmolVLAConfig |
| scheduler_warmup_steps | 1000 | SmolVLAConfig |
| scheduler_decay_steps | 30000 | SmolVLAConfig |
| scheduler_decay_lr | 2.5e-6 | SmolVLAConfig |
| freeze_vision_encoder | true | SmolVLAConfig |
| train_expert_only | true | SmolVLAConfig |
| batch_size / steps | 8 / 100000 | TrainPipelineConfig |
| seed / save_freq / num_workers | 1000 / 20000 / 4 | TrainPipelineConfig |
Два рядки, які дивують людей, це freeze_vision_encoder та train_expert_only, обидва істинні. За замовчуванням ви тренуєте приблизно 100 М параметрів, а не 450 М, тому це вміщується на 24 ГБ. Власний еталонний запуск LeRobot на кластері з чотирма GPU H100 змінює обидва на хибні; на одній 24 ГБ карті це перетворює робочий запуск на збій через нестачу пам'яті.
Порада посібника, коли ви обмежені пам'яттю, полягає в тому, щоб зменшити розмір пакету (batch size) та використовувати накопичення градієнтів (gradient accumulation) для відновлення ефективного пакету. У lerobot 0.6.1 немає накопичення градієнтів: TrainPipelineConfig не має такого поля, і цей рядок ніде не зустрічається у випущеному пакеті. Форма AY-Robots показує значення накопичення градієнтів 8 для SmolVLA і також не застосовує його. Ваші важелі на 24 ГБ — це --batch_size, два значення за замовчуванням для заморожування та --policy.use_amp.
Скільки часу займає запуск і скільки кроків достатньо
LeRobot публікує часові орієнтири для five epochs на наборі даних приблизно з 50 episode, близько 45000 frames зі швидкістю 30 fps. Це приблизні цифри, як зазначено в документації, але вони є різницею між очікуванням години та дня.
| Налаштування | Політика | Пакет | Реальний час |
|---|---|---|---|
| Single L4 / A10G (24 GB) | smolvla | 4 | about 3 to 6 h |
| Single A100 40 GB | smolvla | 16 | about 1 to 2 h |
| 4 x H100 80 GB with accelerate | smolvla | 32 | about 1 to 2 h |
| Single RTX 4090 / RTX 3090 (24 GB) | act | 8 | about 30 to 60 min |
Правило полягає в 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.
Запуск доналаштованої політики на маніпуляторі
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_place245 мс на крок дії легко неправильно зрозуміти: політика видає chunk_size = 50 дій за один прямий прохід і виконує n_action_steps = 50 з них, тому частота оплати цих витрат визначається цими параметрами, а не тим, як часто сервоприводи отримують команду. Це те, що розбиття дій на фрагменти дає, і чому модель з 245 мс може керувати рукою з частотою 30 Гц. Залишається затримка висновку наприкінці фрагмента.
| Вимірювання (SmolVLA, реальний SO-100) | Синхронний | Асинхронний |
|---|---|---|
| Час виконання, захоплення та розміщення, 10 спроб | 13.75 s | 9.70 s |
| Цикли захоплення та розміщення у фіксованому часовому вікні | 9 | 19 |
| Показник успішності в середньому за трьома завданнями | 78.3 % | 73.3 % |
Цей третій рядок більшість описів пропускають. Асинхронний висновок приблизно на 30 відсотків швидший і приблизно подвоює пропускну здатність у фіксованому вікні, а в статті показники успішності називаються порівнянними, якими вони в середньому і є. При цьому сортування впало з 70 до 50 відсотків, тоді як захоплення та розміщення зросло на 5. lerobot 0.6.1 містить інший важіль у тому ж бінарному файлі: --inference.type=rtc перемикає розгортання на фрагментування в реальному часі, що рекомендується власним блоком використання скрипта для повільних VLA, Pi0, Pi0.5 та SmolVLA.
Цикл керування становить від 20 до 485 мс на крок дії залежно від моделі, а кругові поїздки через публічний інтернет перетворюють робочу політику на нерішучу. Віддалений висновок є життєздатним для повільного захоплення та розміщення, але не для швидкого реактивного руху: якщо завдання потребує швидких корекцій, графічний процесор має бути в тій же локальній мережі, що й рука.
Не за темою навчального запуску, але це завершує більше проєктів SO-100, ніж будь-який гіперпараметр. Сервоприводи Feetech STS3215 у SO-100 та SO-101 працюють при 7.4 В; 12 В їх знищує. LeKiwi поєднує 7.4 В руку з 12 В основою, саме так неправильний роз'єм живлення знаходить неправильне гніздо.
Два шляхи до однієї контрольної точки
Ви володієте машиною, середовищем та налагодженням. Єдина хмарна залежність — це завантаження базової контрольної точки з Hub. Це правильний шлях, якщо ви хочете змінити політику, якщо дані не можуть покинути вашу мережу, або якщо карта простоює.
- Ви контролюєте CUDA, драйвер, збірку ffmpeg та завантажувач даних.
- Ви можете виправити configuration_smolvla.py та перенавчити того ж дня.
- Ви платите за електроенергію та час, а не за запуск, і налагоджуєте TorchCodec самостійно.
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Той самий запуск за формою: ви обираєте модель та набір даних, бекенд орендує GPU за необхідною VRAM, запускає тренажер та записує контрольні точки до об'єктного сховища. Набір даних може надходити з репозиторію Hugging Face, публічного каталогу, або вашої машини. Почніть з SmolVLA на SO-100, або з матриці на сторінці навчання.
| Поле | Значення за замовчуванням, яке платформа надсилає для SmolVLA | Примітка |
|---|---|---|
| розмір пакету | 2 | Консервативно для рівня 24 ГБ |
| швидкість навчання | 1e-4 | Налаштування lerobot за замовчуванням |
| максимальна кількість кроків | 20000 | Еталонний запуск у документації LeRobot |
| накопичення градієнта | 8 | Показано у формі, не застосовано |
| додаткові параметри | seed, logFreq | Seed робить запуск повторюваним |
- Від 2 до 5 годин на рівні 24 ГБ, приблизно від 1 до 3 USD за запуск.
- Ті самі операції з терміналу за адресою /cli та від агентів ШІ за адресою /mcp.
- Поди висновку мають сторожовий таймер простою, тому забутий под знищує себе, замість того, щоб тихо нараховувати рахунки.
- Ще немає руки? /live транслює фізичний SO-100, яким ви можете керувати без реєстрації.
Завдання, що застрягло в черзі, є симптомом спотового ринку, а не помилкою: завдання навчання застрягло в черзі. Крок за кроком: навчіть свою першу політику та документація з навчання.
Коли SmolVLA є неправильним вибором
Тест на те, чи був SmolVLA правильним першим запуском, полягає не в тому, чи він спрацював, а в тому, чи невдача щось вам сказала. Досягніть 60 або 70 відсотків, і більша модель є розумною наступною інвестицією: дані несуть сигнал. Досягніть 10 відсотків, і модель 3 B, швидше за все, також досягне 10 відсотків, про що ви щойно дізналися за три долари замість дванадцяти.

Варто прочитати перед тим, як витрачати більше: Pi0.5 проти SmolVLA для більшої потужності за тією ж ідеєю, та GR00T N1.7 проти SmolVLA для маршруту NVIDIA, обидва рівня 80 GB за 4-12 USD за запуск. Іншим шляхом, ACT є дешевшою базовою лінією: 80 M параметрів, 20 ms на крок дії, без мовного кондиціонування. Усі п'ять знаходяться на сторінці політик; арена має 85 моделей та 332 результати бенчмарків.

Контрольний список перед масштабуванням
- Чи досяг
lrсвого мінімуму 2.5e-6? Нижче 30000 кроків lerobot перемасштабовує спад і повідомляє про це при запуску; вище цього значення встановіть--policy.scheduler_decay_stepsсамостійно. - Більше одного контрольного пункту та епізоди, виділені за допомогою
--dataset.eval_split, щоб втрати оцінки мали сенс. - Чи рухається політика взагалі? Падіння втрат при нерухомій руці має конкретні причини: втрати падають, політика нічого не робить.
- Чи витримує вона зміну сцени? Якщо ні: політика працює лише в одному налаштуванні.
- Ви записали початкове значення (seed)? lerobot за замовчуванням використовує 1000, тому два незмінені запуски залишаються порівнянними.
- Тільки тоді: більше епізодів, більше варіацій або більша модель. У такому порядку.
Щодо того, чому існують ці моделі та що вони роблять з мовним вводом, є основою; проводить збірку через до першого запуску. Для завершеного контрольного пункту, ; якщо рука ніколи не з'являється, .
Навчіть SmolVLA на власній руці
Виберіть модель та руку, і посібник надасть вам точні значення за замовчуванням, формат набору даних та вартість запуску. SmolVLA знаходиться на рівні 24 ГБ за ціною від 1 до 3 доларів США за запуск.
Відкрити посібники з навчанняЧи можу я дійсно доналаштувати SmolVLA на RTX 4090?▾
Так. Посібник з обчислень LeRobot вказує, що SmolVLA потребує приблизно 10-16 ГБ пікової VRAM при пакеті 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 M параметрів, без мовного кондиціонування. SmolVLA, якщо ви хочете мовне кондиціонування, кілька рядків завдань в одному контрольному пункті та попередньо навчену базу. Обидва працюють на рівні 24 ГБ, тому вибір залежить від завдання, а не від бюджету.
Чи потрібно мені встановлювати --policy.scheduler_decay_steps?▾
Лише коли --steps перевищує 30000. SmolVLA попередньо встановлює косинусний розпад на 30000 кроків, а lerobot 0.6.1 самостійно масштабує його вниз для коротшого запуску, реєструючи "Auto-scaling LR scheduler" при цьому. Він ніколи не масштабується вгору, тому стандартний --steps=100000 залишає останні 70000 кроків на рівні 2.5e-6.
Sources
- SmolVLA: Модель зору-мови-дії для доступної та ефективної робототехніки
- SmolVLA: Ефективна модель зору-мови-дії (блог Hugging Face)
- Картка моделі lerobot/smolvla_base
- Документація LeRobot: SmolVLA
- Документація LeRobot: Посібник з обчислювального обладнання для навчання LeRobot
- Документація LeRobot: Встановлення
- Документація LeRobot: LeRobotDataset v3.0 та конвертер v2.1
- Документація LeRobot: Асинхронний висновок
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (стратегії та RTC висновок)
- lerobot v0.6.1: pyproject.toml (додаткові можливості та точки входу консолі)
- lerobot на PyPI
- Набір даних lerobot/svla_so100_pickplace (50 епізодів, 19631 кадр, v3.0)
Sources
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
- SmolVLA: Efficient Vision-Language-Action Model (Hugging Face blog)
- lerobot/smolvla_base model card
- LeRobot docs: SmolVLA
- LeRobot docs: Compute HW Guide for LeRobot Training
- LeRobot docs: Installation
- LeRobot docs: LeRobotDataset v3.0 and the v2.1 converter
- LeRobot docs: Asynchronous Inference
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (strategies and RTC inference)
- lerobot v0.6.1: pyproject.toml (extras and console entry points)
- lerobot on PyPI
- lerobot/svla_so100_pickplace dataset (50 episodes, 19631 frames, v3.0)
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started