/ Модель

Характеристики

Лицензия
Apache 2.0
Базовая модель
smolvla_base
Библиотека
lerobot
Опубликована
23 июл 2026

smolvla-so101-pickplace

Языковая модельИзображение, текст → action

Дообученная SmolVLA управляет SO-ARM100 по изображению, состоянию робота и естественно-языковой команде для выполнения симуляционной задачи pick-and-place.

21скачиваний за 30 дней0лайковвеса обновлены24 июл 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

SmolVLA SO-101 Pick-and-Place — модель LeRobot на базе SmolVLA объёмом 450 млн параметров, дообученная на 100 демонстрациях в MuJoCo для управления манипулятором SO-ARM100. Она принимает изображения с камер, состояние робота и инструкцию на естественном языке, а выдаёт управляющие действия для захвата красного блока и переноса его в синюю лоток.

В описанной оценке в MuJoCo модель выполнила задачу в 11 из 20 эпизодов; при успехе размещала объект примерно за 105 шагов с точностью около ±3 мм. Дообучение длилось 12 тысяч шагов; визуальный энкодер был заморожен, обучалась экспертная часть модели. Модель унаследована от lerobot/smolvla_base и выпущена под лицензией Apache-2.0.

Сценарии применения

  • захват красного блока и перенос в синий лоток в MuJoCo
  • управление манипулятором SO-ARM100 по текстовой инструкции
  • оценка VLA-политики для роботизированного pick-and-place

Ограничения

В описанной оценке успех достигнут в 11 из 20 эпизодов; неудачи связаны с тем, что модель часто не начинала захват при размещении блока справа, недостаточно представленном в обучающих демонстрациях. Результаты приведены для конкретного протокола и симуляции MuJoCo.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

smolvla-so101-pickplace — language-conditioned pick-and-place

Successor: smolvla-so101-pickplace-v2 reaches 90% on the same protocol (trained on the 160-episode -v2 recovery set, which fixed this model's right-side coverage failures).

SmolVLA (450M) fine-tuned on ahmedsohail2003/so101-sim-pickplace — 100 language-labeled MuJoCo demonstrations of an SO-ARM100 arm performing:

"Pick up the red block and place it in the blue tray."

demo episode

Results — measured, same protocol for every row

20 evaluation episodes in the MuJoCo work-cell (fixed eval seed disjoint from training data, nominal scene, 240-step cap at 15 Hz):

PolicySuccessNotes
SmolVLA base, zero-shot0/20 (0%)never engages the block
SmolVLA fine-tuned (this model)11/20 (55%)consistent when it engages: every success ≈105 steps, tray placement within ±3 mm
ACT (~52M, specialist BC, same 100 demos)13/20 (65%)from the companion sim2cell project
ACT + temporal ensembling15/20 (75%)

Honest read: 12k steps of expert-only fine-tuning takes a generalist VLA from 0% to within 10 points of a specialist behavior-cloning baseline on the same data — while being commandable in natural language. Failures are non-engagements clustered on right-side block spawns (under-represented in the 100 demos), not failed grasps: the policy either commits and succeeds consistently, or never engages.

Fine-tuning recipe (free-tier: single Kaggle T4)

  • LeRobot 0.6.0, lerobot-train, AMP fp16, batch 8, 12k steps (~8 h)
  • Frozen VLM backbone, action expert only (freeze_vision_encoder=True, train_expert_only=True) → ~100M trainable of 450M total
  • lr 1e-4 peak, cosine decay, warmup 1k; loss 0.97 → ~0.06
  • Camera mapping from the pretrained base's naming: --rename_map='{"observation.images.front": "observation.images.camera1", "observation.images.wrist": "observation.images.camera2"}' (2 dataset cameras are a subset of the base's 3; the absent third is skipped)

Use

import torch
from lerobot.policies import make_pre_post_processors
from lerobot.policies.smolvla.modeling_smolvla import SmolVLAPolicy

repo = "ahmedsohail2003/smolvla-so101-pickplace"
policy = SmolVLAPolicy.from_pretrained(repo).to("cuda").eval()
pre, post = make_pre_post_processors(
    policy_cfg=policy.config, pretrained_path=repo,
    preprocessor_overrides={"device_processor": {"device": "cuda"}},
)

batch = {
    "observation.state": state_6d,                      # (1, 6) float32
    "observation.images.camera1": front_rgb,            # (1, 3, 224, 224) in [0, 1]
    "observation.images.camera2": wrist_rgb,            # (1, 3, 224, 224) in [0, 1]
    "task": "Pick up the red block and place it in the blue tray.",
}
action = post(policy.select_action(pre(batch)))         # (1, 6) joint setpoints

Evaluation script: eval_smolvla.py in the TalkToTheCell project (env + protocol from the sim2cell work-cell).

Provenance

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · lerobot

Нельзя запустить

Модели для роботов не запускаются как сервис инференса.

Ревизия весов
e3961f2

0 моделей