← Блог

Мировые модели Genie 3: как они генерируют интерактивные среды

Глубокое погружение в технологию мировых моделей Genie 3: как она создаёт согласованные, управляемые 3D-пространства из текстовых подсказок.

By Dora 8 min read
Мировые модели Genie 3: как они генерируют интерактивные среды

Всё началось с небольшой заминки. Я пыталась набросать прототип простой интерактивной сцены для воркшопа — ничего сложного, просто маленькое пространство, где персонаж движется, а мир реагирует на это правдоподобно. Мне не хотелось открывать игровой движок, настраивать физику и тратить вечер на отладку коллизий. Всё чаще мне попадались упоминания Genie и «моделей мира», и я задалась вопросом: смогут ли world-модели Genie 3 взять часть этой работы на себя?

Меня зовут Дора. Я не гонюсь за новинками. Я гонюсь за незаметной скоростью — той, что снижает умственную нагрузку. Недавно (в январе этого года) я вернулась к своим заметкам с более свежим взглядом. Вот что меня зацепило: не список функций, а то, каково это на самом деле — использовать модели мира для небольших реальных задач, и в каких случаях подходы в духе Genie помогают, а в каких — мешают.

Что такое модели мира

Модель мира — это обученный симулятор. Вместо того чтобы прописывать правила вручную (гравитация делает это, стены делают то), вы тренируете модель, которая предсказывает, что произойдёт в сцене дальше. Если она обучена хорошо, она усваивает не только внешний вид кадров, но и лежащие в их основе правила, которые придают смысл этим кадрам с течением времени.

Мне нравится исходная формулировка из работы Ха и Шмидхубера о World Models: сжать мир в компактное представление, научиться предсказывать, как это представление изменяется, и использовать его для планирования или действий. Последующие исследования распространили эту идею на видео. Модель просматривает множество отрывков и усваивает некое подобие внутренней физики — по крайней мере, той её части, что доступна для наблюдения. Затем вы «подталкиваете» модель (через действия), и она предсказывает следующее состояние.

Это не то же самое, что генератор текст-в-видео. Обычный генератор рисует правдоподобные кадры. Модель мира пытается сохранить причинно-следственные связи. Если я нажму «влево», персонаж пойдёт влево. Если мяч ударится о пол, он отскочит так, как это согласуется с тем, что модель видела прежде. Ценность здесь — в интерактивности. Модель не просто показывает вам мир: она позволяет жить внутри усвоенных ею правил.

На практике это ощущение «нахождения внутри» зависит от нескольких вещей:

  • компактного пространства состояний (чтобы модель могла с ним работать),
  • модели динамики (чтобы она знала, как состояния меняются),
  • и способа связать ваши вводные данные с понятием действий в модели.

Системы в духе Genie стремятся решить все три задачи. Именно это обещание меня и привлекло: смогут ли world-модели Genie 3 избавить меня от ручной настройки в небольших прототипах и при этом обеспечить правдоподобное поведение?

Как Genie 3 создаёт миры

Я использую «Genie 3» как современный общепринятый термин для новой волны работ по Genie. Задокументированной основой служит статья 2024 года Genie: Generative Interactive Environments, в которой описан базовый подход. Версии и названия в интернете варьируются, но механика остаётся примерно одинаковой.

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

  • Во-первых, система обучается визуальному словарю. Необработанные кадры громоздки и многомерны, поэтому Genie обучает токенизатор, сжимающий видео в дискретные токены. Это заставляет мир «говорить» на компактном языке, которым модель может оперировать.
  • Во-вторых, она учится тому, как мир движется. Модель динамики предсказывает следующие токены на основе текущих токенов и некоего понятия действия. Именно здесь начинается ощущение физики. Модель не вычисляет массу или силу: она предсказывает согласованные паттерны движения, похожие на физику, потому что часто их видела.
  • В-третьих, она учится действиям из видео. Вместо того чтобы считывать внутренние управляющие сигналы игры, Genie выводит пространство действий, наблюдая за тем, как люди взаимодействуют с видео (записи геймплея особенно полезны). Затем во время работы сигналы с клавиатуры или контроллера отображаются в это усвоенное пространство действий. Это похоже на то, как если бы вы говорили на диалекте, который понимает модель.
  • Наконец, она декодирует токены обратно в кадры, которые вы видите и с которыми взаимодействуете, шаг за шагом.

Что сделало всё это полезным для меня — не новизна, а уровень усилий. Я начала с короткого клипа (около 20 секунд) с движущимся персонажем в 2D-платформере. После нескольких итераций — токенизации, подгонки небольшой головки динамики поверх предобученного бэкбона, калибровки маппинга ввода — я могла подталкивать персонажа и наблюдать, как мир реагирует. Первые запуски были нестабильными. Края мерцали, персонаж порой проходил сквозь стены как призрак. Но цикл итераций был коротким: поправить, запустить, понаблюдать. После вечера возни поведение устоялось до чего-то, что можно было демонстрировать, не извиняясь каждые пять секунд.

Два небольших момента особенно запомнились:

  • Управление в латентном пространстве оказалось удобнее. Работа с токенами вместо пикселей означала, что небольшие изменения давали предсказуемый результат. Я не тратила время на погоню за попиксельными артефактами.
  • Маппинг ввода стал настоящей работой. Перевод нажатий клавиш в выведенное моделью пространство действий потребовал больше проб и ошибок, чем я ожидала. Но когда всё встало на место, ощущение контроля было мгновенным — как освоение чувствительности нового трекпада.

Оговорка: вам всё равно нужны данные, соответствующие задуманному поведению. Если в ваших клипах нет прыжков, не ждите чистых прыжков. Модель может галлюцинировать, но будет делать это в рамках того, что усвоила.

Согласованность и обработка физики

Когда люди говорят «ощущается как настоящее», они обычно имеют в виду две вещи: время течёт как нужно, и пространство держится вместе. World-модели в духе Genie продвигаются в обоих направлениях — с некоторыми особенностями.

Временная согласованность

В ранних запусках было то же дрожание, что вы, вероятно, видели в видеомоделях: объекты смещаются, потом резко возвращаются. Временная согласованность улучшилась, когда я стала опираться на сильные стороны модели, а не бороться с ней. Более короткие развёртки с частыми вводными действиями давали ей более чёткие якорные точки. Попытки тянуть 10 секунд свободно генерируемого контента — вот где проступали швы.

На практике модель, как правило, очень хорошо сохраняет краткосрочный импульс. Если мяч катится, он продолжает катиться. Если персонаж в прыжке, дуга гладко продолжается на следующих десятке кадров. С более длинными дугами, особенно после панорамирования камеры или перекрытий, модель может потерять нить и придумать новую. Я начала добавлять лёгкие «пинги» (крошечные нулевые вводы каждые несколько кадров), чтобы напоминать ей, что время всё ещё течёт контролируемым образом. Это немного уменьшило мерцание.

Есть ещё вопрос задержки против стабильности. Быстрое декодирование заманчиво, но я заметила небольшую цену: когда я добивалась скорости, появлялись крошечные временные дрожания — едва заметные, но их чувствуешь при управлении. Настройка декодера на чуть более медленный и стабильный режим сделала контурный цикл более приземлённым. Это не сэкономило минуты, но избавило от сомнений.

Пространственная когерентность

Пространственная когерентность — это то, остаются ли вещи там, где должны, и уважает ли мир собственную планировку. Коллизии — очевидный тест. В моделях в духе Genie коллизии усваиваются, а не прописываются. Если стены в обучающих клипах чёткие и последовательные, модель обычно воспринимает их как границы. Если стены нечёткие или неоднозначные, ожидайте «утечек».

Мне больше везло с простыми высококонтрастными сценами. Платформеры с чёткими силуэтами давали меньше нарушений границ, чем насыщенные сцены с параллаксными слоями. Когда модель всё же нарушала пространство, например позволяла персонажу скользить сквозь угол, я нашла два способа исправления:

  • Скорректировать пространство действий. Иногда модель слушалась, но управление давило слишком сильно. Ограничение максимальной величины ввода не давало ей «пересиливать» усвоенные стены.
  • Перецентровать ключевыми кадрами. Подача реального кадра каждые несколько секунд (вместо чистой авторегрессии) возвращала модель к карте, которую она действительно усвоила. Это не изящно, но работало.

Ещё одно замечание: движение камеры. Если в исходных видео камера была неподвижной, модель лучше удерживала пространство. Если камера дрейфовала, модель иногда смешивала движение мира с движением камеры, и объекты «плыли». По возможности фиксируйте камеру.

Преимущества перед традиционными методами

По сравнению с ручными прототипами в игровом движке world-модели Genie 3 ощущались как обмен: я жертвовала точностью и получала скорость и гибкость. Для небольших экспериментов это была честная сделка.

  • Меньшие затраты на настройку. Мне не пришлось настраивать физику или тайловые карты. Я загрузила клип, настроила ввод и к концу дня получила что-то интерактивное. Сэкономленное время по часам было не огромным (может, пара часов), но снижение умственной нагрузки имело значение. Меньше решений, меньше кроличьих нор.
  • Естественный перенос стиля. Поскольку визуальная составляющая и динамика усваиваются вместе, «ощущение» исходного клипа переносится. Если вы хотите мрачный, зернистый мир, который всё равно реагирует на ваши вводные, здесь это достигается без прохода по освещению.
  • Единый цикл итерации. Правки происходят в одном месте — данных и модели. Мне не нужно было переключаться между панелью физики, шейдером и конечным автоматом. Это один цикл обратной связи.

Конечно, есть ограничения. Если вам нужны попиксельные коллизии, детерминированная физика или длинный горизонт без дрейфа, традиционные движки всё ещё выигрывают. И если ваши данные не показывают какого-либо поведения, модель не будет надёжно его изобретать. Для производственного использования или чего-либо критичного с точки зрения безопасности я бы совмещала world-модель с ограничителями или возвращалась к коду.

Почему это для меня важно: world-модели снижают порог, чтобы попробовать идею. Не выпустить её, но понять, стоит ли делать следующий шаг. Если вы живёте в прототипах, это подарок.

Поделиться