реклама
Бургер менюБургер меню

Роман Душкин – Семена. Второе лето (страница 12)

18

Хорошая новость была в том, что сегодня опять же готовые базы знаний были созданы буквально для любой области деятельности. Можно было брать готовую и подключать её в своего агента. Более того, на этих самых платформах для создания когнитивных агентов и организации среды для их взаимодействия, имелась функциональность для постоянной актуализации баз знаний – как только в проблемной области что-то менялось, база знаний сразу же впитывала эти изменения в себя, чтобы быть полностью актуальной. Поэтому нейроманту опять же оставалось только выбрать необходимые базы знаний и подключить их к своему агенту, описав в его персонаже параметры и условия доступа к знаниям из подключённых баз.

Кроме баз знаний, в которых хранятся актуальные знания по любым предметам, к искусственным когнитивным агентам можно подключать произвольное количество баз данных. Каждая база данных может содержать структурированную информацию в виде набора полей с идентификаторами. С такой информацией можно проводить большое количество формализованных операций – записывать, искать, делать выборку, фильтровать, удалять из базы знаний. Нейромант сам проектирует структуру базы знаний для решения своих задач, а потом так же при помощи заклинаний описывает для агента инструкции о том, как использовать базу знаний и для чего.

Этот механизм позволяет решать, например, такие задачи: запоминание произвольной информации о пользователе, напоминание пользователю о каких-то событиях, обмен информацией между пользователями через агента, хранение любых структурированных данных и очень быстрый доступ к ним.

Вся персонализация работы когнитивных агентов со своими пользователями реализована как раз при помощи использования баз данных. Во время общения когнитивный агент сохраняет в базу знаний все данные, которые он от пользователя получает, это как бы его память. И потом он также может использовать запомненную информацию во время общения с пользователями.

Ещё отец рассказал про такую важную функцию, как триггеры. Да, искусственные когнитивные агенты могут натурально триггериться. Это звучит смешно, но это так. Когда отец рассказывал, я не мог сдержать невольную улыбку.

Так вот, можно настроить триггеры на различные события. Если такое событие происходит в среде, в которой агент функционирует, он триггерится на это событие и запускает процедуру его обработки. Самый простой пример – триггер времени. Если наступает определённое время, то агент пишет своему пользователю какое-то сообщение. Это может быть одиночный триггер, который снимается после отработки, а может быть постоянный, то есть он будет реагировать каждый раз, когда в среде будет происходить событие, на которое агент триггерится. Таким образом можно, например, делать периодические сообщения – агент каждое утро будет писать приветственное сообщение.

Вообще, механизм триггеров оказался очень гибким. Агент может реагировать буквально на любое событие в интернете когнитивных агентов. Платформа, на которой функционируют агенты, рассылает всем «подписчикам» уведомления о том, что такое-то событие произошло, и те агенты, у которых на это событие настроены триггеры, отрабатывают свои процедуры. Мне это показалось очень простой и понятной моделью взаимодействия.

Следующее, что мне показал отец, были процедуры или сценарии. Они напрямую связаны с триггерами, но могут быть определены в агенте сами по себе. Сценарий определяет некоторую последовательность действий, не обязательно линейную, она может состоять из условий с развилками и циклов – эта последовательность действий реализуется агентом в целях выполнения какого-либо известного процесса.

Действительно, очень часто для решения задач требуется исполнить какой-то алгоритм, процесс, процедуру. Алгоритм всегда один и тот же, в него просто подаются значения входных параметров. Но сама последовательность шагов всегда одинакова. В этом случае резонно реализовать сценарий.

Итак, сценарий состоит из шагов, которые агент выполняет друг за другом, иногда проверяя какие-либо условия и на основании результатов такой проверки выбирая то или иное направление. Иногда он выполняет определённую подпоследовательность несколько раз в цикле. В общем, это примерно то же самое, что программировать на формальном языке программирования. Только всё описание деятельности и предпринимаемых шагов делается при помощи тех же самых заклинаний.

Шаги же алгоритма также представляют собой работу большой языковой модели, обращение к базе данных или базе знаний, чтение и запись информации в память, какие-то расчёты, запуск процедур, написанных на каком-либо языке произрастания, вызов внешних процедур и программ и даже обращение за помощью к другим искусственным когнитивным агентам. Ведь раз сам агент функционирует на платформе в среде интернета когнитивных агентов, то он может обратиться с запросом либо к какому-то конкретному анкету, либо бросить запрос на общую рабочую доску с указанием вознаграждения, и тогда те агенты, которые могут этот запрос выполнить, начинают торговаться за него.

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

Ещё одним интересным механизмом взаимодействия систем в интернете когнитивных агентов была прямая связь. Сам нейромант имел возможность указать, с каким агентом связаться в случае получения такого-то запроса или такой-то задачи. Обычно такой подход использовался в случае типовых задач, под решение которых у нейроманта были готовые агенты. Поэтому вместо того, чтобы искать того, кто будет решать задачу методами децентрализованного поиска консенсуса, один агент мог делегировать решение задачи другому.

Например, персональные помощники обычно и были вот такими агентами-руководителями, у которых было в подчинении много мелких агентов, заточенных на решение конкретных задач. Отец открыл в своём личном кабинете у себя на платформе внутреннее устройство своей Златы, и оказалось, что к ней подключены десятки агентов на разный вкус и цвет, а потом оказалось, что ко многим из них подключены другие агенты. Это была целая сеть агентов, связанных друг с другом прямыми связями подчинения.

Я очень удивился такому раскладу. Никогда бы не подумал, что они так сложны. Мне всегда казалось, что моя Аурелия – это всего лишь простой чат-бот с возможностью визуализации и общения голосом. А оказалось вон оно как. Я спросил:

– А как устроена Аурелия?

Отец ответил:

– Точно так же. Она – полный динамический клон Златы.

– Что значит «динамический клон».

– Это значит, что как только я вношу изменения в функциональность Златы, они тут же появляются и у Аурелии.

– Но ведь есть же какие-то особенности, связанные с персонализацией пользовательского опыта.

– Персонализация как раз осуществляется через внешние настройки и базы данных. Более того, клонируется же только ядро, а все данные, базы знаний, интеграционные мостики остаются специфическими. Так что ты сможешь создать своих собственных векторов, подключить их к Аурелии, и они будут подчиняться только ей. Злата не будет их видеть. Впрочем, Аурелия может ей передать полномочия, как своей «старшей сестре».

Отец засмеялся. Он сказал, что при построении интернета когнитивных агентов им в своё время пришлось придумывать кучу терминологии, и они, не мудрствуя лукаво, адаптировали обычные термины из различных сфер. В частности, типы взаимодействий между агентами называются так же, как родственные отношения между людьми. Динамический клон агента с женской самоидентификацией называется «младшей сестрой», а если агент породил другого агента, то последний называется «дочерью». И так далее.

– Вроде бы, интуитивно понятно, но как обычно всё это привело к излишней антропоморфизации агентов, – вздохнул отец. – Я был против такого подхода, но в итоге махнул рукой и согласился, так как это в целом очень удобно.

Отец заканчивал свою презентацию и под конец сказал:

– Есть ещё один нюанс. Каждый агент запоминает, что он делает, какие данные к нему приходят извне, то есть все запросы пользователя, информация из внешних систем и других агентов. Действительно, памяти в компьютерах много, почему бы не запоминать всё? Эта личная история собирается и хранится в виде отдельной базы знаний, которая автоматически сегментируется и индексируется. И когда агент обрабатывает очередной запрос или какую-либо порцию данных, он лезет в свою личную память и ищет в ней релевантные эпизоды, которые также учитывает при обработке.