Хайп вокруг генерации видео. А что насчет их литературной основы?
Немного порассуждаю о том, когда и как мы увидим кино, сгенерированное нейросетью.
Не знаю, кто как следит за событиями, но пока я вижу только поток мемных видео и рекламных роликов, если говорить о видео, созданных с помощью генеративных моделей.
Моя мечта - увидеть полноценное кино, или хотя бы альманах короткометражек в духе «Любовь, смерть и роботы», созданный с помощью генеративной модели. Или хотя бы одну короткометражку. Хотелось бы даже не просто увидеть результат такой генерации, а получить доступ к такому генератору.
Почему-то, мне кажется очевидным, что анимацией картинки с каким-то расширяющим задачу промптом тут не обойтись. Нужен классический литературный сценарий: 120 страниц, диалоги, действия, описания, интерьер/экстерьер и т. д. Ну, или хотя бы сценарный план: по паре предложений на сцену. И в этой части, в генерации текстов с помощью моделей, вроде бы уже огромный задел. Но если посмотреть на сухой остаток сложившейся ситуации, то по моему обывательскому мнению генерируют в основном какие-то seo-тексты, чтобы ресурсы их содержащие было проще найти. Тут без сюрпризов. Саммаризаторы, чат-боты, генераторы слоганов - пока опустим, это не совсем про генерацию литературного текста по заданию.
Для «текстов на сайт» скорее всего достаточно и промпта, составленного компетентным человеком. А вот с драматургией фильма - не совсем понятно даже, с чего начать. И в чем вообще принципиальная разница между повествованием и чем-то более утилитарным вроде тех же seo-текстов?
Я как-то попытался составить промпт для chat gpt, он получился огромным - сам по себе, можно сказать, литературное произведение, что само по себе проблема в чисто техническом смысле, ведь как мы уже знаем, чем больше промпт, тем меньше вероятность того, что модель его осмыслит целиком.
Почему промпт получился большим? Надо сразу сказать, что большим он получился далеко не сразу. Я начал с простейшего и, отталкиваясь от ответов gpt, дорабатывал промпт. Например, после очередной редакции промпта модель постоянно вставляла в повествование события в духе «герой угрожает сообщить об инциденте в такую-то комиссию/комитет/организацию, чтобы помешать антагонисту в том-то и том-то». И этот таинственный комитет появлялся посреди повествования как рояль в кустах, из ниоткуда, и мне, как зрителю, было абсолютно непонятно, а что такого страшного для антагониста во всем этом? Дай хоть пару слов «до» и «после» появления этой организации в повествовании. Это было похоже на явление deus ex machina, и я так и написал буквально в промпте: "категорически избегать deus ex machina". Помогло! Комитеты просто пропали из дальнейших ответов, а в какой-то момент и раскрылись на полную катушку. А когда это случилось? Когда я утомился 15-ый раз читать про некую сущность вроде разумной планеты или психо-водорослей, которые улавливают переживания героев, и на этом - все. Они их улавливают, как-то на них реагируют, но не являются ни антагонистической, ни протагонистической силой в сюжете, они ведут себя как обои на съемной квартире - плюс-минус все равно, что там за обои. Тогда я так и написал, что любая сущность, обладающая любым уровнем сознания и/или волей, должна применять к себе все свойства полноценного персонажа: мотивация, внутренний невротический конфликт, цель и т. д. Плюс - все эти свойства необязательно должны быть известны с самого начала, либо вовсе могут быть неизвестны зрителю, главное - внутренняя непротиворечивость.
И тогда случилось маленькое чудо - gpt стал выдавать синопсисы в духе первого "Чужого" или "Хищника", по структуре, не по фактическому содержанию. В самом удачном варианте главный герой, начинающий космолог, поймал в глубоком космосе неизвестный сигнал с речью на неизвестном языке, запись которого с каждым повторным воспроизведением менялась и начала звучать все понятнее, а люди, которые слушали эти записи, постепенно утрачивали собственную волю, и их единственной целью становилась передача речи из сигнала все другим, кто может это воспринять. То есть это было бестелесное «нечто», которое вот таким образом размножалось, без сентиментов к носителям памяти, в которой оно селилось. Что-то вроде ментального вируса/паразита. Был и герой, который хотел этому помешать, а главный герой в свою очередь, не сразу осознав опасность, относился к этому как к материалу для перспективной научной публикации, которая толкнет его карьеру. В общем - есть с чем работать.
Но! Все равно, в тексте было многовато абстракций и бесполезных с точки зрения повествования речевых оборотов, чем обычно грешат тексты нейросетей. Только вместо «выработать решение с учетом всех требований», «играет важную роль» и «необходимо учитывать» были «без физического насилия, но с психологическим давлением», «его действия фиксируются системой безопасности» и другие лидеры хит-парада. Это такие описания и события, которые очень сложно превратить во что-то конкретное быстро.
Как с этим бороться? Конечно, нужен другой подход. Просто большой детальный промпт - не поможет.
Что в таких случаях делают, например, при написании кода, когда задача усложняется и само её описания становится отдельной задачей, не говоря уже про решение? Создается контекстная база, по сути к процессу подключается ещё одна языковая модель, которой «скармливают» весь уже существующий код и историю его изменений, все пожелания к нему (методология, конвенции, ограничения на использования библиотек, конкретные референсы-аналоги), да хоть целые учебники по программированию и доклады с конференций. И в самом простом виде система из двух моделей может работать так: у контекстной базы спрашивают, в какие файлы надо внести изменения, чтобы решить эту задачу, а модели, генерирующей код, дают этот список файлов и дублируют описание задачи, что нужно сделать, без атомарной конкретики, как если бы задача ставилась живому человеку.
Так вот, какая информация может пополнить эту самую контекстную базу в случае, когда мы говорим о генерации литературного сценария - у меня пока ноль конкретных идей. Учебники по сценарному ремеслу? Они, мне кажется, ни один не могут похвастаться высоким содержанием теоретической информации относительно содержащегося в них числа примеров из существующих фильмов и количества философствований о них. Зачем это пишут в тексте для человека - вполне понятно, потому что его пишет человек, и потому что человеку сложно понять абстракцию в принципе. А ещё, так делают иногда просто потому что читателю продают не теорию писательства, а эмоции от её якобы постижения. Более того, иногда даже добросовестный в этом смысле учебник вовсе не дает никакой теории, а лишь подробно приводит несколько абстрактно похожих сцен из разных фильмов, обобщать которые читателю предлагается самому, что абсолютно полезно. Но абстрактный принцип в чём? Ирония в том, что все понимают, что эти сцены похожи, но формализовать эту похожесть то ли сложно, то ли никто особо и не пытался. Хотелось бы увидеть «формулу», как из учебника по естественной науке. Пусть она и будет неточна или даже вовсе неверна. Такого в литературе по теории драмы не найти (я не видел), разве что афоризмы.
В случае с нейросетями эти примеры из существующих фильмов могут стать конкретными вероятными вариантами того, что будет написано в итоговом тексте, то есть получится компиляция узнаваемых кусочков других фильмов, либо, снова появятся эти «канцеляризмы». С программированием такой проблемы нет, потому что вся история этого ремесла сводится к повышению степеней абстракций, автоматизации, теоретизации, к повышению «емкости» одного слова, которое заменяет несколько других конкретных слов, а не является метафорой, толкуемой каждым человеком индивидуально. Банально - если одно и то же действие надо выполнить 10 раз, пишут, что надо сделать, и сколько раз, а не 10 раз одно и то же. То есть, результат выполнения абстрактно описанных операций и конкретно описанных - одинаков.
Получается, надо закатать рукава и сесть за теоретизацию самостоятельно?
Я думал на этом вопросе и закончить, но понял, что даже с программированием все-таки все не совсем так, как я сказал выше. Когда в контекстную базу вносят историю изменений, туда вносится, можно сказать, сопоставление поставленной задачи и написанного для её решения кода.
Что если попробовать фиктивно испортить существующий работающий сценарий, описать фиктивную задачу по устранению этой проблемы и написать, соответственно, фиктивное решение и внести это в базу как конкретный пример решения реальной проблемы? Ведь реальных кейсов особо не найдешь в публичном доступе, да и сами авторы уже всего не упомнят, разве что превратившиеся в легенды истории о том, как Дэн О’Бэннон решил наполнить Чужого прожигающей обшивку корабля кислотой, чтобы его нельзя было просто пристрелить и закончить фильм уже на 15-ой минуте. А с кислотой вместо крови - аж 7 фильмов получилось.