# Runs

← [Раздел](README.md) · [Главная](../README.md)

## Цель

Понять назначение, устройство и практику использования компонента **Runs** в MLflow.

## Предварительно

- [Experiments](experiments.md)

## Время

**2–3 ч**

---

## Назначение

**Run** — одно **выполнение** кода обучения (или preprocessing) с уникальным `run_id`.

## Жизненный цикл

| Status | Значение |
|--------|----------|
| RUNNING | В процессе |
| FINISHED | Успешно |
| FAILED | Исключение |
| KILLED | Прерван пользователем |

## Контекстный менеджер

```python
with mlflow.start_run(run_name="lr-baseline") as run:
    print(run.info.run_id)
    mlflow.log_param("lr", 0.01)
```

## Вложенные runs

```python
with mlflow.start_run(run_name="parent"):
    with mlflow.start_run(run_name="child", nested=True):
        mlflow.log_metric("loss", 0.5)
```

Полезно для hyperparameter search: parent = study, children = trials.

## Autolog

```python
mlflow.sklearn.autolog()
# автоматически логирует params, metrics, model
```

Включайте осознанно — может логировать лишнее.

## Воспроизведение

Run хранит:
- params, metrics
- `mlflow.log_text(requirements.txt)` или conda env
- git commit в tags (добавляйте вручную или плагином)

Без версии данных run **не полностью** воспроизводим.

## Удаление и GDPR

Удаление run удаляет метаданные и artifacts. Для PII в логах — **не логируйте** сырые персональные данные.

---

## Самопроверка

1. Кратко опишите роль «Runs» в MLflow.
2. Назовите типичную ошибку при работе с этим компонентом.
3. Как этот компонент связан с соседними?

---

## Дальше

→ [Parameters и Metrics](parameters-metrics.md)
