17 подписчиков
Установка и настройка MLFlow с PostgreSQL и структурой проекта
MLflow — это открытая платформа для управления жизненным циклом машинного обучения, включая экспериментирование, воспроизведение и развертывание моделей. Предоставляет инструменты для отслеживания экспериментов, управления моделями и их развертыванием, а также для создания и управления проектами машинного обучения.
Шаг 1: Установка PostgreSQL
sudo apt install postgresql postgresql-contrib
Шаг 2: Создание пользователя и базы данных PostgreSQL
Переключаемся на пользователя postgres:
sudo -i -u postgres
Входим в командную строку PostgreSQL:
psql
Создаём нового пользователя для MLFlow и задаём пароль:
CREATE USER mlflow_user WITH PASSWORD 'password';
Создаём базу данных и назначаем владельца:
CREATE DATABASE mlflow_db OWNER mlflow_user;
Шаг 3: Настройка аутентификации (опционально)
Откройте конфигурационный файл PostgreSQL для изменения метода аутентификации:
sudo nano /etc/postgresql/14/main/pg_hba.conf
Замените строку аутентификации peer на md5 для перехода к проверке паролей:
local all all md5
После внесения изменений перезапустите PostgreSQL:
sudo systemctl restart postgresql
Шаг 4: Установка пакетов
pip install mlflow psycopg2-binary
Шаг 5: Запуск MLFlow
mlflow server --backend-store-uri=postgresql://mlflow_user:password@127.0.0.1:5432/mlflow_db --default-artifact-root file://$(pwd)/artifacts --host 127.0.0.1 --port 8080
* backend-store-uri указывает на PostgreSQL базу данных, где хранятся метаданные экспериментов.
* default-artifact-root задаёт корневую папку для хранения артефактов.
* host и port указывают адрес и порт для локального доступа.
Шаг 6: Структура проекта MLFlow
mlflow_project/
├── data/
│ ├── raw/ # Необработанные данные, загруженные из источника.
│ ├── processed/ # Обработанные данные, подготовленные для обучения модели.
│ └── external/ # Внешние данные, которые могут быть использованы в проекте.
├── notebooks/
│ ├── exploratory/
│ │ ├── 01_data_exploration.ipynb # Ноутбук для исследовательского анализа данных.
│ │ └── 02_feature_analysis.ipynb # Ноутбук для анализа и выбора признаков.
│ ├── experiments/
│ │ ├── 01_experiment_baseline.ipynb # Ноутбук для базового эксперимента с моделью.
│ │ └── 02_experiment_hyperparameter_tuning.ipynb # Ноутбук для настройки гиперпараметров модели.
│ └── production/
│ ├── 01_model_deployment.ipynb # Ноутбук для развертывания модели в production.
│ └── 02_model_monitoring.ipynb # Ноутбук для мониторинга работы модели в production.
├── src/
│ ├── data/
│ │ ├── __init__.py # Пустой файл для инициализации пакета.
│ │ ├── load_data.py # Функции для загрузки данных из различных источников.
│ │ └── preprocess_data.py # Функции для предварительной обработки данных.
│ ├── models/
│ │ ├── __init__.py # Пустой файл для инициализации пакета.
│ │ ├── train_model.py # Функции для обучения модели.
│ │ └── evaluate_model.py # Функции для оценки производительности модели.
│ └── utils/
│ ├── __init__.py # Пустой файл для инициализации пакета.
│ └── helper_functions.py # Вспомогательные функции, используемые в проекте.
├── experiments/
│ └── mlruns/ # Папка для хранения локальных экспериментов (если не указано хранилище артефактов).
├── artifacts/ # Папка для хранения артефактов (моделей, данных и т.д.), созданных в ходе экспериментов.
├── requirements.txt # Файл с зависимостями проекта.
├── README.md # Файл с описанием проекта, инструкциями по запуску и т.д.
├── MLproject # Файл, описывающий MLflow проект.
└── conda.yaml # Файл, описывающий окружение проекта.
#MLOps
3 минуты
18 сентября 2024