Документация к Аналитической системе мониторинга моделей машинного обучения Lyra
, разработанной на хакатоне «Цифровой Прорыв», Северо-Западный хаб, заказчик решения - АО ГазПромБанк.
Проект Lyra
- веб-приложение для мониторинга пилотных или промышленных ML-моделей, которое позволяет тестировать, контролировать и мониторить различные ML-модели банка, отслеживать и улучшать параметры, напрямую влияющие на прибыль и бизнес-процессы банка. Решение позволяет проводить А/Б тесты на различных моделях и датасетах, поддерживать версионность и гибко оценивать результаты.
Наш продукт уникален удобным интерфейсом (дашбордом) со всеми ключевыми метриками, настраиваемостью нашей модели под различные типы алгоритмов и параметров, масштабируемостью и отказоустойчивостью, а также возможностью выбора источника моделей и данных (загрузка в систему или API) + мониторингом данных в real-time с уведомлениями при деградации метрик модели.
Стек проекта: Python (Sklearn, Tensorflow, Flask), PostgreSQL, VueJS, Docker, Prometeus.
У нас есть рабочая MVP-версия (минимально работоспособная версия продукта), которая не только обладает удобным интерфейсом, но достаточным функционалом, чтобы провести анализ несложной модели. Мы запустили ее на внешнем сервере. Данные для входа - admin
/admin
.
Спасибо организаторам за интересную задачу, мы будем рады продолжить сотрудничество!
Т.к. в проекте используется микросервисная архитектура, большая часть сервисов доступна для скачивания в виде контейнеров в реджистри от GitHub.
Для локального развертывания решения необходимо авторизаваться в GitHub Package Registry по иснструкции и в корне проекта выполнить команду docker-compose up --build
Важно, что у вас должен быть установлен и запущен Docker
.
После того, как установка всех необходимых зависимостей будет выполнена, вы сомжете потестировать систему локально по ссылке http://localhost/
Проект представляет собой монорепозиторий. Ниже структура директорий:
.
├── Makefile
├── README.md
├── back
│ ├── auth
│ └── model
├── docker-compose.yaml
├── env
│ ├── LICENSE.md
│ ├── bin
│ ├── include
│ ├── lib
│ └── pyvenv.cfg
├── front
│ ├── Dockerfile
│ ├── Makefile
│ ├── README.md
│ ├── babel.config.js
│ ├── nginx
│ ├── package-lock.json
│ ├── package.json
│ ├── postcss.config.js
│ ├── public
│ ├── src
│ ├── tailwind.config.js
│ └── vue.config.js
├── infra
│ ├── __init__.py
│ ├── env
│ ├── metrics
│ ├── postgres
│ ├── runner
│ └── traefik
└── ml
├── Makefile
├── README.md
├── __init__.py
├── __pycache__
├── bin
├── data
├── data_preparation.ipynb
├── lyra_tracker
├── models_selection.ipynb
├── requirements.txt
└── scripts
Исходный код серверной части — в папке back
, исходный код браузерной части приложения — в папке front
. Кроме того, данные по разработке модели в директории ml
, а данные по инфраструктурным вопросам в infra
Каждая директория по возможности содержит README.md
файл с описанием и Makefile
с базовыми командами.
Приложение состоит из 7 микро-сервисов, включая сервис авторизации, сервис моделей, сервис сбора метрик, сервис-ui и т.д. ML модели размещены отдельно и запускаются в docker-контейнерах в требуемом окружении.
т.к. githib не дает залить файл с агрегатами, которые составляют размером больше 100MB - то перед запуском ml-модели необходимо скопировать первоначальные данные и поместить их в папку
ml/data/
- файлыaggregates.csv
иtransactions.csv
, расположенные по адресу https://drive.google.com/drive/folders/1f3UrqjxycMYfGS776AZrkX1xqUM933Ph
- Прототип проекта, т.е. рабочая MVP-версия (минимально работоспособная версия продукта). Доступы для входа -
admin
/admin
- Предварительная смета общих затрат по разработке полноценной версии проекта.