LeRobot documentation
Wall-OSS-0.5
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 4B | lerobot/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_path | lerobot/wall-oss-0.5 | Источник ресурсов токенизатора и обработчика изображений |
tokenizer_revision | None | Необязательный фикс базового токенизатора, отдельный от ревизии весов |
chunk_size | 32 | Количество предсказываемых действий на чанк |
n_action_steps | 32 | Количество предсказанных действий, выполненных до повторного планирования |
camera_key_mapping | виды лица и правой кисти | Связывает ключи признаков изображения со слотами камеры модели |
use_language_recipe | true | Включает рецепт, сохранённый в конфигурации политики |
recipe_path | None | Необязательное явное переопределение внешнего рецепта |
text_loss_weight | 0.1 | Вес для кросс-энтропии супервизированных токенов ассистента |
flow_loss_weight | 1.0 | Вес для непрерывной потери потока-действия |
tokenizer_max_length | 1000 | Максимальная длина последовательности токенов для совместной обработки зрения, языка и действий |
device | auto | Используйте 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