🎁 Как версионировать датасеты и ML-модели (и не сойти с ума)
Одна из самых частых причин почему вчера работало, а сегодня нет — отсутствие версионирования данных и моделей.
Без него сложно:
🙅♂️ повторить эксперименты,
🙅♂️ понять, почему метрики ухудшились,
🙅♂️ отладить баги в проде.
Вот как это решается 👇
1⃣ Используйте DVC или LakeFS для версионирования данных
DVC (Data Version Control) — git-подобный инструмент для отслеживания датасетов. Работает поверх Git и хранит данные в облаке (S3, GCS и т.п.).
dvc init
dvc add data/train.csv
git add data/train.csv.dvc .gitignore
git commit -m "Добавил версию обучающего датасета"
LakeFS — альтернатива на уровне хранилища (s3), позволяет делать data branches, merges и rollback данных.
2⃣ Храните модели с MLflow, Weights & Biases или DVC
MLflow позволяет логировать, сохранять и восстанавливать модели по version/tag/commit:
import mlflow
with mlflow.start_run():
mlflow.log_param("max_depth", 5)
mlflow.log_metric("accuracy", 0.92)
mlflow.sklearn.log_model(model, "model")
DVC тоже можно использовать:
dvc add models/random_forest.pkl
git commit -m "Модель v1.0"
3⃣ Сохраняйте метаданные эксперимента
Храните конфиги, хэши данных, модель, метрики, код и дату запуска. Можно использовать:
— MLflow Tracking
— Sacred + Omniboard
— W\&B Experiments
4⃣ Встраивайте версионирование в CI/CD
Добавьте в pipeline:
— автоматическое логирование модели,
— проверку отклонений метрик,
— тегирование релизов модели,
— деплой только при прохождении проверок.
-5⃣ Подписывайте версии моделей семантически (semver)
model_v1.2.0.pkl говорит больше, чем model_final_v4.pkl
Библиотека дата-сайентиста #буст
Одна из самых частых причин почему вчера работало, а сегодня нет — отсутствие версионирования данных и моделей.
Без него сложно:
🙅♂️ повторить эксперименты,
🙅♂️ понять, почему метрики ухудшились,
🙅♂️ отладить баги в проде.
Вот как это решается 👇
1⃣ Используйте DVC или LakeFS для версионирования данных
DVC (Data Version Control) — git-подобный инструмент для отслеживания датасетов. Работает поверх Git и хранит данные в облаке (S3, GCS и т.п.).
dvc init
dvc add data/train.csv
git add data/train.csv.dvc .gitignore
git commit -m "Добавил версию обучающего датасета"
LakeFS — альтернатива на уровне хранилища (s3), позволяет делать data branches, merges и rollback данных.
2⃣ Храните модели с MLflow, Weights & Biases или DVC
MLflow позволяет логировать, сохранять и восстанавливать модели по version/tag/commit:
import mlflow
with mlflow.start_run():
mlflow.log_param("max_depth", 5)
mlflow.log_metric("accuracy", 0.92)
mlflow.sklearn.log_model(model, "model")
DVC тоже можно использовать:
dvc add models/random_forest.pkl
git commit -m "Модель v1.0"
3⃣ Сохраняйте метаданные эксперимента
Храните конфиги, хэши данных, модель, метрики, код и дату запуска. Можно использовать:
— MLflow Tracking
— Sacred + Omniboard
— W\&B Experiments
4⃣ Встраивайте версионирование в CI/CD
Добавьте в pipeline:
— автоматическое логирование модели,
— проверку отклонений метрик,
— тегирование релизов модели,
— деплой только при прохождении проверок.
-5⃣ Подписывайте версии моделей семантически (semver)
model_v1.2.0.pkl говорит больше, чем model_final_v4.pkl
Библиотека дата-сайентиста #буст