Skip to content

Отчет о настройке автоматизации ML пайплайнов

Введение

Настроена система автоматизации ML пайплайнов с использованием DVC Pipelines для оркестрации и Pydantic для управления конфигурациями. Система включает мониторинг выполнения, валидацию данных и поддержку различных алгоритмов машинного обучения.

Примечание: Для получения пошаговых инструкций по настройке и использованию автоматизации ML пайплайнов см. docs/homework_4/QUICKSTART.md или общий docs/QUICKSTART.md (Шаг 13). Данный отчет описывает что было настроено, а не как это настроить.

1. Настройка выбранного инструмента оркестрации (4 балла)

1.1. Установка и настройка DVC Pipelines

DVC уже установлен и настроен (см. ДЗ 2). Для автоматизации пайплайнов используется встроенная функциональность DVC Pipelines.

Примечание: Пошаговые инструкции по установке и настройке DVC см. в docs/QUICKSTART.md (Шаг 5) и docs/homework_2/REPORT.md.

1.2. Создание workflow для ML пайплайна

Создан расширенный workflow в dvc.yaml с 5 стадиями: 1. prepare_data - подготовка данных 2. validate_data - валидация данных 3. train_model - обучение модели 4. evaluate_model - оценка модели 5. monitor_pipeline - мониторинг выполнения

Каждая стадия имеет команду, зависимости, параметры, выходы, метрики/plots. Параметры пайплайна хранятся в params.yaml.

Примечание: Пошаговые инструкции по созданию и запуску пайплайна см. в docs/QUICKSTART.md (Шаг 13).

1.3. Настройка зависимостей между этапами

Зависимости настроены через deps в каждой стадии: - prepare_data зависит от исходных данных и конфигурации - validate_data зависит от prepare_data (обработанных данных) - train_model зависит от prepare_data и конфигурации - evaluate_model зависит от train_model и тестовых данных - monitor_pipeline зависит от evaluate_model (метрик оценки)

Параметры хранятся в params.yaml, каждая стадия указывает используемые параметры в секции params. Параметры отслеживаются DVC для определения необходимости перезапуска стадий. Визуализация зависимостей через dvc dag.

img.png

1.4. Реализация кэширования и параллельного выполнения

DVC автоматически кэширует результаты на основе хешей зависимостей (deps) и параметров (params), определяя необходимость перезапуска стадий. Параллельное выполнение поддерживается через dvc repro --jobs N, независимые стадии (validate_data и train_model) могут выполняться параллельно. Создана утилита scripts/pipeline/run_with_params.py для изменения параметров через -S PARAM=VALUE.

2. Настройка выбранного инструмента конфигураций (3 балла)

2.1. Настройка Pydantic для управления конфигурациями

Pydantic установлен через UV (pydantic>=2.5.0, pydantic-settings>=2.1.0). Создан модуль src/data_science_project/config_models.py с моделями конфигураций.

2.2. Создание конфигураций для разных алгоритмов

Созданы Pydantic модели для 10 типов моделей: Linear, Ridge, Lasso, ElasticNet, KNN, SVR, Decision Tree, Random Forest, AdaBoost, Gradient Boosting. Базовые модели: DataConfig, ModelConfig, TrainingConfig, PipelineConfig. Каждая модель имеет параметры с валидацией через Field constraints.

2.3. Настройка валидации конфигураций

Pydantic автоматически валидирует конфигурации: проверка типов данных, диапазонов значений (ge, le, gt, lt), обязательных полей, валидация через Field constraints. Примеры: alpha: float = Field(default=1.0, gt=0.0), test_size: float = Field(default=0.2, ge=0.0, le=1.0).

2.4. Создание системы композиции конфигураций

Конфигурации компонуются из базовых моделей: TrainingConfig включает DataConfig и ModelConfig, PipelineConfig включает TrainingConfig. Иерархическая структура конфигураций позволяет переиспользовать компоненты.

3. Интеграция и тестирование (2 балла)

3.1. Интеграция выбранных инструментов

Pydantic интегрирован во все скрипты пайплайна (prepare_data.py, validate_data.py, train_model.py, evaluate_model.py). Конфигурации передаются через параметры DVC pipeline (params.yaml), валидация выполняется автоматически при загрузке. Создана утилита scripts/pipeline/run_with_params.py для изменения параметров через -S PARAM=VALUE с автоматическим преобразованием типов.

3.2. Создание системы мониторинга выполнения

Создан модуль src/data_science_project/pipeline_monitor.py с классом PipelineMonitor для отслеживания статуса стадий, измерения времени выполнения, сохранения метрик и ошибок, генерации отчетов в JSON формате. Методы: start_stage(), complete_stage(), fail_stage(), skip_stage(), save_report(), print_summary().

3.3. Настройка уведомлений о результатах

Реализована функция notify_completion() для вывода статуса завершения пайплайна, пути к отчету и сводки выполнения.

3.4. Тестирование воспроизводимости

Пайплайн протестирован на воспроизводимость: после очистки результатов (data/processed/*, models/*, reports/metrics/*, reports/plots/*) пайплайн успешно воспроизводится через dvc repro.

Примечание: Пошаговые инструкции по тестированию воспроизводимости см. в docs/QUICKSTART.md (Шаг 13).

4. Отчет о проделанной работе (1 балл)

4.1. Отчет в формате Markdown

Отчет создан в docs/homework_4/REPORT.md и включает: - Описание настройки DVC Pipelines - Описание настройки Pydantic - Интеграцию инструментов - Систему мониторинга - Места для скриншотов

4.2. Описание настройки инструментов

В отчете описаны: 1. DVC Pipelines - установка, workflow, зависимости, кэширование 2. Pydantic - установка, модели конфигураций, валидация, композиция 3. Интеграция - использование Pydantic в скриптах, мониторинг, уведомления 4. Тестирование - воспроизводимость пайплайна

4.3. Сохранение в Git репозитории

Отчет сохранен в docs/homework_4/REPORT.md и включен в Git репозиторий.

Заключение

Настроена полноценная система автоматизации ML пайплайнов:

DVC Pipelines настроен - workflow с 5 стадиями (prepare_data, validate_data, train_model, evaluate_model, monitor_pipeline), зависимости, кэширование, параллельное выполнение ✅ Pydantic настроен - модели конфигураций для 10 типов моделей (linear, ridge, lasso, elasticnet, knn, svr, dt, rf, ada, gb), валидация параметров, композиция конфигураций ✅ Интеграция выполнена - Pydantic интегрирован во все скрипты пайплайна, мониторинг работает, утилита для изменения параметров создана ✅ Мониторинг создан - отслеживание стадий, метрики, отчеты, уведомления ✅ Утилита для параметров - run_with_params.py для удобного изменения параметров через -S PARAM=VALUEВоспроизводимость протестирована - пайплайн успешно воспроизводится через dvc reproОтчет создан - с описанием всех настроек и местами для скриншотов

Все инструменты настроены, протестированы и готовы к использованию.