В издательстве Individuum вышел сборник рассказов «Пытаясь проснуться», написанных писателем и художником Павлом Пепперштейном совместно с генеративной нейросетью ruGPT-3. В сборнике не указано, кто является автором того или иного рассказа — человек или нейросеть. Читатель должен угадать это самостоятельно.
Нейросеть ruGPT-3 умеет продолжать тексты на английском и русском языках: для этого ей, обычно, нужна «затравка» (prompt) — часть фразы или предложения, которую модель затем дописывает самостоятельно. Модель ruGPT-3 — авторегрессионная, то есть каждое последующее сгенерированное ей слово зависит от предыдущего. Для написания книги была выбрана ruGPT-3 версии XL, обученной на 1,3 млрд параметров.
Команда, тренировавшая «нейропепперштейна», столкнулась с тем, что обученная на текстах писателя модель практически слово в слово копировала материалы из выборки на финальных этапах обучения. Поэтому было решено добавить в выборку не только тексты Павла Пеппертштейна, но и писателей, повлиявших на его творчество — Александра Грина, Леонида Андреева, Исаака Бабеля. Тексты самого Пепперштейна в итоговой выборке дедублицировали и скопировали 10 раз, для придания им большего веса.
Процессом генерации текста моделью управляли так, чтобы на выходе получить максимально «естественный» язык. Модель работала на основе так называемого лучевого (beam search), а не жадного поиска (greedy search). В последнем случае модель подбирает наиболее вероятные слова, создавая тем самым многочисленные повторы и шаблонные выражения. Лучевой поиск позволяет модели выбирать продолжение фразы с просчетом на N шагов (или «бимов», beams) вперед.
Чтобы внести в тексты еще больше разнообразности, их генерация шла по методу ядерного сэмплирования (nucleus sampling). При такой стратегии следующее слово в цепочке выбирается из топ-N наиболее вероятных последующих слов. Чем выше так называемая «температура генерации», тем больше топ-N, больше вариаций для выбора следующего слова, но текст может совсем потерять смысл. Чем «температура» меньше, тем более «жадным» становится поиск последующих слов.
Как рассказала нам руководитель команды проекта и старший эксперт по технологиям, SberDevices Татьяна Шаврина обучение нейросети длилось около полугода: «За это время мы не только обучили несколько вариантов нейросети, но и выбрали лучшие параметры, при которых результат нам показался наиболее художественным и литературно богатым. Мы провели работу в два этапа: первый вариант нейросети обучался на творчестве Павла, но лучше оказался результат, где была добавлена литература 20 века. Плюс между отдельными книгами вложены тексты Пепперштейна в 10 копиях».
Тексты нейросети проходили только корректуру, в целом, сочиненные ей рассказы были опубликованы без изменений. Однако, не все рассказы «Нейропепперштейна» вошли в сборник — наиболее удачные отбирали сам Павел Пепперштейн и главный редактор издательства Individuum, опубликовавшего книгу: «Мы передали в издательство 15 рассказов, в сборник вошло 12 из них», — рассказывает Татьяна. При этом сам писатель писал свои рассказы для сборника уже после того, как свою часть работы выполнила нейросеть: «В послесловии книги есть комментарий Павла, где он говорит, что получилось «некоторое кольцо»: нейросеть училась на его творчестве, написала рассказы, затем писатель написал свои рассказы, играя со стилистикой».
На вопрос о том, когда нейросеть сможет написать полноценный роман или повесть, Татьяна Шаврина отвечает: «Совсем с нуля написать роман страниц, например, на 200 будет возможно, когда нейросети научатся держать тексты такой длины в памяти, чтобы видеть текст на уровне сценария. Думаю, до этого момента осталось года 2-3».
Обложка у книги «Пытаясь проснуться» голографическая. На ней изображены две картины: одна из них написана самим Павлом Пепперштейном, а другая — тоже нейросетью ruDALL-E, обученной на основе его художественного творчества.