Как алгоритм написал ситком: говорим с создателями нейросети-сценариста

Фото: pexels
Фото: pexels
Осенью выйдет первый сериал, написанный нейросетью — ситком СТС «Сидоровы». О том, как создавалась нейросеть, где она брала вдохновение и получается ли у нее хорошо шутить, рассказали ее создатели

Нейросеть A.I. TV Script Generator создавалась СТС совместно с образовательной платформой Skillbox. Ее авторы — студенты профессии Data Scientist PRO Владимир Ларькин и Вадим Поволоцкий. Один из разработчиков нейросети и руководитель digital-направления СТС Роман Брызгалов ответили на вопросы РБК Трендов.

— Как именно нейросеть работает над сценарием?

Владимир Ларькин: Интерфейс выглядит так: есть поле для ввода, как в текстовом редакторе. Вы туда пишете начало сценария — место и время действия, действующие лица — и нажимаете кнопку «дополнить». И после этого у вас появляется 1–3 предложения текста, который сгенерирован на основании того, что было введено. Если вы нажмете эту кнопку еще раз, то будет сгенерировано еще 1–3 предложения, но в качестве «затравки» будет учитываться и то, что вы ввели в первый раз, и то, что уже было сгенерировано. В результате получается сюжет.

Понятно, что всем управляет человек, и он может направлять генерацию в нужное русло — например, ввести какой-нибудь поворот сюжета или редактировать текст по ходу генерации: если ему что-то не нравится, он может что-то изменить или отредактировать и нажать «дополнить», продолжая уже то, что было отредактировано.

Модель вводить новых персонажей, новые действия с ними, перемещать их в новое место, время. Она, конечно, опирается на то, что было введено до этого, но у нее есть некий авторский стиль.

Роман Брызгалов: Мы фактически не вмешиваемся в процесс — мы просто генерируем множество сцен диалогов и из этого будем формировать серии.

— Но персонажей и сюжетную канву в целом продумывал человек?

Р. Б.: Разумеется, мы заранее прописали синопсис, но сделали это так же, нейросетью — вычленили синопсис из множества генераций. В одной из них персонаж в какой-то момент неожиданно спросил «А кто я? И что я здесь делаю?». Мы попытались развить эту историю и пришли к синопсису, что семья начинает понимать, что она в ситкоме, и начинает ему сопротивляться.

— Как происходила разработка нейросети?

В. Л.: Мы использовали модель, которая разработана компанией SberDevices — ruGPT-3. Это русскоязычная языковая модель — нейросеть, которая моделирует распределение слов в языке. В зависимости от некоего количества слов контекста она выдает вероятности разных слов, которые могут идти после них. Они обучили ее на десятках гигабайтов текста, скачанных со всего интернета, и получили модель, которая хорошо моделирует русский язык и может писать на нем тексты.

Это все есть в открытом доступе, она распространяется по свободной лицензии, и ее можно дообучить. В случае с СТС — на сценариях. После дообучения мы получаем модель, которая хорошо моделирует распределение слов не только в русском языке, а именно в сценариях СТС. И это выглядит именно так: нейросеть учится писать сценарии.

— Додумывался ли кто-то использовать нейросети в тех же целях?

Р. Б.: В США студенты делали нейросеть и на ее основе — короткометражки. Но они специально ее недообучали, и это были такие… линчевского типа короткометражки, нелогичные, странные — то есть, это не эфирный продукт, это арт-эксперимент.

— То есть, по сути, вы были первыми, кто решил довести эту идею до конца.

Р. Б.: Все верно.

— А почему вы выбрали именно сериалы СТС? Это связано с вопросом авторских прав?

Р. Б.: Мы брали сценарии СТС потому, что нам нужно было создать сериал для нашей аудитории. Что касается прав, в этом случае на самом деле нет юридической практики. Я думаю, что это «серая» зона, и при желании всё можно обезличить — или можно не заявлять о том, на каких сценариях обучена нейросеть, и вряд ли кто-то может доподлинно это выяснить.

— Просто внезапно люди поймут, что это похоже на Линча.

Р. Б.: Или не поймут.

В. Л.: Это может внезапно всплыть, на самом деле. Есть вероятность, что нейросеть может запомнить куски каких-то сценариев и начнет абзацами выдавать текст из них, если какую-то «затравку» не протестировать, и выяснится, что она влечет за собой генерацию того, что было в сценарии. Такое может случиться — теоретически.

— С какими сложностями вы столкнулись при разработке?

В. Л.: Хотя мы лишь ее дообучали, это не просто «кнопку нажать — и все готово». В плане самой разработки были проблемы с подбором параметров: в модели очень много параметров, варьируя которые, можно получать результат разного качества. Найти такую комбинацию параметров, при которой нейросеть создавала бы текст, максимально приближенный к живой, естественной речи, — отдельная задача.

Плюс была сложность и с тем, как данные подавать в модель при обучении. Датасет там достаточно небольшой, и его пришлось искусственно раздуть — за счет того, что мы его резали на кусочки так, чтобы каждый кусочек был осмысленным текстом, и подавали их в модель, чтобы она могла выучить больше комбинаций предложений.

Самый долгий этап — предобработка данных из файлов Word в сырой текст: без оформления, без картинок. В файлах попадались, например, деления абзаца нижним подчеркиванием. Если данные в таком виде подавать в нейросеть, она решит, что после какой-то комбинации слов или предложений должно идти такое же подчеркивание. Это ни к чему хорошему не ведет. Поэтому этим занималась отдельная команда в Skillbox — и это заняло примерно две недели.

Роман, как вы думаете, может ли нейросеть быть полезна вам в будущем при работе над новыми сценариями, или это, скорее, просто эксперимент и вы не планируете возвращаться к этой практике?

Р. Б.: Конечно, то, что мы сейчас делаем — пытаемся полностью написать сценарий нейросетью, — это эксперимент. Не будет такого, что нейросеть заменит сценаристов, но она может быть для них очень классным инструментом, потому что может выдавать совершенно неожиданные повороты сюжета. Там есть лингвистическая логика — то есть, если в ней встречается, например, слово «колбаса», то ее нарежут и сделают бутерброд, и с ней все будет в порядке. Но при этом там нет логики понятийной, человеческой, логики сценариста. И за счет этого получаются очень неожиданные вещи, которые совершенно невозможно воспроизвести. Я думаю, что этот инструмент может служить сценаристам в качестве вдохновения.

— А у нейросети получается смешно шутить?

Р. Б.: Получается, но шутки появляются за счет странной логики происходящего, за счет того, что диалог логичен, но будто бы идет немножко невпопад. Плюс она использует гэги (шутки, основанные на нелепости. — РБК Тренды) из уже написанных ранее сценариев и вставляет в неожиданные места — это тоже получается забавно.

— А можете привести пример — или это будет спойлер?

Р. Б.: Я могу привести пример невошедшего в сценарий. Была совершенно странная шутка: возможно, в какой-то серии «Ворониных» была шутка про Киркорова. И, соответственно, мы получили целую страницу сценария, где персонажи очень долго переживали, что Киркоров умер, обсуждали это очень горестно и выясняли, неужели он правда умер. А кончилась сцена тем, что Киркоров постучал в дверь и принес с собой все продукты на окрошку. И сказал: «Что вы расстраиваетесь? Давайте есть окрошку».

Обновлено 09.06.2022
Главная Лента Подписаться Поделиться
Закрыть