К книге
Эти странные новые разумы: Как ИИ научился говорить и что это значит12. Прогноз слова.
29%
12. Прогноз слова.
15

Ночь на 25 октября 1859 года стала одной из самых смертоносных в истории британского мореплавания. Медленно двигавшийся шторм, пришедший со стороны Бискайского залива, принес с собой сокрушительные бури, которые обрушились на побережье Уэльса и ворвались в устье реки Мерси, терзая порт Ливерпуля со скоростью ветра более 100 миль в час. Паровой клипер «Ройал Чартер» стоял на якоре всего в нескольких милях от валлийского берега. Он находился на завершающем этапе своего двухмесячного плавания из Мельбурна, переполненный искателями золота, возвращавшимися из Австралии домой с добычей, зашитой в нательное белье. Оказавшись в самом эпицентре бури, корабль был жестоко выброшен на скалы острова Англси и развалился на части, унеся жизни 459 пассажиров и членов экипажа. В общей сложности в ту ночь в море погибло более 800 человек.

Современная концепция прогнозирования погоды родилась вслед за катастрофой «Ройал Чартер». В 1860-х годах Роберт Фицрой, адмирал Королевского флота и один из первых метеорологов, предложил стратегически разместить на британском побережье сеть метеостанций, каждая из которых телеграфировала бы свои наблюдения в центральное «Метеорологическое ведомство» в Лондоне, где эти данные объединялись бы для составления синоптических карт.[*1] Тогда, как и сейчас, Метеорологическая служба рассылала предупреждения в порты и рыбацкие деревни по всей стране, предупреждая суда о приближении опасной погоды. Сегодня синоптики сменили телеграф и анемометр на суперкомпьютеры и спутники, что позволяет им прогнозировать всё: от ураганов до аномальной жары. Но это не меняет того факта, что предсказывать трудно — особенно будущее, как гласит датская пословица. Даже с современными инструментами точность прогноза погоды резко падает с каждым последующим днем. Сегодня большинство прогнозов температуры на следующий день ошибаются в среднем примерно на полградуса Цельсия, но к пятому дню средняя абсолютная погрешность возрастает до 2,5 градусов. Если вы хотите предсказать погоду более чем на неделю вперед, обычно надежнее просто сослаться на климатическую норму. Большинство погодных явлений — от мягкого летнего солнца до бушующих тропических штормов — перемещаются и видоизменяются на синоптической карте в основном предсказуемым образом, поэтому прогнозы могут экстраполировать текущие погодные условия, чтобы точно предсказать погоду на минуты или часы вперед (это называется наукастингом). Однако погода каждого дня подвержена случайным колебаниям, которые невозможно смоделировать. Таким образом, по мере увеличения горизонта прогнозирования эти мелкие ошибки накапливаются, и метеосводки начинают бить мимо цели.

Прогнозы в отношении языка страдают от схожей проблемы. Угадать следующее слово в предложении не так уж сложно, что подтверждают подсказки интеллектуального ввода текста в мессенджере или почтовом клиенте. Но угадывание непосредственно следующего слова — это лингвистический эквивалент наукастинга. На самом же деле мы хотим, чтобы модели генерировали продолжения длиной в несколько слов, предложений или даже абзацев. Возьмем, к примеру, фразу: «Once upon a ____». Можно с уверенностью предположить, что следующим словом будет time, учитывая избитый зачин столь многих любимых сказок на ночь. Но что дальше? Как только вы выходите за рамки «Once upon a time, in a land where…» (Давным-давно, в одной стране, где...), угадать дальнейшее продолжение становится практически невозможно. Предсказать десятое или двенадцатое слово после подсказки — всё равно что пытаться спрогнозировать, пойдет ли дождь в Джакарте через неделю во вторник ровно в 18:30.

В начале 2000-х годов языковые модели на основе нейросетей стали доминировать в области обработки естественного языка. Эти модели обычно обучались предсказывать пропущенное слово в предложении на основе его соседей, или наоборот. Стандартные нейросети могут изучить, насколько вероятно каждое слово при наличии других слов в предложении (например, p(time | once,upon,a) — вероятность слова «time» при условии «once upon a» высока, особенно в детских сказках). Как мы уже знаем, они могут использовать структуру семантических эмбеддингов — то, что родственные слова вызывают схожие паттерны нейронной активности — для установления связей между словами в предложении. Однако у них нет механизма для кодирования долгосрочных связей между словами, разделенными несколькими предложениями. Люди, конечно, делают это постоянно. Если я расскажу вам о своей недавней поездке:

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

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

Одной из инноваций, появившихся около десяти лет назад, стал класс моделей, известных как sequence-to-sequence (или seq2seq).[*2] Модели seq2seq основаны на рекуррентных нейронных сетях (РНС) и различных их модификациях. В отличие от стандартной (или «базовой») нейросети, РНС обрабатывает информацию циклически, так что каждое состояние активности влияет на последующее на следующем временном шаге. Это позволяет сохранять информацию о прошлом во времени благодаря внутренней динамике активации (или «скрытому состоянию»). Таким образом, РНС обладают своего рода кратковременной памятью, которую они могут использовать для предсказания следующего элемента в последовательности. Используя этот циклический процесс, РНС может взять последовательность языковых единиц любой длины (например, первые сорок пять слов из приведенного выше отрывка) и сжать все входные данные в набор чисел, называемый вектором контекста. Вектор контекста — это числовое представление смысла всего предложения или отрывка, которое при запросе может быть использовано для генерации правдоподобных продолжений последовательности токенов (отсюда и название: «от последовательности к последовательности»). Где-то внутри вектора контекста для приведенного выше примера скрыто понятие «Япония», что делает наиболее вероятным завершением фразы «трудности в общении на» тесно связанное с ним слово «японском». Некоторым РНС помогает алгоритмическая функция, называемая гейтингом, которая позволяет им динамически включать и выключать отдельные фрагменты памяти — и, таким образом, помнить то, что нужно, в нужное время. Одной из таких версий является сеть долгой краткосрочной памяти (Long Short-Term Memory, или LSTM) — названная так потому, что гейтинг позволяет «краткосрочной» памяти парадоксальным образом растягиваться на много шагов назад в прошлое.[*3]

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

The planets that orbit the star in a galaxy far, far away are gaseous.

The planets that orbit the star in a galaxy far, far away is gaseous.

Любой человек, свободно говорящий по-английски, знает, что первое предложение верно, а второе — нет. Это связано с тем, что подлежащее предложения — planets — стоит во множественном числе, а потому требует формы множественного числа соответствующего глагола to be (are). Но без понимания всей структуры предложения у языковой модели (или невнимательного студента) может возникнуть соблазн использовать форму единственного числа is, поскольку перед глаголом стоят два существительных в единственном числе (star и galaxy). Модели seq2seq на базе РНС в большинстве случаев оказались способны удерживать правильную согласующуюся форму глагола, несмотря на «соблазны» в виде промежуточных слов. РНС также смогли корректно обрабатывать ряд сложных синтаксических правил английского языка, таких как зависимость филлера и гэпа (filler-gap dependency), синтаксические «острова» и присвоение падежа, для описания которых лингвисты десятилетиями изобретали замысловатые правила.[*4]

Ранее мы видели, что исследователи смогли заглянуть внутрь пространства эмбеддингов нейросети, чтобы построить реляционную геометрию таких слов, как «woman» (женщина), «queen» (королева) и «king» (король). Тот же трюк исследователи могут проделать и с моделями seq2seq — с той лишь разницей, что теперь мы можем использовать вектор контекста РНС для визуализации геометрии целых предложений. Это открывает один из путей к пониманию того, как нейросети могут кодировать грамматические правила, например порядок слов «подлежащее-сказуемое-дополнение» (SVO) в английском языке. В одном исследовании изучался контекстный слой РНС, обученной на базе данных англо-французского перевода объемом 300 миллионов слов. Оказывается, что предложение «John is in love with Mary» (Джон влюблен в Мэри) группируется вместе с «John admires Mary» (Джон восхищается Мэри) и (на небольшом отдалении) «John respects Mary» (Джон уважает Мэри). Отсюда мы можем сделать вывод, что «love» (любовь) представляет собой среднеарифметическое числовое значение между «admiration» (восхищение) и «respect» (уважение) (что лично мне кажется вполне логичным). Обратные предложения «Mary is in love with John» (Мэри влюблена в Джона), «Mary admires John» (Мэри восхищается Джоном) и «Mary respects John» (Мэри уважает Джона), в которых порядок подлежащего и дополнения изменен на противоположный (что меняет и направление любовных чувств), расположены в пространстве эмбеддингов аналогичным образом относительно друг друга, но смещены по другой оси.[*5] Иными словами, в скрытом состоянии РНС существует измерение, которое кодирует значение, задаваемое порядком подлежащего и дополнения (то есть кто и что к кому чувствует).

Рисунок 2. Пространства эмбеддингов для предложений с синтаксической формой «xy», где ⊗ — это глагол вроде «admires» (восхищается), «loves» (любит), «respects» (уважает), а x и y — это John и Mary или Mary и John. В пространстве эмбеддингов LSTM они лежат на двух осях, одна из которых кодирует роль (кто является x, а кто — y), что отражает синтаксис предложения; в то время как другая ось представляет степень уважения, кодируемую глаголом ⊗.

Хомскианцы утверждали — и продолжают утверждать, — что статистические подходы к языковому моделированию обречены на провал, поскольку они отбрасывают любое явное понятие синтаксиса. Они заявляют, что статистические модели никогда не смогут отличить фразы «rabbit chases fox» (кролик преследует лису) и «fox chases rabbit» (лиса преследует кролика) (как обсуждалось выше на примере языка L*), потому что соседство слова «fox» (лиса) со словом «rabbit» (кролик) в корпусе текстов не говорит о том, кто и что делает по отношению к кому. Вместо этого Ноам Хомский и его последователи полагают, что мы рождаемся с предопределенным пониманием правил, по которым строятся и преобразуются предложения для передачи смысла. Таким образом, наша способность интерпретировать порядок слов «подлежащее-сказуемое-дополнение» в английском языке обусловлена врожденными (хоть и неочевидными) мозговыми процессами, присутствующими уже при рождении. Однако появление моделей seq2seq нанесло серьезный удар по этому аргументу, показав, что нейросети способны научиться демонстрировать именно те виды языковой компетентности, которые Ноам Хомский считал принципиально невозможными для нечеловеческого субъекта, осваивающего язык.

Модели seq2seq позволили сделать шаг вперед в создании грамматически корректных систем обработки естественного языка (NLP) и оказались особенно полезны для машинного перевода. Однако при генерации связных текстов им по-прежнему с трудом давалось создание произведений, осмысленно структурированных во времени — так, как это без малейших усилий делает человек, когда говорит или пишет. Вот пример модели seq2seq 2015 года, обученной на полном собрании сочинений Шекспира[*6], которую затем использовали для синтеза белого стиха:

Капулетти:

Нет, добрый сир,

И сотвори перо и кроткий пух, тревожь меня

Здесь приготовь сие: твоей груди любое иное применение

Нося позади былые взоры мужа начни:

Но ради твоего града, коль скоро случаи искусства

Я держался, дабы прийти к тебе.

Если быстро пробежать глазами каждую строчку по отдельности, то, пожалуй, довольно трудно понять, настоящий это Бард или псевдо-Бард. Но присмотритесь внимательнее. Лорд Капулетти просто сыплет мешаниной квазишекспировской чепухи. Здесь упоминаются перо, твоя грудь, былые взоры мужа и твой град, но они никак не связаны друг с другом логически, чтобы рассказать историю, выразить точку зрения или сделать заявление. Этот стих читается гораздо более плавно, чем тот, что был сгенерирован n-граммными моделями, с которыми мы встречались выше, но он всё равно не может связать слова в связное повествование. С точки зрения осмысленного диалога (или, в данном случае, монолога) мы всё ещё находимся на пару ступеней ниже Владимира и Эстрагона.

Давайте сравним это с сегодняшней GPT-4, которая по промпту продолжить ответ Капулетти со слов «Нет, добрый сир» генерирует следующее:

Капулетти:

Нет, добрый сир,

Слова твои милы, но не нашли благосклонности здесь.

В делах моей семьи лишь я держу бразды,

Решенья — за мной, и мне нести сей груз.

Твоим советам, хоть они с добром, я не последую.

GPT-4 нарисовала вполне правдоподобный сценарий. Безымянный персонаж пытается навязать свою волю Капулетти, который непреклонно защищает свою независимость в личных вопросах. Во второй строке мы узнаем, что слова этого персонажа не нашли благосклонности, поэтому вполне логично, что в пятой строке Капулетти заявляет: я не последую его совету. Вымышленный монолог даже согласуется с тем, что мы знаем о настоящем характере лорда Капулетти, чья семейная гордость и упрямство сыграли ключевую роль в трагической гибели Ромео и Джульетты. Нам понадобился бы судебный лингвист вроде Дональда Фостера, чтобы обнаружить характерные признаки того, что этот отрывок — не подлинная шекспировская драма, но он определенно выстроен с правдоподобной структурой, которой напрочь лишен текст, сгенерированный RNN.

В чем же разница? Почему GPT-4 способна создавать длинные, плавные пассажи текста с почти человеческой внутренней согласованностью, а более ранние модели — нет? Как мы уже видели, масштаб языковой модели оказывается фактором первостепенной важности. По слухам, GPT-4 насчитывает 1,7 триллиона параметров и предварительно обучена на колоссальных массивах текстов из интернета, тогда как скромная RNN, описанная выше, имеет всего несколько тысяч параметров, а весь её жизненный языковой опыт ограничен 40 000 строк шекспировского стиха. Но есть и другое, абсолютно критическое различие. Буква T в аббревиатуре GPT означает «трансформер». Именно трансформер является секретом самых головокружительных недавних достижений в области исследований искусственного интеллекта и основным вычислительным механизмом в современных больших языковых моделях (LLM).

Пропустить примечания

*1 Ранее в своей карьере Фицрой был капитаном корабля Его Величества «Бигль» — того самого судна, на котором Чарльз Дарвин служил натуралистом и во время плавания на котором он сформулировал свою теорию естественного отбора.

*2 В части 1 мы обсуждали созданную Google систему под названием «Нейронный машинный перевод» (Neural Machine Translation), которая относилась к этому классу.

*3 Первоначально разработано Хохрайтером и Шмидхубером (1997).

*4 Например, то, как (в английском языке) вы переходите от утверждения «I ate chocolate» (Я съел шоколад) к вопросу «What did you eat?» (Что ты съел?), заменяя слово «chocolate» на «what» и перемещая его в начало предложения (а не спрашивая, например, «Did you eat what?», что было бы грамматически неправильно).

*5 См. Sutskever, Vinyals, and Le, 2014.

*6 Другие примеры см. здесь: https://cs.stanford.edu/people/karpathy/char-rnn/shakespear.txt.

Предыдущая главаГлава 15 из 52Следующая глава