«„Искусственный интеллект“ — это просто новостной хайповый термин». Интервью с Алексеем Тихоновым, специалистом по машинному обучению, о силе и слабости современных нейросетей

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

Алексей Тихонов — выпускник ВМК МГУ, с середины 1990-х интересуется вопросами машинной генерации и обработки текстов на естественном языке, своего первого чат-бота создал в 2001 году. Работает в разных подразделениях «Яндекса» с 2010 года, в настоящий момент — ведущий аналитик. «Отец» «Автопоэта», один из создателей проектов «Нейронная оборона» и «Нейро-Скрябин», специалист в области задач Text Style Transfer.

 Недавно в нью-йоркском издательстве Dead Alive вышла книга Paranoid Transformer — дневник параноика, сгенерированный вами при помощи нейросетей. Расскажите, пожалуйста, подробнее об этом проекте.

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

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

— А на каких корпусах текстов вы обучали нейросети и как вообще осуществляется их обучение?

— Весь проект англоязычный, как и конкурс. Что касается обучения, сформулирую так: есть современная парадигма в обучении нейросетей, которая называется Transfer learning. В случае с текстами этот подход подразумевает использование большого корпуса текстов для обучения базовой модели («большой» — это максимально большой, условно говоря, «весь доступный интернет» или «вся „Википедия“»). В результате эта предобученная модель получает информацию о том, как вообще устроены человеческие тексты. Она может выучить морфологию, синтаксис, пунктуацию, общие знания и т. д. А затем берется какая-то относительно небольшая пачка данных под конкретную задачу, и на ней происходит донастройка сети.

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

Когда объема текстов недостаточно, сеть может эти тексты только вызубрить наизусть, но не научиться самостоятельно генерировать похожие.

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

В проекте Paranoid Transformer было ровно это использовано: взята предобученная сеть GPT (доступная для всех) и относительно небольшой корпус текстов, состоящий из афоризмов, киберпанковских, шифропанковских и разных атмосферных в определенном смысле текстов. Я специально настроил сеть на то, чтобы она, с одной стороны, писала немного киберпанковские по тематике тексты, а с другой — чтобы форма их была ближе к афоризмам или коротким высказываниям. В результате получился поток каких-то странных мыслей, что достаточно хорошо вписывалось в концепцию дневника.

— Правильно ли я понимаю, что научить нейросеть писать «в стиле Льва Толстого», например, проще, чем «в стиле Фонвизина», просто потому что Толстой написал девяносто томов, а Фонвизин два?

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

— Что нейросеть схватывает в первую очередь во время обучения — морфологию?

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

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

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

Как происходит обучение в таком случае, почему оно вообще дает неплохие результаты, пока не очень понятно, и те, кто готовы легко на этот вопрос ответить, скорее всего, занимаются популизмом. Я нет, поэтому однозначного и простого ответа у меня нет.

Умозрительно можно предположить, что чем проще структура, тем раньше она усваивается. Если бы мы, например, давали сети текст на вход посимвольно (в настоящее время так обычно не делается), то, наверное, сначала она научилась бы собирать отдельные буквы в конструкции более высокого порядка: «поняла» бы концепцию слога, потом что-то на уровне морфологии и т. д. За счет таких постепенных шажков на большом количестве примеров сеть выучивает морфологию, синтаксис и т. д. В какой-то момент уровень абстракции позволяет ей начать оперировать понятиями и писать довольно правдоподобные последовательности слов.

— А много «мусора» на выходе получается, и вам приходится, условно говоря, что-то руками разбирать? Сгенерированные тексты вы потом редактируете?

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

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

Задача немодерируемой генерации невырожденного текста с заданными свойствами до сих пор решена плохо. С одной стороны, есть понятные ограничения: орфографическая и синтаксическая корректность, заданный стиль, возможно, заданное информационное наполнение. С другой — вы хотите генерировать уникальные и интересные (невырожденные) тексты. Интересные тексты необычны в том смысле, что они сильно отличаются от «средних» текстов. Довольно легко написать систему, которая будет сочинять исключительно корректные, но очень простые и однообразные предложения из трех слов, но они будут скучными. А когда вы пытаетесь что-то интересное сгенерировать, вы попадаете в пограничную область между «тривиальными, но корректными» и «уникальными, но некорректными» текстами. При решении этой задачи в лоб шансов, что мы без ручной корректуры или модерации можем получить что-то приемлемое, довольно мало. В этом смысле это интересная задача.

Идея, которую я проверял: можно ли попытаться сделать фильтры на корректные/некорректные, интересные/неинтересные предложения тоже полностью автоматическими.

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

— Как современные нейросети справляются с организацией нарратива? По идее это нетривиальная задача.

— Если коротко, то довольно плохо. Это большая проблема, которую еще предстоит как-то решить.

С нарративами, в отличие от просто текстов, множество сложностей: нет хороших датасетов нарративов, нет даже хороших формализмов, которые позволяли бы понятным образом эти самые нарративы описывать.

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

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

В этом жанре создано довольно большое количество игр, было много экспериментов с нарративом (от какого лица ведется повествование, ненадежный рассказчик и т. п.). С приходом графических мониторов эта история закончилась и забылась, но сами игры остались. До сих пор существуют эмуляторы, с помощью которых можно поиграть в такие игры. И в последние годы команды исследователей, в том числе из Microsoft, из Facebook, пытаются использовать эти игры и их аналоги для того, чтобы интерактивно работать с текстом, извлекать знания и структуру повествования, учиться угадывать, что там будет дальше. Но пока это всё в зачаточном состоянии.

Самый интересный проект в этой области, доступный сейчас неспециалисту, — AI Dungeon, текстовая ролевая онлайн-игра, где роль ведущего выполняет нейросеть.

— В сентябре прошлого года журнал «Нож» опубликовал статью по психологии, написанную нейросетью и отредактированную литературным редактором, — среди многочисленных читателей лишь считаные единицы усомнились в том, что этот текст написан человеком и имеет некоторый смысл. Разумеется, нейросети гораздо проще имитировать художественный или эго-текст, поскольку семантики научных или квазинаучных понятий она не понимает, но зато здорово подстраивается под ритм и интонацию чужого текста, имитирует стиль и составляет формально правильные, хотя и бессмысленные предложения и абзацы. Отсюда такой вопрос: не пора ли выучить нейросеть на редактора? Если с ритмом и построением фраз уже и так всё хорошо, то по Национальному корпусу русского языка наверняка можно обучить модель правильному словоупотреблению и нормативной сочетаемости слов, чтобы она могла работать, условно говоря, как проверка орфографии, только перестраивать предложения, подставлять синонимы, убирать лишнее и т. п.? Язык, конечно, живой и меняется, но если он будет выправляться по устоявшимся в прошлом веке нормам, для множества людей это станет спасением — ту же косноязычную «Википедию» такой нейросетью стоило бы проверять и поправлять, да и вообще текстов, безграмотных в плане стиля и словоупотребления, в интернете немыслимое количество, а люди-редакторы приличного уровня — вымирающий вид.

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

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

— Люди, я имею в виду неспециалистов, не поспевают за развитием технологий, и какие-то революции, которые происходят в той или иной области, по большей части для них незаметны. Какие в вашей сфере сейчас совершаются открытия, что-то крутое появляется?

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

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

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

Но если про технологии говорить, то шли к этому довольно давно. Сети на базе архитектуры Transformer (к ним относится и GPT-3) появились три с половиной года назад, а сети, которая победила человека в распознавании изображений, кажется уже около шести лет. В данной области постоянно много всего происходит, другое дело, что резко на нашу жизнь это не влияет — скорее приводит к постепенному поступательному развитию.

— Под конец разговора задам очевидный, но неизбежный вопрос: каковы перспективы развития искусственного интеллекта в обозримом будущем?

— Вы употребили словосочетание «искусственный интеллект», но я не знаю, что это такое. В терминах ИИ достаточно сложно рассуждать, это скорее buzzword, которое удобно поднимать на флаг. Ретроспективно можно сказать, что ИИ обычно называется всё то, что машина еще не умеет делать — в отличие от человека. Сорок лет назад считалось, что машинное зрение или распознавание рукописного текста — это ИИ. Потом считалось, что если мы сможем решить проблему распознавания речи, сможем поговорить с машиной на человеческом языке, то это точно будет ИИ. Сейчас в каждом телефоне есть помощники, есть «Алиса», «Алекса» и другие — с ними можно поговорить, но это не считается искусственным интеллектом. То есть ИИ — что-то еще более сложное. В какой-то момент думали, что если робот пройдет тест Тьюринга, то это и будет ИИ. На практике люди уже сейчас не всегда могут отличить, с кем они разговаривают, особенно при решении каких-то прикладных задач, но это уже не кажется маркером искусственного интеллекта.

Для того чтобы определить, что такое искусственный интеллект, возможно, сначала нужно определиться с тем, что такое интеллект естественный. У нас нет объективных дефиниций для этого понятия, но есть куча субъективных (из философии, психологии и т. д.), есть тесты IQ, есть критика тестов IQ, но что такое интеллект, мы не очень хорошо понимаем. Поэтому «искусственный интеллект» — это просто новостной хайповый термин.