Фаза 04 · урок 28
Мировые модели и диффузия видео
Цель урока: Генерация видео и моделирование мира сошлись в 2026 году. Модель, способная генерировать связную минуту видео, в некотором смысле уже научилась тому, как движется мир: постоянству объектов, гравитации, причинности, стилю. Если…
Текущий релиз AlexBred.com: первые 100 уроков русскоязычной программы.
Содержание урока
- Цели обучения
- Проблема
- Концепция
- Три семейства моделирования мира
- Архитектура Video DiT
- Обусловливание действиями: модели латентных действий
- Физическая правдоподобность
- Мировые модели автономного вождения
- Стек робототехники: VLM + видеомодель + обратная динамика
- Оценка
- Ландшафт моделей в 2026 году
- Соберите это
- Шаг 1: 3D-патчизация видео
- Шаг 2: 3D-поворотное позиционное кодирование
- Шаг 3: блок разделённого внимания
- Шаг 4: соберите крошечный видео-DiT
- Шаг 5: проверьте формы
- Используйте это
- Внедрите это
- Упражнения
- Ключевые термины
- Дополнительные материалы
Видеомодель, предсказывающая следующие секунды сцены, — это симулятор мира. Обусловьте это предсказание действиями — и у вас получится обученный игровой движок.
Тип: Изучите + соберите Языки: Python Предварительные требования: Фаза 4, урок 10 (диффузия), фаза 4, урок 12 (понимание видео), фаза 4, урок 23 (DiT + выпрямленный поток) Время: ~75 минут
Цели обучения
- Объяснять разницу между чистой моделью генерации видео (Sora 2) и мировой моделью, обусловленной действиями (Genie 3, DreamerV3)
- Описывать видео-DiT: пространственно-временные патчи, 3D-позиционное кодирование, совместное внимание по токенам
(T, H, W) - Прослеживать, как мировая модель встраивается в робототехнику: VLM планирует → видеомодель симулирует → обратная динамика выдаёт действия
- Выбирать между Sora 2, Genie 3, Runway GWM-1 Worlds, Wan-Video и HunyuanVideo для конкретного сценария (творческое видео, интерактивная симуляция, синтез для автономного вождения)
Проблема
Генерация видео и моделирование мира сошлись в 2026 году. Модель, способная генерировать связную минуту видео, в некотором смысле уже научилась тому, как движется мир: постоянству объектов, гравитации, причинности, стилю. Если обусловить это предсказание действиями (идти влево, открыть дверь), видеомодель становится обучаемым симулятором, способным заменить игровой движок, симулятор вождения или среду для робототехники.
Ставки вполне конкретны. Genie 3 генерирует игровые окружения из одного изображения. Runway GWM-1 Worlds синтезирует бесконечные исследуемые сцены. Sora 2 создаёт минутные видео с синхронизированным звуком и смоделированной физикой. NVIDIA Cosmos-Drive, Wayve Gaia-2 и Tesla DrivingWorld генерируют реалистичное дорожное видео для данных обучения автономных автомобилей. Парадигма мировых моделей незаметно захватывает sim-to-real для робототехники.
Этот урок — урок «большой картины» для фазы 4. Он соединяет генерацию изображений, понимание видео и агентное рассуждение в архитектурный паттерн, к которому движутся передовые исследования.
Концепция
Три семейства моделирования мира
- Sora 2 — это чистая генерация видео, обусловленная запросами. Интерфейса действий нет. Ею нельзя «рулить» в середине развёртывания.
- Genie 3, GWM-1 Worlds, Mirage / Magica — мировые модели, обусловленные действиями. Они выводят латентные действия из наблюдаемого видео, а затем обусловливают предсказания будущих кадров действиями. Они интерактивны: вы нажимаете клавиши или двигаете камеру, и сцена отвечает.
- DreamerV3 и классическое семейство мировых моделей для RL предсказывают в латентном пространстве с явной обусловленностью действиями и обучаются на сигнале награды. Они менее визуальны, но полезнее для выборочно-эффективного RL.
Архитектура Video DiT
Video latent: (C, T, H, W)
Patchify (spatial): grid of P_h x P_w patches per frame
Patchify (temporal): group P_t frames into a temporal patch
Resulting tokens: (T / P_t) * (H / P_h) * (W / P_w) tokens
Позиционное кодирование трёхмерно: поворотное или обучаемое вложение для каждой координаты (t, h, w). Внимание может быть:
- Полным совместным (Full joint) — все токены уделяют внимание всем токенам. Сложность
O(N^2)приNтокенах. Для длинных видео неприемлемо. - Разделённым (Divided) — чередуются временное внимание (та же пространственная позиция, по времени:
(H*W) * T^2) и пространственное внимание (тот же временной шаг, по пространству:T * (H*W)^2). Используется TimeSformer и большинством видео-DiT. - Оконным (Window) — локальные окна в
(t, h, w). Используется Video Swin.
Каждая диффузионная видеомодель 2026 года использует один из этих трёх паттернов вместе с кондиционированием AdaLN (урок 23) и выпрямленным потоком.
Обусловливание действиями: модели латентных действий
Genie обучает латентное действие на кадр, дискриминативно предсказывая действие между парой последовательных кадров. Затем декодер модели обусловливается выведенным латентным действием, а не явными клавишами клавиатуры. Во время инференса пользователь может задать латентное действие (или сэмплировать его из нового априора), и модель сгенерирует следующий кадр, согласованный с этим действием.
Sora полностью пропускает интерфейс действий. Её декодер предсказывает следующие пространственно-временные токены из прошлых пространственно-временных токенов. Запрос обусловливает начало; в середине генерации ничто ею не управляет.
Физическая правдоподобность
В релизе Sora 2 2026 года явно заявлялась физическая правдоподобность: вес, равновесие, постоянство объектов, причинно-следственные связи. Команда оценивала её с помощью выставленных людьми оценок правдоподобия; модель заметно лучше Sora 1 справляется с падающими предметами, столкновениями персонажей и намеренными неудачами (неудачный прыжок).
Правдоподобность остаётся главным режимом отказа. Видео 2024–2025 годов с людьми, едящими спагетти или пьющими из стаканов, выявляли отсутствие у модели устойчивого представления об объектах. Модели 2026 года (Sora 2, Runway Gen-5, HunyuanVideo) уменьшают, но не устраняют эти проблемы.
Мировые модели автономного вождения
Мировые модели вождения генерируют реалистичные дорожные сцены, обусловленные траекториями, ограничивающими рамками или навигационными картами. Применения:
- Cosmos-Drive-Dreams (NVIDIA) — генерирует минуты дорожного видео для обучения RL.
- Gaia-2 (Wayve) — синтез сцен, обусловленный траекторией, для оценки политик.
- DrivingWorld (Tesla) — симулирует разнообразные погодные условия, время суток и транспортный поток.
- Vista (ByteDance) — реактивный синтез дорожных сцен.
Они заменяют дорогостоящий сбор данных в реальном мире для редких случаев — пешеходов, перебегающих дорогу ночью, обледеневших перекрёстков, необычных типов автомобилей, — которые иначе потребовали бы миллионов миль пробега.
Стек робототехники: VLM + видеомодель + обратная динамика
Формирующийся трёхкомпонентный цикл робототехники:
- VLM разбирает цель («подними красную чашку») и планирует последовательность высокоуровневых действий.
- Модель генерации видео симулирует, как выглядело бы выполнение каждого действия, — предсказывает наблюдения на
Nкадров вперёд. - Модель обратной динамики извлекает конкретные моторные команды, которые породили бы эти наблюдения.
Это заменяет формирование награды и требующее большого числа образцов RL. Мировая модель выполняет воображение; обратная динамика замыкает контур исполнительным управлением. Genie Envisioner — одна из реализаций; многие исследовательские группы сходятся на этой структуре.
Оценка
- Визуальное качество — FVD (Fréchet Video Distance), пользовательские исследования.
- Соответствие запросу — CLIPScore на кадр, оценка в стиле VQA.
- Физическая правдоподобность — оценивается людьми на наборе эталонных тестов (внутренний бенчмарк Sora 2, VBench).
- Управляемость (для интерактивных мировых моделей) — согласованность «действие → наблюдение»; можно ли вернуться в предыдущее состояние?
Ландшафт моделей в 2026 году
| Модель | Применение | Параметры | Выход | Лицензия |
|---|---|---|---|---|
| Sora 2 | text-to-video, аудио | — | 1-мин 1080p + аудио | только API |
| Runway Gen-5 | text/image-to-video | — | клипы по 10 с | API |
| Runway GWM-1 Worlds | интерактивный мир | — | бесконечное 3D-развёртывание | API |
| Genie 3 | интерактивный мир из изображения | 11B+ | игровые кадры | исследовательский предварительный доступ |
| Wan-Video 2.1 | открытая text-to-video | 14B | высококачественные клипы | некоммерческая |
| HunyuanVideo | открытая text-to-video | 13B | 10-секундные клипы | разрешительная |
| Cosmos / Cosmos-Drive | симуляция автономного вождения | 7-14B | дорожные сцены | NVIDIA open |
| Magica / Mirage 2 | игровой движок, созданный AI | — | изменяемые миры | продукт |
Соберите это
Шаг 1: 3D-патчизация видео
import torch
import torch.nn as nn
class VideoPatch3D(nn.Module):
def __init__(self, in_channels=4, dim=64, patch_t=2, patch_h=2, patch_w=2):
super().__init__()
self.proj = nn.Conv3d(
in_channels, dim,
kernel_size=(patch_t, patch_h, patch_w),
stride=(patch_t, patch_h, patch_w),
)
self.patch_t = patch_t
self.patch_h = patch_h
self.patch_w = patch_w
def forward(self, x):
# x: (N, C, T, H, W)
x = self.proj(x)
n, c, t, h, w = x.shape
tokens = x.reshape(n, c, t * h * w).transpose(1, 2)
return tokens, (t, h, w)
3D-свёртка со stride, равным kernel, работает как пространственно-временной патчизатор. Сетка токенов: (T, H, W) -> (T/2, H/2, W/2).
Шаг 2: 3D-поворотное позиционное кодирование
Rotary Position Embeddings (RoPE) применяются по отдельности вдоль осей t, h, w:
def rope_3d(tokens, t_dim, h_dim, w_dim, grid):
"""
tokens: (N, T*H*W, D)
grid: (T, H, W) sizes
t_dim + h_dim + w_dim == D
"""
T, H, W = grid
n, seq, d = tokens.shape
if t_dim + h_dim + w_dim != d:
raise ValueError(f"t_dim+h_dim+w_dim ({t_dim}+{h_dim}+{w_dim}) must equal D={d}")
assert seq == T * H * W
t_idx = torch.arange(T, device=tokens.device).repeat_interleave(H * W)
h_idx = torch.arange(H, device=tokens.device).repeat_interleave(W).repeat(T)
w_idx = torch.arange(W, device=tokens.device).repeat(T * H)
# Simplified: just scale channels by frequencies. Real RoPE rotates pairs.
freqs_t = torch.exp(-torch.log(torch.tensor(10000.0)) * torch.arange(t_dim // 2, device=tokens.device) / (t_dim // 2))
freqs_h = torch.exp(-torch.log(torch.tensor(10000.0)) * torch.arange(h_dim // 2, device=tokens.device) / (h_dim // 2))
freqs_w = torch.exp(-torch.log(torch.tensor(10000.0)) * torch.arange(w_dim // 2, device=tokens.device) / (w_dim // 2))
emb_t = torch.cat([torch.sin(t_idx[:, None] * freqs_t), torch.cos(t_idx[:, None] * freqs_t)], dim=-1)
emb_h = torch.cat([torch.sin(h_idx[:, None] * freqs_h), torch.cos(h_idx[:, None] * freqs_h)], dim=-1)
emb_w = torch.cat([torch.sin(w_idx[:, None] * freqs_w), torch.cos(w_idx[:, None] * freqs_w)], dim=-1)
return tokens + torch.cat([emb_t, emb_h, emb_w], dim=-1)
Здесь использована упрощённая аддитивная форма. Настоящий RoPE поворачивает пары каналов на частотах; позиционная информация остаётся той же.
Шаг 3: блок разделённого внимания
class DividedAttentionBlock(nn.Module):
def __init__(self, dim=64, heads=2):
super().__init__()
self.time_attn = nn.MultiheadAttention(dim, heads, batch_first=True)
self.space_attn = nn.MultiheadAttention(dim, heads, batch_first=True)
self.ln1 = nn.LayerNorm(dim)
self.ln2 = nn.LayerNorm(dim)
self.ln3 = nn.LayerNorm(dim)
self.mlp = nn.Sequential(nn.Linear(dim, 4 * dim), nn.GELU(), nn.Linear(4 * dim, dim))
def forward(self, x, grid):
T, H, W = grid
n, seq, d = x.shape
# time attention: same (h, w), across t
xt = x.view(n, T, H * W, d).permute(0, 2, 1, 3).reshape(n * H * W, T, d)
a, _ = self.time_attn(self.ln1(xt), self.ln1(xt), self.ln1(xt), need_weights=False)
xt = (xt + a).reshape(n, H * W, T, d).permute(0, 2, 1, 3).reshape(n, seq, d)
# space attention: same t, across (h, w)
xs = xt.view(n, T, H * W, d).reshape(n * T, H * W, d)
a, _ = self.space_attn(self.ln2(xs), self.ln2(xs), self.ln2(xs), need_weights=False)
xs = (xs + a).reshape(n, T, H * W, d).reshape(n, seq, d)
xs = xs + self.mlp(self.ln3(xs))
return xs
Временное внимание работает в каждой пространственной позиции по времени; пространственное — внутри каждого кадра по позициям. Это две операции O(T^2 + (HW)^2) вместо одной O((THW)^2). Таково ядро TimeSformer и всех современных видео-DiT.
Шаг 4: соберите крошечный видео-DiT
class TinyVideoDiT(nn.Module):
def __init__(self, in_channels=4, dim=64, depth=2, heads=2):
super().__init__()
self.patch = VideoPatch3D(in_channels=in_channels, dim=dim, patch_t=2, patch_h=2, patch_w=2)
self.blocks = nn.ModuleList([DividedAttentionBlock(dim, heads) for _ in range(depth)])
self.out = nn.Linear(dim, in_channels * 2 * 2 * 2)
def forward(self, x):
tokens, grid = self.patch(x)
for blk in self.blocks:
tokens = blk(tokens, grid)
return self.out(tokens), grid
Это не работающий генератор видео, а структурная демонстрация, в которой каждая часть имеет корректные формы.
Шаг 5: проверьте формы
vid = torch.randn(1, 4, 8, 16, 16) # (N, C, T, H, W)
model = TinyVideoDiT()
out, grid = model(vid)
print(f"input {tuple(vid.shape)}")
print(f"tokens grid {grid}")
print(f"output {tuple(out.shape)}")
После патчизации ожидайте grid = (4, 8, 8) и out = (1, 256, 32); затем голова проецирует в пространственно-временные патчи на токен, готовые к обратной патчизации в видео.
Используйте это
Паттерны доступа к продакшен-моделям в 2026 году:
- Sora 2 API (OpenAI) — text-to-video, синхронизированное аудио. Премиальное ценообразование.
- Runway Gen-5 / GWM-1 (Runway) — image-to-video, интерактивные миры.
- Wan-Video 2.1 / HunyuanVideo — самостоятельное размещение открытого исходного кода.
- Cosmos / Cosmos-Drive (NVIDIA) — открытые веса для симуляции вождения.
- Genie 3 — исследовательский предварительный доступ, требуется запросить доступ.
Чтобы собрать демонстрацию интерактивной мировой модели, начните с Wan-Video для качества, а затем добавьте адаптер латентных действий для интерактивности. Для симуляции автономного вождения Cosmos-Drive — открытый эталон 2026 года.
Для робототехники стек в реальном использовании выглядит так:
- Языковая цель -> VLM (Qwen3-VL) -> высокоуровневый план.
- План -> видеомодель латентных действий -> воображаемое развёртывание.
- Развёртывание -> модель обратной динамики -> низкоуровневые действия.
- Действия выполнены -> наблюдение подаётся обратно на шаг 1.
Внедрите это
Этот урок создаёт:
outputs/prompt-video-model-picker.md— выбирает между Sora 2 / Runway / Wan / HunyuanVideo / Cosmos по задаче, лицензии и задержке.outputs/skill-physical-plausibility-checks.md— навык, определяющий автоматизированные проверки (постоянство объектов, гравитация, непрерывность), которые нужно запускать для любого сгенерированного видео перед выпуском.
Упражнения
- (Легко) Вычислите количество токенов для 5-секундного видео 360p при patch-t=2, patch-h=8, patch-w=8. Рассмотрите память для внимания при таком размере.
- (Средне) Замените приведённый выше блок разделённого внимания блоком полного совместного внимания и измерьте форму и число параметров. Объясните, почему разделённое внимание необходимо реальным видеомоделям.
- (Сложно) Постройте минимальную видеомодель с латентными действиями: возьмите набор данных троек
(frame_t, action_t, frame_{t+1})(подойдёт любая простая 2D-игра), обучите крошечный видео-DiT, обусловленный вложениями действий, и покажите, что разные действия порождают разные следующие кадры.
Ключевые термины
| Термин | Как обычно говорят | Что это на самом деле означает |
|---|---|---|
| Мировая модель | «Обученный симулятор» | Модель, предсказывающая будущие наблюдения по состоянию и действию |
| Video DiT | «Пространственно-временной трансформер» | Диффузионный трансформер с 3D-патчизацией и разделённым вниманием |
| Латентное действие | «Выведенное управление» | Дискретный или непрерывный латент действия, выведенный из пар кадров; используется для обусловливания генерации следующего кадра |
| Разделённое внимание | «Сначала время, затем пространство» | Две операции внимания на блок: по времени, затем по пространству, — чтобы сохранить управляемой сложность O(N^2) |
| Постоянство объектов | «Вещи остаются реальными» | Свойство сцены, которому должны научиться видеомодели; классический режим отказа на еде и стеклянной посуде |
| FVD | «Fréchet Video Distance» | Видеоэквивалент FID; основная метрика визуального качества |
| Модель обратной динамики | «Наблюдения в действия» | По (state, next state) выдаёт действие, связывающее их; замыкает контур робототехники |
| Cosmos-Drive | «Симулятор вождения NVIDIA» | Мировая модель автономного вождения с открытыми весами для RL и оценки |
Дополнительные материалы
- Технический отчёт Sora (OpenAI)
- Genie: Generative Interactive Environments (Bruce et al., 2024) — мировые модели латентных действий
- TimeSformer (Bertasius et al., 2021) — разделённое внимание для видеотрансформеров
- DreamerV3 (Hafner et al., 2023) — мировые модели для RL
- Cosmos-Drive-Dreams (NVIDIA, 2025) — мировая модель вождения
- Top 10 Video Generation Models 2026 (DataCamp)
- From Video Generation to World Model — репозиторий обзора
Источник: World Models & Video Diffusion 04.27 — Отслеживание нескольких объектов и видеопамять · Фаза 04 — Компьютерное зрение · Полный каталог