Автор: Сергей Лукьянчиков, инженер-консультант InterSystems
Что такое распределенный искусственный интеллект?
Попытки найти «железное» определение ничего не дали: видимо, концепция немного «опередила свое время».Но можно попробовать семантически проанализировать само понятие — тогда окажется, что распределенный искусственный интеллект — это тот же ИИ (см.
наши попытки дать «прикладное» определение), только оно тоже распределено по нескольким компьютерам, не объединенным в единый вычислительный кластер (ни по данным, ни по приложениям, ни по доступу к отдельным компьютерам в принципе).
То есть в абсолютном выражении распределенный искусственный интеллект должен быть распределен таким образом, чтобы ни один из компьютеров, участвующих в этом «распределении», не смог получить прямой доступ ни к данным, ни к приложениям других компьютеров: единственная альтернатива — передача фрагментов данных или сценариев приложений посредством «явных» сообщений.
Любые отклонения от этого абсолюта теоретически приводят к появлению «частично распределенного искусственного интеллекта» — например, данные распределены, но сервер приложений общий.
Или наоборот. Так или иначе, на выходе мы получаем набор «объединённых» моделей (то есть либо обученных на собственном источнике данных, либо обученных на собственном алгоритме, либо «обе вместе»).
Распределенные сценарии ИИ «для масс»
Мы не будем говорить о периферийных вычислениях, операторах конфиденциальных данных, поисковых запросах на мобильных телефонах и подобных интересных, но не самых (пока) сценариях, сознательно применяемых к широкому кругу пользователей.Например, следующий сценарий может стать гораздо более «жизненным» (можно и нужно провести детальную демонстрацию).
посмотреть здесь ): на предприятии работает продуктивное AI/ML-решение, качество его работы должно систематически контролироваться внешним специалистом по данным (т.е.
экспертом, не являющимся сотрудником предприятия).
Предприятие не может предоставить дата-сайентисту доступ к решению (по разным причинам), но может отправить ему выгрузку записей из конкретной таблицы по заданному расписанию или при наступлении определенного события (например, завершения следующий сеанс обучения одной или нескольких моделей решения).
Предполагается, что дата-сайентист владеет некоторой версией механизмов AI/ML, которые интегрированы в продуктивное решение, работающее на предприятии — скорее всего, дата-сайентист сам разрабатывает эти механизмы, совершенствует их и адаптирует под конкретную задачу конкретное предприятие.
Дата-инженер (который является сотрудником предприятия) отвечает за размещение этих механизмов в продуктивном решении, мониторинг их работы и других аспектов жизненного цикла.
Мы привели пример размещения продуктивного решения AI/ML на платформе InterSystems IRIS, которое автономно работает с потоком данных, поступающим от оборудования в Эта статья .
Такое же решение появляется и в демонстрации, ссылка на которую дана в абзаце выше.
Вы можете самостоятельно создать прототип решения на платформе InterSystems IRIS, используя материалы (бесплатно и без ограничения по времени) нашего портала-репозитория.
разделы Ссылки на необходимые загрузки И Корневые ресурсы ).
Какую «степень распределенного» ИИ мы получим в таком сценарии? На наш взгляд, в этом сценарии мы близки к абсолюту, поскольку дата-сайентист «отрезан» как от данных (только небольшая выборка — хотя и важна на данный момент), так и от алгоритмов предприятия (собственные данные дата-сайентиста).
консервы» не на 100% воспроизводят «живые» механизмы, расположенные и работающие в продуктивном решении в реальном времени), и вообще от доступа к ИТ-инфраструктуре предприятия.
Таким образом, задача дата-сайентиста сводится к тому, чтобы частично воспроизвести на своих локальных вычислительных ресурсах эпизод функционирования продуктивного AI/ML-решения предприятия, получить приемлемую правдоподобную оценку качества этого функционирования — и передать обратную связь в предприятие (выраженное в данном конкретном случае через результаты «аудита» функционирования решения и, возможно, улучшенной версии того или иного механизма AI/ML, задействованного в корпоративном решении).
Рисунок 1. Формулировка сценария распределенного ИИ Из публикаций о современных инструментах и уже имеющейся в мире практике внедрения распределенного ИИ мы знаем, что обратная связь не обязательно может формироваться и передаваться между людьми, участвующими в обмене артефактами ИИ.
Но преимущество платформы InterSystems IRIS в том, что она позволяет с одинаковой эффективностью разрабатывать и запускать как «гибридные» (человек в тандеме с машиной), так и полностью автоматизированные сценарии применения ИИ — поэтому продолжим наш анализ на «гибридном» примере.
описано выше, оставляя читателю возможность самостоятельно отработать его полную автоматизацию.
Как работает конкретный сценарий распределенного ИИ на платформе InterSystems IRIS
Вводная часть Наше видео, демонстрирующее сценарий, описанный в предыдущем разделе статьи, дает общее представление о InterSystems IRIS как платформе AI/ML реального времени и поддержке платформой макрофункционала DevOps. Демонстрация не показывает явно бизнес-процесс «на стороне предприятия», который отвечает за систематическую передачу набора обучающих данных внешнему специалисту по данным, поэтому мы начнем с краткого анализа этого бизнес-процесса и его механизмов.Основной «единицей» бизнес-процесса передачи данных является цикл while (реализуется с помощью визуального редактора бизнес-процессов с использованием нотации, интерпретируемой платформой InterSystems IRIS).
БПЛ ), обеспечивающий систематическую передачу набора обучающих данных внешнему специалисту по данным.
Внутри этого «агрегата» реализованы следующие действия (см.
схему, опуская действия для обеспечения согласованности данных):
Рисунок 2. Основной фрагмент бизнес-процесса «кормления» (а) Анализатор нагрузки – загрузка в бизнес-процесс текущего набора записей из таблицы наборов обучающих данных и формирование на его основе датафрейма в рабочей сессии Python. Действие типа call (вызов) запускает SQL-запрос к СУБД InterSystems IRIS и вызывает интерфейс среды Python для передачи в него результата SQL-запроса для формирования кадра данных; (б) Анализатор 2 Azure — еще одно действие вызова, запускает вызов интерфейса среды Python для передачи в него набора инструкций Azure ML SDK для Python для формирования необходимой инфраструктуры в Azure и размещения данных из датафрейма, созданного в предыдущем действии.
в эту инфраструктуру; В результате выполнения вышеописанных действий бизнес-процесса в Azure появляется хранимый объект (csv-файл), содержащий загрузку последнего набора данных, используемого продуктивным корпоративным решением для обучения моделей:
Рис.
3. Прибытие набора обучающих данных в Azure ML На этом основная часть бизнес-процесса «кормления» заканчивается, но нужно выполнить одно заключительное действие, учитывая, что наличие любых вычислительных ресурсов, которые мы создаем в Azure ML, оплачены (см.
схему, пропуская этапы для обеспечения согласованности данных):
Рисунок 4. Завершающий фрагмент бизнес-процесса «кормления» (c) Очистка ресурсов — запускает вызов интерфейса среды Python для передачи ему набора инструкций Azure ML SDK для Python для удаления вычислительной инфраструктуры, созданной на предыдущем шаге, из Azure. Передача необходимых для дата-сайентиста данных завершена (набор данных находится в Azure), теперь нужно запустить бизнес-процесс «снаружи», который бы получил доступ к набору данных и обучил хотя бы одну альтернативу.
модель на ней (алгоритмически эта альтернативная модель не будет идентична той, которая работает в продуктивном решении) и будет возвращать специалисту по данным результирующие метрики качества модели плюс визуализации, позволяющие сделать «аудиторское заключение» о эффективность продуктивного решения на предприятии.
Давайте посмотрим, как структурирован бизнес-процесс приемника: он не требует цикла while, как бизнес-процесс передатчика (часть семейства процессов автономно работающего решения AI/ML на предприятии), но включает в себя ряд действия, связанные с обучением в Azure ML и в IntegratedML (функционал для использования фреймворков авто-ML в InterSystems IRIS) альтернативных моделях и извлечением результатов этого обучения в InterSystems IRIS (платформа InterSystems IRIS устанавливается локально специалистом по данным):
Рисунок 5 Бизнес-процесс «Приемка» (a) Импортировать модули Python – запускает вызов интерфейса среды Python для отправки ему команд для загрузки модулей Python, необходимых для дальнейших действий; (б) Установить параметры АУДИТОРА – запускает вызов интерфейса среды Python для отправки ему команд для присвоения значений по умолчанию переменным, необходимым для дальнейших действий; (c) Аудит с помощью Azure ML — (мы больше не упоминаем вызов интерфейса среды Python) перенос «задачи аудита» в Azure ML; (d) Интерпретация Azure ML — получение данных, помещенных в Azure ML бизнес-процессом передатчика, в локальный рабочий сеанс Python вместе с результатами «аудита» в Azure ML (а также создание визуализации результатов «аудита»).
в рабочей сессии Python); (e) Поток в IRIS — извлечение данных, помещенных в Azure ML бизнес-процессом передатчика, вместе с результатами «аудита» в Azure ML из рабочего сеанса Python в переменную бизнес-процесса IRIS; (f) Заполнение IRIS — запись данных, помещенных в Azure ML бизнес-процессом передатчика, вместе с результатами «аудита» в Azure ML из переменной бизнес-процесса IRIS в таблицу IRIS; (g) Аудит с помощью IntegratedML — «аудит» данных, полученных из Azure ML вместе с результатами «аудита» в Azure ML и записанных в IRIS на предыдущем этапе, с использованием функционала IntegratedML (в данном конкретном случае он контролирует платформа автоматического машинного обучения H2O); (h) Запрос к Python – передача данных и результатов «аудита» в рабочий сеанс Python с использованием IntegratedML; (i) Интерпретация IntegratedML – создание визуализации результатов «аудита» с использованием IntegratedML в рабочем сеансе Python; (k) Очистка ресурсов — удаление из Azure вычислительной инфраструктуры, созданной на предыдущих этапах.
Рис.
6. Визуализация результатов «аудита» в Azure ML
Рис.
7. Визуализация результатов «аудита» в IntegratedML
Как распределенный ИИ обычно реализуется на платформе InterSystems IRIS
Платформа InterSystems IRIS позволяет применить три основных подхода к реализации распределенного ИИ:- Прямой обмен артефактами ИИ при их локальной и централизованной обработке по правилам и алгоритмам, самостоятельно определяемым пользователем.
- Обработка артефактов ИИ делегируется специализированным фреймворкам (например: TensorFlow, PyTorch), оркестровка обмена и вспомогательные действия настраиваются на локальном и центральном экземпляре InterSystems IRIS пользователем самостоятельно.
- И обмен артефактами ИИ, и их обработка осуществляются через облачных провайдеров (Azure, AWS, GCP), локальные и центральные экземпляры InterSystems IRIS лишь передают исходные данные облачному провайдеру и получают от него конечный результат.
Рисунок 8. Основные подходы к реализации распределенного ИИ на платформе InterSystems IRIS Эти базовые подходы могут использоваться с различными модификациями и/или в сочетании друг с другом: в частности, при реализации конкретного сценария («аудита»), описанного в предыдущем разделе статьи, используется третий, «облачный» подход. используется с разделением самого «аудита» на облачную часть и локальную часть, выполняемую на стороне data science-«аудитора» (он же «центральный орган»).
Теоретические и прикладные элементы, из которых сегодня прямо на наших глазах формируется дисциплина «распределенный искусственный интеллект», еще не приобрели «каноническую форму», что создает значительный потенциал для инноваций в практической реализации.
Наша команда экспертов внимательно следит за развитием распределенного ИИ как дисциплины и создает акселераторы для его внедрения на платформе InterSystems IRIS. Мы будем рады поделиться нашей работой и помочь всем, кто интересуется этой темой, начать прототипировать распределенные механизмы ИИ.
Контактный адрес электронной почты нашей группы экспертов по AI/ML – [email protected] .
Теги: #Машинное обучение #искусственный интеллект #ИИ #мл #Распределенные системы #платформа #распределенный интеллект
-
Послание Будущему Программисту
19 Oct, 24 -
Редактор Плейлистов Mplayer
19 Oct, 24