Платформа прикладного ИИ ALLY Tech AI представляет собой контейнер-ориентированную архитектуру, связывающую микросервисы, упакованные в docker контейнеры. Платформа поделена на модули, которые представляют из себя несколько контейнеров, объединенных в pod’ы. Оркестрация контейнерами выполняется с использованием Kubernetes – Программного обеспечения с открытым исходным кодом.
В микросервисной архитектуре приложение разбивается на ряд независимо развертываемых сервисов, которые взаимодействуют друг с другом. Благодаря такому подходу каждый отдельный сервис можно развертывать и масштабировать независимо от других. В отличие от монолитного приложения, микросервисная архитектура дает возможность быстро вносить изменения без необходимости переписывать большие фрагменты существующего кода.
Подробно архитектура представлена в разделе Схема архитектуры ALLY Tech AI.
Основными составляющими являются:
- Apache Kafka – брокер сообщений, который обеспечивает обмен данными между модулями Системы, а также передает результат работы одного модуля к другому.
- СУБД – система управления базами данных. В BAUM AI используются MongoDB и PostgreSQL.
- Файловое хранилище – NFS или распределенное.
- Подсистема графического интерфейса – программный модуль GUI.
- Подсистема управления данными состоящая из:
- Socket-io – модуль, обеспечивающий обмен данными между сервисами Системы в режиме реального времени. Socket обеспечивает двустороннюю передачу данных (преимущественно рабочие области и раздел данные на платформе)
- Rest-async – модуль, обеспечивающий асинхронное, параллельное выполнение операций при обмене данными между сервисами
- Модуля управления пользователями
- Подсистема логирования и мониторинга, содержащая:
- Модуль логирования
- Модуль мониторинга аппаратной части
- Подсистема обработки данных, содержащая:
- Модуль препроцессинга данных
- Менеджер файлов
- Конвейер приложений – модуль внутри API Системы, с помощью которого можно создавать новые приложения, используя готовые обученные модели. Это своего рода упаковщик приложения, получаемого в результате работы исполнителя.
- Подсистема взаимодействия с внешними источниками данных – модуль, отвечающий за интеграции с внешними БД через шлюз передачи данных
- Подсистема конструктора ИИ, содержащая:
- Менеджер пайплайнов – модуль для работы с блок схемами, управляющий исполнителями задач.
- Подсистема исполнителя задач:
- Менеджер запуска – модуль обрабатывающий задачи на запуск пайплайнов
- Исполнитель задач – запускает блоки пайплайна. Задачи получает от менеджера пайплайнов – получает на вход идентификатор блока. В системе присутствует несколько исполнителей задач, по которым менеджер пайплайнов распределяет задачи. Результат работы исполнитель возвращает обратно менеджеру.
- Подсистема искусственного интеллекта тесно взаимодействует с подсистемой конструктора искусственного интеллекта, состоит из:
- Библиотек и алгоритмов машинного обучения
- Библиотек нейронных сетей и глубокого обучения
- Модуля анализа данных
- Подсистема визуализации и формирования отчетов, состоящая из
- Модуля визуализации, позволяющего представлять данные в виде графиков, изображений и таблиц
- Модуль сообщений и модуль истории изменений