Еще недавно словосочетание «искусственный интеллект» (ИИ) применялось для обозначения довольно далеких от интеллекта вещей, таких как алгоритмы решения слабоформализуемых задач. Ситуация изменилась с появлением известного чат-бота: нейронная сеть, обученная угадывать очередное слово в тексте, начала демонстрировать настолько осмысленное поведение, что применение к ней эпитета «интеллектуальная» больше не выглядело насмешкой над здравым смыслом.
Современные большие языковые модели могут вести связную беседу, выстраивать логические цепочки, резюмировать тексты, но главное — они используют подобие обобщений и суждений по аналогии для получения информации, отсутствовавшей в обучающей выборке. Сложно сказать, возникает ли у них при этом «понимание», но одно несомненно: каким-то образом языковым моделям удается проникнуть в структуру понятий, стоящих за словами.
Что такое понятие? Если говорить упрощенно, понятие — это смысловое содержание слова или термина. Однако в такой формулировке из рассмотрения выпадают понятия, не представленные отдельным словом в используемом языке. Можно зайти с другой стороны и сказать, что понятие описывает характерный набор свойств реального или абстрактного объекта. То есть понятие — это разновидность модели. Например, понятие «стол» моделирует множество возможных столов, фиксируя свойства, существенные для выполнения предметом функций стола, и игнорируя все остальные.
В то же время, понятие всегда имеет связь с языком или другой системой обозначений. Тем самым устанавливается точка отсчета, разделяемая всеми носителями этой системы. Речь не идет об обязательном существовании слова с точной семантикой этого понятия: в естественных языках нужное значение может передаваться оборотом из нескольких слов, а в искусственных — с помощью формул или схем.
Как же нейронные сети научились оперировать понятиями, в том числе абстрактными, если никто им этого не объяснял? Не претендуя на окончательный ответ, попытаемся провести аналогию между обучением нейронной сети и познанием мира людьми.
Ребенок, появляясь на свет, еще не обладает сформированными представлениями об окружающей реальности и воспринимает мир в виде беспорядочного потока сенсорных сигналов: цветов, звуков, ощущений. По прошествии времени мозг учится находить закономерности в этом потоке, инварианты относительно комплексов ощущений. Так, теплое, серое, мохнатое и мяукает — кошка; что-то увеличивается в размерах — скорее всего, оно приближается; следствием определенных мышечных усилий является предсказуемое изменение взаимодействия со средой. Формируется внутренняя репрезентация пространственно-временных и причинно-следственных связей, образы объектов, людей, самого себя. Найденные взаимосвязи составляют первичные структуры, служащие прообразами понятий.
По мере освоения языка ребенок устанавливает соответствия между языковыми единицами и сформированными первичными понятиями. В дальнейшем, вступая в социальные взаимодействия, он обнаруживает синхронизацию большей части своих инвариантов с инвариантами других людей. Таким образом появляется основание говорить об объективном существовании вещей. Когда обучение начинает происходить с использованием речи, становится возможной передача абстрактной и отвлеченной информации в больших объемах сразу с указанием степени ее достоверности.
Впоследствии новые понятия создаются человеком путем осознанного комбинирования существующих.
Важно отметить, что познание окружающего мира таким способом возможно благодаря тому, что мозг человека структурно и функционально рассчитан на это.
Большие языковые (как и графические, звуковые и все остальные) модели основаны на искусственных нейронных сетях, процесс обучения которых в чем-то напоминает познание окружающего мира человеком на ранних этапах его развития.
Получая на вход неразмеченную последовательность токенов (фрагментов слов, изображений, звуков), нейронная сеть учится предсказывать следующий токен последовательности на основе предыдущих. Чтобы успешно решать эту задачу, ей необходимо как можно полнее «постичь» внутреннюю структуру входного потока, найти скрытые взаимосвязи и инварианты. Начав с задачи предсказания следующего токена, сеть выстраивает «представление» о реальности, стоящей за обучающей последовательностью, формируя своеобразный эквивалент системы понятий, используемой людьми. Для привязки звуковой и графической информации к их текстовому описанию также используются размеченные последовательности, что аналогично «называнию» объектов.
И вновь, обучение в таком режиме возможно, потому что нейронная сеть структурно и функционально рассчитана на это.
По итогам обучения интеллектуальной модели формируется, по сути, отображение пространства понятий обучающей выборки на пространство весовых коэффициентов нейронной сети, подобно тому как геометрические фигуры могут быть отображены на декартову систему координат. Получаемая проекция своеобразна: в ней слиты воедино сведения разной степени достоверности, абстрактные структуры и алгоритмы их обработки.
Обучающий массив языковых моделей чаще всего содержит широкий круг абстрактных понятий из математики, логики, программирования и философии. Помимо ценности этих сведений самих по себе, в процессе «загрузки» в нейронную сеть происходит их неявная оптимизация с порождением вторичных обобщающих структур. Таким образом в распоряжении нейросети оказывается значительное количество «метамоделей» для оперирования понятиями.
В результате возникает принципиально новое качество обработки информации. Если при своем появлении вычислительные машины могли работать только с числами, затем научились обрабатывать тексты, графику, звук и видео, то сейчас они обретают способность оперировать понятиями.
В то же время, возможности существующих нейросетевых моделей по работе с понятийными структурами крайне ограничены. Они не могут, скажем, самостоятельно произвести поиск в массиве данных, которыми обладают, чтобы улучшить качество ответа, или перебрать возможные варианты понятий по заданному критерию. По сути, единственный алгоритм, реализуемый современными моделями — выдать результат в точном соответствии с запросом. Такие ограничения напоминают язык программирования, неполный по Тьюрингу, или простейший биологический организм, обреченный слепо следовать своим инстинктам без возможности изменения и развития.
Тем не менее, сегодняшняя архитектура нейронных сетей впервые позволила осуществить оцифровку понятий, на основе чего в будущем стоит ожидать появления других, более совершенных архитектур. В случае создания универсальных методов обработки понятий откроется путь к их автоматизированному перебору, анализу и синтезу, подобно тому как аналитическая геометрия позволяет сводить геометрические задачи к алгебраическим, а математический анализ дает инструменты для исследования функций.
Использование термина «понятия» в контексте машинной обработки может выглядеть не вполне корректным, но за неимением подходящих альтернатив, которые, возможно, появятся в будущем, продолжим пока придерживаться этого термина.
Обучение нейросетевых моделей происходит сегодня на материале естественных и искусственных языков, созданных человеком. Но насколько такой способ представления знаний подходит машине? Созданные людьми языки неизбежно несут на себе отпечаток человеческой психологии и особенностей мышления.
В качестве одной из таких особенностей можно назвать факт, что у человека работа с абстрактными понятиями сопряжена с определенными трудностями. Людям удобнее оперировать моделями, имеющими аналоги в реальном мире. Достаточно вспомнить примеры при изучении программирования: алгоритм — рецепт приготовления блюда, переменная — коробочка, хранящая значение. Конечно, свыкаясь через какое-то время с абстрактным понятием, человек перестает нуждаться в аналогиях и способен воспринимать более абстрактные построения, но следует отметить, что чем дальше вглубь абстракций, тем меньше остается людей, освоивших их. Также возникают сложности с наименованием и обозначением новых понятий.
Еще одна особенность мышления характеризуется тем, что сознание оперирует не более чем 5-9 логическими единицами одновременно, и делает это с относительно невысокой скоростью. Разумеется, существенную часть работы берет на себя подсознание, но его целенаправленное использование затруднено.
Проявление этого принципа можно наблюдать на примере того, как люди стремятся создавать иерархические модели с комфортным для восприятия количеством сущностей на каждом уровне. В программировании считается хорошей практикой разбивать программу на блоки удобного размера (следуя принципам используемой парадигмы) с целью избегания «спагетти-кода». В математике использование символических обозначений разгружает сознание, заменяя операции над понятиями операциями над символами, иначе говоря, подменяя семантику синтаксисом.
Что касается ИИ, то он не использует и, скорее всего, никогда не будет использовать сенсорные прототипы для репрезентации понятий, поэтому глубина абстракций не имеет для него принципиального значения. Следовательно, искусственные интеллектуальные системы потенциально не ограничены использованием только доступных людям понятий и языков.
Будем называть понятийно-знаковой системой (ПЗС) совокупность понятий и обозначений, объединенных по некоторому принципу. Примерами таких систем являются естественные языки, языки программирования, математика. Термин «понятийно-знаковая система» родственен существующему в семиотике термину «знаковая система», но, в отличие от семиотического подхода, где точкой отсчета является знак, мы отталкиваемся от понятий. «Яблоко» и «дом» остаются таковыми независимо от того, какое слово или символ использованы для их обозначения. Еще проще проследить этот принцип в языках программирования, где полностью идентичные действия могут быть выражены совершенно разными программами на разных языках.
ПЗС используются человечеством для хранения, упорядочения и передачи знаний, служат инструментом поиска новых концепций. Чем эффективнее ИИ научится оперировать понятиями, тем значимее будет его влияние на понятийно-знаковые системы. Рассмотрим некоторые перспективы такого влияния.
Прежде всего, интересно применение интеллектуальных систем для поиска «оптимальных» понятий. В зависимости от масштаба речь будет идти о незначительных улучшениях или важных открытиях. Примеры концепций, основанных на этом принципе: позиционная система счисления, декартова система координат, матричная алгебра. Так, несмотря на то что вычисления с использованием римских цифр довольно сложны, ими продолжали пользоваться на протяжении веков, не зная о существовании позиционных систем счисления. Менее глобальный пример: законы сохранения импульса, момента импульса и полной механической энергии тела в физике. Любая задача нерелятивистской механики может быть сведена к законам Ньютона, но во многих случаях решение радикально упрощается применением принципов сохранения.
Помимо оптимизации понятийно-знаковых систем, от ИИ стоит ожидать упрощения работы с абстракциями. Человеку достаточно будет доходить в понимании абстрактных идей до удобного ему уровня, а «черную работу» блуждания по лабиринтам абстракций он сможет поручать искусственному интеллекту.
Одной из сфер, где ИИ демонстрирует большие успехи, является программирование. Какое будущее ожидает разработку программного обеспечения в целом и языки программирования в частности?
Язык программирования реализует две основные функции. Первая функция заключается в том, чтобы делать намерение человека понятным для компьютера. Учитывая, что интеллектуальные модели достигли почти совершенства в понимании намерения, выраженного в виде текста, кода, псевдокода и даже схем — для этой цели языки программирования уже не нужны. Если попытаться экстраполировать дальнейшее движение в этом направлении, мы придем к предсказанию искусственным интеллектом намерения человека или даже его формированию.
Вторая функция: кодирование метаинформации о программе. Исполняемый файл в отношении выполняемых им действий является черным ящиком, требующим реверс-инжиниринга. Между тем, исходный текст на языке высокого уровня позволяет получить представление об алгоритме работы программы и используемых ею ресурсах, а при необходимости сгенерировать исполняемый файл с доработанной функциональностью или рассчитанный на другую платформу. Функция хранения метаинформации никогда не потеряет актуальности, однако ее реализация может меняться.
Косвенным указанием на несовершенство существующих языков программирования служит неоправданно большое количество ошибок в разрабатываемом программном обеспечении (хотя к ним как будто уже привыкли и считают частью процесса).
Что же может прийти на смену языкам программирования? Представляются вероятными следующие тенденции.
Использование декларативного подхода, фокусировка на целях вместо особенностей реализации. При таком подходе ИИ получает свободу в выстраивании промежуточных шагов алгоритма и выборе структур данных. Из известных сегодня парадигм наиболее близкой к описанному выглядит «программирование в ограничениях» (constraint programming).
Как следствие предыдущего — переход от абстрактных задач к задачам реального мира. Пример такого перехода: а) написать функцию, выполняющую поиск в базе данных для заполнения поля в форме; б) создать сайт продажи авиабилетов согласно предложенным эскизам; в) просто купить билет на самолет, учитывая пожелания пользователя.
Программирование в диалоговом режиме. Стирание границ между интерпретацией и компиляцией программы, ее написанием и эксплуатацией.
Мониторинг ключевых параметров как на этапе разработки, так и в процессе работы. Отладка в тестовой среде, максимально воссоздающей реальные условия.
Возможность получения различных версий исполняемого модуля в зависимости от условий эксплуатации и требований к ресурсам. Помимо получения двоичного файла, возможна генерация материальных физических агентов.
Если ИИ начнет использовать способы представления информации, недоступные человеку, нас может ожидать появление «языков программирования наоборот»: структур, создаваемых компьютерами для представления нужных сведений в понятном человеку виде.
Культура, понимаемая как совокупность небиологических проявлений человека, составляет важнейшую часть его среды обитания. Даже ограничиваясь рассмотрением технической части культуры, без учета гуманитарного аспекта, мы видим потенциал огромного трансформирующего влияния на нее со стороны искусственных интеллектуальных систем.
Естественный ход вещей, при котором культура принадлежала только людям, и только люди были в состоянии поддерживать и обогащать ее, нарушается. Теперь возможность делать свой вклад получают странные бездушные железки или те, кто управляют ими, не имея прямого отношения к генерируемому содержимому. С позиций консервативного развития эту ситуацию можно рассматривать как «несанкционированный доступ», или «взлом». Впрочем, пока еще мы находимся в стадии «тестирования на проникновение» (penetration testing).
Можно провести своеобразную аналогию с игрой в шахматы. С тех пор как компьютеры стали играть сильнее человека, шахматы четко поделились на компьютерные и человеческие, и они сейчас почти не пересекаются. Сами алгоритмы игры и способы оценки у людей и машин основаны на совершенно разных принципах. Машинный анализ полезен в образовательных целях: для тренировки, разбора партий, точной оценки позиции — но в играх наравне с людьми компьютерные движки не участвуют.
Не исключено, что подобным образом люди будут вынуждены отгораживаться от вмешательства слишком интеллектуальных машин в отдельные области своей жизни, формируя и оберегая собственные оазисы культуры.