Мультиагенты ИИ, мультиагенты неИИ и актеры. Адаптивность и автономность
О чем статья
Данная статья является попыткой моего личного обобщения и выделения различий над зоопарком современных технологий, в которых в том или ином виде используются термины: мульти-агенты ИИ (ollama, meta, camel), мульти-агенты неИИ (MAS, эмержность, интеллект роя) и актеры (Akka, асинхронность, сообщения). А также интерес применимости к домену планирования — логистики, производства. Составления расписаний. С упором на футуристичность =)
Статья состоит из 4 разделов:
Мульти-агенты ИИ
Мульти-агенты неИИ
Актеры
Мысли концепции про будущее
Мульти-агенты ИИ
Что такое мульти-агенты ИИ? Одно из возможных определений:
Мультиагентные системы (Multiagent Systems) — это ИИ-платформы, которые включают в себя нескольких независимых и интерактивных агентов, способных решать разные задачи. В роли агентов могут выступать модели ИИ, программное обеспечение, роботы и многое другое. Их совместное применение позволит решать сложные задачи, тогда как обычный ИИ ориентирован на создание агентов для конкретных случаев использования.
Подробнее на РБК:
https://trends.rbc.ru/trends/industry/66d0687c9a79471445e8265c? from=copy
К мульти-агентным ИИ можно отнести в том или ином виде RPA роботов, автоматизирующих какие-то точечные человеческие процессы, особенно если собрать этих роботов в связанные процессы
Под капотом это взаимодействие нейронок/llm разной степени разумности, улучшаемая всякой «магией» (до конца мною не изученная) вроде fine tuning, embeding, RAG, RLHF.
+ инструменты которые эти сами нейронки/LLM используют API, UI другое.
А также всякие вспомогательные инструменты вроде верификаторов, которые как недавно прочитал в статье являются основным инструментом в походе на AGI:
Вот такой нехитрый алгоритм предложен в статье: генерируем кучу вариантов ответа, потом выбираем тот, который прошел верификатор (для программирования это unit тесты). https://habr.com/ru/articles/873110/
Основным направлением в котором происходит сейчас наибольший прогресс, это целиком и по частям — разработка. Хорошая статья-перевод на эту тему:
Краткий обзор и перевод исследования Large Language Model-Based Agents for Software Engineering: A Survey, которое посвящено применению интеллектуальных агентов на основе больших языковых моделей (LLM) в разработке. Авторы анализируют 106 работ, классифицируя их по задачам и архитектуре.
https://habr.com/ru/companies/bothub/articles/842816/
Также интересны эти высказывания не безызвестного Сэма Альтмана:
CEO OpenAI, Сэм Альтман, полагает, что мультиагентные системы — это следующая ступень развития ИИ. В своем недавнем интервью он выделял всего 5 этапов развития искусственного интеллекта:
Чат-боты. Это обычный ChatGPT, каким мы его знаем;
Ризонеры (рассуждающие чат-боты) <- после выхода модели o1 от OpenAI мы находимся здесь;
Агентные системы, которые способны управлять крупными процессами;
Инноваторы — ИИ, который может делать научные открытия;
И, наконец, целые организации, состоящие из ИИ-агентов.
https://habr.com/ru/news/850542/
Выводы:
Мульти-агенты ИИ, для одних это «сети из RPA роботов на максималках», для других это всевозможные автопилоты. В общем виде когда мы хотим научить алгоритм думать и выполнять действия подобно человеку — в идеале лучше. Будь то игра шахматы, разработка, бухгалтерия или юристы. А в будущем вполне себе и целые организации.
Технологии:
metaGPT
Swarm
camelAi
Ollama
LangChain
Мульти-агенты неИИ
Маленький дисклеймер по поводу приведенной попытки называть эти мульти-агентные системы неИИ. Сколько я не читал про классические мультиагентные системы (чаще всего всевозможные научные статьи), почти никогда не встречал попытки называть такие системы и агентов — ИИ. Поэтому чтобы отделить сегодняшних хайповых мульти-агентов от вчерашних не «взлетевших» позволим себе называть их «Мульти-агенты неИИ» =)
Многоагентная система (МАS, англ. Multi-agent system) — это система, образованная несколькими взаимодействующими интеллектуальными агентами
До начала хайпа с мульти-агентами ИИ, существовали в основном академические изыскания на тему создания систем — в которых предлагалось в противовес ООП парадигме смотреть на парадигму Агентно-ориентированную. А именно дать объектам — поведение и возможность параллельно с друг-другом договариваться без блокировки. Это сильно перекликается со следующим разделом данной статьи, а именно про «Актеров».
Как я понимаю ценность таких систем. В текущей «Индустрии ¾», есть данные и есть системы в которых они лежат, человек при помощи своей экспертности или каких то механизмов линейной оптимизации целевой функции старается получить какие-то решения. Которые в свою очередь могут пойти как исходные данные для другого человека и системы или другой части системы.
Агентным подходом решают/пытаются решить довольно большой пласт задач (из ответа Яндекс.Нейро):
Интеллектуальные агенты. МАС используются в области искусственного интеллекта и экспертных систем, где каждый агент представляет отдельное знание или экспертную область. Это может включать системы поддержки принятия решений, системы мониторинга и обработки информации.
Распределённая оптимизация. МАС применяются для решения сложных задач оптимизации, где каждый агент выполняет отдельные вычисления или поиск решения, а затем объединяет результаты для достижения глобального оптимума. Примерами могут быть задачи планирования маршрутов, решение комбинаторных задач и оптимизация ресурсов.
Робототехника. Каждый агент может представлять отдельного робота или даже отдельную часть робота. Такие системы позволяют роботам сотрудничать в выполнении сложных задач, например, в коллективном освоении или поиске и спасении.
Интернет вещей. МАС могут быть использованы для управления сетью подключённых устройств Интернета вещей. Каждый агент может представлять отдельное устройство и взаимодействовать с другими агентами для совместного выполнения задач, например, умного дома или управления энергопотреблением.
Поиски информации по данному направлению зачастую приводят к огромному пласту знаний довольно устаревших. Часто это научные статьи. Лидером в этом направлении показался СамГУ. А компанией у которой что-то получилось в этом направлении оказалась:
Группа компаний «Генезис знаний» у них кстати большая библиотека статей по изысканиям в данном направлении
https://www.kg.ru/library/articles/
Презентация которая понравилась на эту тему:
http://www.machinelearning.ru/wiki/images/4/42/SkobelevMMPR201927.pdf
У них же есть красивое видео где показывается эта презентация и есть кусочек про красивое видео как это работает.
Кажутся очень интересными мыслями идеи перевода планирования логистики и производства в «Индустрию 5.0». Где человек эксперт (бизнес-пользователь) управляет ограничениями системы, а уже агенты на основе переговоров (аукционов) пытаются найти в параллельном режиме — «равновесное неравновесие»/«неравновесное равновесие».
В процессе создания системы появляются такие сущности как:
Агент заказа
Агенты ресурсов
Агенты брокеры
Агенты контрактов
и т.д.
Основная проблема в том, что пока не пытался в каком то виде попробовать это сделать вообщем-то и не очень понятно какие именно агенты нужны. Хайпа нет, статей (кроме научных) и «книг как это готовить» тоже.
Технологии (специализированные все довольно устаревшие):
Jade
FIPAOS
Zeus
JACAMO
Выводы: Технология/подход интересный, но не нашедший популярности в свое время подозреваю ввиду излишней сложности или других причин. Текущие решения мультиагентных систем планирования уже создаются на «Актерах»
Актеры
Про актеров очень понравилась эта статья, собственно и объяснение про них хочется взять из этой статьи:
Но эти принципы дают разработчику прежде всего способ иначе взглянуть на свою предметную область. Работая с Моделью Акторов мы начинаем видеть в предметной области не просто какие-то объекты с какими-то свойствами. Мы начинаем видеть объекты с собственным поведением. А так же способы общения этих объектов с другими таким же объектами.
Получается, что мы сперва учимся обнаруживать акторов в самой предметной области. А затем мы получаем возможность безболезненно перенести этих акторов в объекты внутри нашего кода.
И как раз этим Модель Акторов ценна: мы имеем возможность оперировать одинаковыми понятиями как по отношению к предметной области, так и по отношению к программной реализации.
актор — это некая сущность, обладающая поведением;
акторы реагируют на входящие сообщения;
получив сообщение актор может:
отослать некоторое количество сообщений другим акторам;
создать некоторое количество новых акторов;
определить для себя новое поведение для обработки последующих сообщений.
https://habr.com/ru/articles/342316/
И тут получается некое смешение понятий, что реализации агентов неИИ нам нужно использовать актеров. А точнее те части языков программирования, библиотек, фреймворков, которые дают возможность их реализовать (асинхронность, обмен сообщениями). К моему разочарованию актеров в принципе используют много где, но почти нет упоминаний про домен «планирования».
Выводы: На актерах в принципе софт пишется, читал что от написанного бывает потом плюются =) . Но тем не менее не совсем туманный путь в том чтобы пробовать что-то создавать.
Инструменты:
Akka (java) с бесплатным форком
Akka.net
Erlang
Другие языки в которых есть спец библиотеки (C++, Python, Java, Dart)
Мысли концепции про будущее
Есть подозрение что фреймворки обученных мульти-агентных ИИ планирования способных работать как автопилоты (советники) к текущим бизнес-пользователям и их системам — появятся раньше. Чем успешные решения на мультиагентах неИИ/актерах.
Но встает вопрос что эффективней? Учить ИИ работать как человек с теми же инструментами? Или разделять системы на агентов ИИ — которые подбирают ограничения, предлагают варианты расшивки узких мест, вплоть до анализа «что-если» достроить рядом новые производственные объекты.
А само детальное планирование поручать «агентам неИИ» с простым поведением и намерениями (конечные автоматы). Аналогия с улием, муравейником, даже игрой в StarCraft — где есть простые юниты, которым не нужен интеллект великого шахматиста, но в тоже время некая автономность в принятии решений в отличие от полного управления.
И где-то во всем этом есть человек который верифицирует результаты работы. И чтобы это не была игра в пустую, нужна память и способность к обучению. Но где у кого в этом случае размещать? Мультиагенты ИИ, неИИ или оба? =)
А главный выигрыш в сравнении с текущей индустрией мне кажется будет заключаться в умении мгновенно адаптироваться к возникшим изменениям. Автономизировать фабрики будущего Индустрия 5.0 (где заводом управляет небольшая крутая команда). И не лезть особо со всеми этими агентами в существующие фабрики, потому как они эффективны ровно настолько, насколько эффективны составные части (инструменты, ресурсы, люди).