/ Модель

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

Параметры
28,3 млн
Архитектура
dinov3_vit · dense
Базовая модель
dinov3-vits16-pretrain-lvd1689m
Библиотека
transformers
Опубликована
31 июл 2026

hyundai-uiwang-left-vinn

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

Специализированная VINN-политика для управления левой рукой Hyundai-Uiwang по изображениям с помощью поиска ближайших демонстраций.

13скачиваний за 30 дней0лайковвеса обновлены17 авг 2026

Бенчмарки

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

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

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

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

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

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

Ngseo разработал специализированную зрительно-моторную политику VINN для левой руки робота Hyundai-Uiwang. Это непараметрический метод: дообученный визуальный энкодер DINOv3 ViT-S/16 преобразует кадры фронтальной и кистевой камер в признаки, а kNN-поиск по банку демонстраций подбирает соответствующие 26-мерные целевые команды суставов. Модель рассчитана на управление 6-DoF рукой HDR35_20 с 20-DoF кистью DG5F с частотой 30 кадров в секунду.

Энкодер дообучен методом InfoNCE на 105 эпизодах; в репозитории также приведены банки признаков и действий для 131 эпизода. Аугментации с заменой фона и добавлением помех по краям кадра снижают ухудшение результатов при визуальных возмущениях. Оценка выполнена на отложенных данных, но README не обещает конкретных результатов работы в реальном времени. Для эксплуатации необходимы совместимые изображения камер, банк kNN и роботизированная система с указанной конфигурацией. Лицензия в предоставленных материалах не указана.

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

  • выбор целевых команд суставов левой руки по кадрам камер
  • управление 6-DoF роботизированной рукой с 20-DoF кистью
  • поиск похожих состояний в банке демонстраций для роботизированного манипулирования
  • проверка устойчивости визуального управления к смене фона и помехам на изображении

Ограничения

Модель предназначена для левой руки конкретной конфигурации Hyundai-Uiwang и требует совместимого банка кадров и целевых действий. Оценки приведены для отложенной выборки и синтетических возмущений изображений; результаты не гарантируют качество на других роботах или в иных условиях.

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

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

Открыть на Hugging Face

hyundai-uiwang-left-vinn

Non-parametric VINN policy for the Hyundai-Uiwang left arm (HDR35_20 6-DoF + DG5F 20-DoF hand, 26-d action, 30 fps). Repo root is a drop-in AutoModel encoder; banks/ holds the kNN serving banks; code/ holds the offline eval scripts that produced the tables below.

  • Encoder (root, current = infonce_mask12_left_e6): DINOv3-ViT-S/16 fine-tuned with InfoNCE (symmetric NT-Xent per camera, τ=0.2, bs=128, projector→256d, last 2 blocks unfrozen) on 105 train episodes (stride-3 frames), epoch-6 of a 12-epoch run. Positives = two independent augmentations of the same frame. Same-episode frames within ±45 frames are masked out of the negatives (near-duplicate false negatives at 30 fps). Robustness augmentations on front views, both p=0.5: background-swap (hand+hook-mask background replaced by another episode's frame) and border-band clutter (1–3 random crops pasted into the outer 25%, center untouched). Trained with left_infonce.py in visuomotor-policy-inference.
  • Bank banks/left_infonce.npz: all 131 episodes / 110,568 frames of Ngseo/hyundai-uiwang-left. emb (110568, 768) = L2-normalized concat(front CLS, wrist CLS) from this encoder, act (110568, 26), epi (110568,) — the app/knn_runner.py format.
  • Idle-filtered bank banks/left_infonce_mask12_filt3e3.npz: same encoder/format, 72,643 frames (65.7%) — see the filtered-bank section below.

Held-out kNN L1 (105-ep bank → 26-ep query, lower is better)

encoderk=1k=8k=32
frozen DINOv30.09130.07730.0730
BYOL nomask e60.08060.06940.0651
InfoNCE e2 (previous release)0.07590.06750.0634
InfoNCE mask12 e6 (this repo)0.07700.06770.0633

Robustness: perturbed-holdout eval (code/left_robust_eval.py)

Real-robot trials showed mask-trained encoders are much better than clean L1 suggests. This eval reproduces that offline: front query images get synthetic perturbations (identical seeded recipes across encoders), bank and wrist stay clean. k=32 L1:

encodercleanclutterbgshiftclutter+shift
nomask e20.06340.0665 (+4.9%)0.06360.0667 (+5.2%)
mask e6 (bg-swap only)0.06330.0660 (+4.3%)0.06310.0655 (+3.5%)
mask12 e6 (this repo)0.06350.0640 (+0.8%)0.06340.0637 (+0.3%)

The border-clutter augmentation is what buys the ~6× smaller degradation under clutter; the clean-holdout tie hides this entirely. Use this eval alongside clean L1 for encoder A/Bs.

Experimental: mask-latent concat retrieval (code/left_maskcat_eval.py) — null result

Tested appending the hand+hook-mask-pooled DINOv3 patch vector to the retrieval embedding: normalize(concat(front_CLS, wrist_CLS, α·maskpool)). banks/left_maskcat_stride3.npz holds the per-frame components for all stride-3 frames of all 131 episodes (cf, cw, mp fp16 + act, epi, fi; 0% empty masks) so the α sweep is reproducible without re-encoding.

αk=8k=32
0 (baseline)0.06480.0611
0.25 / 0.50.06480.0611
1.00.06500.0613
2.00.06560.0620

Verdict: no gain — the mask-pooled patch feature is redundant with what the (mask-aug-trained) CLS already encodes; heavy weighting only adds noise. Mask value is already absorbed via the training-time augmentations (see robustness table). If retrying, use a genuinely different representation (RF-DETR decoder latent, mask geometry, FK hand pose), not same-encoder pooling. Stride-3-bank numbers are not comparable to the 88k-bank tables above.

Idle-filtered bank (banks/left_infonce_mask12_filt3e3.npz)

Actions are absolute joint targets, so "zero action" = near-zero consecutive-action delta. This bank drops frames with Linf(Δa) < 3e-3 rad (34.3% — mostly late-episode grasp-hold/settle: 71% of dropped frames sit in the 60–100% episode span) plus 32 teleop-glitch frames commanding all-zero arm targets. Built by code/build_left_filtered_bank.py from per-frame motion stats.

banksizeholdout k=32 L1
full (left_infonce.npz)110,5680.0633
filtered (this)72,643 (−34%)0.0632

Equal accuracy, ~34% faster kNN matmul, and it removes the visually-aliased hold frames that motivated the loop-break heuristic. Caveats: (1) chunks fast-forward across deleted holds (boundary deltas are tiny by construction; the Ruckig smoother absorbs them); (2) late-episode (60–90%) bank coverage thins ~2× — if the robot rushes grasp/settle on-robot, fall back to the full bank or a run-thinned variant (keep idle-run endpoints; same offline L1).

Variants

variants/nomask_e2/ — the no-mask InfoNCE e2 encoder (previous release; clean L1 0.0634 ties the champion but no bg/clutter robustness — see the robustness table). Its bank: banks/left_infonce_nomask_e2.npz. Load with AutoModel.from_pretrained(repo, subfolder="variants/nomask_e2").

Media

media/mask_overlay_left_ep20.mp4 — episode 20 with the RF-DETR hand+hook mask overlaid (red, stride-3 frames @10fps): the mask that drives the bg-swap augmentation.

Serve (chunk + temporal-ensembling VINN)

huggingface-cli download Ngseo/hyundai-uiwang-left-vinn --local-dir vinn_left
export VPI_POLICY=knn
export VPI_KNN_DINO=vinn_left                       # AutoModel dir (repo root)
export VPI_KNN_BANK=vinn_left/banks/left_infonce.npz
# defaults: k=32, VINN-paper softmin-L2 weighting (VPI_KNN_WEIGHT=softmin_l2, VPI_KNN_BW=1.0),
#           chunk=8 + temporal ensemble -> single 26-d action per tick
python -m uvicorn app.server:app --host 0.0.0.0 --port 8000

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

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

GPU в ailist

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

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

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

Класс архитектуры
DINOv3ViTModel
Ревизия весов
cefd5c4

0 моделей