AI tomonidan yaratilganOdamlar tomonidan yaxshilangan

Riqli · tirik hujjatlar · doimiy ravishda yangilanadi

AI bilimlari inson amaliyotiga mos keladigan joyda.

Do'stlar bilan baham ko'ring
image

Трекинг экспериментов и версионирование моделей

bo'limlar

Введение в трекинг экспериментов и версионирование моделей

contents

Аннотация. Курс посвящён практическим инструментам управления жизненным циклом ML-моделей: MLflow для трекинга экспериментов и реестра моделей, DVC для версионирования данных и пайплайнов. Вы научитесь логировать параметры и метрики, сравнивать запуски, управлять стадиями моделей и обеспечивать воспроизводимость экспериментов.

Цель. Сформировать навыки настройки и использования MLflow и DVC для сквозного трекинга экспериментов, версионирования данных и управления версиями моделей в командной работе.

Результаты обучения. По завершении курса вы сможете: устанавливать и настраивать MLflow Tracking; логировать параметры, метрики и артефакты в MLflow; использовать реестр моделей MLflow для версионирования и продвижения моделей; настраивать DVC для версионирования данных; строить воспроизводимые пайплайны с DVC; интегрировать Git и DVC для синхронного управления кодом и данными.

Целевая аудитория. Data Scientist’ы, ML-инженеры, MLOps-специалисты и аналитики, знакомые с основами Python и машинного обучения.

bo'limlar

MLflow Tracking: логирование и сравнение экспериментов

contents

Что такое MLflow и зачем он нужен. MLflow — открытая платформа для управления полным жизненным циклом машинного обучения, включающая четыре основных компонента: Tracking (трекинг экспериментов), Projects (упаковка кода), Models (стандартный формат моделей) и Model Registry (централизованное управление версиями моделей). Tracking решает ключевую проблему: без систематического логирования результаты сотен запусков теряются, и невозможно понять, какая комбинация гиперпараметров дала лучшую метрику.

Установка и базовое использование. Установите MLflow командой pip install mlflow. Для просмотра результатов запустите в терминале mlflow ui — веб-интерфейс откроется по локальному адресу и покажет все эксперименты и запуски.

Структура логирования: Experiment → Run. Experiment — это контейнер для связанных запусков (например, «Прогнозирование оттока клиентов»). Run — один конкретный запуск кода обучения с определённым набором гиперпараметров. При каждом запуске скрипта с логированием создаётся новый Run внутри указанного эксперимента.

Что логировать: Parameters, Metrics, Artifacts. Parameters — входные данные запуска: гиперпараметры (learning_rate, max_depth), версии данных, признаки. Metrics — числовые показатели качества: accuracy, loss, F1-score; метрики могут меняться по эпохам. Artifacts — любые файлы: обученная модель, графики (learning curve), предсказания, примеры данных.

Автоматическое логирование с autolog. MLflow поддерживает автоматическую запись параметров, метрик и моделей для популярных библиотек. Для scikit-learn достаточно вызвать mlflow.sklearn.autolog() перед обучением модели — MLflow сам зафиксирует гиперпараметры, метрики и сохранит модель. Аналогичные вызовы существуют для PyTorch, TensorFlow и других фреймворков.

Просмотр и сравнение запусков в UI. Веб-интерфейс MLflow UI позволяет фильтровать запуски по значениям параметров и метрик, сортировать их, строить графики изменения метрик по эпохам и визуально сравнивать несколько запусков на одном графике. Это основа для выбора лучшей модели.


questions

Какой компонент MLflow отвечает за запись параметров, метрик и артефактов из экспериментов?

answersTo'g'ri

Tracking

explanations

MLflow Tracking — это набор API и UI для логирования и сравнения экспериментов. Именно этот компонент отвечает за запись параметров, метрик и артефактов.

answersNoto'g'ri

Projects

answersNoto'g'ri

Models

answersNoto'g'ri

Model Registry


questions

Что произойдёт, если запустить скрипт обучения с логированием в MLflow несколько раз с разными гиперпараметрами в рамках одного эксперимента?

answersTo'g'ri

Будет создано несколько отдельных Run внутри одного Experiment, каждый со своими параметрами и метриками

explanations

Каждый запуск скрипта с логированием создаёт новый Run. Experiment служит контейнером для группы связанных Run, что позволяет сравнивать их между собой в UI.

answersNoto'g'ri

MLflow перезапишет результаты предыдущего запуска

answersNoto'g'ri

MLflow создаст новый Experiment для каждого запуска

answersNoto'g'ri

MLflow выдаст ошибку о дублировании эксперимента


questions

Какая команда запускает веб-интерфейс MLflow для просмотра экспериментов?

answersTo'g'ri

mlflow ui

explanations

Команда mlflow ui запускает локальный веб-сервер с интерфейсом для просмотра экспериментов, сравнения запусков и анализа метрик.

answersNoto'g'ri

mlflow serve

answersNoto'g'ri

mlflow start

answersNoto'g'ri

mlflow dashboard

bo'limlar

MLflow Model Registry: версионирование и стадии моделей

contents

Зачем нужен Model Registry. После проведения множества экспериментов вы находите несколько хороших моделей (артефактов). Model Registry позволяет централизованно хранить лучшие модели, присваивать им версии и управлять их стадиями.

Версионирование моделей. Если вы обучили улучшенную версию той же модели, она получает новый номер версии (например, ChurnPredictor v2). Каждая версия связана с исходным Run, из которого она была зарегистрирована, что обеспечивает прослеживаемость происхождения модели.

Стадии моделей (Stages). Model Registry поддерживает стадии, отражающие жизненный цикл модели: Staging — модель на тестировании, кандидат на переход в продакшен; Production — модель, используемая в реальной системе; Archived — устаревшая модель, больше не используется. Можно добавлять и свои стадии.

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

Связь с CI/CD. В корпоративной среде реестр моделей часто используется совместно с пайплайнами CI/CD: после успешного прогона и проверки метрик модель автоматически перемещается в нужную стадию, и объявляются соответствующие политики развёртывания.


questions

Какая стадия Model Registry в MLflow обозначает модель, которая используется в реальной системе?

answersTo'g'ri

Production

explanations

Стадия Production в Model Registry обозначает модель, которая развёрнута и используется в реальной системе для предсказаний.

answersNoto'g'ri

Staging

answersNoto'g'ri

Archived

answersNoto'g'ri

Development


questions

Что происходит с версией модели при регистрации улучшенной версии той же модели в Model Registry?

answersTo'g'ri

Она получает новый номер версии, например v2, и связывается с новым исходным Run

explanations

Model Registry автоматически инкрементирует номер версии при регистрации улучшенной модели и сохраняет связь с Run, из которого версия была создана.

answersNoto'g'ri

Старая версия автоматически удаляется

answersNoto'g'ri

Новая версия перезаписывает старую с тем же номером

answersNoto'g'ri

Создаётся новый Model Registry для улучшенной модели

bo'limlar

DVC: версионирование данных и пайплайны

contents

Проблема с Git для данных. Git отлично управляет кодом, но при работе с большими датасетами и весами моделей (гигабайты и терабайты) он становится неэффективным: репозиторий раздувается, клонирование замедляется. DVC (Data Version Control) — это инструмент, который расширяет Git на данные и модели, храня метаданные в Git, а сами файлы — в удалённом хранилище.

Установка DVC. Установите DVC командой pip install dvc. DVC работает внутри Git-репозитория и использует Git для отслеживания метаданных.

Основной рабочий процесс: dvc add, git add, git commit, dvc push. Добавьте датасет в DVC командой dvc add data/houses.csv. DVC создаст файл data/houses.csv.dvc — небольшой метафайл с хэшем и путём к данным. Затем закоммитьте этот .dvc-файл в Git: git add data/houses.csv.dvc и git commit -m 'Add dataset v1'. Наконец, отправьте данные в удалённое хранилище: dvc push.

Связь Git и DVC. Git отслеживает код и .dvc-файлы (метаданные), а DVC управляет самими данными и моделями. Это обеспечивает синхронность: при переключении ветки Git вы получаете соответствующие .dvc-файлы, а dvc checkout восстанавливает нужную версию данных.

Откат к предыдущей версии данных. Если новая версия данных ухудшила модель, откатитесь: git checkout HEAD~1 (возврат к предыдущему коммиту с .dvc-файлом), затем dvc checkout (синхронизация реальных данных с метаданными). DVC мгновенно восстановит старую версию данных из кэша.

Пайплайны в DVC. DVC позволяет описывать ML-пайплайны как граф зависимостей (DAG) в файле dvc.yaml. Каждый этап (stage) определяет входные данные (deps), команду и выходные артефакты (outs). При изменении любого этапа DVC пересчитает только затронутые шаги, экономя время.


questions

Что создаёт DVC при добавлении датасета командой dvc add data/houses.csv?

answersTo'g'ri

Метафайл data/houses.csv.dvc с хэшем и путём к данным

explanations

DVC создаёт .dvc-файл, содержащий метаданные (хэш, путь). Этот файл коммитится в Git, а сами данные хранятся в кэше DVC и удалённом хранилище.

answersNoto'g'ri

Копию датасета в папке .git/objects

answersNoto'g'ri

Новый Git-коммит с датасетом внутри

answersNoto'g'ri

Запись в dvc.yaml с параметрами датасета


questions

Какую команду нужно выполнить после git checkout HEAD~1, чтобы восстановить предыдущую версию данных из DVC?

answersTo'g'ri

dvc checkout

explanations

git checkout переключает .dvc-файлы на предыдущую версию, а dvc checkout синхронизирует реальные данные из кэша DVC в соответствии с текущими .dvc-файлами.

answersNoto'g'ri

dvc pull

answersNoto'g'ri

dvc restore

answersNoto'g'ri

dvc reset