Как работает генерация видео на основе ИИ?
Видели когда-нибудь видосы, созданные ИИ? Нейросеть под названием SORA, помню, хорошо так хайпанула. Давайте разберёмся, как она работает и почему это так затратно.
Как модель работает с видео?
Не стал называть пост «простыми словами», потому что тут требуется понимание некоторых фундаментальных вещей. Нейросети типа трансформеров (transformer-based models) хорошо себя показали в работе с последовательностями (текст, аудио). Но их также применяют для работы с изображениями, прозвав Vision Transformer (ViT). Для этого картинку разбивают на части, как пазлы, а затем эти части собираются в одну последовательность (пример). И с этой последовательностью работает трансформер. А видео — это серия изображений или кадров. Все кадры разбиваются на части и объединяются в одну огромную последовательность. То есть, если один кадр состоит из 400 частей, а кадров всего 300, тогда трансформер примет последовательность из 120 000 частей. И это всего лишь для 10-секундного видео (30 FPS). Вот так это выглядит.
А как же генерация?
Но стоп, а откуда у нас взялось видео, если нейросеть должна сама его создать? Вот именно! Поэтому тут используется подход с диффузией, о которой я рассказывал в этом посте. Только теперь у нас не одна картинка, а серия картинок (кадры видео). На начальном этапе у нас просто шум, который шаг за шагом преобразуется трансформером в реальную серию кадров видео. А это выглядит вот так.
А как задаётся текстовое описание для видео?
Текст от пользователя (промпт) также разбивается на части (токены), формируя текстовую последовательность. Эта текстовая последовательность «склеивается» с последовательностью из видео. И вот образуется супер-мега длинная серия из частей текста и частей видео. Это нужно, чтоб трансформер видел всё вместе: и промпт, и всю серию кадров. Тогда он сможет понять, чего от него хотят.
А что умеет SORA?
1. Уже обсудили генерацию видео (text-to-video).
2. Оживление картинок (image-to-video).
3. Зацикливание видео (когда кадр № 1 = последний кадр).
⚡️⚡️ Огромная последовательность из текста и частей видео, много шагов диффузии для формирования красивых кадров требует внушительного количества ресурсов и времени. И чем выше разрешение, чем больше длительность видео, тем затратнее. Вот есть такой пример, показывающий разницу в количестве шагов диффузции. И это только для генерации. А сколько понадобилось для обучения такого монстра, даже не знаю, не нашёл инфы.
📝 Статья от OpenAI для силачей
Post #56
138