Введение в MLOPS (ИИ24, 5 модуль) — различия между версиями
(Программа курса) |
м (дз3) |
||
| Строка 38: | Строка 38: | ||
* Развёртывание моделей через MLflow Model Serving | * Развёртывание моделей через MLflow Model Serving | ||
* Пример: HuggingFace модель, интеграция через Flask/FastAPI | * Пример: HuggingFace модель, интеграция через Flask/FastAPI | ||
| − | * | + | * DockerOperator |
* Финальный проект и разбор требований | * Финальный проект и разбор требований | ||
| Строка 49: | Строка 49: | ||
Формула: | Формула: | ||
Итог = ДЗ1 × 0.2 + ДЗ2 × 0.2 + Проект × 0.6 | Итог = ДЗ1 × 0.2 + ДЗ2 × 0.2 + Проект × 0.6 | ||
| + | |||
| + | ===Домашнее задание 3 (Финальный проект). End-to-End MLOps c MLflow → Docker → Serving=== | ||
| + | |||
| + | Цель: собрать полноценный конвейер: обучение моделей в Airflow → логирование в MLflow → выбор лучшей версии → сборка Docker-образа → сервинг | ||
| + | |||
| + | Требования к функционалу: | ||
| + | |||
| + | 1. Обучение и логирование | ||
| + | * DAG в Airflow обучает ≥2 моделей на одном датасете (можно классический ML, легковесные сетки). | ||
| + | * Логирование метрик, артефактов и самих моделей в MLflow Tracking. | ||
| + | * Регистрация модели в MLflow Model Registry под именем `NAME_SURNAME_MODELTYPE`. | ||
| + | |||
| + | 2. Выбор лучшей модели | ||
| + | * Автоматический выбор по метрике (например, ROC-AUC/F1/MAPE). | ||
| + | * Перевод версии в `Staging` или `Production` (правила — на ваше усмотрение). | ||
| + | |||
| + | 3. Сборка и публикация Docker-образа | ||
| + | * Сборка PyFunc-сервиса с помощью mlflow. | ||
| + | * Публикация образа в registry. | ||
| + | |||
| + | 4. Сервинг | ||
| + | * docker run... | ||
| + | * Проверка через `POST`: | ||
| + | * JSON-ответ согласно формату MLflow PyFunc (`{"inputs": [[...], [...]]}` или DataFrame-подобный формат). | ||
| + | |||
| + | Что сдаём | ||
| + | * Код DAG’а: `dags/*.py`. | ||
| + | |||
| + | Критерии оценивания (60% итоговой оценки курса) | ||
| + | * Точность и воспроизводимость (10%)— читаемый понятный код, запускаемый без дебага, выполняющий все шаги из задания. | ||
| + | * Airflow (20%) — чистая DAG-логика, XCom/Variables/Connections, понятные таски. | ||
| + | * MLflow (20%) — корректное логирование, Registry, промоушен версий. | ||
| + | * Сборка/сервинг (10%) — рабочий образ, публикация в реестр, успешный REST. | ||
| + | |||
| + | |||
| + | Обязательные требования к неймингу Airflow Variables (будут дополнены позже): | ||
| + | * `MLFLOW_TRACKING_URI`, `MODEL_NAME`, `MODEL_STAGE` (Staging/Production), | ||
| + | * `REGISTRY`, `IMAGE_NAME`, `TAG`, | ||
| + | * `CI_REGISTRY_USER`, `CI_REGISTRY_PASSWORD` | ||
| + | Метрики и данные — на ваш выбор. | ||
| + | |||
Версия 18:19, 9 сентября 2025
Содержание
Введение в MLOps (ИИ24, 5 модуль)
Аннотация
Курс посвящён практическим инструментам и подходам MLOps, которые позволяют автоматизировать процесс обучения и эксплуатации моделей машинного обучения. Студенты знакомятся с Docker, Airflow и MLflow, учатся строить пайплайны, логировать эксперименты и организовывать сервинг моделей. Практическая часть реализуется на Python.
Цели
- Развернуть окружение для MLOps с помощью Docker и docker-compose.
- Понимать архитектуру Airflow и MLflow.
- Строить DAG’и и использовать XCom для передачи данных.
- Работать с MLflow для логирования экспериментов и организации Model Registry.
- Разворачивать MLflow Tracking Server с внешними хранилищами (S3).
- Использовать MLflow Model Serving для развёртывания моделей.
- Реализовать end-to-end пайплайн: обучение моделей в Airflow + логирование в MLflow.
Структура курса
Вебинар 1. Введение и установка окружения.
- Обзор Архитектуры Airflow&MLFlow
- Docker и docker-compose. Установка Jupyter, Airflow, MLflow. Подключение S3.
Вебинар 2. Airflow для ML-пайплайнов
- Архитектура Airflow (scheduler, worker, executor, база данных)
- DAG: структура, параметры, расписание
- Connections, Variables, Hooks
- XCom и передача данных между задачами
- Примеры DAG для ML
Вебинар 3. MLflow: эксперименты и хранилище моделей
- Архитектура MLflow Tracking Server
- Логирование экспериментов в Jupyter и Airflow
- MLflow Projects и Models
- Model Registry
Вебинар 4. MLflow Model Serving и финальный проект
- Развёртывание моделей через MLflow Model Serving
- Пример: HuggingFace модель, интеграция через Flask/FastAPI
- DockerOperator
- Финальный проект и разбор требований
Система оценивания
- Домашнее задание 1 (Airflow) — 20%
- Домашнее задание 2 (MLflow + Serving) — 20%
- Финальный проект (Airflow + MLflow) — 60%
Формула: Итог = ДЗ1 × 0.2 + ДЗ2 × 0.2 + Проект × 0.6
Домашнее задание 3 (Финальный проект). End-to-End MLOps c MLflow → Docker → Serving
Цель: собрать полноценный конвейер: обучение моделей в Airflow → логирование в MLflow → выбор лучшей версии → сборка Docker-образа → сервинг
Требования к функционалу:
1. Обучение и логирование
- DAG в Airflow обучает ≥2 моделей на одном датасете (можно классический ML, легковесные сетки).
- Логирование метрик, артефактов и самих моделей в MLflow Tracking.
- Регистрация модели в MLflow Model Registry под именем `NAME_SURNAME_MODELTYPE`.
2. Выбор лучшей модели
- Автоматический выбор по метрике (например, ROC-AUC/F1/MAPE).
- Перевод версии в `Staging` или `Production` (правила — на ваше усмотрение).
3. Сборка и публикация Docker-образа
- Сборка PyFunc-сервиса с помощью mlflow.
- Публикация образа в registry.
4. Сервинг
- docker run...
- Проверка через `POST`:
- JSON-ответ согласно формату MLflow PyFunc (`{"inputs": [[...], [...]]}` или DataFrame-подобный формат).
Что сдаём
- Код DAG’а: `dags/*.py`.
Критерии оценивания (60% итоговой оценки курса)
- Точность и воспроизводимость (10%)— читаемый понятный код, запускаемый без дебага, выполняющий все шаги из задания.
- Airflow (20%) — чистая DAG-логика, XCom/Variables/Connections, понятные таски.
- MLflow (20%) — корректное логирование, Registry, промоушен версий.
- Сборка/сервинг (10%) — рабочий образ, публикация в реестр, успешный REST.
Обязательные требования к неймингу Airflow Variables (будут дополнены позже):
- `MLFLOW_TRACKING_URI`, `MODEL_NAME`, `MODEL_STAGE` (Staging/Production),
- `REGISTRY`, `IMAGE_NAME`, `TAG`,
- `CI_REGISTRY_USER`, `CI_REGISTRY_PASSWORD`
Метрики и данные — на ваш выбор.
Литература
- Noah Gift, Alfredo Deza — Practical MLOps. O’Reilly, 2021.
- А. В. Платонов — Машинное обучение. Юрайт, 2023.
- Б. Харенслак — Apache Airflow и конвейеры обработки данных. ДМК Пресс, 2022.