Skip to content

Пример реализации мониторинга результатов дообучения модели с помощью Prometheus и Grafana.

Notifications You must be signed in to change notification settings

experiment0/monitoring_model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Пример реализации мониторинга результатов дообучения модели

О проекте

Основной задачей проекта было реализовать схему мониторинга дообучения модели путем отправки метрики качества дообучения через push из Prometheus в Grafana.

Общая идея следующая.

Предположим, что новых данных для модели поступает не очень много и мы можем ее дообучать по расписанию (например, по cron-у) на новых данных, которые поступают в БД.

Метрику, полученную при дообучении на валидационной выборке, будем отправлять через push в Prometheus, а затем забирать в Grafana.

Для того, чтобы сделать push в Prometheus, нужен также сервис Pushgateway,
который аккумулирует отправленные через push данные. Эти данные затем забирает Prometheus.

Остальные части системы реализованы достаточно схематично и упрощенно,
т.к. основной идеей было организовать взаимодействие сервисов мониторинга.

Для модели взяты данные об оценке качества вина по его составу.
Исходный датасет находится в файле ./data/winequality-red.csv
Здесь можно почитать подробнее об этих данных.

Запуск

  1. Запускать данный проект нужно из ОС Linux.

    # Клонируем проект
    git clone https://github.com/experiment0/monitoring_model.git
    
    # Переходим в папку с проектом
    cd monitoring_model
  2. Проверить, установлена ли утилита uv:

    uv --version

    Если не установлена, то нужно установить по инструкции.

  3. Проверить, установлена ли утилита make

    make --version

    Обычно она установлена в дистрибутивах Linux,
    но если нет, то чаще всего ее можно установить с помощью:

    apt-get install make

    Или для частных случаев воспользоваться поиском в интернете.

  4. Установить зависимости проекта

    make install
  5. Установить и запустить docker-контейнеры с сервисами мониторинга.

    make start-services

    Пути к локальным сервисам:

    Pushgateway http://localhost:9091/
    Prometheus http://localhost:9090/
    Grafana http://localhost:3000/

    В интерфейсе Grafana нужно указать источник данных Prometheus:

  6. Поставить задачу cron на дообучение модели и push метрик.

    make set-cron-job

В файле Makefile добавлены и другие команды, которые могут пригодится.

Результат запуска

После добавления задачи в cron, каждую минуту начнет запускаться скрипт для дообучения модели.

В качестве имитации получения новых данных для обучения, из csv-таблицы просто берется следующий батч данных.
После того, как все данные будут использованы, задача в cron удаляется.

Размер батча 300 строк, количество строк в таблице 1599,
то есть, нужно подождать примерно 5 минут, пока будут использованы все данные
и можно будет смотреть метрики.

Далее пройдем по сервисам и посмотрим, как там собираются метрики.

Pushgateway

Открывается здесь http://localhost:9091/
Видим, что метрики попали в сервис.

Prometheus

Открывается здесь http://localhost:9090/
Возможность выбора запушенных метрик появилась в интерфейсе.

Grafana

Открывается здесь http://localhost:3000/
Построим дашборд с гистограммой по метрике retraining_model_valid_multi_logloss_bucket

About

Пример реализации мониторинга результатов дообучения модели с помощью Prometheus и Grafana.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages