VideoMLA: как сжать KV-кэш видеодиффузии на 92% без потери качества

VideoMLA: как сжать KV-кэш видеодиффузии на 92% без потери качества

Минутное видео на одном GPU звучит как маркетинговый слоган, но уже несколько месяцев это реальность благодаря каузальным видеодиффузионным моделям. Они генерируют кадры или чанки авторегрессивно, держа в памяти скользящий KV-кэш предыдущих кадров. Проблема в том, что этот кэш разрастается быстрее, чем хотелось бы. В статье VideoMLA исследователи из Virginia Tech показывают, как заменить плотный per-head KV-кэш на shared low-rank латент — и сжать память на 92,7% без потери качества. При этом самое интересное не в цифрах, а в том, почему это вообще работает.

Что такое VideoMLA

VideoMLA — это первая адаптация Multi-Head Latent Attention (MLA) для авторегрессионной видеодиффузии. Если в языковых моделях MLA уже стал известен благодаря DeepSeek-V2, то в генерации видео per-head KV-кэш оставался неприкосновенным. Авторы берут модель Wan2.1-T2V-1.3B с 30 трансформерными блоками, 1536-мерным скрытым слоем и 12 головами внимания — и полностью заменяют self-attention на MLA-механику.

В стандартной dense MHA каждый токен кэширует 2 × 12 × 128 = 3072 скаляра на слой. При 21 латентном кадре, 1560 токенов на кадр и 30 слоях это 3,02 миллиарда скаляров — около 6 ГБ в bf16. VideoMLA сжимает эту цифру до 224 скаляров на токен, заменяя плотные ключи и значения shared content-латентом размерности d_c = 192 и одним decoupled 3D-RoPE positional ключом на голову. Разница в 13,7 раз.

Почему стандартный KV-кэш — узкое место

Современные потоковые системы видеогенерации используют фиксированное скользящее окно кэша. CausVid, Self-Forcing, Rolling-Forcing, Deep Forcing, Reward Forcing — все они работают внутри этого окна, меняя состав токенов или способ позиционного кодирования. Но сам per-head KV-формат остаётся неизменным: они перераспределяют, перевзвешивают или сжимают кэш по времени, но не уменьшают состояние отдельного токена.

Это важное различие. Фиксация окна ограничивает длину последовательности, но не решает проблему плотности. Чем больше батч или чем длиннее горизонт генерации, тем быстрее память заканчивается. На одном B200 dense MHA упирается в OOM уже при батче 28. VideoMLA сдвигает эту границу до 320 — и это при самом агрессивном сжатии с d_c = 64. При дефолтном d_c = 192 запас составляет 8 раз.

Почему это критично для индустрии? Потому что стоимость inference напрямую определяет бизнес-модель видеогенеративных сервисов. Сейчас минутные ролики генерируются в интерактивном режиме на одном GPU, но каждый новый пользователь — это новый батч. Если один GPU обслуживает 28 параллельных запросов с dense MHA, то с VideoMLA тот же GPU обслуживает 320. Это разница между инфраструктурой в 1000 GPU и инфраструктурой в 100 GPU для сервиса с миллионом пользователей.

Как устроен механизм сжатия

Архитектура VideoMLA строится на трёх идеях. Первая — совместное сжатие ключей и значений через shared down-projection. Каждый видеолатентный токен x_t проходит через матрицу W_down^{KV} и превращается в компактный вектор c_t^{KV} размерности d_c. Этот вектор пишется в кэш вместо плотных per-head состояний.

Вторая идея — разделение контента и позиции. Латент c_t^{KV} не содержит позиционной информации. Позиция кодируется отдельным decoupled 3D-RoPE ключом k_t^R, который общий для всех голов. При вычислении внимания per-head ключи и значения восстанавливаются из c_t^{KV} через up-проекции, а позиционный компонент добавляется через RoPE. Разделение позволяет shared content-латенту быть position-free и переиспользоваться при sliding-window re-indexing.

Третья идея — аналогичное сжатие query-пути. Query-латент c_t^Q размерности d_q = 768 сжимается отдельно, и per-head NoPE-запросы восстанавливаются через свои up-проекции. В результате каждый токен хранит не 3072 скаляра, а 224 — разница в 13,7 раз.

На инференсе VideoMLA использует reparameterization: вместо явного восстановления per-head ключей и значений из латента, up-проекции поглощаются в attention-ядро через матричное умножение. Это позволяет избежать лишних операций чтения кэша и записи промежуточных тензоров, сохраняя совместимость со стандартными chunk-causal attention kernel.

Почему это работает: бюджет ранга вместо спектральной низкоранговости

В языковых моделях MLA часто мотивируют предположением, что pretrained key/value-отображения приблизительно низкоранговы. Авторы VideoMLA проверяют это предположение для видеодиффузии — и оно не выдерживает критики. Совместный оператор [W_K; W_V] в Wan2.1-T2V-1.3B не является низкоранговым: при бюджете d_c = 192 медианный слой сохраняет только 45,8% спектральной энергии, а 99%-энергетический эффективный ранг превышает 1300 в каждом слое.

То есть прямое спектральное приближение ранга d_c отбросило бы большую часть энергии dense оператора. Тем не менее VideoMLA сохраняет качество генерации. Почему? Потому что MLA меняет задачу оптимизации. Составной оператор M = [W_up^K W_down^{KV}; W_up^V W_down^{KV}] по построению имеет ранг не выше d_c. И эксперименты показывают, что обученный составной оператор использует этот архитектурный бюджет почти полностью: при d_c ∈ {64, 128, 256, 512} 99%-энергетический ранг остаётся близким к 0,98 × d_c на всех слоях.

Эффективный ранг определяется не спектром исходного dense оператора, а архитектурным bottleneck MLA. Инициализация через SVD и случайная инициализация дают почти одинаковую картину: обе почти насыщают бюджет ранга с самого начала, и обучение сохраняет этот ранг, адаптируясь внутри заданных ограничений. Модель не открывает более низкоранговое решение — она работает в рамках imposed budget.

Этот инсайт имеет далеко идущие последствия. Если MLA работает не из-за скрытой низкоранговости, а из-за принудительного бюджета, то его можно применять в доменах, где спектральная мотивация не выполняется. Видеодиффузия — лишь первый пример. Аудио, мультимодальные модели, даже некоторые задачи в робототехнике могут извлечь выгоду из той же архитектурной идеи.

Результаты: качество, скорость и масштабируемость

На бенчмарке VBench VideoMLA достигает лучшего overall score на 60-секундных роликах среди всех оценённых методов — 0,859. Для сравнения: Reward Forcing набирает 0,808, Infinity-RoPE — 0,803, LongLive — 0,773. При этом VideoMLA использует на порядки меньший KV-кэш. На 30-секундных роликах он уступает только Reward Forcing по overall score (0,859 против 0,863), но обгоняет его по dynamic degree — 0,981 против 0,954. Это важно: сжатие не приводит к статичной генерации, как это бывает у агрессивных компрессионных методов.

По throughput на одном B200 VideoMLA выдаёт 23,96 кадра в секунду при латентности 3,38 секунды на чанк. Для сравнения: Self-Forcing — 18,06 fps и 4,19 с латентности, LongSANA — 19,35 fps и 4,48 с. То есть VideoMLA не только экономит память, но и ускоряет инференс на 23–33% относительно ближайших конкурентов. Причина — меньший объём чтения кэша и возможность reparameterized inference, где up-проекции поглощаются в attention kernel.

В user study с 50 участниками VideoMLA получил highest overall score 3,17 по трём метрикам: prompt adherence (3,04), temporal consistency (3,24) и dynamic consistency (3,22). Ближайший конкурент — Reward Forcing с 2,91. Это говорит о том, что человеческие оценки коррелируют с автоматическими метриками, но с поправкой на восприятие динамики и когерентности.

Абляции: где проходит граница качества

Абляционные эксперименты показывают, что d_c = 64 даёт максимальное сжатие и головной запас по памяти, но теряет мелкие детали и деградирует по качеству. Увеличение до d_c = 128 в значительной степени восстанавливает качество при сохранении существенной экономии памяти. Дефолтное d_c = 192 — компромисс, который авторы считают оптимальным для практики.

Интересный результат — масштабирование батча при фиксированной памяти. Dense MHA достигает лимита памяти при B = 28, тогда как MLA с d_c = 64 остаётся в бюджете даже при B = 320. Наклон памяти на запрос падает с 6,26 ГБ/батч для MHA до 0,57–1,43 ГБ/батч для MLA — сокращение на 77–91% в зависимости от размерности латента. Дефолтная конфигурация d_c = 192 даёт 8-кратный запас по батчу до OOM.

Абляции по NoPE/RoPE split показывают, что разделение каналов на content (d_h^{nope} = 96) и positional (d_h^{rope} = 32) критично для качества. Полный отказ от RoPE деградирует temporal consistency, а полный отказ от NoPE — semantic alignment. Оптимальное соотношение 3:1 определяется эмпирически и, вероятно, зависит от конкретного backbone.

Тренировочный пайплайн: три стадии на B200

Обучение проводилось на 8 GPU NVIDIA B200 с полным FSDP-шардингом, bf16 и AdamW с β_1 = 0, β_2 = 0,999. Пайплайн из трёх стадий: teacher forcing, consistency distillation и distribution matching distillation. На первой стадии MLA-проекции инициализировались через SVD-разложение pretrained dense attention матриц Wan. Затем модель обучалась как chunk-causal flow-matching student с чистым teacher-контекстом. Learning rate — 5×10⁻⁶, batch size 2, 1000 training timesteps.

Вторая стадия — дистилляция до 4-шагового семплирования [1000, 750, 500, 250]. Третья — distribution matching distillation с пятью critic-обновлениями на одно generator-обновление, EMA-весом 0,99 и guidance scale 3,0. Итоговый batch size на третьей стадии — 16 через per-GPU batch 8 и gradient accumulation 2. Именно эта контрольная точка использовалась для всех отчётных результатов.

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

Где VideoMLA в экосистеме видеогенерации

VideoMLA занимает уникальную нишу между двумя крайностями. С одной стороны, есть фреймворки вроде SANA-Video, которые заменяют softmax-attention на linear attention и полностью отказываются от KV-кэша в пользу constant-memory cumulative state. Это радикальное решение, но оно меняет весь механизм внимания и часто теряет качество на сложных сценах. С другой стороны, методы вроде SCD разделяют модель на causal encoder и frame-wise decoder, кэшируя только encoder-слои. Это даёт 16,7% экономии, но требует перестройки всей архитектуры.

VideoMLA — ортогональный подход. Он сохраняет все 30 self-attention слоев и стандартный softmax-mechanism, но сжимает per-token состояние. Это означает совместимость с существующими distillation pipeline, attention kernel и оптимизациями вроде FlashAttention. Не нужно переписывать VAE, text encoder или структуру модели — достаточно заменить attention block.

Для разработчиков это практически важно. Если у вас уже есть deployment Wan2.1 или аналогичного backbone, внедрение VideoMLA требует только замены attention-слоёв и дообучения. Не нужно менять inference-инфраструктуру, scheduling logic или post-processing. Это incremental improvement с драматическим эффектом.

Часто задаваемые вопросы

Работает ли VideoMLA только с Wan2.1?

Авторы демонстрируют результаты на Wan2.1-T2V-1.3B, но архитектура ортогональна выбору backbone. MLA-механика заменяет только self-attention слои, оставляя text conditioning, VAE и прочие модули нетронутыми. Перенос на другие видеодиффузионные модели требует переобучения, но не изменений в архитектуре backbone.

Почему низкий ранг не объясняет успех MLA в видео?

Потому что спектральный анализ показывает, что pretrained video attention не является низкоранговым. Эффективный ранг определяется архитектурным bottleneck, а не скрытой структурой весов. Это меняет способ интерпретации MLA: это не восстановление скрытой низкоранговости, а принудительный бюджет ранга, внутри которого модель адаптируется.

Можно ли ещё сильнее сжать кэш?

d_c = 64 даёт максимальное сжатие, но теряет качество. Авторы рассматривают d_c как качественно-эффективный компромисс. Для конкретного deployment можно выбирать d_c ∈ {64, 128, 192, 256, 512} в зависимости от приоритетов: максимальный батч, минимальная латентность или наивысшее качество.

Итог

VideoMLA доказывает, что per-head KV-кэш в видеодиффузии — не догма, а архитектурный выбор, который можно переосмыслить. 92,7% сжатие памяти, лучший overall score на минутных роликах и 23% прирост throughput — это конкретные цифры, которые меняют экономику потоковой видеогенерации. Но главный вклад статьи — теоретический: показать, что MLA работает не потому, что key/value-отображения «на самом деле» низкоранговы, а потому, что архитектурный bottleneck задаёт бюджет ранга, внутри которого обучение находит работающее представление. Это различие важно для всех, кто думает о применении MLA за пределами языковых моделей.

← Все записи
← Все записи