Ну что, уже успели прочитать восхищения небывалым качеством видео от нейросетки SORA у всех блогеров и новостных изданий? А теперь мы вам расскажем то, о чем не написал никто: чего на самом деле пытается добиться OpenAI с помощью этой модели, как связана генерация видео с самоездящими машинами и AGI, а также при чем здесь культовая «Матрица».
В середине февраля в мире AI произошло много событий (1, 2, 3), но все они были затмлены демонстрацией новой модели OpenAI. На сей раз калифорнийская компания удивила всех качественным прорывом в области генерации видео по текстовому запросу (text-2-video). Пока другие исследователи старались довести количество пальцев на руках сгенерированных людей до пяти (а члены гильдии актёров противостояли им), в OpenAI решили замахнуться на короткие (до минуты), но высококачественные и детализированные ролики — и, чёрт возьми, у них получилось!
Звучит как-то… антиутопично, не находите? В «Матрице» вот тоже симулировали мир людей, объектов в нём, различных взаимодействий. Но зачем это OpenAI — неужели не хватает энергии для подпитки серверов, и нужно разработать биологическую человекоподобную батарейку? Нет, основная причина — это уверенность в том, что понимание и симуляция мира являются важными вехами на пути создания Artificial General Intelligence (AGI, сильный искусственный интеллект), что, в свою очередь, является главной целью компании. Причём, эта цель остаётся неизменной с 2015 года — тогда некоторые учёные даже смеялись над самой постановкой, ибо об AGI было не принято говорить. Сейчас, когда в США вводят запрет на регистрацию патентов на изобретения, разработанных «не реальными людьми», уже не так смешно.
И всё-таки, где тут связь? Как видео-фотошоп на максималках может помочь? Существуют ли подтверждения — естественные биологические или искусственные — что симуляции работают и помогают? Насколько они связаны с реальным миром? Можно ли научиться чему-то, летая в мечтах? И зачем OpenAI обращается к ближневосточным суверенным фондам? На эти и многие другие вопросы я постараюсь ответить в нашем увлекательном путешествии! Но начнём издалека, с самых-самых основ. Сначала эти куски пазла могут не склеиваться у вас в голове в одно целое, но уверяю — в конце всё точно встанет на свои места!
Да кто такие эти ваши «модели мира»?
Мозг развитого примата — вещь достаточно сложно устроенная. Нужно и делать огромное количество работы, и при этом тратить мало энергии. И чтобы справиться с огромным количеством информации, ежедневно проходящим через нас, мозг анализирует данные и находит закономерности. В результате люди вырабатывают ментальную модель мира (которая как бы объясняет его — как этот мир устроен, и как должен реагировать на взаимодействие с ним). Решения и действия, которые мы принимаем, в той или иной степени основаны на этой внутренней модели.
Но что куда более важно — существуют доказательства, что наше восприятие в значимой степени определяется будущим, предсказанным нашей внутренней моделью мира. Мозг — это предиктор. Интересующиеся могут почитать вот эту или эту статьи, а мы рассмотрим простой пример: бейсбол. У отбивающего есть 350-400 миллисекунд с момента подачи, чтобы отбить мяч — чуть больше, чем время моргания! И причина, по которой человек вообще может среагировать на мяч, брошенный с расстояния 18 метров со скоростью 160 км/ч, связана с нашей способностью инстинктивно предсказывать, куда и когда он прилетит. У профессиональных игроков все это происходит подсознательно. Их мышцы срабатывают рефлекторно, позволяя бите оказаться в нужном месте и в нужное время, в соответствии с предсказанием их модели мира — потому что времени на осознанное планирование попросту нет.
Итак, модель мира — это выработанное внутреннее представление процессов окружающей среды, используемое агентом для моделирования последствий действий и будущих событий. Агентом в данном случае называется некоторая сущность, способная воспринимать мир вокруг и воздействовать на него для достижения определенных целей — человек или кот подпадают под это определение. Для домашнего животного «утро + громкое протяжное мяуканье = хозяин покормит» — вполне себе одно из выученных правил среды, в которой оно существует. Модель обобщается на новые и ранее неизвестные наблюдения, по крайней мере у живых организмов.
В 1976 году британский статистик Джордж Бокс написал знаменитую фразу: «Все модели неправильны, но некоторые из них полезны». Он имел в виду, что мы должны сосредотачиваться на пользе моделей в прикладных сценариях, а не бесконечно спорить о том, является ли модель точной («правильной»). Этот девиз находит своё отражение в жизни: наш мозг часто «лагает» и неправильно угадывает, казалось бы, очевидные вещи. И даже в точных науках — физики до сих пор не могут описать Теорию всего, и довольствуются аж четырьмя отдельными типами взаимодействия элементарных частиц! И ничего, живём как-то. И именно с цитатой доктора Бокса вам предлагается пройти путь до конца статьи 🙂 Она задаст правильный настрой для восприятия информации.
Латентные пространства неизведанных миров: ныряем внутрь мозга
К сожалению, наука продвинулась недостаточно, чтобы мы могли подключаться напрямую к ментальной модели мира внутри человеческой черепушки и рассматривать её предсказания, поэтому сделаем проще. Подключимся к мозгу, в котором эта модель мира должна проживать, и «послушаем» его сигналы (пока ещё бесплатные и без приватных каналов). Не переживайте, никому провода в голову вставлять не будут (хотя, старина Маск этим уже промышляет) — мы прибегнем к помощи функционального МРТ (фМРТ, в английской литературе fMRI). Переодевайтесь, залазьте в машину, а мы будем показывать вам разные фотографии и считывать сигналы мозга, как он реагирует на увиденное.
Сильно упрощая, сигнал, фиксируемый аппаратом, будет сохранён как набор чисел, из которого мы будем пытаться реконструировать изображение — прям настоящее чтение мыслей, но без магии. Сейчас самым передовым способом является — приготовьтесь — подача этих чиселок во вторую половину модели Stable Diffusion. Да, ту самую, которой все в интернете генерирут изображения сказочных вайфу и дипфейки. Всё дело в том, что эта модель уже обучена реконструировать изображения из так называемого «латентного представления» (это промежуточное состояние, с которым работает модель). Давайте для простоты посмотрим на примере:
Что происходит слева направо: наши глаза преобразуют воспринимаемую картинку в сигнал, проходящий по зрительному нерву прямо в мозг. Оттуда аппаратом фМРТ считываются активации нейронов, представленные в виде циферок (называемых латентом, или скрытым состоянием), которые передаются в обученную нейронку на реконструкцию (часто называемую декодированием). Осуществляющий эту процедуру декодер нужно дополнительно обучить, чтобы он умел воспринимать сигналы из мозга правильно, и понимал, что вот эти цифры означают мишку, а вот эти — самолёт.
С одной стороны, мозгу этих чиселок хватает для того, чтобы принимать решения и ориентироваться в пространстве (если игнорировать неидеальность аппаратуры для считывания сигнала). А с другой, декодер от нейронной сети, обученный генерировать картинки, умеет воспроизводить изображение так, чтоб оно почти не отличалось от реальных картинок (нуууу, с натяжкой, ок? подыграйте мне). Те огрехи, которые мы видим на примере — это в большей степени результат неидеальности считывания сигнала, а не проблема реконструирующей нейронной сети, ведь сама по себе она умеет выдавать офигенно правдоподобные рисунки.
Мозг не видит изображения, он оперирует в пространстве сигналов, получаемых и преобразуемых сенсорной системой, и в нём же строит удобную ему модель мира. Это менее очевидно для зрения, так как вы прямо сейчас смотрите на этот текст и видите его в реальном мире. Но на самом деле это реконструкция сигнала в вашей голове — иногда она барахлит, и могут возникать галлюцинации, неотличимые от реальных, потому что мозг уверен, что он что-то видит.
То, что в нейронных сетях давно используются декодеры (и в том числе для реконструкции из сигналов сенсорной системы), мы уже поняли. Но что тогда является аналогом сенсорной системы, переводящей наблюдения в латентное пространство? Это кодировщик, или энкодер: он как бы «сжимает» исходные данные в специальное представление, хранящее ключевую информацию, и при этом опускающее ненужные детали и шум.
Только наш мозг умеет делать это практически с самого рождения (спасибо эволюции), а нейронные сети нужно тренировать. Такие модели будут называться автокодировщиками, и для обучения используется следующий трюк: модель каждый раз пытается сделать так, чтобы последовательное применение энкодера и декодера (см. визуализацию выше) к изображению приводило к результату, близкому к оригиналу — при этом в серединке остаётся вектор чиселок (латент), который хранит в себе информацию. И его размер куда меньше, чем входное изображение, что заставляет модель компактно сжимать данные — однако благодаря умному декодеру выходная картинка почти неотличима от оригинала.
Давайте для демонстрации игрушечной модели мира запустим компьютерную игру: гонки с видом сверху.
Под капотом выучивается стратегия в духе «если первое число такое-то, а второе сильно больше нуля, и…, то нужно скорее поворачивать направо». Нейрока поняла, что на такой сигнал нужно реагировать вот так, а на иной — совсем иначе. Как итог, бот вроде и будет ориентироваться на гоночной трассе, и средне управлять машинкой. Легко заметить, что он раскачивается туда-сюда и часто не вписывается в крутые повороты.
Сейчас же по статичной картинке ни мы, ни бот не можем понять — быстро ли едет машина? Поворачивали ли мы влево или вправо? И уж тем более нет никакой интуиции, подсказывающей, что уже пора пристёгивать ремень — потому что мы летим в отбойник.
Давайте это исправим. Добавим отдельную модель, которая учится предсказывать, что ждёт в будущем. Причём, предсказывается не следующий кадр (откуда? мозг его не видит), а следующий латентный вектор (который соответствует тому, как бы мозг закодировал в свой внутренний сигнал восприятие этого следующего кадра реальности). По сути, модель отвечает на вопрос «с учётом текущего состояния и действий, которое я предпринимаю — каким будет следующее полученное состояние окружения?».
Итого в системе есть 3 отдельных части:
- Автокодировщик с энкодером и декодером (2 половинки одного целого), помогающие сжимать изображение и производить деконструкцию из латента.
- Модель предсказания следующего латента. Хоть это и не отображено на картинке, но сам латент немного изменился — к нему добавился вектор внутреннего состояния (к 15 числам приписали ещё несколько). Он выступает в роли накопителя опыта, или подсознательной памяти, помогая разбираться, что происходило в предыдущие пару секунд. Мы не задаём ему никаких ограничений, лишь просим быть максимально полезным в задаче предсказания ближайшего будущего — что «запомнить» модель решает сама. В данном случае логично предположить, что туда сохраняется скорость, динамика её изменения (тормозим или разгоняемся), совершался ли недавно поворот, и так далее — всё то, что поможет угадать будущее.
- Обучаемый бот, который видит только латенты и делает по ним выводы.
Ииии… предложенный метод моделирования будущего позволил двум учёным, Дэвиду Ха и Юргену Шмидхуберу, обучить пачку ботов, которые являлись лучшими в разных играх — от гонок до стрелялок. Такие модели мира, как они их назвали, опираются на наблюдения за процессом работы мозга человека, и все эти предисловия и примеры были приведены не для красного словца.
Похоже на бред, который не сработает? Давайте проверим, а заодно подключим декодер для визуализации происходящего:
Дум — это 3Д-экшон, суть такова… здесь взята урезанная игра с понятной задачей: продержаться в комнате с монстрами-импами как можно дольше. Можно перемещаться влево-вправо, чтобы уклоняться от огненных шаров, запускаемых монстрами в другом конце комнаты. Чем больше времени продержишься — тем лучше.
Давайте посмотрим на примеры в табличке выше. Чтобы предсказать следующее слово для каждого из префиксов, нужно либо обладать конкретными знаниями, либо уметь рассуждать. Иногда это может быть двумя сторонами одной и той же монеты: например, можно запомнить базовую таблицу умножения, но также через неё понять и тысячи более сложных примеров (которые в этой таблице не встречались), и затем начать корректно применять принципы математических операций.
OpenAI в этом плане двигались постепенно — первые проверки гипотезы о том, что языковая модель при обучении строит модель мира, помогающую ей успешно предсказывать следующее слово, были ещё до GPT-1. Исследователи предположили, что если взять достаточно большую по тем временам модель, и обучить её на 40 Гигабайтах отзывов с Amazon (при этом не показывая, какой рейтинг оставил пользователь — только текст), то скорее всего нейросеть сможет сама «изобрести» внутри себя концепцию сентимента. Иными словами, она сможет определять, является ли отзыв позитивным или негативным. С учётом того, что в явном виде мы никак эту информацию не сообщаем — было неочевидно, получится ли разобраться со столь сложной и абстрактной вещью, которая существует только у нас в голове: сентимент текста. Ведь это не природное явление, не закон физики — это то, как мы, люди, придумавшие свои искусственные языки, воспринимаем информацию.
Сказано — сделано. В OpenAI обучили модель, а затем рассмотрели её латент (да, там тоже модель сначала сжимает текст в понятные ей сигналы, а затем переводит его обратно в текст) под микроскопом. Так же, как мы пытались крутить 15 чиселок латента на гифке с игрушечной трассой, исследователи пытались найти такой параметр (из 4096 разных, если вам интересно), который был бы связан с сентиментом. И, как уже должно быть понятно, нашли!
Но как для текста можно понять, что вот, скажем, семнадцатая цифра в нашем латенте отвечает за сентимент? Пробуется два способа: это анализ зависимости значения от входной последовательности (текста отзыва), и сентимента генерируемого текста (= «фантазии» модели) от этого же значения. Мы как бы отвечаем на два вопроса: «Правда ли значение предсказуемо меняется из-за отзыва?» и «Правда ли, что модель опирается на это значение, то есть, сгенерированный отзыв меняется из-за значения в латенте?»
Сначала про первое. Давайте возьмём тысячи отзывов, но уже не с Amazon, а с американского аналога Кинопоиска, IMDB. Для каждого из них определим, являются ли они позитивными или негативыми. Затем будем подавать эти отзывы в модель (грубо говоря использовать энкодер для получения латента, хоть в языковых моделях это устроено чуть иначе) и смотреть, как меняется найденная цифра. Можно сделать визуализацию в виде гистограмы, на которой отзывы с разным сентиментом окрашены в разные цвета.
По графику видно, что для негативных отзывов модель зачастую показывает значения ниже нуля (аналог с визуализацией гоночной трассы — один ползунок выкручен влево), а для позитивных — выше. И «горбики» распределений почти заметно отличаются. Те отзывы, что попадают на пересечение, скорее всего имеют смешанный сентимент: может, там фильм и хвалят, и ругают? Таким образом, мы можем сказать, что состояние модели меняется в зависимости от сентимента конкретного отзыва — становится больше или меньше.
Но опирается ли нейронка на эту модель мира? Считается ли конкретно этот латент важным во время запуска симуляции (в которую мы можем подсмотреть уже не визуально, а по сгенерированному тексту)? Давайте зафиксируем все остальные значения латента (через установку одинакового начала отзыва), и сначала сгенерируем отзыв о фильме, указав большое положительное значение, а затем — отрицательное. По идее, если для модели этот признак важен, мы ожидаем увидеть очень положительный, хвалебный отзыв, а за ним — негативный.
И ровно это учёные и обнаружили — при генерации ответ модели существенно меняет свой окрас в зависимости от лишь одной цифре в латенте. Но главная фишка в том, что мы не давали модели никакого понимания, что такое сентимент, и какими словами он выражается — вообще ничего, кроме кучи текстов. И всё же для модели мира оказалось удобнее (выгоднее?) кодировать данные так, чтобы сентимент легко разделялся, и им можно было управлять.
Этот игрушечный пример послужил толчком для OpenAI к развитию идей в модели GPT-1, а GPT-2 и 3 были дальнейшим масштабированием: больше модель, больше текстов, и как следствие более полная картина мира, выработанная внутри нейросети. Поскольку теперь кроме отзывов мы показываем тексты вообще про всё на свете, от комментариев на Дваче до учебника по физике, то модель выучивает огромное количество вещей, не только простой сентимент.
Очень сложно оценить наперёд, насколько комплексной и многогранной будет модель, и что будет зашито в её модель мира. Бывают комичные случаи: знакомьтесь, Ян Лекун, лауреат премии Тьюринга (аналог Нобелевки в компьютерных науках) за вклад в область нейронных сетей. За это его ещё называют одним из трёх крёстных отцов искусственного интеллекта. В настоящее время является вице-президентом по AI в компании META. Кажется, уж он-то точно хорошо разбирается в предмете?
В подкасте Лексу Фридману от 23 января 2022 года Ян говорил: «Я не думаю, что мы можем научить машину быть разумной исключительно на основе текста, потому что я думаю, что объем информации о мире, содержащейся в тексте, ничтожен по сравнению с тем, что модели нужно знать. Вы знаете, что люди пытались сделать это в течение 30 лет, верно? <…> Я думаю, что это в принципе безнадежно, но позвольте мне привести пример. Я беру предмет, кладу его на стол и толкаю стол. Для вас совершенно очевидно, что предмет будет двигаться вместе со столом, верно? Потому что он на нём лежит. Но в мире нет текста, объясняющего это! И поэтому, если вы тренируете машину, настолько мощную, насколько она может быть, например, ваш GPT-5000 или что-то еще, она никогда не узнает эту информацию. Этого просто нет ни в одном тексте».
Менее чем через год вышла ChatGPT (GPT-3.5), которая…правильно отвечала на этот вопрос. Ну ладно, ошибся дядька, наверное, где-то в учебниках физики был схожий пример. Когда в Твиттере ему за это предъявили, то он придумал новую мега-супер-сложную задачку. Сейчас-то наверное подготовился? Не стал щадящие примеры выбирать? Он выбрал задачку с шестерёнками… которую модель решила сходу, сразу же.
Тогда через месяц он придумал усложнение: «7 стержней равномерно распределены по кругу. На каждом стержне установлена шестерня, так, что она находится в сцеплении с шестернями слева и справа. Шестерёнки пронумерованы от 1 до 7 по кругу. Если бы третья шестерня была повернута по часовой стрелке, в каком направлении вращалась бы седьмая?». Родители с детьми в начальной школе уже словили флешбеки от домашки по физике, но теперь они хотя бы узнают, что… GPT-4 и на такой вопрос даёт правильный ответ.
GPT-4 вообще удивила многих. Вот как думаете, можно ли ответить на такой вопрос к следующей картинке, не понимая физику нашего мира, не моделируя взаимодействия объектов? Что произойдет с мячиком, если перчатка упадёт?
Позиция Яна не в том, что модели так не могут в принципе — он лишь не верил, что сложным физическим описаниям можно научиться либо просто по тексту, либо что такой текст вообще существует. И был не прав. Этот пример призван показать, что не стоит загадывать наперёд, что не смогут делать системы завтрашнего дня.
Конечно, модель могла не «понять» физику и уж тем более не строить модель мира, а быть обученной на таких же или уж очень похожих задачах. Однако я уже со счёта сбился от количества примеров с вопросами про очень специфичные и даже закрытые штуки, которые публикуют пользователи, но для которых, тем не менее, GPT-4 даёт адекватные ответы. Один, два, три раза — можно списать на запоминание, но были случаи…
И даже у столь мощной GPT-4 модель мира всё еще не идеальна, и то и дело приводит к глупым ошибкам. «Все модели неправильны, но некоторые из них полезны», помните?
OpenAI SORA: эмулятор Вачовски или симулятор мира?
Наконец, переходим к десерту. Такое длинное вступление было необходимо для того, чтобы наглядно продемонстрировать читателю крайне важные в контексте новой модели OpenAI тезисы:
- Модели мира помогают агенту принимать решение с учётом информации о возможном будущем
- Для того, чтобы успешно предсказывать будущее состояние, важно понимать лежащие в основе формирования среды процессы
- Модели мира строят предсказания не в привычном нам виде, а в понятном им мире преобразованных сигналов (латентное пространство)
- Мы можем заглянуть внутрь, но реконструкция не будет идеальной
- Бот, обученный в симулируемой моделью мира сцене, может проявлять навыки и в реальной среде
- Масштабирование модели всегда приносит улучшения, при этом многие из них неочевидны и сложнопредсказуемы
И вот теперь, когда мы разобрали концепцию моделей мира и посмотрели, для чего они могут использоваться, мы будем смотреть на примеры и пытаться понять, а в чём же именно ВАУ-эффект модели SORA. Она, как и GPT-4, выработала внутри себя какую-то модель мира, помогающую предсказывать следующий кадр в огромной разнообразной выборке всевозможных видео. Рендеринг финального изображения — это лишь реконструкция того, что предсказывает модель (потому что мы смотрим на это через призму декодера; хоть он и достаточно мощный, но имеет свои недочёты).
Пример, которым OpenAI решили похвастаться и вывести в начало своего блогпоста, вы уже видели в превью статьи. Это одноминутное FullHD @ 30 к/сек. видео, сгенерированное по текстовому запросу (промпту): «Элегантная женщина идет по улице Токио, озаренной теплым светом неоновых огней и анимированных городских вывесок. На ней черная кожаная куртка, длинное красное платье и черные ботинки, в руке черная сумочка. Она в солнцезащитных очках и с красной помадой. Шагает уверенно и непринужденно. Асфальт улицы мокрый, отзеркаливающий яркие огни. Вокруг ходит множество пешеходов.»
Во-первых, сложно не заметить точнейшее соблюдение всех деталей промпта в сгенерированном видео. Даже если сильно захотеть — разве что субъективные «элегантная женщина» и «шагает уверенно» можно подвергнуть сомнению, но, по-моему, модель справилась отлично. В этом заслуга специального приёма, использовавшегося OpenAI при разработке их предыдущей модели, DALL-E 3 (делает генерацию изображения по текстовому запросу, как MidJourney).
Так как зачастую текстовые подписи к картинкам и роликам в интернете очень короткие и несут лишь поверхностное (а иногда и неточное) описание происходящего, исследователи предложили применить умницу GPT-4 для генерации более подробных описаний. Для этого видео нарезалось на кадры, и языковая модель получала команду создать детальные подписи к происходящему в нескольких подряд идущих изображениях. Текстовые комментарии выходят не в пример длиннее, с большим количеством нюансов, поэтому обученная text-2-image или text-2-video модель гораздо охотнее обращает внимание на запрос, пытаясь соответствовать каждой его частичке. Даже лучшие платные аналоги моделей еле-еле оперируют двумя, самый край тремя предложениями — а тут мы нагрузили деталей на 5 строчек! Для DALL-E 3 процент синтетических текстов был 95%, вероятно, в SORA плюс-минус такой же.
Во-вторых, общий визуал существенно превосходит ожидания от моделей на данный момент. В Твиттере даже шутят, что «это был невероятный год прогресса AI… за один час». Тут сложно не согласиться, особенно если последнее демо, что вы видели — это Уилл Смит со спагетти из начала статьи. Но в сцене, кажется, учтено почти всё. Если заведомо не знать, что это генерация и не ждать подвоха — сразу и не скажешь. Освещение, отражения, толпа людей, переход на ближний план с детализацией текстуры кожи, плавность перемещения камеры с соответствующим изменением углов обзора на объекты в фоне. А те объекты, что пропадают из поля зрения на несколько секунд (люди сзади, синий дорожный знак на стене справа), возвращаются без изменений — такой консистентности во времени раньше и не мечтали добиться!
В-третьих, давайте поговорим про недостатки. Я пересмотрел видео около десятка раз, и самые заметные изменения происходят, если сравнивать начало и конец. На секундах с 55 по 59 вы можете заметить, что: 1) из рук пропадает чёрная сумочка; 2) левый лацкан куртки стал аномально большим (и даже испортил симметрию), да и правый прибавил в размере; 3) на красном платье на груди появляются чёрные пятна; 4) меняется причёска, появляется завихрение волос. Есть и комичные проблемы — обратите внимание, как левая нога превращается в правую (и наоборот) на секундах 15 и 29. И как после такого заснуть? А на секундах 16–17 ноги группы людей слева (парень, проходящий мимо двух азиаток в масках) будто бы окутаны водным шаром и очень расплывчаты.
Важно отметить, что часть этих проблем наверняка лежит на неидеальности реконструкции декодера, а часть — на проблемах с моделью мира. А может быть, собака зарыта где-то ещё, мы не знаем. Дело осложняется тем, что ни у кого, кроме OpenAI и их доверенных лиц, нет доступа к нейросети, чтобы это можно было проверить. Помните, как в эксперименте с числом в латенте, влияющим на генерацию отзыва? Тогда исследователи могли однозначно проверить, что будет, если его дёргать туда-сюда, здесь же подобного анализа не производилось. И всё же сделаю смелое предположение и скажу, что пронумерованные проблемы из абзаца выше скорее всего являются недостатками модели мира (исчез объект? поменялась форма чуть ли не самого крупного объекта в кадре? как так?!), а вот проблемы с отображением ног — уже реконструкции (потому что энкодер и декодер не посчитали нужными кодировать информацию о двух ногах, находящихся рядом).
Подобный артефакт можно было наблюдать на одном из видео выше, в симуляторе для автопилота. Там сами машины и окружение были достаточно чёткими, а вот диски колес как будто бы не крутились, и были очень шумными. Вероятнее всего, при обучении модель сочла, что куда выгоднее кодировать такие признаки, как размер авто, направление его движения, скорость, а вот насколько повёрнуты колёса в каждый момент времени уже можно подзабить — ведь это не так важно, и мы, люди, тоже не обращаем внимания при вождении на этот шум. Помните, что модель мира предсказывает будущее состояние, но не вся информация одинаково полезна для этой цели.
Но с этим связана и неожиданная хорошая новость! Раз модель мира не уделяет внимание такой детали, то и несоответствие картинки из декодированного видео настоящему миру не так критично. Ведь энкодер при сжатии видеопотока в латент для обработки (или симуляции) также опустит эти детали! В итоге, латент для реальной картинки и для «симулированной» будет почти одинаковым (хоть проблемы в реконструкции заметны невооружённым глазом). А значит наш бот, играющий в симуляторе, не заметит подвоха, и сможет потенциально оперировать в реальном мире. То, что может быть критично для создателей видеоконтента в силу неидеальности визуала, абсолютно не мешает основной цели модели SORA!
Поразительное качество рендеринга
Ну что-то мы с тобой, Нео, зациклились на одном видео с девицей в красном — давай пощупаем что-то ещё. Второе видео, на котором хочется сделать акцент, короче. За 9 секунд нам показывают вид от первого лица девушки, созданный коротеньким промптом: «Отражения в окне поезда, едущего по пригороду Токио».
Вы только посмотрите на эти отражения! Как объекты приобретают форму, когда за окном проносится тёмный столб, и затем снова превращаются в силуэт на стекле! И это при том, что за окном проплывает пригород, какие-то здания ближе и визуально движутся быстрее, а те, что поодаль, минимально меняют ракурс. Мы, люди, привыкли, что и в кино, и в реальной жизни всё это естественно, но даже для видеоролика сделать такую отрисовку с большим количеством объектов и отражениями — это надо постараться.
Этот и ещё пара примеров (1, 2 и даже 3) вообще заставили людей обсуждать гипотезу об использовании реального игрового движка для отрисовки изображения. И уж если оный не используется для предсказания в сложных сценах, то наверняка в нём генерировали обучающую выборку! Это, конечно, спекуляция, и однозначного ответа на вопрос у нас нет. Из всех технических деталей, представленных в блоге OpenAI, можно сделать вывод, что конкретно пиксели модель рисует сама (без опоры на условный игровой движок Unreal Engine 5) — исследователи даже констатируют, что этот навык появился исключительно при масштабировании модели.
Другие неожиданные сюрпризы SORA
Одна из новых и (частично) неожиданно появившихся способностей модели — это возможность создания видео с динамическим движением камеры. Мы уже это наблюдали в первом примере: камера двигается и вращается, а люди и прочие элементы сцены перемещаются в трехмерном пространстве соответственно нашим естественным ожиданиям. Но не мог не поделиться с вами этими чудесными сценами.
Представляете, какое количество аспектов приходится учитывать модели мира? Ведь приходится моделировать поведение агентов (в данном случае — людей) и множество взаимодействий для каждого кадра. Но давайте изолируем задачу и сфокусируемся на ней: иногда SORA может имитировать простые действия, влияющие на состояние мира. В одном случае это изменение картины в местах, где полотна касается кисточка, а в другом бургер становится откушенным.
Опять же, выглядит естественно, мы даже не замечаем, мозг принимает это как должное. Но представляете сколько усилий пришлось бы прикладывать инженерам-программистам, чтобы все подобные взаимодействия прописать для какой-нибудь игры в мельчайших деталях? Да что там, люди до сих пор смотрят на ролик из Red Dead Redemption 2 ниже, и переживают, что уж ну вот с таким-то уровнем детализации мы никогда не увидим следующего творения Rockstar. А подборки в духе «200 невероятных деталей, которых нет в других играх!» даже спустя 5 лет после релиза заставляют игроков удивляться кропотливости разработчиков.
И раз уж мы заговорили про игры — а вы знали, что SORA как ультимативный симулятор миров может эмулировать… Minecraft?
Всё, что вы увидели в этих двух примерах — полностью сгенерировано. Так же, как в примерах с DOOM и гоночной игрой из середины статьи — это «подглядывание» в симуляции, воспроизводимые моделью. И в эти симуляции можно подсадить агентов обучаться делать что-либо. Они, ни разу не провзаимодействовав с реальным миром, могут обретать навыки, переносимые в реальность.
И, да, все продемонстрированные свойства возникают без какого-либо внесения явной информации о трехмерных объектах в сцене, их геометрии, и т.д. — это исключительно проявление уже упомянутого масштабирования, с которым модель учится всё лучше и лучше решать свою задачу.
Но почему бы просто не создать игру?
Вероятно, главный вопрос, который крутятся в голове технически подкованных читателей — это «Зачем здесь для создания модели мира нужна нейронка, когда можно просто взять игровой движок и сделать игру?». Давайте постараемся подискутировать и порассуждать.
Разработка обычно упирается в три тесно связанных фактора: размер команды, бюджет и срок разработки. Самые дорогие в производстве игры стоят порядка ~$300M, самыми детально проработанными называют игры Rockstar (это которые GTA делают). Пример такой игры я приводил выше, и вот даже после показа трейлера GTA VI интернет взорвался вниманием к деталям: вау, песок на пляже прилипает к ногам! Ого, как реалистично распыляется спрей! Невероятно, там есть ветер, который развевает волосы!
Но с ручной проработкой есть одна проблема: она плохо масштабируется. Даже при сроке разработки игры больше 5 лет количество мелких деталей, которые в неё можно было бы добавить, всё равно превышает реально имплементированное. Физика волос, тканей, одежды, жидкостей, снега, поведение животных и людей… это всё надо продумать и прописать.
Если задуматься, это всё то, за что мы могли бы похвалить SORA или в худшем случае её наследника SORA 2. Только вот для SORA 2 нам не нужно собирать команду в три тысячи разработчиков и пыхтеть 7 лет, а для игр мы очень сильно ограничены человеческим ресурсом. Количество и качество проработки сильно упирается в программистов (и способности ими руководить). С нейросетями, как было упомянуто, ситуация не такая: ты просто покупаешь больше видеокарт, делаешь модель покрупнее, и вуаля! Кто знает, какие детали начнут около-идеально симулироваться при увеличении модели ещё на порядок?
Поэтому, даже если мы захотим сделать глобальный суперпроект мегасимуляции (для чего бы это ни было нам нужно) — мы просто не сможем прописать каждую песчинку на пляже, каждое дуновение ветра. Масштабирование модели позволяет выучить все полезные вещи из уже имеющихся данных, главное, чтоб электричества, видеоускорителей и денег хватило 🙂
Но может игры не нужны, и достаточно обойтись реальным физическим миром? На самом деле, тут та же самая проблема — чтобы обучать модели нужны сотни тысяч, миллионы попыток. Те же боты в DotA 2 при обучении наигрывали 200-300 ЛЕТ опыта в сутки. Примерно то же происходило в AlphaGo, системе для настольной игры го от DeepMind: модель играла сама с собой тысячелетиями. Просто не в реальности. Так что для обучения интерактивного агента в реальном мире нам либо придётся долго ждать, либо строить целую армию терминаторов, что а) крайне затратно, и б) из-за развития технологий теряет актуальность, железо устареет быстрее. Проще закупить кластер видеокарточек, которые могут делать и обучение, и ещё десяток вещей в других областях. Опять масштабирование побеждает!
Опускаемся с небес на землю
Но в то же время мы уже видели, что даже моделирование простой игры неидеально, и бот может научиться эксплуатировать симуляцию. Одно из решений — это чередование виртуального и реального мира, с постоянным итеративным дообучением из самых свежих собранных данных. Как только алгоритм определяет, что его модель мира слабо предсказывает происходящее и уж очень ошибается — эти данные кладутся в выборку с пометкой «первый приоритет». Чтобы, наблюдая ситуацию из видео ниже, модель «удивлялась», и исправляла неточность:
В данном примере нейронка (и, вероятнее всего, выработанная ею модель мира) не точно воспроизводит физику многих основных взаимодействий — таких, как разбивание стекла или опорожнение стакана. Другие сложные взаимодействия (вроде потребления пищи) не всегда приводят к правильным изменениям состояния объектов. В длительных сценах возникает несогласованность, а также спонтанные появления или исчезновения объектов. Модель также может путать пространственные аспекты промпта (и даже право-лево не отличать).
Но зачем же тогда OpenAI сделали анонс и выложили кучу демок? Технология как будто бы не готова для производства видеоконтента, а модель мира у неё пока… не ясно, будет ли достаточной для обучения ботов в аналоге Матрицы. Во-первых, как написано на официальной странице: «мы делимся результатами нашего исследования на раннем этапе, чтобы начать обсуждение и получать отзывы от людей, не входящих в состав OpenAI, а также чтобы дать общественности представление о том, какие возможности искусственного интеллекта ожидают нас в будущем». А теперь и вы, прочитав эту статью, имеете более полную картину мира, понимаете, что и как делается, и к чему стоит готовиться. Компания пока не планирует предоставлять доступ к модели всем подряд — но уже начался период закрытого тестирования на предмет безопасности и байесов (устойчивых искажений в какую-либо сторону) генераций.
Во-вторых, OpenAI в очередной раз пофлексили превосходством над другими игроками — только посмотрите на генерации моделей конкурентов (открытых и закрытых) по тем же самым промптам, что и у SORA. Даже не близко! Но впереди нас ждёт только развитие.
А что, собственно, впереди?
И тут мы переходим на территорию осторожных, но спекуляций. В OpenAI уверены, что продемонстрированные возможности указывают на то, что продолжение масштабирования моделей генерации видео является многообещающим путем к разработке очень проработанных симуляторов физического и цифрового мира, а также объектов, животных и людей, которые населяют их. Эта фраза повторяется дважды в этой статье — и точно также в блоге OpenAI, уж настолько сильно компания хотела задать акцент.
Но как такой симулятор нашего мира можно использовать, и чем он полезен? Кроме детально разобранного плана обучения ботов внутри виртуального мира, видится два ключевых направления работы. Первое — это обучение GPT-N+1 поверх (или совместно) с видео-моделью, чтобы те самые латенты, характеризующие состояние мира и механики взаимодействий в нём, были доступны языковой модели. Без углубления в технические детали отмечу, что существуют способы обучения нейросетей одновременно и на тексте, и на изображениях/видео — так, что сам «предсказательный движок» будет общий, а энкодер и декодер свои для каждого типа данных. Тогда даже при генерации текста GPT будет опираться на модель мира, выученную в том числе по видео, получит более полную картину взаимодействий объектов и агентов. Это своего рода «интуиция», которая также, как и латент в случае гоночек/DOOM, будет нести в себе неявное описание потенциального будущего, что в свою очередь повлияет на навыки рассуждений с далёким горизонтом планирования. Именно это является одной из основных проблем современных LLM — они могут выполнить какую-то одну простую задачу, но не могут взять целый кусок работы, декомпозировать, распланировать и выполнить.
Второе направление работы — это непосредственно симуляция, когда модель при генерации как бы берёт паузу, и проигрывает несколько разных симуляций будущего: а что будет, если сделать вот так или эдак? Происходить это будет в пространстве сигналов (латентов), так же, как мы в голове размышляем, что будет при таких-то и таких-то действиях — поэтому проблема неидеальной реконструкции снова уходит на второй план. На основе анализа результата десятков-сотен прокручиваний ситуации можно скорректировать поведение модели/агента. Вероятно, мы увидим первые эксперименты в рамках компьютерных игр — зря что ли OpenAI в прошлом году купили компанию, разрабатывавшую аналог Minecraft, но с упором на социальные взаимодействия? Тем более, что это не будет их первым опытом в игрушках: ещё до GPT-1 проводились эксперименты с популярной игрой DotA 2, где в итоге команда скооперировавшихся ботов дважды обыграла чемпионов мира.
Но у SORA для таких симуляций нет одной важной детали: возможности учитывать действия агента. Ведь вспомните: модель мира работает не только с сигналом от окружения, но и с командой, предсказываемой ботом. Если из одного и того же кадра гонки делать поворот налево или направо — то очевидно, что будущее будет разным. Так что к системе обучения на видео к SORA придётся приделать сбоку модуль, который как бы угадывает, что происходит между кадрами. Тем более что у OpenAI есть опыт подобной работы (опять совпадение? не думаю) — летом 2022 года они обучали нейросеть играть в Minecraft по видео с YouTube. Для того, чтобы сопоставить картинку на экране с действиями, по малому количеству разметки была натренирована отдельная модель, предсказывающая вводимую игроком команду. Правда, на видео общего спектра такой подход применить сложнее — какая вот команда отдаётся на съемке процесса завязывания галстука? А на записи футбольного матча? А как это увязать?
Вполне возможно, что ответ — как и всегда — будет следующим: «ну дай машине, она разберётся, главное чтоб данных хватило». Пока писался этот блогпост, Google DeepMind выпустили статью с описанием модели Genie, предназначенной для… генерируемых интерактивных окружений. Такой подход принимает на вход кадр и действие и предсказывает, как будет выглядеть мир (и какие потенциально действия можно сделать). И, конечно же, тестируется это на настоящей робо-руке, ведь игрушек нам мало!
Лично я не верю в такие суммы, но порядок двух-трёх триллионов инвестиций на горизонте десятилетия считаю посильным. Знаете, запускать Матрицу для того, чтобы погрузить в неё 8 миллиардов людей — дело всё же недешевое! В общем, поживём — увидим.
Одно можно сказать точно: если Сэм Альтман будет продолжать двигаться такими темпами — то проблема моего досуга на ближайшие несколько лет точно будет решена. Придётся пилить здоровенные лонгриды с объяснением того, каким конкретно образом свежие нейросетки собрались захватывать наш мир на этой неделе, буквально безостановочно. 🙂 Если вы не хотите пропустить эти будущие материалы — то подписывайтесь на мой ТГ-канал Сиолошная. (Также отдельная благодарность Паше Комаровскому из RationalAnswer за то, что помог с редактурой этого гигантского материала, и Богдану Печёнкину с Ярославом Полтораном за вычитку опечаток.)