Диффузионные модели для генерации видео
Наконец-то я добралась до поста про диффузионные модели. Это не принципиально новая архитектура, но они на подъеме последние пару лет, потому что оказались крайне эффективными для работы с изображениями и видео. Инструменты, которые генерируют видео по текстовому описанию, часто имеют в основе именно диффузионные модели. Самые популярные Sora и Veo имеют в основе трансформеры, однако их мы сегодня касаться не будем.
Чуть раньше мы упоминали вскользь диффузионные модели в посте про состязательное обучение, там речь шла о статье, с которой все началось – «Deep Unsupervised Learning using Nonequilibrium Thermodynamics» («Глубокое обучение без учителя с использованием термодинамики неравновесных процессов»). С нее и начнем.
Появление диффузионных нейросетей
Упомянутая статья вышла в 2015 году. Задачей, которую поставили перед собой авторы, было разрешение противоречия между гибкостью модели (flexibility) и удобством работы с ней (tractability – удобство создания, анализа и контроля): удобные модели, как правило, не подходят для работы со сложными данными, а гибкие сложно проанализировать.
Новый подход призван совместить лучшее от двух миров и обеспечить как удобство анализа, так и достаточную гибкость для работы со сложными многомерными данными. В основе лежат некоторые принципы статистической физики и цепи Маркова. Цепи Маркова состоят из последовательности случайных событий, вероятность наступления каждого из которых зависит только от того, какое событие наступило на предыдущем шаге (более ранние события не рассматриваются). Например, есть некие события А и Е. Если наступило событие Е, с вероятностью в 30% затем снова наступит событие Е, а с вероятностью в 70% наступит событие А. Если наступило событие А, с вероятностью в 40% далее наступит событие Е, а с вероятностью в 60% – снова событие А. Если мы имеем событие А, нам уже не важно, предшествовало ему само А или Е, это никак не повлияет на наступление следующего события.
Неплохая аналогия – игра «сломанный телефон». То, что игрок 3 сообщит игроку 4, зависит от услышанного им от игрока 2. Исходное слово уже не имеет никакого значения.
Примерно это и происходит в процессе обучения диффузионной модели:
- на вход подается исходное изображение (например, спирали, как на картинке ниже);
- на следующем шаге к изображению добавляется немного шума (см. первый ряд слева направо);
- затем к полученному изображению добавляется еще немного шума, при этом полученное на втором шаге изображение воспринимается как исходное, и шум добавляется исходя из этого нового состояния;
- когда из изображения получился случайный шум (как на третьей картинке в верхнем ряду), процесс разворачивается в обратную сторону: шум берется как исходное изображение и «очищается», чтобы получилось что-то более похожее на картинку;
- на следующем шаге убирается еще немного шума и так далее (второй ряд, справа налево).
Таким образом, обучение происходит маленькими шажками, что намного проще, чем сходу сгенерировать картинку из набора случайных точек.
Ниже показано, как тот же процесс выглядит на реальном наборе данных, который называется CIFAR-10.
Набор фотографий a – это реальные тренировочные данные, b – те же данные после добавления шума, c – данные, реконструированные из b, d – новые картинки, сгенерированные после обучения. Результат несколько размазанный и неясный, но вы помните, что это 2015 год. Midjourney, например, вышла в 2022 году, DALL-E – в 2021.
Обзор современного состояния
Перемотаем теперь несколько лет эволюции и перейдем к статье 2024 года «Diffusion Models: A Comprehensive Survey of Methods and Applications» («Диффузионные модели: всесторонний обзор методов и применений»). Это масштабная публикация, которая охватывает весь доступный авторам объем литературы по теме. Она описывает существующие алгоритмы, их применения, возможности комбинации с другими моделями и будущие направления развития.
Авторы выделили несколько ключевых направлений в развитии диффузионных моделей:
- повышение эффективности за счет уменьшения числа шагов (добавления шума и очистки изображения) при сохранении качества. В эту группу входят как алгоритмы, которые быстрее и эффективнее убирают шум, так и алгоритмы, которые ускоряют прохождение каждого шага;
- совершенствование подходов к оценке правдоподобия (того, насколько полученные после зашумления и очистки изображения похожи на исходные);
- приспособление диффузионных моделей к разным типам данных, в том числе, например, к текстам.
Для генерации текста диффузионные модели могут быть совмещены с большими языковыми моделями. Такое комбо эффективно для создания изображений и видео по текстовому описанию (у меня в телеграме недавно был пост про доступные инструменты, с помощью которых можно попробовать нагенерировать видео).
Гибрид диффузионных моделей с соревновательными (GANs) здорово повышает и реалистичность создаваемых изображений, и эффективность процесса (соревновательные модели быстрее, но диффузионные более гибкие, их совмещение позволяет взять лучшее из двух миров).
В целом диффузионные модели сейчас применимы и к работе с текстом, и к 3D-моделированию, и к прогнозированию, и еще к разным областям. В качестве направлений дальнейшего развития предлагаются повышение эффективности и сокращение объема потребляемых ресурсов, расширение их применения и более подробное исследование того, как и почему они превосходят соревновательные модели во многих областях применения (это даст понять, в какую сторону двигаться дальше).
Заключение
В общем, не Трансформером единым жива область генеративного ИИ. Диффузионные модели здорово проявили себя в работе с видео и изображениями, особенно в паре с языковыми моделями, так что, думаю, эта архитектура с нами задержится. Будем наблюдать.