# Версионирование данных

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

## Цель

Понять роль **Версионирование данных** в MLOps-стеке и связь с MLflow.

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

- [03 — Компоненты MLflow](../03-komponenty-mlflow/README.md)

## Время

**2–3 ч**

---

## Зачем

Модель обучена на **конкретном снимке** данных. Без версий невозможно воспроизвести и объяснить поведение.

## Инструменты

| Инструмент | Подход |
|------------|--------|
| **DVC** | Git-like для данных, `dvc push` в S3 |
| **LakeFS** | Git для data lake |
| **Delta/Iceberg** | Таблицы с time travel |

## Связь с MLflow

```python
mlflow.set_tag("dvc_rev", "a1b2c3d")
mlflow.set_tag("data_path", "s3://lake/training/v7/")
```

## Практика

- Никогда не меняйте файл датасета «на месте» — новая версия = новый путь
- Фиксируйте train/val/test split как артефакт или скрипт с seed

## Data leakage

Версионирование помогает аудиту: убедиться, что test set не «протек» в train при обновлении.

---

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

1. Какую проблему решает «Версионирование данных»?
2. Какой инструмент вы бы выбрали для старта?
3. Что логировать в MLflow из этого компонента?

---

## Дальше

→ [Feature Store](feature-store.md)
