Сегодняшний релиз хочется начать с небольшой истории семейства моделей Kandinsky. В прошлом году на конференции AI Journey 2023 наша команда представила две модели: Kandinsky 3.0 для генерации изображений и первую российскую модель генерации видео по тексту Kandinsky Video. В этом году в апреле и мае вышли в свет улучшенные версии этих моделей: Kandinsky 3.1 с повышенным качеством изображений и Kandinsky Video 1.1 с улучшенными визуальным качеством и временной связностью кадров на видео.
С тех пор прогресс в области генеративных моделей привел к созданию множества интересных решений для задач генерации, связывающих текст, видео и аудио модальности. Сегодня наша команда исследователей и учёных из Sber AI Research при поддержке учёных Лаборатории FusionBrain Института AIRI представляет Kandinsky 4.0 — нейросеть нового поколения для создания реалистичных видеороликов по текстовому описанию или стартовому кадру, а также аудио сопровождения для сгенерированного видеоролика. Теперь модель генерирует видеоряд продолжительностью до 12 секунд в разрешении HD (1280×720) по любому текстовому описанию или произвольному стартовому кадру. С помощью модели можно создавать видео с разным соотношением сторон под любые пользовательские и продуктовые потребности.
В этой статье мы подробно рассмотрим структуру, функционал и процесс обучения нашей новой модели.
Последние достижения в области мультимедийной генерации
В последнее время в генеративном ИИ наблюдается отказ от свёрточно-трансформерных архитектур в пользу моделей, полностью построенных на трансформерах. Это вызвано необходимостью масштабируемости для визуальных генеративных моделей. Начало было положено моделью U-ViT, несмотря на её неуспех. MAGVIT и MAGVIT-v2 от Google, использовали архитектуру BERT для многозадачных генеративных задач: предсказание кадров видео, video outpainting, dynamic inpainting и интерполяция кадров. Первоначальный MAGVIT имел разрешение 128x128, но генерировал видео быстрее диффузионных и авторегрессионных моделей. MAGVIT-v2 улучшил эти идеи, внедрив объединённую токенизацию для изображений и видео и механизм causal convolution. Это привело к созданию модели VideoPoet, которая объединила задачи предсказания и генерации видео по тексту и изображению, inpainting/outpainting для видео, а также генерацию audio-to-video и video-to-audio.
В работе Scalable Diffusion Models with Transformers была предложена архитектура диффузионного трансформера (DiT). Авторы показали, что масштабирование этой архитектуры приводит к высоким результатам, особенно на задаче генерации по датасету ImageNet, превосходя модели на основе U-Net. В декабре 2023 года выпустили диффузионную модель W.A.L.T., использующую токенизатор MAGVIT-v2 и обученную на 970 миллионах пар «изображение-текст» и 89 миллионах пар «видео-текст», что подчёркивает важность сбора датасетов. В январе 2024 года работа Latte: Latent Diffusion Transformer for Video Generation исследует компоненты архитектуры трансформеров и методы их обучения. В марте Stability AI представила модель Stable Diffusion 3 на основе Rectified Flow . Команда Stability AI предложила мультимодальный диффузионный трансформер (MMDiT) для text-to-image генерации, который позволяет смешивать текстовые и визуальные токены. MMDiT использует cross-attention и дополнительный вход для текста, демонстрируя хорошую масштабируемость на бенчмарках GenEval и T2I-CompBench.
В последние месяцы появляется множество новых видео-моделей и фреймворков на основе диффузионного трансформера:Gen3 от Runway и Dream Machine от LumaLabs, а также open-source проекты Open-sora, Open-sora-plan, Mochi-1, Allegro, CogVideoX. В октябре Meta(*Признана экстремистской организацией и запрещена на территории РФ) представила Movie Gen, модель с 30 миллиардами параметров, способную генерировать 16-секундные HD-видео. Она также поддерживает инструктивное редактирование и генерацию персонализированного видео. Дополнительно модель включает 13-миллиардную аудио-систему для генерации звука по тексту и видео. Недавно Tencent выпустили Hunyuan Video, требующую для качественного инференса GPU с 80GB памяти.
Данные
Обучение современных text-to-video (T2V) моделей требует всё больше данных, растёт и требование к их качеству. Соответственно, процесс сбора и фильтрации датасета должен быть эффективным и легко масштабируемым. В связи с этим при обучении новой модели мы разработали новую архитектуру хранения и обработки изображений и видео. Сами данные хранятся в S3 хранилище, поскольку объёмы в этой задаче исчисляются петабайтами (1 Пб, к слову, примерно равен одному миллиону привычных Гб). Но вся информация о них, включая пути к файлам, метаданные, оценки различных фильтров и синтетические описания, хранится в специальной SQL-базе. Взаимодействие с датасетом происходит в связке с этой базой, что позволило масштабировать процесс подготовки данных на сотни видеокарт, а также упростило выбор подмножеств датасета по фильтрам на различных этапах обучения.
Когда мы говорим про видео, процесс подготовки можно разделить на 4 основных шага:
-
Сбор "сырых" данных (поиск и скачивание доступных источников видео);
Подробнее
Сбор сырых данных подразумевает поиск и обкачку доступных источников видео. В связи с естественными ограничениями на время обработки данных и вычислительный бюджет, нельзя просто качать и фильтровать весь (легально) доступный видеоконтент в сети. Так что уже на этом этапе начинается отбор качественных данных для обучающего датасета. В зависимости от источника данных, мы можем выбирать видео для скачивания на основе различной информации о файле: начиная от разрешения и битрейта, заканчивая классом контента и тегами, проставленными пользователями. Также на этом этапе проводится первичная дедупликация на основе метаданных.
Данные были собраны из открытых источников в ручном и автоматическом режимах.
Вручную были собраны видео и изображения узких тем или с определёнными спецэффектами, в основном те, автоматический сбор (и обработка, см. п. 3.4) которых максимально затруднен. Например, избранные видео из русского фильмофонда, фильмофонда СНГ, изображения с символами, персонажами, относящиеся к нашей российской истории, содержащиеся в том, что мы внутри называли российским “культурным кодом”. Например, изображение российских мультипликационных героев, наших редких музыкальных инструментов, улиц старых городов, редких пейзажей, обрядов, все то - что требует скрупулезного поиска и внимательного отбора источников.
При сборке изображений по культурному коду акцент был сделан на предварительном анализе проблемных тем. В итоге были выявлены категории, по которым данных в выборке недостаточно. Основной упор при сборе данных был сделан именно на таких категориях, чтобы сбалансировать и отмасштабировать уже имеющийся размеченный вручную сет, использованный для обучения предыдущих версий модели. Источники для сбора подобных данных отбирались вручную.
В результате по культурному коду было найдено и размечено вручную 117 тысяч видео сцен и 450 тысяч изображений. Для разметки было привлечено порядка 80 человек, которым был предоставлен свод правил для ручной сортировки данных и составления описаний.
-
Разделение сырых видео на сцены ( производится с помощью библиотеки PySceneDetect. Каждое видео читается в потоковом режиме кадр за кадром);
Подробнее
Разделение сырых видео на сцены производится с помощью библиотеки PySceneDetect. Каждое видео читается в потоковом режиме кадр за кадром. PySceneDetect считает набор различных метрик, по которым можно определять, произошла смена сцены или нет. Все сцены короче 2 секунд мы выбрасываем, а длиннее 1 минуты нарезаем на сцены поменьше, так как для обучения модели используются последовательности кадров от 2 до 60 секунд.
Подбор параметров PySceneDetect для разбиения видео на сцены также является непростой задачей. Так как с одной стороны необходимо разрезать исходное видео по всем кадрам, где сцена меняется, но с другой стороны не стоит лишний раз разрезать видео там, где сцена не меняется, чтобы не получить слишком короткие сцены. В библиотеке PySceneDetect для этого используются адаптивные метрики, рассчитываемые не только по двум соседним кадрам, но и по некоторой их окрестности. Это позволяет не только учитывать разницу между двумя кадрами, но и динамику изменения этой разницы по сравнению с предшествующими. Для подбора наиболее эффективных порогов нарезки с точки зрения соотношения Precision/Recall мы использовали небольшой тестовый датасет из нескольких тысяч коротких видео, который анализировала команда разметчиков. В процессе подбора порогов мы замечали, что существенно больше ложных разрезов возникает на динамичных черно-белых видео, видео с мерцанием света, а также на видео, где был искусственно увеличен FPS.
Также на этапе нарезки видео на сцены мы можем запустить часть фильтров, которые не требуют GPU, чтобы за один проход по видео не только разбить его на сцены, но и подсчитать некоторые полезные характеристики. Например, мы считаем яркость, чтобы отбросить слишком тёмные или слишком яркие сцены, и обрезаем чёрные полосы по краям видео при их наличии. Это позволяет прекратить дальнейшую обработку неподходящих сцен на раннем этапе и сэкономить вычислительные ресурсы. Для экономии места в хранилище видео со слишком высоким разрешением уменьшаются до FullHD, а FPS выше 30 конвертируется до более низких значений. Видео со слишком высоким битрейтом также могут быть перекодированы. Для каждой новой сцены считается perceptual video hash для последующей дедупликации.
Дедупликация сцен работает таким образом, чтобы в базу не попадали сильно похожие друг на друга отрезки видео. Для этого на этапе добавления сцены в базу осуществляется не только проверка на полное соответствие hash одной из уже существующих сцен, но также проверяются сцены, hash которых отличается от искомого на 1–2 бита. При длине hash 64 бита и размере базы в сотни миллионов строк проверка всех вариантов, отличающихся на 1–2 бита не представляется возможным. Поэтому для быстрой проверки был построен набор HNSV-индексов на базе расширения pg_vector, позволяющий искать ближайшие вектора по расстоянию Хэмминга.
SQL-база позволяет отслеживать статус обработки каждого видео, а также организовать необходимые очереди, за счет чего процесс нарезки и первичной фильтрации сцен легко масштабируется на практически любое количество CPU-нод, каждая из которых будет получать из базы свою порцию данных для обработки.
-
Обработка и фильтрация сцен — подсчет метрик (множество GPU-нод обращаются к базам данных для получения уже нарезанных сцен в обработку и записи подсчитанных метрик);
Подробнее
Подсчет метрик для сцен устроен аналогичным образом: множество GPU-нод обращаются к БД для получения в обработку уже нарезанных сцен и последующей записи вычисленных метрик. Опять же, такой подход позволяет легко масштабировать пайплайн обработки и делает его более устойчивым к возможным ошибкам: в случае падения одного из процессов или возникновения проблем с какой-нибудь GPU-нодой, все остальные продолжают работу.
Несмотря на то, что все сцены лежат на холодном хранилище S3, скорость работы с которым заметно ниже, чем с NFS, простоев в обработке не образуется благодаря фоновой подгрузке данных.
За основу нового пайплайна была взята библиотека DataProcessingFramework, о которой мы писали в одной из наших предыдущих статей. Для повышения эффективности был переписан подход к загрузке и обработке данных фильтрами специально под нашу задачу, в ущерб универсальности библиотеки, но с пользой для скорости.
На данном этапе вычисляются следующие характеристики сцен:
-
Наличие «водяных знаков»;
-
Динамичность сцены;
-
Техническое и эстетическое качество видео;
-
Наличие текста в кадре и его площадь;
-
Семантическая и визуальная сложность кадра.
Для каждого из фильтров известны пороги, позволяющие отсечь однозначно плохие видео, которые точно не пойдут в обучение даже на первые стадии претрейна, — например, статичные видео или видео с большим количеством текста в кадре. Наша архитектура позволяет отсекать эти видео сразу после подсчёта соответствующей метрики, не затрачивая лишние ресурсы на запуск фильтров, следующих далее.
Для изображений пайплайн сбора и фильтрации данных устроен аналогичным образом, поскольку разбивать картинки на сцены не требуется, и CPU и GPU-фильтры запускаются в одном процессе. Набор фильтров практически тот же, что и для видео, только отсутствует оценка динамичности.
Отдельно хотелось бы упомянуть участие разметчиков в фильтрации данных. Мы не раз пользовались их помощью для оценки качества тех или иных моделей, а также для выбора параметров некоторых фильтров. Помимо подбора параметров PySceneDetect, разметчики помогли оценить динамичность нескольких тысяч видео. Благодаря этому мы смогли заменить оценку динамики через оптический поток на вычислительно более легкий метод, при этом сравнимый по уровню корреляции с человеческими оценками интенсивности движения на видео.
-
-
Генерация синтетических описаний (для изображений, как и для видео, создаются синтетические описания с помощью VLM, которые уже значительно обходят по качеству и детализации in-the-wild-описания изображений).
Подробнее
Наконец, на последнем этапе происходит генерация синтетического описания сцены. В силу низкого качества реальных описаний видео, разметка видео с помощью Visual Language моделей стала стандартной практикой в задаче обучения T2V моделей. Для изображений, как и для видео, мы генерируем синтетические описания с помощью VLM, которые уже значительно обходят по качеству и подробности естественные описания изображений.
Было проведено множество тестов моделей генерации синтетических описаний для выбора лучшей из них. Эта задача особенно актуальна, так как текстовые описания в датасете сильно влияют на динамику обучения и итоговое качество модели, а новые visual language модели появляются чуть ли не каждую неделю. Вообще говоря, оценка соответствия текстового описания и видео — вещь очень субъективная. Для получения адекватной оценки мы придумали свою шкалу оценок и соответствующую инструкцию для разметчиков, а также собрали собственный тестбенч. В нём описания, построенные каждой новой моделью к каждому видео, оценивается несколькими людьми, а затем оценки агрегируются методом Дэвида-Скина.
Для составления текстовых описаний к изображениям и видео сложных доменов, таких как русский культурный код, была использована ручная разметка. Дело в том, что, несмотря на многообразие моделей для составления автоматических описаний, есть домены, с которыми такие модели справляются плохо. Это связано с тем, что данные со специфическими сущностями отсутствовали в обучении либо присутствовали в очень малом количестве. Одни из главных таких доменов для нас — это русский, российский, а также постсоветский культурные коды. Составленные текстовые описания в среднем имели длину от 200 до 650 символов, при этом особое внимание уделялось ключевым объектам, отражающим характерные особенности культурного кода, и их детальному описанию.
Примеры созданных вручную описаний для реальных изображений и видео в домене русского культурного кода представлены ниже:
Kandinsky 4.0
Kandinsky 4.0 включает четыре модели: три для генерации видео (основная модель T2V, быстрая версия T2V Flash и модель I2V) и одну модель для генерации аудио по видеоряду (модель V2A). Ниже мы приводим описание каждой модели.
Kandinsky 4.0 T2V
Перед обсуждением основной архитектуры стоит отметить, что мы используем латентную диффузию, в которой модель работает не с самими данными, а с их латентными представлениями или эмбеддингами, а также с векторными представлениями текста. Такая схема подразумевает под собой наличие не одной модели, а сразу трёх: вариационный автокодировщик, который сжимает видео, текстовый эмбеддер, преобразующий тексты в их векторные представления, и сама основная модель, которая объединяет их в себе и учится восстанавливать зашумлённые латенты видео.
В качестве автокодировщика мы используем open-source реализацию 3D causal VAE из статьи CogVideoX. Данный энкодер сжимает видео в 8 раз по пространственным осям X и Y и в 4 раза по оси времени. Для вычисления эмбеддинга текста мы используем T5-V1.1-XXL. Эти модели были взяты как самые лучшие на момент разработки модели open source решения.
В процессе разработки модели мы пробовали различные трансформерные архитектуры, сразу отказавшись от UNet-подобных архитектур из-за проблем с их масштабируемостью. Среди рассмотренных архитектур были:
-
DiT c cross-attention, в котором текстовая информация добавляется к визуальной через cross attention;
-
DiT c отдельными spatial и temporal блоками и cross attention, как в статье WALT;
-
DiT c causal attention и cross attention;
-
MMDiT, предложенный в статье Stable Diffusion 3.
По результатам наших экспериментов, DiT c causal attention и WALT-like DiT показали перекос в картиночный домен. Они лучше генерировали картинки, чем остальные архитектуры, но сгенерированные ими видео были больше похожи на анимированные картинки, чем на реальные видео. DiT c cross attention и MMDiT же показывали примерно одинаковые результаты по итогам наших тестов в низких разрешениях. Однако архитектура MMDiT занимает меньше памяти для хранения активаций из-за отсутствия блока cross attention, поэтому в результате была выбрана именно она.
Модель состоит из входных блоков для текста, латентных представлений видео и времени, нескольких MMDiT-блоков и выходного блока. В каждом из MMDiT-блоков идёт параллельная обработка текстовых и визуальных токенов, а время в диффузионном процессе подмешивается к ним с помощью adaptive layer norm, как в статье. Особенностью этой архитектуры, по сравнению с другими диффузионными трансформерами, является то, что в трансформерном блоке токены текста обрабатываются вместе с визуальными токенами через self attention, а не добавляются через cross attention.
Для добавления знания о позициях визуальных токенов мы используем RoPE 3D, поэтому наша архитектура отличается от стандартного MMDiT тем, что позиционные эмбеддинги добавляются к визуальным токенам не после входных слоев, а непосредственно перед attention.
Латентное пространство для видео имеет высокую размерность, что, безусловно, влечёт за собой повышенное потребление вычислительных ресурсов, особенно при работе с видео в HD-качестве. В качестве архитектурного решения этой проблемы мы используем локальную и глобальную сетку визуальных токенов для вычисления внимания. Такой подход был описан в статье MaxViT, в которой такие сетки назывались block attention и grid attention соответственно.
В первых итерациях разработки модели мы использовали разные веса для визуальных и текстовых токенов в attention- и в feedforward-блоках. Однако впоследствии решили перейти на одинаковые веса для этих разных групп токенов, так как это уменьшило количество параметров модели и не особо замедлило сходимость.
Всего в нашей модели 21 пара блоков MMDiT c локальным и глобальным вниманием (или 42 блока с полным вниманием для обучения в низких разрешениях). Размерность скрытого состояния модели равна 3072. Таким образом, в сумме наша модель имеет 5B параметров. Учитывая ограничения видеопамяти, такая модель может генерировать 12-секундные (25 латентных кадров) видео в разрешении HD c частотой 8 FPS.
Обучение
Для обучения использовался стандартный пайплайн диффузии: на вход модели подаются зашумленные латентные представления видео, и модель должна предсказать шум, наложенный на них. Стоит отметить, что в нашем пайплайне обучение происходит как на батчах видео различной длины, так и на батчах картинок. В обучающей выборке присутствуют данные с разными aspect ratio, благодаря чему при использовании наша модель тоже может генерировать видео и картинки с разными соотношениями сторон. Также с некоторой вероятностью на обучении мы убираем текст, чтобы была возможна unconditional-генерация.
Как и во многих других работах, наша модель обучалась итеративно с увеличением разрешения. Это означает, что сначала модель обучается в низком разрешении — в нашем случае 480p, — а потом в высоком — у нас это HD. При переходе в более высокое разрешение изменялись два основных момента обучения. Первое отличие заключается в attention-блоке. В разрешении 480p мы обучали нашу модель с полным вниманием, а в разрешении HD — с чередованием блоков local- и global-внимания, для ускорения обучения. Второе отличие заключается в расписании наложения шума в диффузии. Как отмечено в статье про Stable Diffusion 3, для более высоких разрешений использование техники timestep shifting приводит к лучшим результатам при генерации изображений. Эта техника заключается в изменении расписания диффузии так, чтобы делать шаги в середине процесса диффузии более часто, чем в его начале и конце. Это приводит к более детальным генерациям и особенно актуально для более высоких разрешений, в которых нужно больше шума, чтобы стереть всю информацию из картинки. Мы использовали эту технику и на обучении, и на генерации видео в HD-разрешении.
Узнать технические детали
Существенной проблемой при обучении модели оказалась подгрузка данных. Объём датасета даже в закодированном виде оказался больше объёма всего горячего хранилища NFS. Поэтому был реализован пайплайн, в котором данные подгружаются с холодного хранилища S3 на горячее и только потом в оперативную память. После подгрузки видео с S3 на NFS информация о нём добавляется в очередь, из которой её читают различные потоки. Каждый поток считывает видео и распределяет его в определённую очередь. Для каждого соотношения сторон существует своя очередь, которая сохраняет соответствующие видео в подходящий буфер в оперативной памяти. После считывания видео с NFS в оперативную память само видео с NFS удаляется. Каждый буфер пополняется до момента, пока общее количество латентных кадров всех видео в нём не достигнет 25. После заполнения буфера из него формируется батч, который подаётся на вход модели, а сам буфер очищается. Благодаря такой схеме модели не приходится ждать подгрузки данных определённых разрешений ни с холодного, ни с горячего хранилища, потому что в конкретный момент времени обычно хотя бы один из буферов будет заполнен и готов для формирования батча.
Мы заметили, что при обучении модели с различными методами data parallelism, к которым относится в том числе и FSDP, обучение может замедляться из-за присутствия в обучении видео разной длины и синхронизации видеокарт. Происходит это из-за того, что батч можно собрать только из видео одинаковой длины, и на разных видеокартах эта длина в общем случае может быть разной. Но так как работа всех карт должна быть синхронизирована, то возникает простой: карта, на которую пришёл батч с короткими видео, будет ждать выполнения операций на картах с длинными видео. В целях избежания такого простоя карт мы решили совсем отказаться от стандартного метода батчирования и объединять видео в батче, просто склеивая их по размерности времени. Таким образом, в подобном батче могут присутствовать несколько видео разной длины, но в сумме дающие одинакового размера батчи на всех видеокартах. Благодаря такому трюку нам удалось увеличить пропускную способность нашей модели на обучении в 2,6 раза по числу обрабатываемых видео.
Для ускорения и уменьшения потребляемой в процессе обучения памяти мы также использовали существующие техники распараллеливания и оптимизации моделей. Первая из них, уже упомянутая выше FSDP, позволяет увеличивать количество данных, проходящих через модель в единицу времени, тем самым ускоряя обучение. Вторая — Activation Checkpointing — позволяет не хранить все активации для подсчёта градиентов при обратном распространении ошибки, тем самым уменьшая количество потребляемой памяти. Еще одной инженерной оптимизацией модели для нас был Flash Attention. Также для ускорения генерации видео на инференсе мы используем Tensor Parallelism, который увеличивает скорость генерации в нашем случае примерно в 4 раза.
Так как обучение трансформерных моделей бывает нестабильно, то для отслеживания возможных возникающих проблем мы добавили логирование норм весов, норм градиентов, scale фактора в attention и активаций модели. Кроме того, для отслеживания процесса обучения мы использовали автологирование метрик валидации. В них входили: CLIP, FID, UMTFVD, UMTScore, GenEval, VBench и валидационные лоссы отдельно для картинок и видео. Для подсчёта метрик мы использовали валидационный сет случайно отобранных картинок и видео из обучающего набора. Наиболее информативными на поздних этапах обучения модели оказались именно валидационные лоссы. Остальные метрики показывали прирост только на ранних этапах обучения модели и практически не менялись на поздних этапах и более высоких разрешениях. В основном они использовались в процессе отбора архитектуры модели.
Kandinsky 4.0 T2V Flash
У модели Kandinsky 4.0 T2V, как и у всех диффузионных моделей (особенно для генерации видео), существовала значительная проблема – скорость генерации. Для создания одного видео необходимо пройти 50 шагов обратного процесса диффузии, что означает пропуск данных через MMDiT с размером батча 2 для classifier free guidance 50 раз. Чтобы решить эту проблему, мы применили метод Latent Adversarial Diffusion Distillation (LADD), изначально предложенный для дистилляции моделей генерации изображений. Этот метод был впервые описан в статье от Stability AI и протестирован нами при обучении модели генерации изображений Kandinsky 3.1. Суть пайплайна дистилляции заключается в дообучении диффузионной модели в формате GAN, то есть в совместном обучении диффузионного генератора и дискриминатора.
Наша дистиллированная модель на видеокартах NVIDIA TESLA H100 в типе данных BF16 умеет генерировать 12-секундные видео:
-
в качестве 480p на 1 видеокарте за 11 секунд;
-
в качестве HD на 1 видеокарте за 45 секунд;
-
в качестве 480p на 8 видеокартах за 5 секунд;
-
в качестве HD на 8 видеокартах за 22 секунды.
Узнать технические детали
Как и в статье LADD, мы использовали генеративный дискриминатор (применяем предобученную диффузионную модель, как backbone). Backbone при обучении мы замораживаем и учим только головы дискриминатора. Дискриминативная голова по своему устройству напоминает половинку блока MMDiT’a. Важно то, что голова имеет доступ к текстовому кондишену и силе зашумления t, что помогает оценивать не только визуальное качество, но и следование промпту.
Самой сложной задачей в LADD является стабилизация состязательного обучения GAN-модели, которой по факту является общий фреймворк дистилляции. По этой причине мы отошли от популярного выбора Wasserstein Loss — он требует использование дополнительной регуляризации (например R1) — к MSE из статьи Flash Diffusion:
Отдельной проблемой, вставшей перед нами во время обучения модели Adversarial Distillation, оказалось высокое потребление памяти пайплайном. 5B Студент с 2.5B Дискриминатором не могли совместно обучаться на 12-секундных HD-видео. Для этого было принято решение разделить обучение на 2 группы процессов: чётные процессы для Студента и нечётные для Дискриминатора.
Kandinsky 4.0 I2V
Обучение image-to-video модели отличается от обучения основной модели несколькими ключевыми аспектами. Во-первых, для этого процесса помимо видео с его текстовым описанием используется первый кадр видео кадра. Во-вторых, на первый латентный кадр накладывается независимый шум, отличный от шума, который применяется к остальным кадрам. Степень наложения шума для первого кадра тоже определяется независимо от всех остальных.
Архитектура модели остаётся неизменной, но есть определённые изменения в её применении: поскольку степень шума для первого кадра и последующих различается, в MMDiT и выходных блоках, параметры scale и shift для adaptive layer norm вычисляются дважды и применяются отдельно к соответствующим токенам.
При использовании модели вместо первого латентного кадра используется латентное представление картинки, с которой пользователь хочет начать генерацию. Этот первый латентный кадр берётся без зашумления, и расшумляется в процессе диффузии только остальная часть видео. Недостатком такого подхода является то, что распределение первых кадров видео не совпадает с распределением картинок, что иногда может приводить к нестабильным генерациям.
Kandinsky 4.0 V2A
Конвейер генерации аудио, синхронных с видео, состоит из следующих компонентов:
-
Visual encoder. Мы используем CogVLM2-Video в качестве кодировщика визуальной информации. Каждый видеокадр обрабатывается с помощью кодировщика CLIP ViT, который делит кадр на патчи и преобразует их в семантические представления. Чтобы захватить временную динамику всего видео, специальный модуль (адаптер) уточняет эти семантические представления для извлечения качественных визуальных признаков. Эти извлечённые признаки аннотируются временными метками (T0, T1, …). Это гарантирует, что последующая языковая модель сможет точно связать каждый кадр с соответствующим ему моментом в исходном видео.
-
Visual language decoder. Дополнительно обрабатывает признаки, генерируя представления (embedding) для каждого патча в видео. Представление кадра (FE0, FE1, …) получается от применения temporal pooling на патчах каждого кадра.
-
Текстовый кодировщик. Мы используем ту же мультимодальную модель CogVLM2-Video для генерации текстовых представлений. Процесс начинается с токенизатора, преобразующего входной текст в токены, которые затем передаются через модель. Полученное выходное представление от визуального языкового декодера используется как текстовое вложение, аннотированное временными метками (TE0, TE1, …).
-
Vocoder. Традиционно для преобразования грубой спектрограммы непосредственно в сигнал используется вокодер.
-
Video2audio U-Net. Riffusion — это метод генерации музыки с использованием моделей диффузии, разработанный для создания аудиоспектрограмм, которые можно преобразовать в звук. Взяв за основу существующую модель генерации музыки из текста, мы адаптировали её архитектуру для задачи генерации аудио по видео. Для достижения этого мы ввели несколько модификаций:
-
Dimensionality Projection. Дополнительный слой проекции был добавлен к каждому слою cross-attention, сопоставляя 2048-мерные представления CogVLM2-Video с 768-мерным пространством встраивания текста предварительно обученной модели.
-
Video Cross-Attention. Новый слой «перекрестного внимания» видео был интегрирован после каждого слоя self-attention, что позволило механизму внимания работать на представлениях видеокадров. Чтобы улучшить синхронизацию между видео и аудио, мы добавляем позиционное кодирование к каждому представлению кадра.
-
В процессе исследований, мы разрабатывали разные модели, тестируя и сравнивая их с современными открытыми решениями. В частности, результаты sbs теста с модeлью foleycrafter на 2000 видео, показали превосходство нашего решения на 1101 видео, в 899 случаях разметчики отдали предпочтение foleycrafter.
Примеры работы вы можете посмотреть тут: Яндекс диск
Два слова об обучении
Как и в случае с генерацией видео по тексту, краеугольным камнем при обучении video2audio модели являются качественные данные. Сбор и обработка данных для обучения мы осуществляли на базе видео конвейера из п.3, но с добавками: мы старались, чтобы в обучающий набор данных не попали неприятные звуки и, как ни странно, человеческая речь. Модель должна генерировать в основном диегетические звуки (Диегетический звук — Википедия) на этом этапе, поэтому и закадровый голос, и речь героев видео должны были отброшены на этапе подготовки обучения. Отметим особо, что модель была тонко настроена на финальный “чистый” датасет, отобранный вручную.
Генеративные возможности
Автоматические метрики
Оценка качества с использованием автоматических метрик была произведена в разрезе разного рода аспектов качества на основе бенчмарка VBench для оценки T2V-моделей. В ряде случаев нами были улучшены либо полностью переработаны подходы к проверке качества моделей по причине обнаруженной недостаточной робастности исходного бенчмарка. Для получения наиболее робастных результатов для каждого промпта генерировалось по 5 видео для разрешения 480p и по 3 видео для HD-разрешения с разными seed’ами.
Подробнее
Dynamic Degree. Вначале получаем оценку динамики сгенерированного видео, далее производим оценку доли динамичных видео относительно всех полученных видео в данном домене.
Выводы:
-
Использование коротких промптов значительно ухудшает динамичность генераций.
-
Наблюдается значительный прирост в динамичности у Kandinsky 4.0 в HD-разрешении относительно генераций в разрешении 480p
-
Human Action. Производим оценку действия человека на сгенерированном видео, которое в явном виде указано в промпте.
Подробнее
Human Action
Модели
480p
720p
Kandinsky 4
98,20%
99,33%
CogVideoX-5B
98,60%
–
Open-Sora-Plan v1.3
95,00%
–
Open-Sora v1.2
93,80%
94,00%
Mochi v1.0
98,20%
–
Pyramid-Flow (flux)
89,60%
90,33%
Kandinsky 4.0 имеет качество, сопоставимое с ведущими open-source-моделями в разрезе оценки соответсвия действия человека на сгенерированном видео с разрешением равным 480p и HD.
-
Detection Score. Производим оценку сгенерированного видео по следующим четырем категориям: Object Class. Наличие объекта на видео, Multiple Objects. Наличие двух объектов на видео Color, Соответствие объекта определённому цвету. Необходимо сгенерировать объект в требуемом в промпте цвете, Spatial relationship. Взаимное расположение объектов на видео.
Способ подсчета метрики для каждой из задач был переработан.
-
Для задачи Object Class считалась доля всех видео, на которых объект присутствовал в 75% кадров.
-
Для задачи Color в 75% кадров для объекта дополнительно требовалось его соответствие цвету, требуемому в промпте.
-
Для задачи Multiple objects требовалось 40% наличия каждого из объектов на видео.
-
Для задачи Spatial Relationship в 40% кадров объекты должны присутствовать на видео и удовлетворять относительной позиции, указанной в промпте.
Подробнее
Выводы:
Для разрешения 480p:
-
Object Class Kandinsky 4.0 уступает лишь Open-Sora-Plan v1.3 и Open-Sora v1.2.
-
Multiple objects Kandinsky 4.0 показывает лучшее качество из-за более стабильного отображения двух объектов на видео, что сопоставимо с результатами у модели CogVideoX-5b.
-
Color Kandinsky 4.0 занимает второе место, уступая лишь Open-Sora-Plan v1.3.
-
Spatial Relationship Kandinsky 4.0 показывает хорошее качество, уступая лишь Mochi v1.0.
Для разрешения HD:
-
Object Class Kandinsky 4.0 уступает Open-Sora v1.2 и Pyramid Flow (FLUX).
-
Multiple objects Kandinsky 4.0 показывает лучшее качество относительно моделей Open-Sora v1.2 и Pyramid Flow (FLUX).
-
Color Kandinsky 4.0 показывает прирост в качестве относительно 480p версии, и имеет лучшее качество относительно моделей Open-Sora v1.2 и Pyramid Flow (FLUX).
-
Spatial Relationship Kandinsky 4.0 показывает лучшее качество, значимо выигрывает у Open-Sora v1.2 и Pyramid Flow (FLUX).
-
Prompt Consistency. Оцениваем точность соответствия сгенерированного видео исходному промпту. С помощью LLaVA-NeXT-Video-34B генерируем описание к видео. Теперь у нас есть исходный prompt и сгенерированный caption. Для каждого сгенерированного видео генерируем по 5 caption. Каждый полученный caption и исходный prompt переводим в эмбеддинги. В качестве энкодера представлена лучшая модель из MTEB. Далее сравниваем косинусную близость между эмбеддингами исходных промптов и сгенерированных описаний.
Подробнее
Выводы:
Для разрешения 480p: Kandinsky 4.0 значимо опережает такие open-source-модели, как Open-Sora v1.2, Mochi-1.0 и показывает лучшие результаты по сравнению с прочими SOTA open-source-моделями.
Для разрешения HD: Для HD-моделей наблюдаем прирост в среднем по каждой из исследуемых метрик
-
Blurriness. Хотим оценить, насколько изображение размытое, и используем метрику CPBD (Cumulative Probability Blur Detection). Если CPBD равно 1, то изображение считаем чётким, если CPBD равно 0, то размытым. Для каждого видео считаем 1 — CPBD от каждого кадра затем покадрово усредняем.
Подробнее
Оценка Blurriness была разбита на 5 бакетов
-
[0; 0,2) — no blur
-
[0,2; 0,4) — small blur
-
[0,4; 0,6) — mid blur
-
[0,6; 0,8) — high blur
-
[0,8; 1,0] — very high blur
Выводы:
-
Kandinsky 4.0 менее склонен генерировать размытые видео — общая доля видео без размытия/с минимальным размытием ≈ 74,4%, что на 12,1% выше, чем у ближайшего конкурента Pyramid-Flow (flux) ≈ 62,3% соответственно. CogVideoX-5b имеет долю ≈ 55,0% немного больше половины.
-
В HD-разрешении Kandinsky 4.0 успешно обходит open-source-решения в категориях mid-blur, high blur и very high blur. В более чем 2/3 сгенерированных видео либо нет размытия, либо оно незначительно
-
Technical quality. Мы используем VQA-модели из Q-align для оценки технического качества видео. Оценка технического качества фокусируется на влиянии искажений, наличия артефактов и других проблем качества изображений/видео, влияющих на человеческое восприятие.
Подробнее
Выводы:
-
Kandinsky 4.0 имеет хорошее техническое качество в домене Overall consistency, уступая только Pyramid Flow (FLUX). В домене Human action мы наблюдаем низкие относительно других моделей значения метрики. Это может быть связано с неестественным пониманием анатомии.
-
Kandinsky 4.0 HD показывает невысокие значения относительно двух других моделей. Это может быть связано с длиной генерируемых Kandinsky 4.0 HD видео в сравнении с другими моделями.
-
Aesthetic quality. Хотим оценить, насколько видео получаются эстетичными/красивыми. Мы используем модели Laion-aesthetic v2.5 и Q-align.
Подробнее
Выводы:
-
Kandinsky 4.0 обеспечивает высокое качество в рамках оценки эстетичности сгенерированных видео в домене Overall Consistency. Однако в домене Human action Kandinsky 4.0 уступает в качестве таким моделям, как Open-Sora-Plan, Open-Sora и Pyramid Flow (FLUX).
-
Appearance style. Для того, чтобы оценить насколько видео согласуется с заданным ему стилем в бенчмарке VBench, предлагается использовать CLIP (VIT-B32) и считать косинусное сходство кадров с промптом, задающем стиль. После этого значения близости усредняются по кадрам и по видео. Однако мы обнаружили, что такой подход даёт результаты на уровне шума. По этой причине мы используем CLIP LAION и покадрово ранжируем промпты, которые задают тот или иной стиль для всего видео. Если ожидаемый стиль совпадает с топ-1 по ранжированию, то этому кадру ставим 1.
Подробнее
Промпты стиля: Van Gogh style; oil painting; by Hokusai, in the style of Ukiyo; black and white; pixel art; in cyberpunk style; animated style; watercolor painting; surrealism style.
Выводы:
-
Kandinsky 4.0 значимо опережает модели конкурентов в таких направлениях, как живопись маслом (oil painting), сюрреализм (surrealism style), акварель (watercolor painting). Уступает лишь в категории pixel art и Hokusai, in the style of Ukiyo. В остальных случаях можем наблюдать паритет.
Side-by-Side сравнения
Чтобы сравнивать модели генерации видео между собой, мы проводим Side-by-Side (SBS) тестирование. В ходе такого тестирования мы показываем разметчикам пары видео, не говоря какое из них сгенерировано какой моделью, и просим выбрать, какое лучше себя показывает по тому или иному критерию. Видео генерируются по специально собранной корзине из 2000 промтов, сбалансированных по разным категориям. Каждая пара видео размечается 5 разметчиками. При этом достигается высокий уровень согласованности: 3-4 человека обычно отдают предпочтение одному и тому же видео.
Мы проводим SBS по 17 базовым критериям, которые затем агрегируются в 3 основных:
-
Соответствие видео промту (наличие и количество указанных в описании объектов, точность их расположения и свойства, а также наличие указанных действий и их свойств)
-
Визуальное качество (композиция, освещение, цвет и контраст, выразительность объектов и фона, плавность кадров, общее впечатление и количество артефактов)
-
Динамика и реалистичность движений (динамичность видео, реалистичность движений, устойчивость генерации лиц и смысловые разрывы)
Kandinsky 4.0 HD (T2V) vs CogVideoX-1.5 (T2V) (63% Kandinsky 4.0 Win Rate)
Данный SBS показал значительное преимущество Kandinsky 4.0 HD над одной из сильнейших open-source моделей генерации видео CogVideoX-1.5, как в среднем (WinRate 63%), так по всем критериям сравнения отдельно. Причем даже если опустится на уровень 17 базовых критериев (если хотите посмотреть много-много графиков, добро пожаловать под кат 🙂), то и там нет ни одного, по которому CogVideoX-1.5 был бы лучше.
Подробные результаты
-
Общее число оценок: 125K
-
Согласованность оценок: 73%
-
Асессоров: 62
-
Человеко-часов: 627
В данных критериях разметчикам предлагалось выбрать одну из генераций, либо ответить “Одинаково”. В этом случае, мы просили разметчиков все же выбрать один из вариантов. Этот случай отражен на графиках светлыми тонами и помечен меткой unconf. То же относится к следующему разделу критериев.
Динамика и реалистичность движений (4 базовых критерия)
Kandinsky 4.0 480p (T2V) vs Kandinsky Flash (T2V)
Чтобы оценить качество модели Kandinsky Flash, генерирующей видео в real-time режиме в разрешении 480p, мы сравнили ее с версией Kandinsky 4.0, которая генерирует также в разрешении 480p. Учитывая очень высокую скорость генерации (в ~25 раз быстрее), Kandinsky Flash не так уж и сильно уступил полноценной версии Kandinsky 4.0 480p.
Подробные результаты
-
Общее число оценок: 125K
-
Согласованность оценок: 70%
-
Асессоров: 59
-
Человеко-часов: 578
В данных критериях разметчикам предлагалось выбрать одну из генераций, либо ответить “Одинаково”. В этом случае, мы просили разметчиков все же выбрать один из вариантов. Этот случай отражен на графиках светлыми тонами и помечен меткой unconf. То же относится к следующему разделу критериев.
Kandinsky 4.0 HD (T2V) vs Kandinsky Video 1.1 (T2V)
Мы также сравнили нашу новую модель генерации видео по тексту с предыдущим поколением, моделью Kandinsky Video 1.1. Мы видим значительный выигрыш в динамичности и качестве движения у новой модели, заметный прирост в следовании промту и небольшой проигрыш в визуале. Это вполне логичные результаты, если учесть архитектуры данных моделей: Kandinsky Video 1.1 генерирует ряд опорных кадров с помощью Text2Image модели Kandinsky 3.0.
Подробные результаты
-
Общее число оценок: 125K
-
Согласованность оценок: 70%
-
Асессоров: 62
-
Человеко-часов: 583
В данных критериях разметчикам предлагалось выбрать одну из генераций, либо ответить “Одинаково”. В этом случае, мы просили разметчиков все же выбрать один из вариантов. Этот случай отражен на графиках светлыми тонами и помечен меткой unconf. То же относится к следующему разделу критериев.
Kandinsky 4.0 HD (T2V) vs Kandinsky 4.0 HD (I2V на базе Kandinsky 3.1)
Результат данного SBS демонстрирует преимущество генерации видео по изображению и текстовому промту перед простой Text2Video генерацией. Это связано с тем, что базовое изображение, генерируемое Text2Image моделью (в данном случае Kandinsky 3.1) сильно выигрывает по визуалу у кадров, генерируемых самой моделью генерации видео. По двум другим критериям разница не так велика.
Подробные результаты
-
Общее число оценок: 125K
-
Согласованность оценок: 71%
-
Асессоров: 51
-
Человеко-часов: 690
В данных критериях разметчикам предлагалось выбрать одну из генераций, либо ответить “Одинаково”. В этом случае, мы просили разметчиков все же выбрать один из вариантов. Этот случай отражен на графиках светлыми тонами и помечен меткой unconf. То же относится к следующему разделу критериев.
Заключение
В этой статье мы описали разные аспекты устройства и процесса создания новой модели Kandinsky 4.0 — нашей первой фундаментальной мультимедийной модели. Была проведена значительная исследовательская работа по выбору архитектуры, сбору, фильтрации и обработки данных, а также применению передовых и сложных инженерных систем распределённого обучения на большом числе видеокарт.
Модели Kandinsky 4.0 T2V, T2V Flash и I2V развернуты на сайте fusionbrain.ai. Сначала языковая модель (GigaChat MAX) генерирует концепцию и пишет сценарий, детализируя ключевые моменты сюжета и формируя текст для озвучки. Затем Kandinsky превращает описания сцен в визуальные образы, создавая стиль и атмосферу ролика. И, наконец, добавляется звуковое сопровождение: модели синтезируют мелодию и закадровый голос (с помощью Kandinsky T2I2V или модели SymFormer).
Первыми доступ к модели получили представители креативных индустрий: художники, дизайнеры, кинематографисты и блогеры.
Авторы
Модель разработана командой исследователей из Sber AI Research при поддержке учёных из AIRI, инженеров и исследователей из SberDevices и Сбера:
Руководитель проекта: Денис Димитров
Соруководство проектом: Владимир Архипкин, Денис Пархоменко, Андрей Кузнецов, Константин Соболев
Пайплайн обучения & Обучение модели & Дистилляция модели: Владимир Архипкин, Лев Новицкий, Мария Ковалёва
Архитектура модели: Владимир Архипкин, Мария Ковалёва, Зейн Шахин, Арсен Кужамуратов, Николай Герасименко, Михаил Жирнов, Александр Гамбашидзе, Константин Соболев
Пайплайн подготовки данных: Иван Кириллов, Андрей Шуткин, Кирилл Чернышев, Юлия Агафонова, Елизавета Дахова, Анастасия Аляскина, Денис Пархоменко
V2A модель: Зейн Шахин, Арсений Шахматов, Алексей Минин, Денис Пархоменко
Оценка качества: Николай Герасименко, Анна Аверченкова, Паньшин Виктор, Веселов Владислав, Перминов Павел, Родионов Владислав, Скачков Сергей, Пономарев Степан
Тестирование модели & prompt engineering & подготовка материалов: Татьяна Никулина, Валерия Жданова, Эвелина Миронова, Вячеслав Васильев, Андрей Филатов
Научные консультанты: Андрей Кузнецов, Сергей Марков
Консультанты по инженерной части: Григорий Лелейтнер, Фёдор Минькин
Fusionbrain.ai: Константин Куликов, Евгения Газарян
По всем возникающим вопросам и предложениям можно писать Денису Димитрову.
Каналы авторов
Ссылки
Что почитать:
-
Kandinsky 2.Х, принятая на A*- конференцию EMNLP
-
Kandinsky 3.X, принятая на A*- конференцию EMNLP
Где посмотреть:
-
🤗 Kandinsky 4.0 T2V Flash (HF Spaces) с функцией расширения промпта с помощью GigaChat-Max
Получить доступ в вайтлист: fusionbrain.ai
Пишите письма на hello@fusionbrain.ai
Автор: VArkhipkin