{"id":19349373,"url":"https://github.com/koldim2001/mlflow_tracking","last_synced_at":"2025-04-23T06:30:52.547Z","repository":{"id":169843191,"uuid":"645914020","full_name":"Koldim2001/MLflow_tracking","owner":"Koldim2001","description":"Использование MLflow для трекинга экспериментов PyTorch и Sklearn","archived":false,"fork":false,"pushed_at":"2025-03-20T20:11:46.000Z","size":752,"stargazers_count":11,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T09:22:53.530Z","etag":null,"topics":["classification","deep-learning","hyperparameter-search","local-server","minio","mlflow","mlflow-pytorch","mlflow-sklearn","mlflow-tracking-server","postgres"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Koldim2001.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-26T18:38:49.000Z","updated_at":"2025-03-26T20:18:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"b8cc1bf3-34fe-47ad-905c-781d8a1e6d5e","html_url":"https://github.com/Koldim2001/MLflow_tracking","commit_stats":null,"previous_names":["koldim2001/mlflow_tracking"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koldim2001%2FMLflow_tracking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koldim2001%2FMLflow_tracking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koldim2001%2FMLflow_tracking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Koldim2001%2FMLflow_tracking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Koldim2001","download_url":"https://codeload.github.com/Koldim2001/MLflow_tracking/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250384745,"owners_count":21421786,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["classification","deep-learning","hyperparameter-search","local-server","minio","mlflow","mlflow-pytorch","mlflow-sklearn","mlflow-tracking-server","postgres"],"created_at":"2024-11-10T04:25:58.808Z","updated_at":"2025-04-23T06:30:52.537Z","avatar_url":"https://github.com/Koldim2001.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Использование MLflow для трекинга экспериментов PyTorch и Sklearn\n\nMLflow - это инструмент для управления жизненным циклом машинного обучения, который предоставляет разработчикам и исследователям возможность отслеживать, управлять и развертывать модели машинного обучения. Одной из ключевых возможностей MLflow является трекинг экспериментов.  Он позволяет записывать параметры модели, метрики и артефакты (например, веса модели) во время обучения и сохранять их. Это позволяет легко сравнивать различные модели и эксперименты, а также повторять эксперименты с теми же параметрами.\n\n\nMLflow поддерживает множество фреймворков машинного обучения, включая PyTorch и Sklearn. После завершения проведения экспериментов все записанные параметры, метрики и артефакты и сами модели будут сохранены (сохранить данные можно локально на компьютере или с использованием любой базы данных). Данные можно легко просмотреть с помощью удобного веб-интерфейса MLflow или использовать API для доступа.\n\nВарианты поднятия сервиса:\n\n![image](https://github.com/user-attachments/assets/13cda00d-54c5-4554-a76f-9c2ce5a4eb1d)\n\nВ данной **main** ветке представлен пример №3. Как раз тут развернем объектоное хранилище и базу данных с помощью docker-compose. \u003cbr/\u003e\nЕсли вас интересует самый простой вариант для локальной разработки (вариант №1), то его реализацию можете найти в ветке [local_mlflow](https://github.com/Koldim2001/MLflow_tracking/tree/local_mlflow)\n\n---\n\n## Запуск MLFlow + Postgres + MinIO\n\n### Установка переменных окружения\n\nСоздайте файлик `.env`, в который добавьте примерно следующее:\n\n```bash\nPG_USER=mlflow\nPG_PASSWORD=mlflow\nPG_DATABASE=mlflow\nMLFLOW_BUCKET_NAME=mlfow-bucket\nMINIO_ROOT_USER=admin\nMINIO_ROOT_PASSWORD=admin1234\nMLFLOW_S3_ENDPOINT_URL=http://localhost:9000\nMLFLOW_TRACKING_URL=http://localhost:5000\nMLFLOW_AWS_ACCESS_KEY_ID=qwerTY12345\nMLFLOW_AWS_SECRET_ACCESS_KEY=poIuytRewq0987654321qwerty\n```\n\n### Запуск сервисов\n\nВыполните:\n\n```bash\ndocker compose up -d\n```\n\nКогда контейнеры стартанут, на: \n\n* `http://localhost:9001/` будет доступен GUI Minio (логин/пароль – переменные `MINIO_ROOT_USER`/`MINIO_ROOT_PASSWORD` в `.env`);\n* на `http://localhost:5050/` будет доступен GUI MLFlow;\n\n---\n\n### Код репозитория:\n\n \u003e Результаты представлены в формате jupiter notebook: \n \u003e 1) Работа с PyTorch - [test_mlflow_pytorch.ipynb](https://nbviewer.org/github/Koldim2001/MLflow_tracking/blob/main/test_mlflow_pytorch.ipynb)\n \u003e 2) Работа с Sklearn - [test_mlflow_sklearn.ipynb](https://nbviewer.org/github/Koldim2001/MLflow_tracking/blob/main/test_mlflow_sklearn.ipynb)\n\nОтдельно имеется файл [test_s3.ipynb](https://github.com/Koldim2001/MLflow_tracking/blob/main/test_s3.ipynb) с примером того, как работать с MinIO. Для этого я сначала создал бакет test-bucket при запуске компоуза и теперь могу все что угодно в него класть и из него получать.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoldim2001%2Fmlflow_tracking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkoldim2001%2Fmlflow_tracking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoldim2001%2Fmlflow_tracking/lists"}