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

Соревнование 1X World Model

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

Чтобы ускорить прогресс в симуляторах для обучения роботов, мы объявляем соревнование 1X World Model: нужно предсказывать будущие наблюдения от первого лица для EVE Android. Мы предоставляем более 100 часов токенов изображений векторного квантования и исходные данные действий, собранные при управлении EVE, базовую модель мира (в стиле GENIE) и покадровый автоэнкодер MAGVIT2, который сжимает изображения в токены 16×16 и восстанавливает из них изображения.

Мы надеемся, что этот набор данных поможет исследователям робототехники, которые хотят работать в средах, рассчитанных на людей. Достаточно сильная модель мира позволит любому получить доступ к «нейросимулированной EVE». Конечная цель — задача оценки; промежуточные цели мы награждаем денежными призами, например за хорошее согласование с данными (соревнование по сжатию) и за генерацию правдоподобных видео (соревнование по сэмплированию).

Набор данных на Hugging Face

Присоединиться к Discord

Блог первого этапа, блог второго этапа

Следите за обновлениями второго этапа соревнования 1X World Model!

В исходном документе здесь была сетка анимаций с примерами генерации; в этой версии она опущена.

Задачи

Каждый пример — последовательность из 16 кадров от первого лица с робота, частота 2 Гц (всего 8 секунд). Нужно по предыдущим изображениям предсказать следующее изображение.

  • Соревнование по сжатию (призовой фонд 10k): методы предсказания будущего не обязаны ограничиваться предсказанием следующего логита. Например, можно генерировать будущие изображения с помощью GAN, диффузионных моделей или MaskGIT. Критерии опубликуем позже.
  • Соревнование по оценке (скоро): дан набор из N политик , где каждая политика предсказывает токены действий по токенам изображений. Можно ли оценить все политики в «модели мира» и сказать, какие политики окажутся лучшими?

Эти соревнования во многом вдохновлены соревнованием по сжатию commavq. Подробности см. в разделе «Дополнительные детали соревнования».

Начало работы

Требуется Python 3.10 или новее. Код проверен на Python 3.10.12.

# Установить зависимости и загрузить данные
./build.sh

# Активировать окружение Python
source venv/bin/activate
conda create -n your_environment_name python=3.10.12
conda activate your_environment_name

# Установка зависимостей
conda install -c conda-forge accelerate=0.30.1 torchvision=0.18.0 lpips=0.1.4 matplotlib tqdm wandb xformers=0.0.26.post1 wheel packaging ninja einops

# Для transformers и torch (проверьте совместимость с вашей версией CUDA)
pip install transformers==4.41.0 lightning>2.3.1 git+https://github.com/janEbert/mup.git@fsdp-fix

pip install triton
FLASH_ATTENTION_SKIP_CUDA_BUILD=TRUE python -m pip install flash-attn==2.5.8 --no-build-isolation
huggingface-cli download 1x-technologies/worldmodel --repo-type dataset --local-dir data

Нужно выполнить:

export XFORMERS_FORCE_DISABLE_TRITON=1

GENIE

В этом репозитории реализованы пространственно-временной трансформер и сэмплер MaskGIT, описанные в статье Genie: Generative Interactive Environments. Обратите внимание: эта реализация обучается только на видеопоследовательностях, без действий (хотя добавить действия несложно, добавив эмбеддинги).

# Обучение модели GENIE
python train.py --genie_config genie/configs/magvit_n32_h8_d256.json --output_dir data/genie_model --max_eval_steps 10

# Генерация кадров из обученной модели
python genie/generate.py --checkpoint_dir data/genie_model/final_checkpt

# Визуализация сгенерированных кадров
python visualize.py --token_dir data/genie_generated

# Оценка обученной модели
python genie/evaluate.py --checkpoint_dir data/genie_model/final_checkpt

Базовая линия 1X GENIE

Мы предоставляем две предобученные модели GENIE; ссылки есть в таблице лидеров.

# Генерация и визуализация
output_dir='data/genie_baseline_generated'
for i in {0..240..10}; do
    python genie/generate.py --checkpoint_dir 1x-technologies/GENIE_138M \
        --output_dir $output_dir --example_ind $i --maskgit_steps 2 --temperature 0
    python visualize.py --token_dir $output_dir
    mv $output_dir/generated_offset0.gif $output_dir/example_$i.gif
    mv $output_dir/generated_comic_offset0.png $output_dir/example_$i.png
done

# Оценка
python genie/evaluate.py --checkpoint_dir 1x-technologies/GENIE_138M --maskgit_steps 2

Описание данных

См. карточку набора данных на Hugging Face.

Обучающий набор хранится в каталоге data/train_v1.1.

Участие в соревновании

Сначала прочитайте дополнительные детали соревнования, чтобы понять правила.

Отправьте исходный код, скрипты сборки и немного информации о вашем методе на адрес challenge@1x.tech. Мы оценим отправку на нашем наборе данных и ответим по почте с результатами.

Пришлите, пожалуйста:

  • выбранное имя пользователя (это может быть настоящее имя или псевдоним; оно будет однозначно связано с вашей перепиской);
  • исходный код в виде zip-архива;
  • примерное число FLOP, использованных при обучении модели;
  • любые внешние данные, которые использовались при обучении;
  • ваши результаты оценки на предоставленном валидационном наборе (чтобы мы примерно понимали ваши ожидания от модели).

После ручной проверки кода мы запускаем оценку в песочнице Ubuntu 22.04 + CUDA 12.3 такими командами:

./build.sh # Установка нужных зависимостей и весов модели
./evaluate.py --val_data_dir <PATH-TO-HELD-OUT-DATA>  # Запуск вашей модели на отложенном наборе данных

Дополнительные детали соревнования

  1. Мы предоставляем magvit2.ckpt — веса кодировщика/декодера MAGVIT2. Кодировщик позволяет токенизировать внешние данные, чтобы улучшить метрики.
  2. В отличие от LLM, функция потерь здесь нестандартна: словарь токенов изображений поменялся в версии 1.0 (от 8 июля 2024 года). Вместо кросс-энтропии над логитами для 2^18 классов мы считаем кросс-энтропию предсказаний для 2 × 2^9 классов и суммируем её. Причина в том, что большой словарь (2^18) делает тензор логитов формы (B, 2^18, T, 16, 16) очень тяжёлым для памяти. Поэтому соревнование по сжатию рассматривает семейство моделей с факторизованным PMF вида p(x1, x2) = p(x1)p(x2). Для соревнований по сэмплированию и оценке факторизованный PMF является обязательным требованием.
  3. Для соревнования по сжатию мы намеренно оцениваем отложенные данные при фиксированном факторизованном распределении p(x1, x2) = p(x1)p(x2). Хотя модель без факторизации, например p(x1, x2) = f(x1, x2), должна за счёт недиагональных членов ковариации x1 и x2 получать меньшие потери на тестовых данных, мы хотим поощрять решения, которые получают меньшие потери при фиксированной факторизации.
  4. В соревновании по сжатию отправка может использовать только действия, которые произошли до текущего кадра-подсказки. Отправка может авторегрессивно предсказывать последующие действия для улучшения результата, но эти действия не будут поданы вместе с подсказкой.
  5. Простой поиск ближайшего соседа с выбором следующего кадра из обучающего набора дал бы довольно хорошие потери и результаты сэмплирования на валидационном наборе, так как в обучающей выборке есть похожие последовательности. Однако мы явно запрещаем такое решение (закрытый тестовый набор накажет его).
  6. Если правила соревнования нарушаются, мы не сможем выплатить награду лицам из стран, находящихся под санкциями США. Мы оставляем за собой право не выплачивать призы в соревновании.

Детали метрики

Сценарии оценки различаются в зависимости от того, насколько много реального контекста получает модель. В порядке убывания контекста эти сценарии:

  • Полностью авторегрессивный: модель получает заранее заданное число реальных кадров и авторегрессивно предсказывает все остальные кадры.
  • Временной teacher forcing: модель получает все реальные кадры до текущего кадра и авторегрессивно предсказывает все токены текущего кадра.
  • Полный teacher forcing: модель получает все реальные токены до текущего кадра, включая токены текущего кадра. Применим только для каузальных языковых моделей.

Например, рассмотрим предсказание последнего токена видео, который находится в правом нижнем углу 15-го кадра. В каждом сценарии модель получает такой контекст:

  • Полностью авторегрессивный: первые токенов 16×16 — настоящие токены первых кадров, остальные токены генерируются авторегрессивно; — заранее заданное число кадров-подсказок.
  • Временной teacher forcing: первые 15 токенов 16×16 — настоящие токены первых 15 кадров, остальные генерируются авторегрессивно.
  • Полный teacher forcing: все первые (16×16×16 − 1) токенов — настоящие.

Соревнование по сжатию использует сценарий «временной teacher forcing».

Таблица лидеров

Результаты оценки на data/val_v1.1.

Помогите нам улучшить соревнование!

Помимо соревнования по моделям мира, мы хотим сделать соревнование и набор данных полезными для ваших исследовательских вопросов. Нужны данные о взаимодействии с людьми? Больше примеров задач, требующих безопасности, например аккуратной переноски горячей кофейной чашки? Больше тонкой работы с инструментами? Роботы, которые работают вместе с другими роботами? Роботы, которые одеваются перед зеркалом? Представьте 1X как операционную команду, которая собирает высококачественные человекоподобные данные в самых разных сценариях.

Пришлите свои потребности в данных (и почему, по вашему мнению, эти данные важны) на challenge@1x.tech. Мы постараемся включить их в будущие публикации данных. Обсудить потребности в данных можно и в Discord.

Мы также приветствуем спонсоров, которые помогут увеличить призовой фонд.

Цитирование

Если вы используете это программное обеспечение или набор данных в работе, пожалуйста, цитируйте через кнопку «Cite this repository» на GitHub.

Журнал изменений

  • v1.1 — опубликованы стандарты соревнования по сжатию; из набора данных удалены видео с паузами и разрывами; более высокая обрезка изображений.
  • v1.0 — более эффективный токенизатор MAGVIT2 с отображением 16×16 (C=2^18) на изображения 256×256; добавлены исходные данные действий.
  • v0.0.1 — первоначальный выпуск соревнования с токенизатором изображений 20×20 (C=1000) и отображением на изображения 160×160.