Видеоавтоэнкодер для world model: цена сжатия в миллисекундах
Робот, который застёгивает рубашку, останавливается на полсекунды после каждого движения пальцев. Не потому, что моторы медленные, и не потому, что политика плохая. Просто симулятор, в котором робот тренируется, показывает результат действия на 400 миллисекунд позже, чем это действие было подано. Человек замечает запаздывание собственного движения примерно с 230 мс, а ощущение мгновенной реакции живёт ниже 100 мс. Всё, что выше, превращает ловкую работу руками в управление через плохой видеозвонок.
Именно в эту цифру упирается исследование команды Kyutai про видеоавтоэнкодеры для интерактивных world models. Авторы задали вопрос, который обычно проскакивают: не «какой автоэнкодер лучше реконструирует видео», а «какое сжатие нужно симулятору, в котором агент действует прямо сейчас». Ответ оказался не одним числом, а набором компромиссов, и часть выводов контринтуитивна.
Что такое CADRE
CADRE (Causal Diffusion Representation Autoencoders) это открытое семейство видеоавтоэнкодеров с причинно-обусловленным диффузионным декодером, которое выпускает латентные представления на семи разных степенях сжатия. Все члены семейства обучаются по одному рецепту и отличаются только маленьким узким местом поверх замороженных признаков, поэтому world models, обученные на них, различаются исключительно компрессией.
Логика простая. Видео-модели работают не с пикселями, а с латентами: автоэнкодер сжимает клип, а диффузионный трансформер предсказывает следующие латентные кадры. Значит автоэнкодер задаёт сразу три вещи: сколько токенов обрабатывает трансформер, сколько времени уходит на кадр и насколько поздно агент видит эффект своего действия. Авторы разводят два вопроса, которые обычно смешивают: насколько сильно сжимать и где именно сжимать, в автоэнкодере или внутри самой модели мира.
Сжатие они записывают как τ × s × s, где τ это временной фактор, а s пространственный. Обозначение 2 × 32 × 32 значит, что один латентный кадр покрывает два видеокадра и участок 32 × 32 пикселя.
Почему задержка важнее пропускной способности
У интерактивного world model две разные метрики скорости, и они не взаимозаменяемы. Пропускная способность говорит, сколько кадров в секунду выдаёт симулятор. Задержка говорит, сколько времени проходит между действием и его видимым следствием. Первая ограничивает, насколько быстро идёт симуляция. Вторая ограничивает, насколько точно агент может управлять.
Механика задержки целиком сидит в геометрии латента. Каждый видеокадр несёт одно действие. Латентный кадр покрывает τ видеокадров, поэтому модель может его предсказать только когда собраны все τ действий. Агент вынужден фиксировать τ действий вслепую, до того как увидит их последствия, примерно как политики с чанкингом действий. Формула из статьи выглядит так: задержка равна τ/f плюс время генерации и время декодирования, где f это частота кадров. Пропускная способность равна τ, делённому на ту же сумму.
Первое слагаемое не сокращается никаким ускорением железа. При τ = 8 и 20 кадрах в секунду это ровно 400 мс ожидания, независимо от того, насколько быстрый у вас GPU. А автоэнкодеры text-to-video моделей вроде LTX-2, Wan 2.2 и HunyuanVideo обычно жмут время в 8 раз, потому что для офлайн-генерации это почти не влияет на картинку. Для симулятора с агентом внутри это катастрофа: интерактивность ломается на уровне архитектуры, а не на уровне оптимизаций.
Как устроен CADRE
Кодировщик собран из двух частей. Замороженный DINOv3 ViT-B/16 превращает каждый кадр в набор признаков по патчам 16 × 16, агрегируя несколько слоёв, как это делали в RAEv2. Поверх стоит единственная обучаемая 3D-свёртка с ядром (τ, k, k) и шагом (τ, s′, s′), которая и выполняет сжатие в детерминированный латент из 64 каналов. Обучается только эта свёртка, остальное заморожено.
Декодер устроен интереснее. При сильном сжатии латент сохраняет компоновку сцены и семантику, но почти не сохраняет текстуру. Декодер, обученный регрессии по перцептивным лоссам, в такой ситуации выдаёт размытое среднее всех видео, совместимых с латентом. Поэтому в CADRE стоит диффузионный декодер на 24 блока шириной 1024: он сэмплирует один резкий клип вместо усреднения. Блоки сначала смотрят по пространству, потом причинно по времени, а последние слои разбивают один латентный токен на τ кадров, чтобы доразрешить движение внутри латента.
Обучение идёт flow matching плюс MAE, LPIPS, перцептивный лосс в признаках DINO и трёхмерный вейвлет-член в духе LTX-Video. Главный трюк в том, что декодер сам себе учитель: прогрессивная самодистилляция заставляет один большой шаг денойзинга совпадать с двумя половинными. В результате декодирование занимает один шаг и по скорости не уступает регрессии, но выдаёт резкую картинку. Обучение одностадийное, без состязательного лосса, который обычно нужен VQGAN-подобным схемам. Тренировочный набор: 76 тысяч часов веб-видео, роботов, вождения и камер.
Семь сжатий, один world model
Чтобы сравнение было честным, авторы обучают один и тот же world model на каждом автоэнкодере. Это причинный диффузионный трансформер на 1,2 млрд параметров, 16 блоков, диффузионное форсирование, у каждого латентного кадра своё время шума. В пяти из шестнадцати блоков добавлено причинное внимание по времени. Рецепт обучения одинаковый, меняются только латенты и их статистика.
Семь вариантов CADRE покрывают плоскость сжатия от 1 × 48 × 48 до 8 × 16 × 16. Сравнение идёт с пятью чужими автоэнкодерами: Wan 2.2 (4 × 16 × 16), Cosmos (8 × 8 × 8), LTX-2 (8 × 32 × 32), карты изображений DC-AE (1 × 32 × 32) и рецептом MIRA, переобученным на тех же данных при 2 × 32 × 32.
Среды четыре, по две на каждый класс задач, чтобы выводы не держались на одном полигоне. Манипуляция: робот на ABC (статичная камера, 14 степеней свободы) и человек на EgoDex (камера на голове почти статична, 102 степени свободы для двух рук). Навигация: вождение на Physical AI AV (камера движется, 2 степени свободы) и помещения на RealEstate10K (движение камеры, 6 степеней свободы). Всё приведено к 288 × 512 при 20 кадрах в секунду. Модель получает 40 реальных кадров с действиями и генерирует следующие 96, то есть 4,8 секунды; оцениваются последние 16 кадров по 2048 отложенным примерам на среду.
Метрики: FID по качеству картинки, FVD дополнительно наказывает неправдоподобное движение и швы между чанками, PSNR и LPIPS по близости к записанному будущему. Отдельно считается ARR, коэффициент восстановления действия: замороженный зонд пытается прочитать действия обратно из роллаута, его R² нормируется на R² того же зонда по реальному видео. ARR, равный единице, значит, что действие читается из сгенерированного видео так же хорошо, как из настоящего.
Диффузионный декодер против перцептивной регрессии
Первый вывод касается декодера. Регрессия по перцептивным лоссам выглядит привлекательно: она быстрая, детерминированная и даёт высокий PSNR. На практике высокий PSNR здесь означает размытие. Переобученный на тех же данных рецепт MIRA при 2 × 32 × 32 показывает лучший PSNR среди всех (21,12 в манипуляции робота) и при этом худший FVD: 267,1 против 95,2 у CADRE с тем же числом токенов.
Один шаг диффузионного декодера снижает FVD в 1,4 до 2,5 раза при сопоставимом следовании действиям. Второй шаг уменьшает FID до 23%. То есть самодистилляция действительно покупает резкость почти бесплатно по времени: один шаг диффузии стоит столько же, сколько регрессия, но не размазывает текстуры.
Что показывают цифры
В манипуляции робота лучший баланс у CADRE 4 × 16 × 16: FID 8,45, FVD 41,5, ARR 0,79 при 2304 токенах. Для сравнения, Wan 2.2 при том же числе токенов даёт FID 9,29 и FVD 52,9, зато лучше следует действиям (ARR 0,85). Cosmos выигрывает по FVD (39,5), но проигрывает по FID (13,10) и заметно отстаёт по ARR (0,78 против 0,79, разница в пределах шума). Рецепт MIRA проваливается по всем фронтам: ARR 0,39 значит, что больше половины информации о действии теряется.
На человеческих руках разрыв становится качественным. Cosmos показывает ARR −0,27, LTX-2 показывает −0,63. Отрицательное значение означает, что зонд читает действие из роллаута хуже, чем случайное угадывание по среднему. Иными словами, видео генерируется красивое, а связи между движением руки и картинкой нет. Для обучения политик такой симулятор бесполезен: агент не сможет понять, какое из его действий привело к результату.
На вождении, где камера едет, чужие автоэнкодеры разваливаются ещё сильнее. Wan 2.2 прыгает с FVD 52,9 в манипуляции до 599,7 в навигации, LTX-2 доходит до 913,3 и FID 98,36. CADRE 4 × 16 × 16 держит FVD 195,3 при ARR 0,88, а в помещениях даёт FVD 161,7 и ARR 0,93. В 42 из 48 сравнений с MIRA, Wan 2.2, Cosmos и LTX-2 (четыре среды, три метрики) какой-то из вариантов CADRE оказывается не медленнее и лучше более чем на 2%.
Отдельно про скорость. При стриминговом декодировании на одной H100 с восемью шагами денойзинга порог в 20 кадров в секунду и задержку ниже 230 мс держат только CADRE 2 × 32 × 32, CADRE 2 × 16 × 16 и MIRA. Остальные либо быстрее, либо качественнее, но не то и другое сразу. При этом сами world models на CADRE работают в диапазоне от 29 до 58 кадров в секунду и следуют действиям, которых не было в контексте, например «стоять на месте» или «повернуть в другую сторону».
Где сжимать: в автоэнкодере или в модели мира
Второй вывод отвечает на вопрос, который возникает у любого практика: зачем вообще городить новый автоэнкодер, если можно оставить покадровый и склеивать латенты внутри world model. Авторы проверили и это, получив одинаковую сетку токенов двумя путями.
Сжатие в автоэнкодере выигрывает по всем метрикам во всех временных сетках, кроме одного случая. Разрыв в FVD растёт с фактором: 9 пунктов при сжатии двух кадров, 28 пунктов при сжатии восьми. Причина не в ёмкости декодера, потому что запатченная ветка декодирует тем же CADRE 1 × 16 × 16 с лучшей реконструкцией. Причина в целях обучения: автоэнкодер учится восстанавливать пиксели и потому сохраняет внешний вид, а world model учится предсказывать латенты и сохраняет только то, что помогает предсказанию.
Единственное исключение касается следования действиям. При восьми кадрах в одном латенте патчинг внутри world model роняет ARR с 0,72 до 0,56. То есть на агрессивном временном сжатии место компрессии начинает влиять и на управляемость, а не только на картинку.
Манипуляция и навигация требуют противоположного
Третий вывод самый полезный для инженеров. Авторы варьируют τ в двух проходах: один держит s = 16 и изолирует временное сжатие, второй держит примерно 1100 токенов на 16-кадровый клип, так что разница между проходами измеряет цену грубых пространственных токенов.
В манипуляции камера почти стоит, соседние кадры избыточны, и один латент спокойно покрывает восемь кадров. В навигации камера едет, картинка за время одного длинного латента успевает сдвинуться больше чем на токен, и длинные латенты поднимают FVD до 64% относительно двухкадровых. При фиксированном бюджете токенов выводы расходятся полностью: на вождении и в помещениях лучший результат у CADRE 2 × 32 × 32, то есть два кадра и грубые токены, а в манипуляции лучший у CADRE 8 × 16 × 16, то есть восемь кадров и тонкие токены.
Длинные латенты не накапливают ошибку в манипуляции: на 64-секундных роллаутах CADRE 8 × 16 × 16 выходит вперёд примерно с 13-й секунды и заканчивает с лучшим FVD. Но швы остаются: граница между чанками видна сильнее, чем переходы внутри чанка, и превышение растёт с τ до 1,6 и 1,8 при τ = 8. При движущейся камере швы проявляются и в FVD, который растёт в 1,6 до 2,1 раза быстрее, чем при τ = 2.
Грубые пространственные токены портят движение, а не картинку
Четвёртый вывод удивляет сильнее всего. Казалось бы, уменьшение пространственного разрешения латента должно бить по деталям изображения. В манипуляции происходит обратное. При τ = 2 грубые пространственные токены умножают FVD на 2,4, роняют ARR, а FID почти не меняется.
Объяснение простое, если держать в голове, что оценивается не кадр, а роллаут. Мелкое действие, застёгивание, перекладывание предмета, занимает маленькую область, которая остаётся в поле зрения. FID смотрит на распределение изображений в целом и не замечает ошибку в этой области. FVD и ARR смотрят на движение и потому её ловят. В навигации, где действие двигает весь кадр, грубые токены почти ничего не стоят: смещение сцены они передают нормально.
Практический смысл: если вы выбираете сжатие по FID на отдельных кадрах, вы почти наверняка выберете неверную конфигурацию для манипуляции. Оценивать автоэнкодер нужно по роллаутам world model, а не по реконструкции. Авторы так и делают, и это, пожалуй, методологический вывод поважнее отдельных цифр.
Что это значит на практике
Первое: автоэнкодер перестаёт быть деталью реализации. Он задаёт задержку, стоимость кадра и значительную часть качества, а значит его выбор это проектное решение, а не строчка в конфиге. Если строить интерактивного агента, разумно начать с вопроса «какая задержка допустима», а уже потом подбирать компрессию.
Второе: универсальной оптимальной компрессии нет. Камера стоит, жмите время. Камера едет, жмите пространство и оставляйте больше кадров. Авторы отдельно отмечают, что их данные манипуляции сняты со статичных или почти статичных камер, а камеры на запястье двигаются, поэтому их же логика предсказывает, что запястные камеры потянут манипуляцию в сторону «навигационной» компрессии. Это проверяемая гипотеза, а не готовый рецепт.
Третье: в статье честно очерчены границы. Каждый world model обучен на одной среде, и переносится ли вывод на генералистскую модель, на обучение политик и на планирование, остаётся открытым. Семь автоэнкодеров, четырёхсредовый протокол и открытые веса это как раз приглашение проверить.
Код, модели и живая демонстрация лежат на kyutai.org, сама статья на arXiv.
Часто задаваемые вопросы
Почему нельзя просто взять автоэнкодер от Wan 2.2 или LTX-2?
Можно, и многие так делают, но вы наследуете их компромисс. Такие автоэнкодеры проектировались для офлайн-генерации, где временное сжатие почти не влияет на воспринимаемое качество. Восьмикратное сжатие по времени при 20 кадрах в секунду даёт 400 мс задержки, а человек замечает запаздывание уже с 230 мс. Плюс их нельзя переобучить под другое сжатие: веса открыты, данные и код нет.
Насколько быстро работает world model на CADRE?
На одной H100 при стриминговом декодировании модели выдают от 29 до 58 кадров в секунду. Порог интерактивности в 20 кадров в секунду при задержке ниже 230 мс с восемью шагами денойзинга держат три конфигурации: CADRE 2 × 32 × 32, CADRE 2 × 16 × 16 и переобученный рецепт MIRA.
Можно ли использовать CADRE для обучения роботов?
Это одна из целевых задач, но с оговоркой. Авторы обучали world model, а не политику, и проверяли качество симуляции, а не прирост на реальном роботе. Отрицательный ARR у Cosmos и LTX-2 на человеческих руках показывает, почему это важно: симулятор с красивой картинкой и без связи между действием и результатом обучать политику не сможет.
Итог
Видеоавтоэнкодер перестал быть служебным компонентом. В интерактивных world models он определяет, сколько миллисекунд агент ждёт ответа на своё действие, сколько токенов жжёт трансформер и насколько правдоподобно выглядит движение, а не только картинка. CADRE показывает, что компрессию можно выбирать осознанно: диффузионный декодер в один шаг даёт резкость без потери скорости, временное сжатие лучше держать в автоэнкодере, а не в модели мира, а направление сжатия зависит от того, стоит камера или едет.
Если вы строите что-то с симулятором внутри, начните с замера задержки на своём сценарии. Цифра в 400 мс, которую никто не закладывал в дизайн, обычно обнаруживается уже после того, как политика перестала сходиться. Полный текст статьи с таблицами по всем четырём средам есть на arXiv, а демо на сайте Kyutai.