Именно этим большим проектом я и занимался более четырех десятилетий. Сейчас этот проект воплощен в Wolfram Language, и он заключается в создании точного символического представления, которое могло бы максимально широко говорить о материальных, а также абстрактных вещах, которые нас волнуют. Итак, например, у нас есть символические представления для городов, молекул, изображений и нейронных сетей и встроенные знания о том, как производить вычисления для этих вещей.
За прошедшие десятилетия мы успели изучить множество областей. Однако в прошлом мы не особо занимались повседневным дискурсом. Во фразе «Я купил два фунта яблок» мы можем легко представить два фунта яблок (и выполнить для них расчеты калорийности и другие вычисления). Но у нас (пока еще) нет символического представления для «я купил».
Все это связано с идеей семантики о создании универсального символического конструктора для концептов, который дал бы нам руководство, что с чем может сочетаться, чтобы мы могли создать поток человеческого языка.
Давайте предположим, что у нас уже есть этот язык символического дискурса. Что бы мы с ним сделали? Мы могли бы начать с генерации локально значимого текста. Но в конечном счете мы, вероятно, захотим получить более глобальный текст, а это значит, что нам нужно провести вычисления всего того, что происходит в мире (или, возможно, в каком-то последовательно устроенном вымышленном мире).
Прямо сейчас в Wolfram Language есть огромное количество встроенных вычисляемых знаний о множестве вещей. Но для полноценного языка символического дискурса нам пришлось бы встроить в него дополнительные вычисления об основополагающих вещах: если объект перемещается из A в Б и из Б в В, то он перемещается из A в В, и так далее.
Если бы у нас был язык символического дискурса, мы могли бы использовать его для создания автономных утверждений. Мы также могли бы с его помощью задавать вопросы в стиле Wolfram|Alpha. Или использовать его для того, чтобы заявить о вещах, которые мы хотим сделать с помощью какого-то внешнего механизма. Или для того, чтобы делать утверждения – возможно, о реальном мире, а возможно, о каком-то конкретном мире, который мы рассматриваем (неважно, вымышленном или реальном).
Человеческий язык принципиально неточен, он не привязан к конкретной вычислительной реализации, и значения в основном определяются конвенционально. Но вычислительный язык по своей природе обладает определенной фундаментальной точностью, потому что определяемое им всегда может быть однозначно выполнено на компьютере. Естественному языку обычно сходит с рук некоторая расплывчатость (когда мы говорим «планета», охватывает ли это понятие экзопланеты или нет?), но компьютерный язык всегда должен быть точен и понятен однозначно.
Человеческий язык удобен для создания форм языковых единиц компьютерного языка. Но значения, которые существуют в нем, обязательно точны и могут как соответствовать какой-то определенной коннотации в человеческом языке, так и не соответствовать ей.
Как определить фундаментальную «онтологию» общего символического языка? Это непросто. Возможно, именно поэтому мы почти не наблюдаем прогресса с тех самых пор, как более двух тысячелетий назад этим занялся Аристотель. Однако сейчас нам помогают знания о том, как мыслить о мире с точки зрения вычислений (не помешают также фундаментальная метафизика и концепция рулиады).
Но что все это означает в контексте ChatGPT? Благодаря материалам, на которых он обучался, ChatGPT эффективно собрал воедино довольно впечатляющее количество семантических правил. Однако сам его успех дает нам основания думать, что возможно создать что-то еще более полноценное в форме вычислительного языка. И в отличие от того, что мы уже знаем о внутренних процессах ChatGPT, мы можем ожидать, что разработаем понятный людям вычислительный язык.
Говоря о семантике, мы можем провести аналогию с силлогистикой. Вначале она представляла собой, по сути, набор правил, касающихся утверждений, выраженных на человеческом языке. Но два тысячелетия спустя, когда была разработана формальная логика, первоначальные базовые конструкции силлогистики стало возможно использовать для построения огромных «формальных башен», которые включают в себя, например, работы современных цифровых схем. Именно поэтому мы можем ожидать нечто подобное и от общей семантики. Сначала это могут быть простые шаблоны, выраженные, скажем, в виде текста. Но как только будет построена вся структура вычислительного языка, мы сможем использовать ее для возведения высоких башен «обобщенной семантической логики», которые позволят нам работать точным и формальным образом с тем, что было недоступно нам раньше, за исключением нижнего уровня человеческого языка с его расплывчатостью.
Мы можем думать о построении вычислительного языка и семантики как о своего рода предельном сжатии информации при описании чего-либо. Это позволяет нам говорить о сути, не прибегая к речевым оборотам, существующим в естественном языке. Способности ChatGPT очень похожи, ведь он тоже может соединить языковые единицы семантически значимым образом, не заботясь о возможных речевых оборотах.
Итак, что произойдет, если мы применим возможности ChatGPT к базовому вычислительному языку? Вычислительный язык описывает то, что возможно. Однако мы также можем добавить ему представление, скажем, о популярных трендах. Работа с вычислительным языком означает, что модели вроде ChatGPT должны иметь постоянный и полный доступ к любым инструментам для использования потенциально несводимых вычислений. Именно это делает всю систему способной не только генерировать разумный текст, но и обрабатывать информацию с точки зрения «правильных» утверждений о мире – или о чем бы то ни было другом.
Так что же делает ChatGPT и почему это работает?
Основная концепция ChatGPT довольно проста. Для начала загрузите в него огромную выборку из написанных текстов – из интернета, оцифрованных книг и так далее. Затем обучите нейронную сеть генерировать текст, который выглядит примерно так же. Попросите ChatGPT начать работу с определенного промпта, а затем продолжить генерировать текст, который похож на обучающий материал.
Как мы уже видели, реальная нейронная сеть в ChatGPT состоит из миллиарда простых элементов. Базовая работа нейронной сети также очень проста и заключается, по сути, в передаче входных данных, полученных из сгенерированного текста, однократно через всю сеть (без каких-либо циклов и так далее) для каждого нового слова (или части слова), которое она генерирует.
Примечательно, что благодаря этому процессу ChatGPT может создавать тексты, похожие на то, что уже есть в интернете, книгах и так далее. Это не просто связный человеческий текст – это сгенерированный текст, который следует данному промпту и использует контент, почерпнутый из интернета. У ChatGPT не всегда получается генерировать текст, который имеет реальный смысл (или соответствует правильным вычислениям), потому что (например, без доступа к вычислительным «сверхспособностям» Wolfram|Alpha) он просто создает фразы, которые выглядят «правильно», основываясь на том, как все выглядело в его учебном материале.
Специфика ChatGPT сделала его весьма привлекательным инструментом. Но в конечном счете (по крайней мере, пока он не может использовать сторонние инструменты) ChatGPT просто извлекает некоторую связную нить текста из той «статистики общепринятого мнения», которую он накопил. Однако все равно удивительно, насколько его результаты похожи на человеческие. И, как я уже говорил, это наводит на важную с научной точки зрения мысль: человеческий язык (и стоящие за ним модели мышления) намного проще, чем мы думали, и подчиняется определенным структурным законам. ChatGPT смог это понять. Гипотетически мы можем подтвердить это при помощи семантики, вычислительного языка и так далее.
Генерирование текста, которое осуществляет ChatGPT, впечатляет, и его результаты очень похожи на то, что способен сделать обычный человек. А раз так, то можем ли мы утверждать, что ChatGPT работает подобно человеческому мозгу? В конце концов, лежащая в его основе структура искусственной нейронной сети была смоделирована на основе представлений о функционировании головного мозга. И кажется вполне вероятным, что, когда мы, люди, создаем текст, это похоже на то, как действует нейросеть.
Когда дело доходит до обучения, разница в «аппаратном обеспечении» мозга и современных компьютеров (а также, возможно, некоторые пока не развитые алгоритмические идеи) вынуждает ChatGPT использовать стратегию, которая, вероятно,