<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_MLOPS_%28%D0%98%D0%9824%2C_5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%29</id>
	<title>Введение в MLOPS (ИИ24, 5 модуль) - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_MLOPS_%28%D0%98%D0%9824%2C_5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C%29"/>
	<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_MLOPS_(%D0%98%D0%9824,_5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C)&amp;action=history"/>
	<updated>2026-06-08T21:39:00Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.wikicshse.ru/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_MLOPS_(%D0%98%D0%9824,_5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C)&amp;diff=2057&amp;oldid=prev</id>
		<title>imported&gt;Saprokhorov 1: Migrated current public revision from wiki.cs.hse.ru</title>
		<link rel="alternate" type="text/html" href="https://www.wikicshse.ru/index.php?title=%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_MLOPS_(%D0%98%D0%9824,_5_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C)&amp;diff=2057&amp;oldid=prev"/>
		<updated>2025-10-01T19:00:04Z</updated>

		<summary type="html">&lt;p&gt;Migrated current public revision from wiki.cs.hse.ru&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Введение в MLOps (ИИ24, 5 модуль)=&lt;br /&gt;
&lt;br /&gt;
== Аннотация==&lt;br /&gt;
Курс посвящён практическим инструментам и подходам MLOps, которые позволяют автоматизировать процесс обучения и эксплуатации моделей машинного обучения.  &lt;br /&gt;
Студенты знакомятся с Docker, Airflow и MLflow, учатся строить пайплайны, логировать эксперименты и организовывать сервинг моделей. Практическая часть реализуется на Python.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Цели==&lt;br /&gt;
* Развернуть окружение для MLOps с помощью Docker и docker-compose.  &lt;br /&gt;
* Понимать архитектуру Airflow и MLflow.  &lt;br /&gt;
* Строить DAG’и и использовать XCom для передачи данных.  &lt;br /&gt;
* Работать с MLflow для логирования экспериментов и организации Model Registry.  &lt;br /&gt;
* Разворачивать MLflow Tracking Server с внешними хранилищами (S3).  &lt;br /&gt;
* Использовать MLflow Model Serving для развёртывания моделей.  &lt;br /&gt;
* Реализовать end-to-end пайплайн: обучение моделей в Airflow + логирование в MLflow.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Структура курса==&lt;br /&gt;
&lt;br /&gt;
===Вебинар 1. Введение и установка окружения.===&lt;br /&gt;
* Обзор Архитектуры Airflow&amp;amp;MLFlow &lt;br /&gt;
* Docker и docker-compose. Установка Jupyter, Airflow, MLflow. Подключение S3.  &lt;br /&gt;
&lt;br /&gt;
===Вебинар 2. Airflow для ML-пайплайнов===&lt;br /&gt;
* Архитектура Airflow (scheduler, worker, executor, база данных)  &lt;br /&gt;
* DAG: структура, параметры, расписание  &lt;br /&gt;
* Connections, Variables, Hooks  &lt;br /&gt;
* XCom и передача данных между задачами  &lt;br /&gt;
* Примеры DAG для ML  &lt;br /&gt;
&lt;br /&gt;
===Вебинар 3. MLflow: эксперименты и хранилище моделей===&lt;br /&gt;
* Архитектура MLflow Tracking Server  &lt;br /&gt;
* Логирование экспериментов в Jupyter и Airflow  &lt;br /&gt;
* MLflow Projects и Models  &lt;br /&gt;
* Model Registry  &lt;br /&gt;
&lt;br /&gt;
===Вебинар 4. MLflow Model Serving и финальный проект===&lt;br /&gt;
* Развёртывание моделей через MLflow Model Serving  &lt;br /&gt;
* Пример:  интеграция через Flask/FastAPI  &lt;br /&gt;
* DockerOperator&lt;br /&gt;
* Финальный проект и разбор требований&lt;br /&gt;
&lt;br /&gt;
== Система оценивания==&lt;br /&gt;
* Домашнее задание 1 (Airflow) — 20%  &lt;br /&gt;
* Домашнее задание 2 (MLflow + Serving) — 20%  &lt;br /&gt;
* Финальный проект (Airflow + MLflow) — 60%  &lt;br /&gt;
&lt;br /&gt;
Формула:  &lt;br /&gt;
Итог = ДЗ1 × 0.2 + ДЗ2 × 0.2 + Проект × 0.6&lt;br /&gt;
&lt;br /&gt;
===Домашнее задание 1 Airflow===&lt;br /&gt;
&lt;br /&gt;
Цель: познакомиться с Airflow и научиться строить DAG для автоматизации ML-задачи.  &lt;br /&gt;
&lt;br /&gt;
Требования к функционалу:&lt;br /&gt;
&lt;br /&gt;
1. Написать DAG, который реализует простой pipeline:&lt;br /&gt;
* инициализация (логирование старта работы);&lt;br /&gt;
* загрузка датасета из интернета (например, Titanic / Iris / Wine);&lt;br /&gt;
* предобработка данных (train/test split, нормализация или one-hot encoding);&lt;br /&gt;
* обучение простой модели (LogisticRegression или RandomForest);&lt;br /&gt;
* вычисление и сохранение метрик.&lt;br /&gt;
&lt;br /&gt;
2. Использовать **XCom** для передачи данных между шагами.&lt;br /&gt;
&lt;br /&gt;
3. Добавить расписание DAG (каждый вторник в 6 утра).&lt;br /&gt;
&lt;br /&gt;
Что сдаём&lt;br /&gt;
* Код DAG’а: `dags/*.py`.&lt;br /&gt;
&lt;br /&gt;
=== Домашнее задание 2. MLflow: эксперименты и логирование моделей ===&lt;br /&gt;
&lt;br /&gt;
Цель: освоить возможности MLflow — логирование экспериментов, nested runs и хранение моделей.  &lt;br /&gt;
&lt;br /&gt;
Требования к функционалу:&lt;br /&gt;
&lt;br /&gt;
1. Создать новый эксперимент в MLflow со своим ФИО.&lt;br /&gt;
2. Обучить ≥ 3 моделей на одном датасете (классический мл, легковесные сетки).&lt;br /&gt;
3. Для эксперимента использовать **nested runs**:&lt;br /&gt;
* общий **parent run** (для всего эксперимента);&lt;br /&gt;
* отдельные **child runs** для каждой модели.&lt;br /&gt;
4. Для каждой child-модели:&lt;br /&gt;
* залогировать метрики (accuracy / ROC-AUC и др.);&lt;br /&gt;
* залогировать артефакты (файл модели, preprocessing-пайплайн).&lt;br /&gt;
5. Зарегистрировать хотя бы одну модель в **MLflow Model Registry**.&lt;br /&gt;
&lt;br /&gt;
Что сдаём&lt;br /&gt;
* Код обучения моделей с логированием в MLflow (с nested runs).&lt;br /&gt;
&lt;br /&gt;
Подсказки и соглашения&lt;br /&gt;
(tbc)&lt;br /&gt;
&lt;br /&gt;
===Домашнее задание 3 (Финальный проект). End-to-End MLOps c MLflow → Docker → Serving===&lt;br /&gt;
&lt;br /&gt;
Цель: собрать полноценный конвейер: обучение моделей в Airflow → логирование в MLflow → выбор лучшей версии → сборка Docker-образа  → сервинг&lt;br /&gt;
&lt;br /&gt;
Требования к функционалу:&lt;br /&gt;
&lt;br /&gt;
1. Обучение и логирование&lt;br /&gt;
* DAG в Airflow обучает ≥2 моделей на одном датасете (можно классический ML, легковесные сетки).&lt;br /&gt;
* Логирование метрик, артефактов и самих моделей в MLflow Tracking.&lt;br /&gt;
* Регистрация модели в MLflow Model Registry под именем `NAME_SURNAME_MODELTYPE`.&lt;br /&gt;
&lt;br /&gt;
2. Выбор лучшей модели&lt;br /&gt;
* Автоматический выбор по метрике (например, ROC-AUC/F1/MAPE).&lt;br /&gt;
* Перевод версии в `Staging` или `Production` (правила — на ваше усмотрение).&lt;br /&gt;
&lt;br /&gt;
3. Сборка и публикация Docker-образа&lt;br /&gt;
* Сборка PyFunc-сервиса с помощью mlflow.&lt;br /&gt;
* Публикация образа в registry.&lt;br /&gt;
&lt;br /&gt;
4. Сервинг&lt;br /&gt;
* docker run...&lt;br /&gt;
* Проверка через `POST`:&lt;br /&gt;
* JSON-ответ согласно формату MLflow PyFunc (`{&amp;quot;inputs&amp;quot;: [[...], [...]]}` или DataFrame-подобный формат).&lt;br /&gt;
&lt;br /&gt;
Что сдаём&lt;br /&gt;
* Код DAG’а: `dags/*.py`.&lt;br /&gt;
&lt;br /&gt;
Критерии оценивания (60% итоговой оценки курса)&lt;br /&gt;
* Точность и воспроизводимость (10%)— читаемый понятный код, запускаемый без дебага, выполняющий все шаги из задания.&lt;br /&gt;
* Airflow (20%) — чистая DAG-логика, XCom/Variables/Connections, понятные таски.&lt;br /&gt;
* MLflow (20%) — корректное логирование, Registry, промоушен версий.&lt;br /&gt;
* Сборка/сервинг (10%) — рабочий образ, публикация в реестр, успешный REST.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Обязательные требования к неймингу Airflow Variables (будут дополнены позже):&lt;br /&gt;
* `MLFLOW_TRACKING_URI`, `MODEL_NAME`, `MODEL_STAGE` (Staging/Production),&lt;br /&gt;
* `REGISTRY`, `IMAGE_NAME`, `TAG`,&lt;br /&gt;
* `CI_REGISTRY_USER`, `CI_REGISTRY_PASSWORD`&lt;br /&gt;
Метрики и данные — на ваш выбор.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Литература==&lt;br /&gt;
* Noah Gift, Alfredo Deza — Practical MLOps. O’Reilly, 2021.  &lt;br /&gt;
* А. В. Платонов — Машинное обучение. Юрайт, 2023.  &lt;br /&gt;
* Б. Харенслак — Apache Airflow и конвейеры обработки данных. ДМК Пресс, 2022.&lt;/div&gt;</summary>
		<author><name>imported&gt;Saprokhorov 1</name></author>
	</entry>
</feed>