Еще недавно словосочетание «искусственный интеллект» (ИИ) применялось для обозначения довольно далеких от интеллекта вещей, таких как алгоритмы решения слабоформализуемых задач. Ситуация изменилась с появлением известного чат-бота: нейронная сеть, обученная угадывать очередное слово в тексте, начала демонстрировать настолько осмысленное поведение, что применение к ней эпитета «интеллектуальная» больше не выглядело насмешкой над здравым смыслом.
Современные большие языковые модели могут вести связную беседу, выстраивать логические цепочки, резюмировать тексты, но главное — они используют подобие обобщений и суждений по аналогии для получения информации, отсутствовавшей в обучающей выборке. Сложно сказать, возникает ли у них при этом «понимание», но одно несомненно: каким-то образом языковым моделям удается проникнуть в структуру понятий, стоящих за словами.
Понятия
Что такое понятие? Если говорить упрощенно, понятие — это смысловое содержание слова или термина. Однако в такой формулировке из рассмотрения выпадают понятия, не представленные отдельным словом в используемом языке. Можно зайти с другой стороны и сказать, что понятие описывает характерный набор свойств реального или абстрактного объекта. То есть понятие — это разновидность модели. Например, понятие «стол» моделирует множество возможных столов, фиксируя свойства, существенные для выполнения предметом функций стола, и игнорируя все остальные.
В то же время, понятие всегда имеет связь с языком или другой системой обозначений. Тем самым устанавливается точка отсчета, разделяемая всеми носителями этой системы. Речь не идет об обязательном существовании слова с точной семантикой этого понятия: в естественных языках нужное значение может передаваться оборотом из нескольких слов, а в искусственных — с помощью формул или схем.
Как же нейронные сети научились оперировать понятиями, в том числе абстрактными, если никто им этого не объяснял? Не претендуя на окончательный ответ, попытаемся провести аналогию между обучением нейронной сети и познанием мира людьми.
Образование понятий у человека
Ребенок, появляясь на свет, еще не обладает сформированными представлениями об окружающей реальности и воспринимает мир в виде беспорядочного потока сенсорных сигналов: цветов, звуков, ощущений. По прошествии времени мозг учится находить закономерности в этом потоке, инварианты относительно комплексов ощущений. Так, теплое, серое, мохнатое и мяукает — кошка; что-то увеличивается в размерах — скорее всего, оно приближается; следствием определенных мышечных усилий является предсказуемое изменение взаимодействия со средой. Формируется внутренняя репрезентация пространственно-временных и причинно-следственных связей, образы объектов, людей, самого себя. Найденные взаимосвязи составляют первичные структуры, служащие прообразами понятий.
По мере освоения языка ребенок устанавливает соответствия между языковыми единицами и сформированными первичными понятиями. В дальнейшем, вступая в социальные взаимодействия, он обнаруживает синхронизацию большей части своих инвариантов с инвариантами других людей. Таким образом появляется основание говорить об объективном существовании вещей. Когда обучение начинает происходить с использованием речи, становится возможной передача абстрактной и отвлеченной информации в больших объемах сразу с указанием степени ее достоверности.
Впоследствии новые понятия создаются человеком путем осознанного комбинирования существующих.
Важно отметить, что познание окружающего мира таким способом возможно благодаря тому, что мозг человека структурно и функционально рассчитан на это.
Обучение нейронной сети
Большие языковые (как и графические, звуковые и все остальные) модели основаны на искусственных нейронных сетях, процесс обучения которых в чем-то напоминает познание окружающего мира человеком на ранних этапах его развития.
Получая на вход неразмеченную последовательность токенов (фрагментов слов, изображений, звуков), нейронная сеть учится предсказывать следующий токен последовательности на основе предыдущих. Чтобы успешно решать эту задачу, ей необходимо как можно полнее «постичь» внутреннюю структуру входного потока, найти скрытые взаимосвязи и инварианты. Начав с задачи предсказания следующего токена, сеть выстраивает «представление» о реальности, стоящей за обучающей последовательностью, формируя своеобразный эквивалент системы понятий, используемой людьми. Для привязки звуковой и графической информации к их текстовому описанию также используются размеченные последовательности, что аналогично «называнию» объектов.
И вновь, обучение в таком режиме возможно, потому что нейронная сеть структурно и функционально рассчитана на это.
Оцифровка понятий
По итогам обучения интеллектуальной модели формируется, по сути, отображение пространства понятий обучающей выборки на пространство весовых коэффициентов нейронной сети, подобно тому как геометрические фигуры могут быть отображены на декартову систему координат. Получаемая проекция своеобразна: в ней слиты воедино сведения разной степени достоверности, абстрактные структуры и алгоритмы их обработки.
Обучающий массив языковых моделей чаще всего содержит широкий круг абстрактных понятий из математики, логики, программирования и философии. Помимо ценности этих сведений самих по себе, в процессе «загрузки» в нейронную сеть происходит их неявная оптимизация с порождением вторичных обобщающих структур. Таким образом в распоряжении нейросети оказывается значительное количество «метамоделей» для оперирования понятиями.
В результате возникает принципиально новое качество обработки информации. Если при своем появлении вычислительные машины могли работать только с числами, затем научились обрабатывать тексты, графику, звук и видео, то сейчас они обретают способность оперировать понятиями.
В то же время, возможности существующих нейросетевых моделей по работе с понятийными структурами крайне ограничены. Они не могут, скажем, самостоятельно произвести поиск в массиве данных, которыми обладают, чтобы улучшить качество ответа, или перебрать возможные варианты понятий по заданному критерию. По сути, единственный алгоритм, реализуемый современными моделями — выдать результат в точном соответствии с запросом. Такие ограничения напоминают язык программирования, неполный по Тьюрингу, или простейший биологический организм, обреченный слепо следовать своим инстинктам без возможности изменения и развития.
Тем не менее, сегодняшняя архитектура нейронных сетей впервые позволила осуществить оцифровку понятий, на основе чего в будущем стоит ожидать появления других, более совершенных архитектур. В случае создания универсальных методов обработки понятий откроется путь к их автоматизированному перебору, анализу и синтезу, подобно тому как аналитическая геометрия позволяет сводить геометрические задачи к алгебраическим, а математический анализ дает инструменты для исследования функций.
Использование термина «понятия» в контексте машинной обработки может выглядеть не вполне корректным, но за неимением подходящих альтернатив, которые, возможно, появятся в будущем, продолжим пока придерживаться этого термина.
Слишком человеческое
Обучение нейросетевых моделей происходит сегодня на материале естественных и искусственных языков, созданных человеком. Но насколько такой способ представления знаний подходит машине? Созданные людьми языки неизбежно несут на себе отпечаток человеческой психологии и особенностей мышления.
В качестве одной из таких особенностей можно назвать факт, что у человека работа с абстрактными понятиями сопряжена с определенными трудностями. Людям удобнее оперировать моделями, имеющими аналоги в реальном мире. Достаточно вспомнить примеры при изучении программирования: алгоритм — рецепт приготовления блюда, переменная — коробочка, хранящая значение. Конечно, свыкаясь через какое-то время с абстрактным понятием, человек перестает нуждаться в аналогиях и способен воспринимать более абстрактные построения, но следует отметить, что чем дальше вглубь абстракций, тем меньше остается людей, освоивших их. Также возникают сложности с наименованием и обозначением новых понятий.
Еще одна особенность мышления характеризуется тем, что сознание оперирует не более чем 5-9 логическими единицами одновременно, и делает это с относительно невысокой скоростью. Разумеется, существенную часть работы берет на себя подсознание, но его целенаправленное использование затруднено.
Проявление этого принципа можно наблюдать на примере того, как люди стремятся создавать иерархические модели с комфортным для восприятия количеством сущностей на каждом уровне. В программировании считается хорошей практикой разбивать программу на блоки удобного размера (следуя принципам используемой парадигмы) с целью избегания «спагетти-кода». В математике использование символических обозначений разгружает сознание, заменяя операции над понятиями операциями над символами, иначе говоря, подменяя семантику синтаксисом.
Что касается ИИ, то он не использует и, скорее всего, никогда не будет использовать сенсорные прототипы для репрезентации понятий, поэтому глубина абстракций не имеет для него принципиального значения. Следовательно, искусственные интеллектуальные системы потенциально не ограничены использованием только доступных людям понятий и языков.
Место для шага вперед
Будем называть понятийно-знаковой системой (ПЗС) совокупность понятий и обозначений, объединенных по некоторому принципу. Примерами таких систем являются естественные языки, языки программирования, математика. Термин «понятийно-знаковая система» родственен существующему в семиотике термину «знаковая система», но, в отличие от семиотического подхода, где точкой отсчета является знак, мы отталкиваемся от понятий. «Яблоко» и «дом» остаются таковыми независимо от того, какое слово или символ использованы для их обозначения. Еще проще проследить этот принцип в языках программирования, где полностью идентичные действия могут быть выражены совершенно разными программами на разных языках.
ПЗС используются человечеством для хранения, упорядочения и передачи знаний, служат инструментом поиска новых концепций. Чем эффективнее ИИ научится оперировать понятиями, тем значимее будет его влияние на понятийно-знаковые системы. Рассмотрим некоторые перспективы такого влияния.
Прежде всего, интересно применение интеллектуальных систем для поиска «оптимальных» понятий. В зависимости от масштаба речь будет идти о незначительных улучшениях или важных открытиях. Примеры концепций, основанных на этом принципе: позиционная система счисления, декартова система координат, матричная алгебра. Так, несмотря на то что вычисления с использованием римских цифр довольно сложны, ими продолжали пользоваться на протяжении веков, не зная о существовании позиционных систем счисления. Менее глобальный пример: законы сохранения импульса, момента импульса и полной механической энергии тела в физике. Любая задача классической механики может быть сведена к законам Ньютона, но во многих случаях решение радикально упрощается применением принципов сохранения.
Помимо оптимизации понятийно-знаковых систем, от ИИ стоит ожидать упрощения работы с абстракциями. Человеку достаточно будет доходить в понимании абстрактных идей до удобного ему уровня, а «черную работу» блуждания по лабиринтам абстракций он сможет поручать искусственному интеллекту.
Закат языков программирования?
Одной из сфер, где ИИ демонстрирует большие успехи, является программирование. Какое будущее ожидает разработку программного обеспечения в целом и языки программирования в частности?
Язык программирования реализует две основные функции. Первая функция заключается в том, чтобы делать намерение человека понятным для компьютера. Учитывая, что интеллектуальные модели достигли почти совершенства в понимании намерения, выраженного в виде текста, кода, псевдокода и даже схем — для этой цели языки программирования уже не нужны. Если попытаться экстраполировать дальнейшее движение в этом направлении, мы придем к предсказанию искусственным интеллектом намерения человека или даже его формированию.
Вторая функция: кодирование метаинформации о программе. Исполняемый файл в отношении выполняемых им действий является черным ящиком, требующим реверс-инжиниринга. Между тем, исходный текст на языке высокого уровня позволяет получить представление об алгоритме работы программы и используемых ею ресурсах, а при необходимости сгенерировать исполняемый файл с доработанной функциональностью или рассчитанный на другую платформу. Функция хранения метаинформации никогда не потеряет актуальности, однако ее реализация может меняться.
Косвенным указанием на несовершенство существующих языков программирования служит неоправданно большое количество ошибок в разрабатываемом программном обеспечении (хотя к ним как будто уже привыкли и считают частью процесса).
Что же может прийти на смену языкам программирования? Представляются вероятными следующие тенденции.
Использование декларативного подхода, фокусировка на целях вместо особенностей реализации. При таком подходе ИИ получает свободу в выстраивании промежуточных шагов алгоритма и выборе структур данных. Из известных сегодня парадигм наиболее близкой к описанному выглядит «программирование в ограничениях» (constraint programming).
Как следствие предыдущего — переход от абстрактных задач к задачам реального мира. Пример такого перехода: а) написать функцию, выполняющую поиск в базе данных для заполнения поля в форме; б) создать сайт продажи авиабилетов согласно предложенным эскизам; в) просто купить билет на самолет, учитывая пожелания пользователя.
Программирование в диалоговом режиме. Стирание границ между интерпретацией и компиляцией программы, ее написанием и эксплуатацией.
Мониторинг ключевых параметров как на этапе разработки, так и в процессе работы. Отладка в тестовой среде, максимально воссоздающей реальные условия.
Возможность получения различных версий исполняемого модуля в зависимости от условий эксплуатации и требований к ресурсам. Помимо получения двоичного файла, возможна генерация материальных физических агентов.
Если ИИ начнет использовать способы представления информации, недоступные человеку, нас может ожидать появление «языков программирования наоборот»: структур, создаваемых компьютерами для представления нужных сведений в понятном человеку виде.
Тест на проникновение
Культура, понимаемая как совокупность небиологических проявлений человека, составляет важнейшую часть его среды обитания. Даже ограничиваясь рассмотрением технической части культуры, без учета гуманитарного аспекта, мы видим потенциал огромного трансформирующего влияния на нее со стороны искусственных интеллектуальных систем.
Естественный ход вещей, при котором культура принадлежала только людям, и только люди были в состоянии поддерживать и обогащать ее, нарушается. Теперь возможность делать свой вклад получают странные бездушные железки или те, кто управляют ими, не имея прямого отношения к генерируемому содержимому. С позиций консервативного развития эту ситуацию можно рассматривать как «несанкционированный доступ», или «взлом». Впрочем, пока еще мы находимся в стадии «тестирования на проникновение» (penetration testing).
Можно провести своеобразную аналогию с игрой в шахматы. С тех пор как компьютеры стали играть сильнее человека, шахматы четко поделились на компьютерные и человеческие, и они сейчас почти не пересекаются. Сами алгоритмы игры и способы оценки у людей и машин основаны на совершенно разных принципах. Машинный анализ полезен в образовательных целях: для тренировки, разбора партий, точной оценки позиции — но в играх наравне с людьми компьютерные движки не участвуют.
Не исключено, что подобным образом люди будут вынуждены отгораживаться от вмешательства слишком интеллектуальных машин в отдельные области своей жизни, формируя и оберегая собственные оазисы культуры.
Комментарии (11)
ENick
09.11.2024 17:58"Если при своем появлении вычислительные машины могли работать только с числами, затем научились обрабатывать тексты, графику, звук и видео, то сейчас они обретают способность оперировать понятиями.". Уточните, как Вы понимаете "...машины могли работать...". Разные триггерочки и регистрики работают только с цифирками, а всё остальное от лукавого, т.е. от софта.
vlnel Автор
09.11.2024 17:58Человеческий мозг тоже работает на электрических импульсах и химических реакциях, но благодаря своим системным свойствам способен обрабатывать различные виды информации.
"Машины могли работать..." я понимаю так, что пользователь машины (человек) может дать ей задачу, содержание которой он сам интерпретирует как, например, "графику" или "звук", а машина, произведя какие-то операции, выдаст понятный для него результат. Калькулятор не может обрабатывать видео, хотя тоже оперирует числами. Это вопрос понимания формата и наличия ресурсов и алгоритмов для обработки.
axion-1
09.11.2024 17:58"Обученная угадывать очередное слово в тексте" - всё-таки сильное упрощение. Это относится к этапу предобучения, а есть ещё файн-тюнинг когда сеть собственно обучается отвечать на вопросы, рассуждать, и т.п. Вся "магия" как раз происходит на втором этапе и насколько помню OpenAI и другие разработчики описывали этот процесс в статьях только общими словами, не раскрывая ноу-хау.
vlnel Автор
09.11.2024 17:58Насчет ноу-хау не знаю, есть же open-source модели.
То, что упрощение, не спорю. Но, согласитесь, первые GPT (включая 3.0) появились именно как программы, решающие задачу предсказания следующего слова. И хотя файн-тьюнинг в сегодняшнем понимании тогда еще не использовался, они уже проявляли определенные интеллектуальные способности, могли, например, генерировать статьи, которые было сложно отличить от человеческих.
phenik
09.11.2024 17:58Спасибо за публикацию. Один из наиболее глубоких анализов на тему возможностей и перспектив технологии ИИ. Перекликается с собственной оценкой ЯМ на трансформерной основе, котрую высказал в этом коменте. Важное уточнение по арифметическим операциям, освоение обучения которым будет являться некоторым показателем перехода на следующий уровень архитектуры ИИ, и ее приближения к когнитивной, т.е. способной к познанию.
sshikov
А можете это продемонстрировать? И вообще, откуда вы знаете, что у нейросети было в обучающей выборке, а чего не было?
axion-1
Тут наверное лучше уточнить что автор имел в виду под получением информации. Создавать новую информацию отсутствующую в обучающей выборке нейросети способны, на мой взгляд это очевидно. Нагляднее всего это демонстрируют сети генерирующие картинки по текстовому описанию, типа Stable Diffusion. С LLM чуть сложнее, но из того что недавно пробовал, достаточно неплохо перевели стихи с русского на английский.
vlnel Автор
На мой взгляд, чтобы убедиться в том, что языковая модель способна генерировать новую информацию, достаточно попросить ее найти аналогию между вещами или процессами. Она легко проводит аналогии по структуре, по функциональности, по другим признакам. Маловероятно, что всё это она это "прочитала" в обучающей выборке.
В целом, создают ли LLM что-то новое — это фундаментальный вопрос, простого ответа на который не существует и консенсус не достигнут.
sshikov
Ну опять же - мыж не знаем, что у нее там в выборке было. Как показывает моя практика, LLM когда просишь написать код - они достаточно явно пишут его примерно таким, какой можно найти в сети. А если его найти нельзя - то результат как правило плачевный. Т.е. на чем обучали - то и умеют писать (разумеется, с вариациями).
Ну это звучит логично, но по-моему ответ на этот вопрос все-таки пока "нет".