Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/koldim2001/mlflow_tracking
Использование MLflow для трекинга экспериментов PyTorch и Sklearn
https://github.com/koldim2001/mlflow_tracking
classification deep-learning hyperparameter-search local-server mlflow mlflow-pytorch mlflow-sklearn mlflow-tracking-server
Last synced: about 1 month ago
JSON representation
Использование MLflow для трекинга экспериментов PyTorch и Sklearn
- Host: GitHub
- URL: https://github.com/koldim2001/mlflow_tracking
- Owner: Koldim2001
- Created: 2023-05-26T18:38:49.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-02T12:18:49.000Z (about 2 months ago)
- Last Synced: 2024-11-02T12:20:32.845Z (about 2 months ago)
- Topics: classification, deep-learning, hyperparameter-search, local-server, mlflow, mlflow-pytorch, mlflow-sklearn, mlflow-tracking-server
- Language: Jupyter Notebook
- Homepage:
- Size: 517 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Использование MLflow для трекинга экспериментов PyTorch и Sklearn
MLflow - это инструмент для управления жизненным циклом машинного обучения, который предоставляет разработчикам и исследователям возможность отслеживать, управлять и развертывать модели машинного обучения. Одной из ключевых возможностей MLflow является трекинг экспериментов. Он позволяет записывать параметры модели, метрики и артефакты (например, веса модели) во время обучения и сохранять их. Это позволяет легко сравнивать различные модели и эксперименты, а также повторять эксперименты с теми же параметрами.
MLflow поддерживает множество фреймворков машинного обучения, включая PyTorch и Sklearn. После завершения проведения экспериментов все записанные параметры, метрики и артефакты и сами модели будут сохранены (сохранить данные можно локально на компьютере или с использованием любой базы данных). Данные можно легко просмотреть с помощью удобного веб-интерфейса MLflow или использовать API для доступа.
Варианты поднятия сервиса:
![image](https://github.com/user-attachments/assets/13cda00d-54c5-4554-a76f-9c2ce5a4eb1d)
В данной **main** ветке представлен пример №3. Как раз тут развернем объектоное хранилище и базу данных с помощью docker-compose.
Если вас интересует самый простой вариант для локальной разработки (вариант №1), то его реализацию можете найти в ветке [local_mlflow](https://github.com/Koldim2001/MLflow_tracking/tree/local_mlflow)---
## Запуск MLFlow + Postgres + MinIO
### Установка переменных окружения
Создайте файлик `.env`, в который добавьте примерно следующее:
```bash
PG_USER=mlflow
PG_PASSWORD=mlflow
PG_DATABASE=mlflow
MLFLOW_BUCKET_NAME=mlfow-bucket
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=admin1234
MLFLOW_S3_ENDPOINT_URL=http://localhost:9000
MLFLOW_TRACKING_URL=http://localhost:5000
MLFLOW_AWS_ACCESS_KEY_ID=qwerTY12345
MLFLOW_AWS_SECRET_ACCESS_KEY=poIuytRewq0987654321qwerty
```### Запуск сервисов
Выполните:
```bash
docker-compose up -d
```Когда контейнеры стартанут, на:
* `http://localhost:9001/` будет доступен GUI Minio (логин/пароль – переменные `MINIO_ROOT_USER`/`MINIO_ROOT_PASSWORD` в `.env`);
* на `http://localhost:5050/` будет доступен GUI MLFlow;---
### Код репозитория:
> Результаты представлены в формате jupiter notebook:
> 1) Работа с PyTorch - [test_mlflow_pytorch.ipynb](https://nbviewer.org/github/Koldim2001/MLflow_tracking/blob/main/test_mlflow_pytorch.ipynb)
> 2) Работа с Sklearn - [test_mlflow_sklearn.ipynb](https://nbviewer.org/github/Koldim2001/MLflow_tracking/blob/main/test_mlflow_sklearn.ipynb)Отдельно имеется файл [test_s3.ipynb](https://github.com/Koldim2001/MLflow_tracking/blob/main/test_s3.ipynb) с примером того, как работать с MinIO. Для этого я сначала создал бакет test-bucket при запуске компоуза и теперь могу все что угодно в него класть и из него получать.