
TinyVLA та SmolVLA розміщують робочий VLA з менш ніж 1 мільярдом параметрів. Реальні цифри з обох статей, налаштування за замовчуванням LeRobot, виміряна затримка та вартість запуску на карті 24 ГБ.
Майже кожна візіо-мовна модель дії, про яку пишуть, передбачає використання карти для датацентрів. OpenVLA має 7 B параметрів. GR00T N1.7 та Pi0.5 мають близько 3 B параметрів і потребують A100 80 GB для донавчання. Якщо на вашому столі стоїть карта 4090, цей клас моделей недосяжний.
Дві статті стверджують, що це не потрібно. TinyVLA (arXiv 2409.12514, прийнята IEEE Robotics and Automation Letters у лютому 2025 року) створює VLA з основи від 400 M до 1.3 B плюс дифузійну голову дії. SmolVLA (arXiv 2506.01844, подана 2 червня 2025 року) поставляється з 450 M параметрами, відкритими вагами, відкритими даними та скриптом, який працює на одній споживчій карті. Ось що виміряли обидві, і де аргумент про моделі менше 1 B перестає бути актуальним.
Що потрібно знати
- •TinyVLA поставляється в трьох розмірах: 422 M загальних з 101 M навчальних, 740 M з 138 M, 1.3 B з 143 M. Лише перші два мають менше 1 B.
- •Його Таблиця IV вимірює 14 ms на передбачення дії для TinyVLA-1B на одній A6000, проти 292 ms для OpenVLA-7B та 140 ms для зменшеної OpenVLA-1B.
- •Голова забезпечує цю швидкість, а не основа: замініть дифузійну голову TinyVLA-H на голову ACT, і п'ять завдань для реальних роботів впадуть із середнього показника 94.0 до однозначних чисел. Голова MLP набирає 0 скрізь.
- •SmolVLA має 450 M, приблизно 100 M з яких є експертом дії, попередньо навченим на 481 наборі даних спільноти LeRobot та 10.6 M кадрах. Він показує 87.3 на LIBERO проти 86.0 для попередньо навченого на робототехніці Pi0 з 3.3 B, та 78.3 на трьох реальних завданнях SO-100 проти 61.7 для Pi0 з 3.5 B.
- •Навчена на одному завданні без попереднього навчання, SmolVLA падає до 40.0 на цих завданнях, нижче 48.3 ACT. Мале не означає автоматично легке.
- •TinyVLA не має інтеграції з LeRobot і прив'язується до стеку CUDA 11.7 wheel. SmolVLA знаходиться в lerobot і коштує приблизно 1 до 3 USD за запуск на рівні 24 GB тут.
Що насправді вважається малою VLA
Кількість параметрів на картці моделі не є одним числом. Вона може означати загальну кількість ваг, ваги, завантажені під час висновку, або ваги, які отримують градієнти під час . TinyVLA повідомляє обидва значення, і розрив великий: TinyVLA-H має 1.3 B загальних параметрів, але 143 M тренованих, оскільки візуальна частина та більша частина мовної моделі залишаються замороженими, тоді як адаптери LoRA та голова дії рухаються. У статті зазначено, що частка тренованих параметрів становить близько 5 відсотків.
| Модель | Параметри | Основа | Голова дії | Джерело |
|---|---|---|---|---|
| TinyVLA-S | 422 M загалом, 101 M тренованих | Llava-Pythia ~400 M | Diffusion (droid_diffusion U-Net) | arXiv 2409.12514 |
| TinyVLA-B | 740 M загалом, 138 M тренованих | Llava-Pythia ~700 M | Diffusion | arXiv 2409.12514 |
| TinyVLA-H | 1.3 B загалом, 143 M тренованих | Llava-Pythia ~1.3 B | Diffusion | arXiv 2409.12514 |
| SmolVLA | 450 M, ~100 M експерт дії | SmolVLM2-500M-Video-Instruct | Flow matching expert | arXiv 2506.01844 |
| Octo-Small | 27 M | ViT-S scale, T5-Base text encoder | Diffusion | octo-small-1.5 card |
| ACT | ~80 M | ResNet, без мовної моделі | Пряма регресія фрагментів | AY-Robots catalog |
| OpenVLA | 7 B | Llama 2 7 B, DINOv2 and SigLIP encoders | Авторегресійні токени дії | arXiv 2406.09246 |
Два рядки варто обговорити. з приблизно 80 M менший за все інше тут, але не має мовної моделі, тому це не VLA: він вивчає одне завдання і не може бути навчений робити інше. з 27 M обумовлений через текстовий кодувальник T5-Base, а не основу LLM. Хороші базові моделі, жодна з них не забезпечує виконання інструкцій, які передбачає назва.
TinyVLA-H, варіант, що містить основні результати, становить 1.3 B і знаходиться вище цієї межі. Краще питання полягає в тому, чи поміщається модель у 24 GB під час навчання та чи досягає вона вашої швидкості керування під час висновку. П'ять політик, які ви можете тут навчити, знаходяться на сторінці політик; TinyVLA має запис на арені, якщо ви хочете побачити її показники поруч з іншими.
TinyVLA: швидкість походить від голови, а не від основи
Очевидне тлумачення полягає в тому, що вони зменшили мовну модель, тому вона стала швидшою. Аблаційне дослідження в статті стверджує протилежне. Заміна 7 B основи OpenVLA на приблизно 1 B зменшила передбачення на дію з 292 мс до 140 мс, що є 2-кратним прискоренням. TinyVLA-H, з порівнянною кількістю параметрів, працює за 14 мс на тій самій карті. Інші 10x — це голова дії.
| Модель | Прогнозування на дію | Виміряно на |
|---|---|---|
| OpenVLA-7B | 292 ms | single A6000 |
| OpenVLA-1B, backbone swapped for TinyVLA's | 140 ms | single A6000 |
| TinyVLA-1B (TinyVLA-H) | 14 ms | single A6000 |
OpenVLA видає дії як дискретизовані токени через голову мовної моделі, по одному на вимір дії, авторегресійно. TinyVLA приєднує дифузійний декодер, який виробляє весь фрагмент за один раз. Таблиця V містить архітектуру TinyVLA-H і змінює лише голову, на тих самих п'яти завданнях реального робота. Це найчистіший доказ у будь-якій статті для аргументу, який зіставлення потоків політики створюють, і причина, чому Pi0 відійшов від декодування токенів.
| Продуктивність на TinyVLA-H | Покласти тенісний м'яч | Перевернути кружку | Скласти кубики | Закрити шухляду | Відкрити коробку |
|---|---|---|---|---|---|
| Дифузія (droid_diffusion) | 90.0 | 98.3 | 98.3 | 96.7 | 86.7 |
| Трансформер з чанкінгом дій | 13.3 | 8.3 | 8.3 | 13.3 | 23.3 |
| Багатошаровий перцептрон | 0 | 0 | 0 | 0 | 0 |
Показники 292 / 140 / 14 мс взяті з Таблиці IV, всі на одному A6000. Вони стосуються прогнозування однієї дії та не включають захоплення камери, попередню обробку та послідовний запис до сервоприводів. Розглядайте опубліковану затримку як нижню межу, а не як швидкість керування. Наші власні показники мають те саме обмеження: дивіться затримка висновку.
Які результати показав TinyVLA
| Бенчмарк | Протокол | TinyVLA-H | Базові моделі |
|---|---|---|---|
| MetaWorld, 50 завдань, симуляція | Багатозадачність, 50 демонстрацій, 3 початкові значення | 77.6 / 21.5 / 11.4 / 15.8 за складністю, в середньому 31.6 | Diffusion Policy в середньому 10.5 |
| Реальний Franka Panda, 5 завдань | 100 траєкторій на завдання, 20 спроб | 94.0 в середньому | OpenVLA 68.3, Diffusion Policy 35.3 |
| Бімануальний UR5, 3 завдання | Багатозадачність, 10 спроб на завдання | 76.7 / 36.7 / 30.0 | OpenVLA 0 / 0 / 0, Diffusion Policy 40.3 / 31.3 / 43.0 |
Рядок бімануальних завдань має нудне пояснення, яке дає сама стаття: OpenVLA попередньо навчений на Open X-Embodiment, який повністю складається з даних для однієї руки, тому простір дій для двох рук є поза розподілом, і він отримує нуль балів. Базова модель дифузійної політики перевершує TinyVLA-H у двох із цих трьох завдань. Довідкова інформація в описі Open X-Embodiment.

Репозиторій TinyVLA, станом на серпень 2026 року
Стаття хороша. Код є дослідницьким випуском. Репозиторій — github.com/liyaxuanliyaxuan/TinyVLA; його README датує випуск коду 17 лютого 2025 року, а останній коміт — 11 березня 2025 року. Це добре для відтворення статті, але проблема, якщо ви хотіли підтримувану бібліотеку.
git clone https://github.com/liyaxuanliyaxuan/TinyVLA
conda create -n tinyvla python=3.10 -y
conda activate tinyvla
pip install --upgrade pip
pip install -r requirements.txt
cd policy_heads && pip install -e .
cd ../llava-pythia && pip install -e .requirements.txt фіксує torch==2.0.1, transformers==4.37.1, deepspeed==0.9.5, peft==0.4.0, diffusers==0.11.1, numpy==1.24.4, а також стек CUDA до 11.x коліс: nvidia-cuda-runtime-cu11==11.7.99, nvidia-cudnn-cu11==8.5.0.96, triton==2.0.0. README вимагає Python 3.10; lerobot 0.6.1 вимагає 3.12 або новішої версії, тому ці два не можуть використовувати одне середовище. Спершу переконайтеся, що збірка torch 2.0.1 існує для вашого покоління GPU. Якщо замість цього запуск завершується через VRAM, контрольний список вичерпання пам'яті швидший, ніж вгадування.
TinyVLA також не читає набори даних LeRobot. Його формат — HDF5 у стилі ACT: action, language_raw та група спостережень з багатокамерними зображеннями, joint_positions, qpos та qvel. Репозиторій постачає data_utils/rlds_to_h5py.py для вхідних даних RLDS, і кожне завдання реєструється вручну в aloha_scripts/constants.py з його dataset_dir, episode_len та camera_names. Якщо ваші епізоди надійшли з lerobot або десктопного клієнта, ви відповідаєте за конвертацію.
# scripts/train.sh, the real flags from the repository
ACTION_HEAD=droid_diffusion
deepspeed --master_port 29600 --num_gpus=8 --num_nodes=1 ./train_tinyvla.py \
--deepspeed scripts/zero2.json \
--lora_enable True \
--lora_module 'vit llm' \
--lora_r 64 \
--lora_alpha 256 \
--non_lora_lr 2e-5 \
--task_name "example_task_config" \
--model_name_or_path /path/to/pretrained_vlm \
--freeze_vision_tower True \
--freeze_backbone True \
--bf16 True \
--max_steps 10000 \
--per_device_train_batch_size 32 \
--gradient_accumulation_steps 1 \
--learning_rate 2e-4 \
--lr_scheduler_type "cosine" \
--warmup_ratio 0.005 \
--save_steps 1000 \
--action_head_type $ACTION_HEAD \
--use_state True \
--window_size 6- --num_gpus=8 припускає вузол з вісьмома картами. Встановіть його на 1 і значно зменшіть розмір пакету (batch size) нижче 32. Жоден варіант для однієї відеокарти не постачається в основній гілці, тому команду не можна запустити дослівно на 4090.
- --deepspeed scripts/zero2.json вказує на файл, який не знаходиться в кореневому каталозі scripts. Конфігурації DeepSpeed постачаються за адресою llava-pythia/scripts/zero2.json. Виправте шлях перед першим запуском.
- README вимагає, щоб назва вихідного каталогу містила llava_pythia, а також lora, якщо LoRA увімкнено.
- Основа (backbone) завантажується окремо: lesjie/Llava-Pythia-400M, -700M or -1.3B. Немає єдиної базової контрольної точки, на яку ви вказуєте політику так, як ви вказуєте на lerobot/smolvla_base.
SmolVLA: модель менше 1 мільярда параметрів, яку ви можете запустити вже сьогодні вдень
SmolVLA використовує той самий підхід у підтримуваній бібліотеці. Вона має 450 мільйонів параметрів на основі SmolVLM2-500M-Video-Instruct, а ефективність походить від налаштувань, які ви можете прочитати з configuration_smolvla.py, а не від заяви про її малий розмір.
| Налаштування в configuration_smolvla.py | За замовчуванням | Що це дає |
|---|---|---|
| num_vlm_layers | 16 | Працюють лише перші 16 шарів мовної моделі |
| expert_width_multiplier | 0.75 | Прихований розмір експерта дій становить 75 відсотків від VLM |
| self_attn_every_n_layers | 2 | Самоувага чергується з перехресною увагою |
| chunk_size / n_action_steps | 50 / 50 | Один прохід генерує 50 дій, і всі 50 виконуються |
| num_steps | 10 | Шумозаглушення методом Flow matching фіксовано на 10 кроках |
| tokenizer_max_length | 48 | Інструкція обрізається до 48 токенів |
| freeze_vision_encoder / train_expert_only | True / True | Додаткове налаштування (fine-tuning) змінює експерта, а не візуальну вежу |
| optimizer_lr, warmup, decay | 1e-4, 1000 steps, to 2.5e-6 over 30000 | Не рецепт з статті: її попереднє навчання використовувало 100-кроковий розігрів протягом 200000 кроків |
Попереднє навчання використовувало 481 набір даних спільноти LeRobot, 22.9 тис. епізодів та 10.6 млн кадрів на 4 графічних процесорах, 200000 кроків при глобальному розмірі пакету 256; у статті зазначено, що весь проєкт зайняв близько 30 тис. годин GPU. Один показник, на який варто звернути увагу: блог Hugging Face про запуск говорить про 487 відібраних наборів даних, тоді як таблиця в статті вказує 481. Ми використовуємо дані зі статті та відзначаємо розбіжність.

| Еталон | SmolVLA 0.45 B | SmolVLA 2.25 B | Pi0 | ACT |
|---|---|---|---|---|
| LIBERO середнє, багатозадачне | 87.3 | 88.75 | 86.0 (3.3 B, robotics-pretrained) | - |
| Meta-World середнє, багатозадачне | 57.3 | 68.24 | 47.9 (3.5 B, robotics-pretrained) | - |
| Реальний SO-100, 3 завдання, багатозадачне навчання | 78.3 | - | 61.7 (3.5 B) | - |
| Реальний SO-100, 3 завдання, однозадачне, без попереднього навчання робототехніки | 40.0 | - | - | 48.3 |
| SO-101 захоплення-розміщення лего, однозадачне, в розподілі | 90 | - | - | 70 |
| SO-101 захоплення-розміщення лего, однозадачне, поза розподілом | 50 | - | - | 40 |
LIBERO — це симуляція, і всі компетентні моделі зараз набирають там вісімдесят балів. Рядок з реальним SO-100, де модель 450 M перевершує модель 3.5 B на 16.6 балів, є найцікавішим; рядок під ним є противагою. Якщо прибрати попереднє навчання спільноти та багатозадачне навчання, та сама модель падає до 40.0, нижче ACT. Обґрунтована заява полягає в тому, що маленька модель не є автоматично гіршою, а не в тому, що вона краща.
Один випадок допомагає: таблиця Meta-World у статті SmolVLA містить власні опубліковані дані TinyVLA як базові, тож цього разу обидві моделі знаходяться в одній таблиці: SmolVLA-0.45B на 57.3 проти TinyVLA-H на 31.6. Також повідомляється, що навчання SmolVLA відбувається приблизно на 40 відсотків швидше, ніж Pi0, використовуючи в 6 разів менше пам'яті. Усе це походить від авторів SmolVLA; запис арени посилається на джерело кожного значення.
На що SmolVLA витрачає свій час
AY-Robots вказує SmolVLA на 245 мс за крок дії, а ACT на 20 мс у каталозі політик. TinyVLA повідомляє 14 мс на передбачення дії. Ці числа не порівнянні, і розглядати їх як такі є найпоширенішою помилкою в цій темі: деякі вимірюють один прямий прохід, деякі ділять цей прохід на фрагмент, коли розбиття дій на фрагменти амортизує його.
- SmolVLA генерує 50 дій за один прямий прохід і виконує всі 50. При 30 кадрах на секунду, які використовуються в статті для реальних роботів, один висновок охоплює близько 1.7 секунди руху.
- Асинхронний висновок обчислює наступний фрагмент, поки поточний ще виконується: 9.7 с середнього часу виконання завдання проти 13.75 с синхронного, приблизно на 30 відсотків швидше, і 19 циклів захоплення та розміщення за фіксоване 60-секундне вікно проти 9.
- Показники успішності були порівнянними, а не кращими: 78.3 синхронно проти 73.3 асинхронно. Асинхронність забезпечує пропускну здатність, а не точність.
- Розбиття на фрагменти приховує затримку обчислень, а не затримку мережі, і робить політику менш реактивною, оскільки вона зобов'язана виконати 50 дій.
AY-Robots може автоматично надавати хмарний GPU-под, який обслуговує вашу політику, поки локальний клієнт робота спілкується з цією кінцевою точкою, а под містить сторожовий таймер бездіяльності, тому він знищує себе, а не виставляє рахунки мовчки. Чого він не робить, так це не усуває круговий шлях через публічний інтернет. Контур керування для п'яти політик тут становить від 20 до 485 ms на крок дії до будь-якої мережі взагалі, тому віддалений висновок є життєздатним для повільного вибору та розміщення, а не для швидкого реактивного руху.

Додаткове налаштування SmolVLA на одній споживчій карті
Ручний шлях, на lerobot 0.6.1, поточний випуск PyPI станом на 23 серпня 2026 року. Все нижче взято з документації Hugging Face lerobot SmolVLA, отриманої того ж дня; керована версія є м'якшою.
- 1Встановіть lerobot з додатком smolvla
Залежності SmolVLA є необов'язковим доповненням, не частиною базової інсталяції. Встановлення без них, а потім здивування, чому тип політики невідомий, — це звичайна втрата півгодини.
bashgit clone https://github.com/huggingface/lerobot.git cd lerobot pip install -e ".[smolvla]" - 2Отримайте набір даних з достатньою кількістю епізодів
Документація рекомендує близько 50 епізодів і стверджує, що того ж завдання з 25 було недостатньо. AY-Robots встановлює мінімум на 30. Запишіть власні або почніть з каталогу наборів даних.
bash# any LeRobotDataset on the Hub works as --dataset.repo_id # lerobot/svla_so100_pickplace is the paper's own 50-episode set: # 5 cube positions, 10 episodes each - 3Почніть доналаштування
Команда з посібника lerobot, без змін. Документація вказує 20000 кроків приблизно за 4 години на одній A100. На карті 24 ГБ очікуйте довше і виміряйте це.
bashcd lerobot && lerobot-train \ --policy.path=lerobot/smolvla_base \ --dataset.repo_id=${HF_USER}/mydataset \ --batch_size=64 \ --steps=20000 \ --output_dir=outputs/train/my_smolvla \ --job_name=my_smolvla_training \ --policy.device=cuda \ --wandb.enable=true - 4Зменшуйте розмір пакету, доки він не підійде
batch_size=64 — це задокументований приклад, а не обіцянка щодо вашої карти. Документація радить починати з малого і збільшувати, поки час завантаження залишається коротким.
bashlerobot-train --help - 5Розгорніть контрольну точку на маніпуляторі
Та сама бібліотека, одна команда. Прапори для розбиття на частини в реальному часі закоментовані в документації і є тими, до яких варто звертатися на апаратному забезпеченні з низьким енергоспоживанням.
bashlerobot-rollout \ --strategy.type=base \ --robot.type=so101_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_blue_follower_arm \ --robot.cameras="{ front: {type: opencv, index_or_path: 8, width: 640, height: 480, fps: 30}}" \ --task="Grasp a lego block and put it in the bin." \ --policy.path=HF_USER/FINETUNE_MODEL_NAME
Який би шлях ви не обрали, ви отримаєте контрольну точку плюс конфігурацію, яка її створила. Зберігайте ревізію набору даних, кількість кроків та початкове значення поруч. lerobot за замовчуванням використовує seed 1000; точка входу для доналаштування GR00T взагалі не надає seed, тому ці запуски не є побітово відтворюваними. Механіка в документації з навчання.
Два способи встановити невеликий VLA на маніпулятор
Ви володієте машиною та режимами відмов. Для SmolVLA це розумно: один pip extra, одна команда train, одна команда rollout. Для TinyVLA це відтворення дослідження із зафіксованими залежностями, зламаним шляхом DeepSpeed та перетворенням даних, яке ви пишете самостійно.
- Отримайте карту 24 ГБ, запишіть від 30 до 50 епізодів, перевірте потоки камери кадр за кадром.
- pip install -e ".[smolvla]", lerobot-train проти lerobot/smolvla_base, потім розгорніть контрольну точку на машині, до якої підключений маніпулятор.
- Для TinyVLA: окреме середовище conda, конвертуйте дані в HDF5, зареєструйте завдання в constants.py, виправте шлях zero2.json, зменшіть train.sh з восьми GPU до одного.
- Без погодинної оплати після оплати картки.
- Висновок знаходиться поруч із сервоприводами, єдиний спосіб отримати швидкий контур управління.
- Ви можете патчити код політики, і TinyVLA доступний лише таким чином.
- 4090 виключає кожну політику розміром ~3 B, тому немає локального порівняння з GR00T N1.7 або Pi0.5.
- Налаштування середовища — це справжня робота. Лише залежності TinyVLA можуть коштувати день.
- Без черги, без повторних спроб, без зберігання контрольних точок. Перезавантаження на кроці 14000 означає початок знову.
SmolVLA — одна з п'яти політик тут. Ви обираєте модель і набір даних у формі, бекенд орендує GPU за необхідною VRAM, запускає тренажер і записує контрольні точки в об'єктне сховище. Крок за кроком: SmolVLA на SO-100, або повна матриця на сторінці навчання.
| Що платформа надсилає для SmolVLA | Значення |
|---|---|
| розмір пакету | 2 |
| швидкість навчання | 1e-4 |
| максимальна кількість кроків | 20000 |
| накопичення градієнта | 8, and it does not reach the trainer |
| додаткові параметри у формі | seed, logFreq |
| рівень GPU | RTX 4090 or any 24 GB card |
| формат набору даних | LeRobot v3.0 |
| мінімальна кількість епізодів | 30 |
По-перше, розмір пакету за замовчуванням тут становить 2, а не 64, як у прикладі документації lerobot, і налаштування накопичення градієнта надсилається, але не має ефекту для SmolVLA, тому ефективний пакет насправді дорівнює 2. Збільшуйте його свідомо, а не припускайте, що значення за замовчуванням відповідає вихідному. По-друге, TinyVLA тут взагалі не піддається навчанню.
Запуск на рівні 24 ГБ займає від 2 до 5 годин за 0.30 до 0.60 USD за годину, приблизно від 1 до 3 USD. На рівні A100 політика ~3 B займає від 3 до 6 годин за 1.20 до 2.00 USD за годину, приблизно від 4 до 12 USD. Дивіться ціни, а також ті ж операції з CLI та сервера MCP.
Коли мала модель є неправильним вибором
Обидві статті тут обережніші, ніж їхні резюме. Аналіз відмов TinyVLA є специфічним: варіант 0.4 B тричі не зміг правильно прочитати інструкцію, що автори пояснюють обмеженим розумінням мови в меншій VLM, і цей режим зник при 1.3 B. SmolVLA показує ту саму криву з іншого кінця: версія 2.25 B ідентичної архітектури набирає 88.75 на LIBERO та 68.24 на Meta-World проти 87.3 та 57.3 для моделі 0.45 B.
- Вміщується на 24 ГБ карту, що знижує вартість експерименту з десятків доларів до кількох.
- Достатньо швидка, щоб працювати поруч з маніпулятором, тому немає мережевого стрибка в контурі управління.
- Додатково налаштовується на даних, які може записати одна людина, десятки епізодів, а не тисячі.
- Ваги, список даних та код SmolVLA є публічними, тому поганий результат можна відлагодити.
- Слабше виконання інструкцій: менше мовних параметрів, менша здатність розрізняти схожі референтні вирази.
- Менша просторова та візуальна узагальненість до налаштувань, які ви не записували.
- Більш чутлива до дефектів набору даних, з меншою кількістю попереднього навчання, на яке можна покластися.
- Багатозадачна робота та робота з довгим горизонтом все ще віддають перевагу більшим моделям, включаючи власний варіант SmolVLA 2.25 B.
Порівняння, яке варто провести, це не TinyVLA проти SmolVLA. Це SmolVLA проти ACT на вашому власному завданні, і стаття SmolVLA є аргументом, чому. Навчена на одному завданні без попереднього навчання робототехніці, SmolVLA набрала в середньому 40.0 балів у трьох завданнях SO-100, тоді як однозадачна ACT набрала 48.3. Те, що піднімає її до 78.3, це попереднє навчання спільноти плюс багатозадачне навчання, а не лише архітектура. У завданні SO-101 з лего, обидві однозадачні, SmolVLA перемагає: 90 проти 70 у розподілі. Потім SmolVLA проти Pi0.5 якщо дозволяє бюджет.
Менше попереднього навчання для покриття поганих даних, тому чиста крива втрат на дефектному наборі даних дає вам політику, яка впевнено відтворює дефект. Документація lerobot прямолінійна щодо структури: 50 епізодів у 5 позиціях куба, по 10 на позицію, спрацювало; 25 — ні. Якщо втрати виглядають нормально, а рука не робить нічого корисного, почніть з втрати падають, політика нічого не робить, політика працює лише в одній конфігурації або збору високоякісних навчальних даних VLA, які дійсно придатні для використання.
П'ять політик, одна порівняльна таблиця
GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA та ACT з реальними кількостями параметрів, затримкою висновку на крок дії, рівнем GPU, який потрібен кожному, та мінімальною кількістю епізодів, перш ніж вони зроблять щось корисне.
Порівняти політикиТаблиця рішень, за якою можна діяти
| Ваша ситуація | Почніть з | Чому |
|---|---|---|
| Одне завдання, хороші демонстрації, без мови | ACT | ~80 M, 20 ms, 24 GB card, без базової моделі для завантаження |
| Кілька пов'язаних завдань, по одній інструкції для кожного | SmolVLA | 450 M, in lerobot, 30 episode minimum, 1 to 3 USD за запуск |
| Відтворення результату TinyVLA зокрема | TinyVLA-B or TinyVLA-H | Репозиторій — єдиний шлях: ізольоване середовище, конвертовані дані |
| Багатозадачність, різноманітні інструкції, бюджет A100 | GR00T N1.7 or Pi0.5 | ~3 B, 152 ms та 485 ms за крок, 4 to 12 USD за запуск |
| Ще немає робота | Керуйте справжньою рукою | Жива рука на основі черги не потребує реєстрації та обладнання |
Для останнього рядка, живий маніпулятор транслює фізичний SO-100, яким можна керувати з браузера без облікового запису, а три способи початку роботи охоплюють решту. SO-100 є тут еталонним маніпулятором, вартістю приблизно від 110 до 150 євро за запчастини, з повним посібником з налаштування.
Що йде після моделей з менш ніж 1 мільярдом параметрів
Зменшення кількості параметрів — це один зі способів зробити VLA дешевим, але не очевидно, що він є виграшним. OpenVLA-OFT (arXiv 2502.19645) зберігає 7-мільярдну основу та змінює лише спосіб декодування дій, повідомляючи про 26-кратне збільшення пропускної здатності генерації дій та зростання LIBERO з 76.5 до 97.1 відсотка. BitVLA (arXiv 2506.07530) робить кожну вагу 1-бітної основи BitNet b1.58 2B4T тернарною, повідомляючи про 11.0-кратне зменшення пам'яті та 4.4-кратне зниження наскрізної затримки, при цьому відповідаючи повноточній OpenVLA-OFT. X-VLA-0.9B (arXiv 2510.10274) знаходиться на межі 1 мільярда параметрів з методом flow matching.
Спільна нитка: декодер дій, а не мовна модель, є джерелом затримки. Запитайте, як політика видає дії, перш ніж запитувати, скільки параметрів вона має. Арена містить 85 моделей та 332 результати, кожен з яких пов'язаний зі своїм джерелом; ширший огляд представлений у нашому вступі до VLA.
Чи можу я доналаштувати SmolVLA на RTX 4090?▾
Так. SmolVLA має 450 мільйонів параметрів, і AY-Robots запускає його на рівні RTX 4090 / 24 ГБ. Приклад lerobot використовує --batch_size=64, що є прикладом, а не гарантією для вашої відеокарти; документація радить починати з малого і збільшувати, доки час завантаження залишається коротким. Очікуйте довше, ніж приблизно 4 години, які в документації вказані для 20000 кроків на A100.
Чи доступний TinyVLA в lerobot або на AY-Robots?▾
Ні, в обох випадках. TinyVLA існує лише у своєму дослідницькому репозиторії, останній коміт 11 March 2025 року, і його формат — HDF5 у стилі ACT, а не LeRobot. AY-Robots навчає GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA та ACT. Якщо ви хочете TinyVLA, ви створюєте його самостійно, і спочатку вам доведеться виправити шлях конфігурації DeepSpeed у scripts/train.sh.
Чи справді модель на 450 M параметрів конкурентоспроможна з моделлю на 3 B?▾
За власними бенчмарками авторів, так: 87.3 проти 86.0 на LIBERO порівняно з попередньо навченим для робототехніки Pi0 на 3.3 B, і 78.3 проти 61.7 на трьох реальних завданнях SO-100, де та сама стаття позначає Pi0 на 3.5 B. Обмеження в тій же статті: для одного завдання без попереднього навчання для робототехніки SmolVLA падає до 40.0, що нижче 48.3 у ACT.
Скільки епізодів мені потрібно, перш ніж невеликий VLA почне щось робити?▾
AY-Robots встановлює мінімум для SmolVLA на 30 епізодів, а для ACT — на 50. Документація lerobot рекомендує близько 50 і повідомляє, що 25 було недостатньо для того ж завдання. Структура має таке ж значення, як і кількість: у наборі даних статті використовувалося 5 позицій кубиків по 10 епізодів для кожної.
Чому опубліковані показники затримки так сильно відрізняються?▾
Вони вимірюють різні речі. TinyVLA повідомляє 14 ms на передбачення дії на A6000; AY-Robots вказує SmolVLA на 245 ms, а ACT на 20 ms за крок дії. Деякі показники охоплюють один прямий прохід, деякі ділять прохід на блок з 50 дій, і майже жоден не включає захоплення камери або запис на сервоприводи.
Чи вирішує хмарний інференс проблему з GPU?▾
Частково. AY-Robots автоматично надає под, який обслуговує політику, тоді як локальний клієнт спілкується з цією кінцевою точкою, з бездіяльним сторожовим таймером, щоб він знищував себе, а не виставляв рахунки мовчки. Це не може усунути круговий шлях через публічний інтернет, а цикл керування вже становить від 20 до 485 ms за крок дії. Добре для повільного захоплення та розміщення, але не для швидкого реактивного руху.
Sources
- TinyVLA: До швидких, ефективних за даними моделей зору-мови-дії для маніпуляцій роботів
- Офіційний репозиторій коду TinyVLA (README, requirements.txt, scripts/train.sh)
- Сторінка проекту TinyVLA
- lesjie/Llava-Pythia-1.3B, ваги основи TinyVLA-H
- SmolVLA: Модель зору-мови-дії для доступної та ефективної робототехніки
- Документація lerobot: доналаштування SmolVLA
- lerobot: configuration_smolvla.py, налаштування за замовчуванням для SmolVLA
- Картка моделі lerobot/smolvla_base
- SmolVLA: Ефективна модель зору-мови-дії (блог Hugging Face)
- lerobot на PyPI (0.6.1, вимагає Python 3.12 або новішої версії)
- OpenVLA: Модель зору-мови-дії з відкритим вихідним кодом
- Доналаштування моделей зору-мови-дії: Оптимізація швидкості та успіху (OpenVLA-OFT)
- BitVLA: 1-бітові моделі зору-мови-дії для маніпуляцій роботів
- X-VLA: Трансформер з м'яким промптом як масштабована модель зору-мови-дії для різних втілень
- Картка моделі rail-berkeley/octo-small-1.5 (27 M параметрів)
Sources
- TinyVLA: Towards Fast, Data-Efficient Vision-Language-Action Models for Robotic Manipulation
- TinyVLA official code repository (README, requirements.txt, scripts/train.sh)
- TinyVLA project page
- lesjie/Llava-Pythia-1.3B, the TinyVLA-H backbone weights
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
- lerobot documentation: fine-tuning SmolVLA
- lerobot: configuration_smolvla.py, the SmolVLA defaults
- lerobot/smolvla_base model card
- SmolVLA: Efficient Vision-Language-Action Model (Hugging Face blog)
- lerobot on PyPI (0.6.1, requires Python 3.12 or newer)
- OpenVLA: An Open-Source Vision-Language-Action Model
- Fine-Tuning Vision-Language-Action Models: Optimizing Speed and Success (OpenVLA-OFT)
- BitVLA: 1-bit Vision-Language-Action Models for Robotics Manipulation
- X-VLA: Soft-Prompted Transformer as Scalable Cross-Embodiment Vision-Language-Action Model
- rail-berkeley/octo-small-1.5 model card (27 M parameters)
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started