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

Как это (не) работает: технологии нейросети-писателя

02

Как научить нейросеть писать в стиле Набокова? И насколько хорошо (или плохо) у искусственного интеллекта получается писать художественные тексты? Ответы на эти и другие вопросы нам дали цифровой филолог Борис Орехов и исследователь в области глубинного обучения Михаил Ким.

Борис Орехов
Михаил Ким
кандидат филологических наук, доцент Школы лингвистики ВШЭ и Лаборатории цифровых исследований литературы и фольклора Института русской литературы РАН
исследователь в области глубинного обучения, куратор рубрик «Глоссарий» и «Как это работает» в издании «Системный Блокъ»
Почему вы могли ответить именно «раму»? Вероятнее всего, вы уже где-то видели или слышали целую фразу (например, в букваре) и запомнили, что после «мама мыла» идет «раму». Не исключено, что вы предложили другой вариант — возможно, вы ответили «посуду» или «малыша». Сказать, что какое-то продолжение правильное, а какое-то нет — нельзя. Мыть, вообще говоря, можно многое. Но как различать и оценивать разные продолжения? Оценивать их можно в терминах частотности.

Например, мы можем собрать набор текстов на русском языке; затем найти в каждом тексте предложения, в которых присутствует словосочетание «мама мыла»; из каждого такого предложения выписать слово, которое стоит после начала фразы. И в конце можем подсчитать, как часто каждое выписанное слово встречалось. Эти проценты являются вероятностями встречи каждого продолжения при данном контексте (начале фразы).
Обученная нейросеть генерирует текст последовательно слово за словом, объясняет Михаил Ким. При генерации каждого следующего слова она должна учитывать все предыдущие сгенерированные слова (их также называют «контекстом»), поскольку иначе текст получится бессвязным.

Как обучают нейросети, которые потом генерируют текст?

Именно этому мы хотим научить нейросеть: для каждого слова языка при заданном контексте выдавать вероятность того, что это слово является продолжением. На практике невозможно рассмотреть все слова языка и поэтому ограничиваются относительно небольшим набором (например 20000 самых встречаемых), который называют словарем.
Для обучения нейросети нужны обучающие данные — например, архив всей Википедии, художественные тексты и другие виды текстов. При обучении из собранных данных берётся фрагмент текста и к нему добавляются специальные слова, которые обозначают [начало] и [конец] фрагмента.
Модель производит сложные преобразования над фрагментом, возвращая таблицу чисел. Каждая строка соответствует префиксу поданного на вход фрагмента, а каждый столбец — слову из словаря. На пересечении стоит вероятность того, что слово, соответствующее столбцу, встречается после префикса, который соответствует строке.
Зная весь фрагмент целиком, для каждого контекста мы знаем и наиболее вероятное продолжение. Поэтому мы можем сравнить соответствующие ячейки таблицы, которую выдала модель, со 100% (максимальной вероятностью) и на основе отклонения от правильного ответа лучше поднастроить модель.
Обучение модели заключается в повторении этой процедуры со всеми фрагментами текстов
из обучающих данных.
Чтобы нейросеть начала генерацию, метка конца сдвигается вправо.
По словам Бориса Орехова, специфика обучения нейросетей зависит от того, какие именно художественные тексты мы хотим получить на выходе и какие у нас требования к художественным текстам. С одной стороны, можно считать, что художественный текст, например, прозаический, — это какой-то рассказ, повествующий о каких-то событиях.

Такая нейросеть должна помнить контекст происходящего, как уже отмечал Михаил Ким. Это довольно большая проблема для нейросетей. Они этот контекст быстро забывают, но по мере развития технологий инженеры стараются с этим бороться, и нейросети учатся все лучше запоминать контекст. Речь идет о том, что нейросеть к пятой или пятнадцатой странице произведения может забыть, про кого она рассказывает нам историю, и если в начале был заявлен какой-то персонаж, то он может потом как-то совершенно неожиданно выветриться из памяти.

Но еще несколько лет назад с этим было хуже, чем сейчас. В этом смысле виден прогресс нейросетей. Особенно хорошо себя показали нейросети на основе архитектуры «трансформер», которые сегодня используются во всех лучших нейросетевых моделях. Все поколения GPT и ChatGPT — это трансформеры. Также трансформеры работают «под капотом» Балабобы и Алисы «Яндекса».

«Требования» к художественным текстам

2023
GPT-4
100 триллионов параметров
2022
ChatGPT
(веб-версия GPT-3.5)
154 миллиарда параметров
2020
GPT-3
175 миллиардов параметров
2019
GPT-2
1,5 миллиарда параметров
2018
GPT-1
117 миллионов параметров
2017
разработка архитектуры «трансформер»
Но надо понимать, что такого рода текст на том уровне генерации, который есть сейчас, очень скучный. И любой ли читатель способен будет принять его за художественный в полном смысле этого слова — это большой вопрос. То есть, если мы имеем довольно непритязательные критерии и считаем, что любая история — это художественный рассказ, то это не страшно. Но если мы считаем, что художественное произведение должно быть для нас неожиданным, должно удивлять своей формой, какими-то нетипичными поворотами сюжета, то этого мы не дождемся. Чем лучше нейросети имитируют человеческую речь, тем хуже они как писатели. В смысле удивления, в смысле новостей, которые нам текст сообщает.

Легко представить себе такую точку зрения, которая имеет в виду, что художественными такие тексты называть можно с большой натяжкой или их вовсе не следует называть художественными, чтобы не путать понятия. Но надо сказать, что плохие нейросети (то есть плохо обученные нейросети) выдают тексты гораздо более интересные.
Такой продукт выдает какие-то нетривиальные сочетания слов, изобретает свои собственные новые слова, которые ужасно похожи на настоящие, но при этом обладают какой-то своей образной свежестью.

И с этой точки зрения любопытны те нейросети, которые мы увидим, сделав шаг назад в их эволюции. Например, до архитектуры «трансформер» хорошо себя показала архитектура «рекуррентных нейронных сетей» в варианте длинной краткосрочной памяти (long short-term memory). И сравнивая не просто абстрактные художественные тексты, а именно поэтические, которые выдают современные «трансформеры» и устаревшие «рекуррентные сети», мы видим, что вторые по своей продукции и результатам генерации интереснее.

Они ближе к тому, что искушенные читатели готовы признать поэзией. Поэтому, как не парадоксально, правильный ответ на вопрос «как обучать нейросети, которые генерируют текст» — плохо, чтобы они допускали ошибки, если мы говорим про короткие тексты (небольшие рассказы или поэтические произведения). Если же мы говорим про написание больших нарративных текстов размером с роман, то ответ на этот вопрос никто не знает, потому что пока что технологически невозможно сделать так, чтобы за один присест нейросеть взяла да и написала роман.

В чем разница между генерацией прозы и поэзии? Зависит от точки зрения: читателя или инженера, который организовывает этот процесс. Для читателя поэзия и проза — это абсолютно разные вещи, по-разному устроенные. Он привык в течение двадцатого века, что поэзия — это такой особенный речевой жанр, в котором возможно все. В том числе и какая-то совершенно непредставимая чепуха: несвязность, нелогичность, возможна и даже одобряется какая-то непоследовательность. И несмотря на то, что проза двадцатого века тоже такой может быть, она не создала себе такой репутации.

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

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

Тут есть разные сложности. Не так хорошо это получается даже у прекрасных «трансформеров». С короткими историями теперь ChatGPT справляется. Это новость. Еще пару лет назад ничего подобного мы не видели. А в лирике история не нужна, поэтому нужно определиться, с какой строгостью мы готовы подходить к результату. И для лирического текста эта строгость гораздо ниже, чем для нарратива, потому что у нас есть представления о том, как должен быть устроен нарратив. А в отношении лирики таких критериев гораздо меньше и они гораздо менее конвенциональны.

Чем больше нейросеть
допускает ошибок, чем менее она технологична, тем она интереснее.

Авторы: Руслан Родионов, Валерия Мелкозерова, 
Женя Колпащикова, Дарья Балуева, Даниил Скоринкин
Авторы: Руслан Родионов, Валерия Мелкозерова, 
Женя Колпащикова, Дарья Балуева, Даниил Скоринкин

«Бессвязные» тексты человека и нейросети: сходства и ключевое отличие

Если проверять по очереди несколько критериев — связность, логичность, свойства построения метафоры и другие, считает Борис Орехов, то в конце концов мы найдем очень много сходств между текстами, которые генерирует компьютер, текстами авангардной литературы и текстами, которые порождают душевнобольные люди. По структурным свойствам эти тексты друг от друга не отличаются. Но разница между ними в каких-то дополнительных критериях.

Есть одно базовое свойство, которое отличает тексты, написанные людьми, и тексты, которые создает компьютер. Это свойство называется интенциональность.
И сообщение его не может быть раскодировано адресатом, потому что оно закодировано адресантом так, что это невозможно передать другому человеку. Но такие тексты все равно содержат какое-то сообщение.

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

Есть такая концепция, очень прикольная, называется философский зомби. Философы говорят: представьте себе, что есть такой человек, который выглядит, как человек, совершает какие-то действия, как человек, имеет мимику, голос и что-то говорит, но при этом, в отличие от настоящего человека, он не мыслит, у него нет сознания и разума.

Это такой как бы зомби, но так как это мысленный эксперимент, он философский. Компьютеры в некотором смысле точно такие же философские зомби, то есть они порождают тексты, которые страшно похожи на настоящие, но за этим не стоит никакого сознания. То есть большие языковые модели — это в некотором смысле зомби.

Конечно, читатель может «порождать смыслы», читая тексты нейросети, в которых нет интенциональности. Но есть очень важная модернистская идея, что при чтении текста нам важно понимать сообщения, которые нам посылает автор. Более того, у нас есть идея, что, когда мы встречаемся с каким-то текстом, мы всегда (даже бессознательно) предполагаем, что у этого текста есть смысл и никак иначе быть не может. Но с точки зрения классического понимания, что такое смысл, у компьютерного текста его быть как раз не может. Это называется презумпция осмысленности.

Тогда, если мы считаем, что нам всегда важно, что за смысл вкладывается в текст, получается, что те смыслы, которые порождает читатель — второстепенны. А если мы считаем, что читатель в этом смысле первичен, и что сказал или хотел сказать автор — это не так важно, то мы тут вступаем на почву постмодерниского релятивизма. Тогда трудно логически доказать, что позиция автора вообще с какой-то точки зрения важна.

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

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

Отсюда выходит, что нам должно быть важно, компьютер этот текст сочинил или нет. И если компьютер — тогда непонятно, зачем его вообще читать, потому что нам никакого сообщения не порождают. А если мы считаем, что первичен читатель и читатель все решает, интересно ему читать или нет, тогда можно и с компьютерным текстом общаться.

У человека есть цель. Он осознает себя и порождает текст, создавая какое-то сообщение, даже если этот человек не в себе.

И сообщение его не может быть раскодировано адресатом, потому что оно закодировано адресантом так, что это невозможно передать другому человеку. Но такие тексты все равно содержат какое-то сообщение.

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

Есть такая концепция, очень прикольная, называется философский зомби. Философы говорят: представьте себе, что есть такой человек, который выглядит, как человек, совершает какие-то действия, как человек, имеет мимику, голос и что-то говорит, но при этом, в отличие от настоящего человека, он не мыслит, у него нет сознания и разума.

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

Тогда, если мы считаем, что нам всегда важно, что за смысл вкладывается в текст, получается, что те смыслы, которые порождает читатель — второстепенны. А если мы считаем, что читатель в этом смысле первичен, и что сказал или хотел сказать автор — это не так важно, то мы тут вступаем на почву постмодерниского релятивизма. Тогда трудно логически доказать, что позиция автора вообще с какой-то точки зрения важна.

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

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

Отсюда выходит, что нам должно быть важно, компьютер этот текст сочинил или нет. И если компьютер — тогда непонятно, зачем его вообще читать, потому что нам никакого сообщения не порождают. А если мы считаем, что первичен читатель и читатель все решает, интересно ему читать или нет, тогда можно и с компьютерным текстом общаться.
Авторы: Руслан Родионов, Валерия Мелкозерова, 
Женя Колпащикова, Дарья Балуева, Даниил Скоринкин

В чем разница между большими языковыми моделями и специализированными?

Большие языковые модели универсального назначения обучают на огромном наборе самых разнообразных текстов. При том необязательно текстов, написанных на естественных языках, но и на языках программирования, отвечает Михаил Ким. Таким образом модель приобретает ту самую универсальность. После обучения на массивном корпусе языковые модели обучают следовать инструкциям, которые дает пользователь. Без этого этапа та же ChatGPT не смогла мы выполнять команды вроде «Напиши текст», «Сделай выжимку», а могла бы просто генерировать текст.

Для того, чтобы обучить модель выполнять команды, собирается отдельный обучающий набор, содержащий пары «команда — ответ». Стоит также отметить, что такое обучение производят и для того, чтобы модель не выдавала токсичные или опасные ответы (вроде рецептов опасных веществ). Задача обучения следованию инструкций относительно новая и довольно сложная — сейчас в NLP сформировалась целая область, которая занимается ею.

Модели, предназначенные для имитации, решают намного более узкую задачу. Поэтому их, во-первых, не обучают на большом количестве текстов (но часто перед обучением на корпусе автора модель предобучают на корпусе обычных текстов, написанных на языке произведений). И, во-вторых, не обучают выполнению инструкций.

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

Обучая модель на текстах одного автора, мы сталкиваемся с большими системными проблемами, утверждает Борис Орехов. Любые нейросети, любых архитектур, чувствительны к размеру обучающей выборки. Если обучающая выборка будет маленькой, тогда качество генерации в любом случае будет невысоким. Это касается грамматической связности. В результатах генерации грамматическая связность берется из обобщений того, что нейросеть видит перед собой. У нее будет слишком мало примеров, если это текст одного автора.

Но бывают исключения, когда у нас есть довольно обширное оставленное наследие.
наследие Л.Н. Толстого:
И это, с какой-то точки зрения, неплохо для обучения, но и не хорошо. Конечно, для современных нейросетей 7 миллионов слов — это критически мало. Это лучше, чем 1 миллион, но все-таки этого недостаточно.

Что тогда делать? Берут модель, которая была обучена на достаточно представительной выборке текстов некоторого языка, чтобы она сначала выучилась грамматике, сочетаемости слов, каким-то базовым вещам в языке, а уже потом эта модель специально дообучается на текстах определенного писателя.
можно обучить нейросеть писать в стиле определенного писателя: Как дообучить языковую модель писать в стиле Достоевского.
Например,
Но бывают исключения, когда у нас есть довольно обширное оставленное наследие.
Большие языковые модели универсального назначения обучают на огромном наборе самых разнообразных текстов. При том необязательно текстов, написанных на естественных языках, но и на языках программирования, отвечает Михаил Ким. Таким образом модель приобретает ту самую универсальность. После обучения на массивном корпусе языковые модели обучают следовать инструкциям, которые дает пользователь. Без этого этапа та же ChatGPT не смогла мы выполнять команды вроде «Напиши текст», «Сделай выжимку», а могла бы просто генерировать текст.

Для того, чтобы обучить модель выполнять команды, собирается отдельный обучающий набор, содержащий пары «команда — ответ». Стоит также отметить, что такое обучение производят и для того, чтобы модель не выдавала токсичные или опасные ответы (вроде рецептов опасных веществ). Задача обучения следованию инструкций относительно новая и довольно сложная — сейчас в NLP сформировалась целая область, которая занимается ею.

Модели, предназначенные для имитации, решают намного более узкую задачу. Поэтому их, во-первых, не обучают на большом количестве текстов (но часто перед обучением на корпусе автора модель предобучают на корпусе обычных текстов, написанных на языке произведений). И, во-вторых, не обучают выполнению инструкций.

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

Обучая модель на текстах одного автора, мы сталкиваемся с большими системными проблемами, утверждает Борис Орехов. Любые нейросети, любых архитектур, чувствительны к размеру обучающей выборки. Если обучающая выборка будет маленькой, тогда качество генерации в любом случае будет невысоким. Это касается грамматической связности. В результатах генерации грамматическая связность берется из обобщений того, что нейросеть видит перед собой. У нее будет слишком мало примеров, если это текст одного автора.
Авторы: Руслан Родионов, Валерия Мелкозерова, 
Женя Колпащикова, Дарья Балуева, Даниил Скоринкин

Что получается и не получается у нейросетей обоих типов в стилизации под творчество конкретных авторов?

Результаты, которые выходят у моделей, дообученных на определенном корпусе, например, Набокова или жанра школьных сочинений, действительно похожи на обучающую выборку, отвечает Борис Орехов. Сгенерированный текст воспроизводит какие-то особенности стиля Набокова. Какие именно — это вопрос, который нуждается в отдельном исследовании.

Само понятие стиля тоже не очень простое с методологической точки зрения. Но кажется, что стиль, как бы мы его не понимали, нейросетями воспроизводится, и жанровые особенности тоже воспроизводятся.

Но если мы говорим про универсальные модели, то ими такие задачи тоже могут быть решены. ChatGPT не справляется с такими задачами для русского языка, потому что он генерирует тексты на английском и потом переводит. Но когда перед ним ставится англоязычная задача, он выполняет ее довольно неплохо и воспроизводит стилевые особенности. В узком смысле, стиль — это что-то концентрирующееся в области языка. А если мы смотрим шире, то это особенности сюжета, функциональности персонажей и подобного рода штук.

Они тоже переходят в стилизации, которые ChatGPT порождает. Но пока на русском языке такая роскошь недоступна, поэтому нам труднее оценить как носителям русского языка и русской традиции, насколько это все получается успешно.

В какие ограничения современных нейросетей мы упираемся?

Сложности со связностью текста, в первую очередь, связаны с размером обучающей выборки и размером самой модели, отмечает Михаил Ким. Если обучать модель только на небольшом корпусе текстов автора, то она с трудом сможет выучить язык. Аналогично и с размером модели — ей может просто не хватить мощности для того, чтобы научиться генерировать связный текст.

Борис Орехов добавляет, что существуют проблемы моделей, которые нельзя решить просто расширением корпуса. В любом очень-очень большом корпусе, но все-таки ограниченном, всегда есть специфические темы, которые в корпусе обозреваются реже, чем другие. В корпусе, собранном из интернета, будет очень много текстов, например, про экономику и финансы: про это много пишут, про это много разных обучающих и других материалов в сети. Современная нейросеть может на них обучиться и будет неплохо понимать, о чем идет речь.

Но что если вы спросите у нейросети то, о чем мало написано даже в очень большом корпусе? Например, про какой-нибудь этический аспект философии Кьеркегора. Здесь, конечно, она будет путаться.
Авторы: Руслан Родионов, Валерия Мелкозерова, Женя Колпащикова, Дарья Балуева, Даниил Скоринкин
Материал подготовлен авторами онлайн-журнала «Системный Блокъ».
Нейросети обязательно ориентируются на некоторые статистически важные показатели, и слова не имеют для неё смысла. Весь «творческий процесс» для неё основан сугубо
на точных науках.
В рамках мысленного эксперимента можно представить, что у нас есть непредставимо большой корпус, где обо всем, что только можно, написано. Тогда мы возвращаемся к проблемам контекста. При генерации текста, в первую очередь художественного, нейросеть в какой-то момент все равно будет забывать, о чем она писала. Да, это случится теперь не через абзац, как это было 5 лет назад, и не через две страницы, как это было 3 года назад, но это случится рано или поздно.

Писатель, конечно, тоже иногда забывает, о чем он писал. Но потом перечитывает написанное и все-таки приводит себя в чувство. Говорят, эта история про Достоевского, который забыл, что было в первой части «Идиота», и ему пришлось ее перечитать, прежде чем писать вторую. Но нейросети пока не так не умеют. Это проблема, которая не решается корпусом и теми статистическими механизмами, которые заложены в обучении.