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