Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

WALL-X: открытый инженерный фреймворк серии WALL

WALL-X — не отдельная статья, а открытый инженерный стек X Square Robot для моделей серии WALL. Его можно понимать так: скачать модель WALL-OSS, подготовить данные в формате LeRobot, настроить обучение, запустить сервер вывода, провести оценку и развёртывание.

После этого раздела запомните главную мысль:

WALL-X — основная инженерная точка входа для воспроизведения WALL-OSS, но он не равен автоматически полному пакету воспроизведения статьи WALL-WM.

1. Состояние репозитория и ресурсов

ПроектТекущее состояние
Репозиторий с кодомX-Square-Robot/wall-x
ЛицензияВ репозитории указана лицензия Apache-2.0
Поддерживаемые моделиwall-oss-0.5, wall-oss-flow-0.1, wall-oss-flow, wall-oss-fast
Основные возможностиПодготовка данных LeRobot, конфигурация моделей, ветви действий flow / FAST, сервер вывода, оценка, сборка CUDA-операторов
Рекомендуемое применениеДообучение WALL-OSS-0.5, оценка на данных LIBERO / LeRobot, вывод в виде сервиса

В новостях README WALL-X одновременно упоминаются WALL-OSS, WALL-OSS-0.5 и WALL-WM. Это легко может создать впечатление, что полный код WALL-WM уже можно запустить одной командой. Более осторожный вывод такой:

  • WALL-X сейчас явно предоставляет стек обучения и вывода для открытых моделей серии WALL.
  • workspace/README.md сейчас в первую очередь описывает Wall-OSS-0.5: дообучение, оценку в симуляции и развёртывание на реальном роботе.
  • Статья и PDF WALL-WM опубликованы, но полные веса для событийной модели мира действий, данные по событиям и рецепт обучения не удаётся однозначно найти в списке моделей WALL-X.

2. Место WALL-X в общей цепочке

flowchart LR
    A["Контрольная точка Hugging Face<br/>wall-oss-0.5 / flow / fast"] --> B["Конфигурация модели WALL-X"]
    C["Набор данных в формате LeRobot<br/>LIBERO или собственные данные робота"] --> D["workspace/*.yml"]
    B --> E["Скрипт обучения"]
    D --> E
    E --> F["Дообученная контрольная точка"]
    F --> G["Сервер политики / среда вывода"]
    G --> H["Оценка в LIBERO или развёртывание на роботе"]

Рисунок 1. Инженерная цепочка WALL-X. Ценность WALL-X в том, что он связывает модель, данные, конфигурацию, обучение и развёртывание. Это не просто файл с определением модели, а набор инструментов для экспериментов с WALL-OSS.

Если вы пишете открытое учебное руководство, главу о WALL-X стоит строить не как пересказ статьи, а как навигацию по инженерным решениям: откуда начать и какой путь выбрать.

3. Наиболее важные возможности репозитория

По официальному README WALL-X включает несколько блоков:

ВозможностьКак объяснять в учебнике
Подготовка данных LeRobotТраектории робота организуются в формат, который читает LeRobot; это снижает стоимость подключения собственных данных
Конфигурация моделиЧерез YAML задаются контрольная точка, процессор, размерности действий, пути к данным и гиперпараметры обучения
Ветвь действий flow-matchingДля генерации непрерывных действий, подходит для высокочастотного управления
Ветвь действий FASTДля более быстрого пути с токенами действий или предсказанием действий
Утилиты сервера и оценкиПолитика запускается как сервис, а клиент симуляции или робота обращается к нему
Исходники CUDA-операторовПри установке собираются пользовательские CUDA-операторы, поэтому нужно согласовать окружения CUDA, PyTorch и flash-attn

Отсюда понятно, что сложность воспроизведения WALL-X связана не с количеством команд. Главные трудности — версии окружения, сборка CUDA-расширений, версия LeRobot, пути к контрольным точкам и формат данных.

4. С какой модели начинать: WALL-OSS-0.5

Официальный workspace/README.md прямо указывает, что текущий открытый релиз ориентирован на Wall-OSS-0.5. Если вы используете WALL-OSS-FLOW или WALL-OSS-FAST, в README рекомендуется вернуться к более ранним версиям кода.

Это важное замечание для учебного руководства. Не стоит смешивать все контрольные точки в одном плане. Рекомендуем такой выбор:

ЦельЧто выбрать
Первый запуск WALL-Xwall-oss-0.5 и актуальная ветка main
Проверка старых моделей flow / FASTПереключиться на соответствующий исторический коммит по инструкции проекта
Интеграция с инструментами сообщества LeRobotИспользовать policy.type=wall_x по документации LeRobot
Воспроизведение статьи WALL-WMПока не рекомендуется; сначала следить, опубликует ли официальный проект отдельную контрольную точку и рецепт данных

5. Окружение и установка

Официальное окружение WALL-X выглядит примерно так:

conda create --name wallx python=3.10
conda activate wallx

pip install -r requirements.txt
pip install "dmuon @ git+https://github.com/X-Square-Robot/dmuon.git"

git clone https://github.com/huggingface/lerobot.git
cd lerobot
git checkout c66cd401767e60baece16e1cf68da2824227e076
pip install --no-deps -e .
cd -

MAX_JOBS=8 pip install --no-build-isolation -e .

При воспроизведении особенно проверяйте:

  • версия Python — 3.10;
  • CUDA, PyTorch и flash-attn совместимы друг с другом;
  • LeRobot переключён на указанный в инструкции коммит;
  • LeRobot установлен с флагом --no-deps, чтобы не перезаписать зависимости WALL-X;
  • при установке WALL-X разрешена сборка CUDA-расширения.

Эти проверки важнее слепого повторения команд. Многие неудачи в VLA-проектах связаны не с самой моделью, а с конфликтами flash-attn, расширений CUDA, зависимостей LeRobot или версий torch.

6. Загрузка моделей и настройка путей

Для WALL-X сначала скачайте два типа файлов:

ФайлНазначение
Контрольная точка WALL-OSSВеса модели и конфигурация, например x-square-robot/wall-oss-0.5
Процессор Qwen2.5-VLТокенизатор и процессор для обработки входов VLM

Пример команд:

huggingface-cli download x-square-robot/wall-oss-0.5 \
  --local-dir /path/to/wall-oss-0.5

huggingface-cli download Qwen/Qwen2.5-VL-3B-Instruct \
  --local-dir /path/to/Qwen2.5-VL-3B-Instruct

В учебнике не следует подставлять на место /path/to/... пути из собственной машины автора. Лучше заранее задать переменные:

export MODEL_ROOT=/path/to/models
export DATA_ROOT=/path/to/data
export WALLX_ROOT=/path/to/wall-x

После этого в YAML можно использовать эти переменные, и другим читателям будет проще перенести руководство на свой сервер.

7. Данные и конфигурация обучения

Ядро конфигурации обучения WALL-X — файлы workspace/example/*.yml. Нужно обращать внимание на несколько полей:

Поле конфигурацииНазначение
model.config_pathПуть к config.json внутри контрольной точки WALL-OSS
model.processor_pathПуть к процессору Qwen2.5-VL
model.pretrained_pathПуть к предобученным весам
Путь к набору данныхПуть к данным в формате LeRobot
Число степеней свободы роботаРазмерность действий должна совпадать с данными робота
Ветвь действийРежим предсказания: flow / FAST / другой
Размер батча и число шаговВыбираются по объёму видеопамяти

Если цель — написать открытое учебное руководство, удобно установить для воспроизведения уровень «проверка работоспособности»:

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

Такая проверка подтверждает, что цепочка инженерии работает, но не доказывает, что модель достигла качества из статьи.

8. Сервер вывода и цепочка оценки

На практике WALL-X обычно работает по схеме «сервер политики + клиент среды или робота»:

sequenceDiagram
    participant Env as Клиент симуляции или робота
    participant Server as Сервер политики WALL-X
    participant Model as Политика WALL-OSS
    Env->>Server: текущее изображение / состояние / инструкция
    Server->>Model: процессор + прямой проход модели
    Model-->>Server: блок действий
    Server-->>Env: возвращает действия
    Env->>Env: выполняет действия и переходит к следующему шагу

Рисунок 2. Цепочка вызовов сервера вывода. Такая схема позволяет разделить процессы модели и управления симуляцией или роботом, а также запускать вывод на GPU и управление роботом на разных машинах.

Самые частые варианты оценки:

  • оценка в симуляции LIBERO;
  • дообучение и валидация на собственных данных в формате LeRobot;
  • тест фиктивного вывода или запуска сервера;
  • развёртывание на реальном роботе — но это требует дополнительного аппаратного интерфейса и систем безопасности, поэтому в общем руководстве его нельзя считать готовым «по умолчанию».

9. Связь с LeRobot

В документации LeRobot WALL-OSS уже доступна как политика:

policy.type=wall_x

Для открытого учебника это полезно: многие читатели уже знакомы с форматом данных LeRobot и командами обучения, поэтому проще сначала попробовать WALL-OSS в LeRobot, чем сразу настраивать нативный WALL-X.

Два пути можно выбрать так:

ПутьДля кого
Нативный WALL-XТем, кто хочет работать с официальным инженерным стеком X Square Robot и потом развернуть WALL-OSS-0.5
Интеграция с LeRobotТем, у кого уже есть данные LeRobot или кто привык к lerobot-train

10. Почему учебник пока не содержит пошагового воспроизведения

Для WALL-X можно выстроить воспроизводимый путь, но полное пошаговое руководство требует зафиксировать:

  • конкретную версию контрольной точки;
  • конкретный коммит кода;
  • конкретный коммит LeRobot;
  • конкретные сочетания CUDA, PyTorch и flash-attn;
  • размер набора данных, способ загрузки и структуру диска;
  • что именно запускается: LIBERO, реальный робот или собственные данные.

Если эти переменные не зафиксированы, написание «полного руководства с нуля» быстро превращается в неподдерживаемый набор команд. Поэтому сейчас лучше в этой главе описать инженерный стек, выбор модели и границы воспроизведения. Если позже мы решим воспроизводить wall-oss-0.5 вместе с LIBERO, отдельно будет написано исполняемое руководство.

11. Источники