AI tomonidan yaratilganOdamlar tomonidan yaxshilangan
Riqli · tirik hujjatlar · doimiy ravishda yangilanadi
AI bilimlari inson amaliyotiga mos keladigan joyda.
Do'stlar bilan baham ko'ring

Трекинг экспериментов и версионирование моделей
Введение в трекинг экспериментов и версионирование моделей
Аннотация. Курс посвящён практическим инструментам управления жизненным циклом ML-моделей: MLflow для трекинга экспериментов и реестра моделей, DVC для версионирования данных и пайплайнов. Вы научитесь логировать параметры и метрики, сравнивать запуски, управлять стадиями моделей и обеспечивать воспроизводимость экспериментов.
Цель. Сформировать навыки настройки и использования MLflow и DVC для сквозного трекинга экспериментов, версионирования данных и управления версиями моделей в командной работе.
Результаты обучения. По завершении курса вы сможете: устанавливать и настраивать MLflow Tracking; логировать параметры, метрики и артефакты в MLflow; использовать реестр моделей MLflow для версионирования и продвижения моделей; настраивать DVC для версионирования данных; строить воспроизводимые пайплайны с DVC; интегрировать Git и DVC для синхронного управления кодом и данными.
Целевая аудитория. Data Scientist’ы, ML-инженеры, MLOps-специалисты и аналитики, знакомые с основами Python и машинного обучения.
MLflow Tracking: логирование и сравнение экспериментов
Что такое 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 позволяет фильтровать запуски по значениям параметров и метрик, сортировать их, строить графики изменения метрик по эпохам и визуально сравнивать несколько запусков на одном графике. Это основа для выбора лучшей модели.
Какой компонент MLflow отвечает за запись параметров, метрик и артефактов из экспериментов?
Tracking
MLflow Tracking — это набор API и UI для логирования и сравнения экспериментов. Именно этот компонент отвечает за запись параметров, метрик и артефактов.
Projects
Models
Model Registry
Что произойдёт, если запустить скрипт обучения с логированием в MLflow несколько раз с разными гиперпараметрами в рамках одного эксперимента?
Будет создано несколько отдельных Run внутри одного Experiment, каждый со своими параметрами и метриками
Каждый запуск скрипта с логированием создаёт новый Run. Experiment служит контейнером для группы связанных Run, что позволяет сравнивать их между собой в UI.
MLflow перезапишет результаты предыдущего запуска
MLflow создаст новый Experiment для каждого запуска
MLflow выдаст ошибку о дублировании эксперимента
Какая команда запускает веб-интерфейс MLflow для просмотра экспериментов?
mlflow ui
Команда mlflow ui запускает локальный веб-сервер с интерфейсом для просмотра экспериментов, сравнения запусков и анализа метрик.
mlflow serve
mlflow start
mlflow dashboard
MLflow Model Registry: версионирование и стадии моделей
Зачем нужен Model Registry. После проведения множества экспериментов вы находите несколько хороших моделей (артефактов). Model Registry позволяет централизованно хранить лучшие модели, присваивать им версии и управлять их стадиями.
Версионирование моделей. Если вы обучили улучшенную версию той же модели, она получает новый номер версии (например, ChurnPredictor v2). Каждая версия связана с исходным Run, из которого она была зарегистрирована, что обеспечивает прослеживаемость происхождения модели.
Стадии моделей (Stages). Model Registry поддерживает стадии, отражающие жизненный цикл модели: Staging — модель на тестировании, кандидат на переход в продакшен; Production — модель, используемая в реальной системе; Archived — устаревшая модель, больше не используется. Можно добавлять и свои стадии.
Описания и теги. К моделям и их версиям можно добавлять описания и теги, что помогает команде понимать назначение и особенности каждой версии.
Связь с CI/CD. В корпоративной среде реестр моделей часто используется совместно с пайплайнами CI/CD: после успешного прогона и проверки метрик модель автоматически перемещается в нужную стадию, и объявляются соответствующие политики развёртывания.
Какая стадия Model Registry в MLflow обозначает модель, которая используется в реальной системе?
Production
Стадия Production в Model Registry обозначает модель, которая развёрнута и используется в реальной системе для предсказаний.
Staging
Archived
Development
Что происходит с версией модели при регистрации улучшенной версии той же модели в Model Registry?
Она получает новый номер версии, например v2, и связывается с новым исходным Run
Model Registry автоматически инкрементирует номер версии при регистрации улучшенной модели и сохраняет связь с Run, из которого версия была создана.
Старая версия автоматически удаляется
Новая версия перезаписывает старую с тем же номером
Создаётся новый Model Registry для улучшенной модели
DVC: версионирование данных и пайплайны
Проблема с 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 пересчитает только затронутые шаги, экономя время.
Что создаёт DVC при добавлении датасета командой dvc add data/houses.csv?
Метафайл data/houses.csv.dvc с хэшем и путём к данным
DVC создаёт .dvc-файл, содержащий метаданные (хэш, путь). Этот файл коммитится в Git, а сами данные хранятся в кэше DVC и удалённом хранилище.
Копию датасета в папке .git/objects
Новый Git-коммит с датасетом внутри
Запись в dvc.yaml с параметрами датасета
Какую команду нужно выполнить после git checkout HEAD~1, чтобы восстановить предыдущую версию данных из DVC?
dvc checkout
git checkout переключает .dvc-файлы на предыдущую версию, а dvc checkout синхронизирует реальные данные из кэша DVC в соответствии с текущими .dvc-файлами.
dvc pull
dvc restore
dvc reset