LeRobot documentation

Wall-OSS-0.5

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Wall-OSS-0.5

Wall-OSS-0.5 — это модель зрения, языка и действий объёмом 4B от XSquare Robot. Она объединяет базовую модель зрения и языка Qwen2.5-VL с непрерывным экспертом действий на основе flow-matching.

LeRobot предоставляет Wall-OSS-0.5 через тип политики wall_oss_05 и контрольную точку lerobot/wall-oss-0.5.

wall_oss_05 и существующая политика wall_x нацелены на разные релизы WALL. Используйте wall_oss_05 с чекпоинтом Wall-OSS-0.5.

Обзор модели

Wall-OSS-0.5 формирует действия на основе наблюдений камеры, состояния робота и задачи, заданной на естественном языке. Политика предсказывает блок непрерывных действий с помощью flow matching. Её vision-language-эксперт также может генерировать текст для подписей, визуального вопросно-ответного взаимодействия, привязки объектов и языковых подзадач.

Использованная в релизе модель:

  • каноническое представление состояния и действия размерностью 26;
  • 32-шаговые блоки действий;
  • нормализация по диапазону q01/q99;
  • 10-шаговый флоу-сэмплер;
  • Qwen2.5-VL для визуальных и языковых входных данных.

Базовая контрольная точка предназначена для дообучения на целевом роботе и наборе данных задачи перед развёртыванием.

Что охватывает интеграция LeRobot

  • Стандартная конфигурация policy.type=wall_oss_05 и загрузка контрольной точки с Hub.
  • Нативная обработка данных зрения и языка в Qwen2.5-VL и эксперты по действиям Wall.
  • Непрерывное обучение потока с x-предсказанием и 10-шаговая выборка методом Эйлера.
  • Текстовая кросс-энтропия и совместная дообучение текста и действий на основе рецептов.
  • Нативная генерация текста для VQA, привязки к объектам, подписей и языковых подзадач.
  • Прямая генерация текста через интерактивный rollout в LeRobot.
  • Канонические входные данные состояния и действия 26D с использованием процессоров LeRobot q01/q99.
  • Довыучивание с помощью lerobot-train и инференс через стандартные API политик.

Требования к установке

Wall-OSS-0.5 требует NVIDIA GPU с поддержкой CUDA. Установите LeRobot с зависимостями для политики:

pip install "lerobot[wall_oss_05]"

Для исходного кода LeRobot:

uv sync --extra wall_oss_05

Политика реализована нативно в LeRobot. Единственной зависимостью, специфичной для этой политики, является Transformers; отдельное клонирование Wall-X не требуется. Обработка, основанная на рецептах, также требует установки дополнительных компонентов датасета. Для языковых запросов или обучения установите uv sync --extra wall_oss_05 --extra training (обучение включает поддержку датасета). Для обработки только действий без дополнительных компонентов датасета установите --policy.recipe=null.

Чекпоинты

ВариантЧекпоинт LeRobotПредназначение
Base 4Blerobot/wall-oss-0.5Каноническая дообучение и развёртывание 26D

Чекпоинт содержит конфигурацию политики, процессор и токенизатор Qwen, веса модели, сохранённые препроцессоры и постпроцессоры LeRobot, статистику нормализации и метаданные конвертации. Это базовый чекпоинт: перед публикацией результатов на уровне задачи выполните дообучение на целевом роботе и задаче.

Использование

Выберите политику с помощью:

--policy.type=wall_oss_05

Инициализация из контрольной точки LeRobot с помощью:

--policy.path=lerobot/wall-oss-0.5

Используйте --policy.path=your-org/your-finetuned-checkpoint при оценке или развёртывании сохранённого чекпоинта LeRobot.

Текст и VQA

Wall-OSS-0.5 использует общий контракт текста политики. Runtime передаёт query_kind и query_text, а затем запускает стандартный процессор входных данных политики:

request = {
    **observation,
    "query_kind": "vqa",
    "query_text": "Which object is closest to the right gripper?",
}
processed_batch = preprocessor(request)
answer = policy.generate_text(processed_batch)

vqa сохраняет вопрос вызывающей стороны. next_subtask применяет рецепт, принадлежащий WallOSS05Config. Политика наследует generate_text(processed_batch) и переопределяет supports_text_generation и generate_text. Генерация использует связанную головку словаря Qwen и эксперта зрительно-языковой модели из контрольной точки; она не вызывает отдельную VLM.

Языковой рантайм может сгенерировать подзадачу, а затем сделать предсказание действия Wall условным относительно неё:

lerobot-rollout \
  --policy.path=your-org/your-finetuned-wall-oss-0.5 \
  --policy.device=cuda \
  --task="clear the table" \
  --interactive=true

После /start используйте /vqa <question>, /autosteer <goal> или /subtask <text>.

Wall сохраняет полезные возможности по визуальному вопросно-ответному взаимодействию (VQA) и привязке к объектам (grounding), однако он специализирован для наблюдений робота и не предназначен для замены универсальных VLM.

Требования к данным

Wall-OSS-0.5 внутренне работает с канонической раскладкой состояния и действий размерностью 26D. Более узкие признаки состояния и действий нормализуются с использованием статистики их исходных наборов данных, а затем дополняются нулями до 26D для модели. Измерения действий, дополненные нулями, исключаются из функции потерь при обучении. Выходные данные обрезаются до ширины действий набора данных перед денормализацией: состояние 8D с действиями 7D возвращает действия 7D. postprocess_action_dim может применить дополнительную обрезку выходных данных. Дополнение нулями не переназначает координаты суставов или соглашения контроллера; предоставляйте совместимые значения.

Настройте входные изображения с помощью camera_key_mapping. Это сопоставление связывает каждую изображение-фичу LeRobot со слотом камеры Wall. В контрольной точке по умолчанию используются face_view и right_wrist_view.

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

Нормализация состояний и действий q01/q99 обрабатывается сохранёнными препроцессором и постпроцессором LeRobot. Во время инференса восстанавливаются статистические данные, сохранённые вместе с чекпоинтом. При дообучении с помощью lerobot-train статистика обучающего набора данных заменяет статистику предобученного процессора и сохраняется вместе с новым чекпоинтом.

Опубликованный контрольный пункт использует словарь состояния нативной политики LeRobot и текущий формат пре/постпроцессора. Загрузка и сохранение весов выполняются через общий код персистентности политики, включая распределённые сборы и механизм записи на главном процессе. Конфигурация сохраняет стабильную ссылку на актив токенизатора и может быть загружена из любого рабочего каталога.

Обучение

Довыучите базовый контрольный пункт с помощью стандартной команды обучения LeRobot:

Пример команды обучения

lerobot-train \
  --dataset.repo_id=your-org/your-dataset \
  --policy.path=lerobot/wall-oss-0.5 \
  --policy.repo_id=your-org/wall-oss-0.5-your-task \
  --output_dir=outputs/train/wall_oss_05 \
  --job_name=wall_oss_05_finetune \
  --policy.device=cuda \
  --batch_size=1 \
  --steps=20000

Начните с небольшого размера батча, так как Wall-OSS-0.5 — это модель с 4 млрд параметров. Увеличивайте его в соответствии с доступной памятью GPU или используйте накопление градиентов через конфигурацию распределённого обучения.

Для наборов данных с различными именами камер сопоставьте их ключи признаков со слотами камер Wall. Например, добавьте следующий параметр для top и wrist:

--policy.camera_key_mapping='{"observation.images.top":"face_view","observation.images.wrist":"right_wrist_view"}'

Fine-tuning определяет формы камер и ширину состояний/действий из набора данных, в том числе при загрузке базовой контрольной точки с помощью --policy.path.

Обучение с языковыми аннотациями

Рецепт, принадлежащий WallOSS05Config, по умолчанию использует необязательные языковые столбцы LeRobot. Его рецепт для подзадач с суставами контролирует ответ ассистента и непрерывный блок действий в одной каузальной последовательности:

lerobot-train \
  --dataset.repo_id=your-org/your-language-annotated-dataset \
  --policy.path=lerobot/wall-oss-0.5 \
  --policy.use_language_recipe=true \
  --policy.text_loss_weight=0.1 \
  --policy.flow_loss_weight=1.0 \
  --policy.device=cuda \
  --batch_size=1 \
  --steps=20000

Потоки рецептов определяют, какие цели выполняются для каждого примера:

  • целевой ход ассистента получает кросс-энтропию следующего токена;
  • обход low_level получает непрерывное управление потоком-действием; и
  • Рецепт low_level с целевым ответом ассистента получает оба типа потерь, при этом токены действий обращаются к контролируемому тексту.

В качестве языковых меток используются только целевой payload ассистента и его токен <|im_end|>. Промпты пользователя, padding, изображения, проприоцепция и токены непрерывных action-query маскируются при вычислении text cross-entropy. Строки без аннотаций сохраняют исходный prompt и loss, содержащие только действия. Чтобы отключить рендеринг аннотаций, установите use_language_recipe=false, а чтобы отключить оба рендерера рецепта — recipe=null. Явно заданный recipe_path переопределяет встроенный рецепт. При новом fine-tuning процессоры пересобираются на основе этого рецепта и статистики обучения; при возобновлении обучения и rollout восстанавливаются сохранённые в checkpoint процессоры и статистика.

См. Языковые столбцы и рецепты для схемы аннотаций и структуры рецептов. recipe_path может указывать на явный внешний файл переопределения в формате YAML; LeRobot не предоставляет общих файлов рецептов по умолчанию.

Ключевые параметры конфигурации

ПараметрПо умолчаниюОписание
pretrained_name_or_pathlerobot/wall-oss-0.5Источник ресурсов токенизатора и обработчика изображений
tokenizer_revisionNoneНеобязательный фикс базового токенизатора, отдельный от ревизии весов
chunk_size32Количество предсказываемых действий на чанк
n_action_steps32Количество предсказанных действий, выполненных до повторного планирования
camera_key_mappingвиды лица и правой кистиСвязывает ключи признаков изображения со слотами камеры модели
use_language_recipetrueВключает рецепт, сохранённый в конфигурации политики
recipe_pathNoneНеобязательное явное переопределение внешнего рецепта
text_loss_weight0.1Вес для кросс-энтропии супервизированных токенов ассистента
flow_loss_weight1.0Вес для непрерывной потери потока-действия
tokenizer_max_length1000Максимальная длина последовательности токенов для совместной обработки зрения, языка и действий
deviceautoИспользуйте cuda для Wall-OSS-0.5

Оценка и инференс

Используйте дообученную контрольную точку в стандартных рабочих процессах оценки LeRobot или проигрывания на роботе, передав её репозиторий на Hub или локальный каталог в качестве пути к политике.

Wall-OSS-0.5 генерирует непрерывные последовательности действий с помощью своего flow-сэмплера. Текущая политика поддерживает ветвь непрерывного потока; ветвь авто-регрессивных действий не доступна.

Каждый фрагмент кодирует свои изображения с камеры и один раз заполняет префикс наблюдения/текста. Десять шагов Эйлера повторно используют ключи и значения префикса и декодируют только токены действия. Кэш пересоздаётся для каждого нового наблюдения.

Для поддерживаемого симулятора укажите дообученный контрольный пункт и параметры, специфичные для среды, с помощью lerobot-eval:

lerobot-eval \
  --policy.path=your-org/your-finetuned-wall-oss-0.5 \
  --policy.device=cuda \
  --env.type=<environment> \
  --env.task=<task> \
  --eval.batch_size=1 \
  --eval.n_episodes=10

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

Ссылки

Лицензия

Wall-OSS-0.5 и Wall-X распространяются по лицензии Apache 2.0.

Update on GitHub