Mini projet démonstratif pour comprendre comment structurer et versionner un pipeline de machine learning avec DVC.
🔎 Objectif : explorer les bonnes pratiques de tracking des datasets, des modèles et des métriques dans un projet ML reproductible.
Ce projet est fait pour toi si tu es :
- Data scientist / ML engineer débutant ou intermédiaire
- En train d'apprendre à structurer tes projets de manière propre et reproductible
- Curieux de voir comment DVC s'intègre dans un workflow ML minimal
- Gérer des datasets versionnés avec DVC
- Construire un pipeline ML simple avec des étapes traçables
- Comparer les performances entre différents runs (ex. données bruitées vs propres)
- Automatiser ton workflow avec Makefile
flowchart TD
A[gen_dataset_clean.py ou gen_dataset_noisy.py] --> B[data/raw/dataset.csv]
B --> C[train.py]
C --> D[models/model.pkl]
C --> E[metrics.json]
Le pipeline a une seule étape train, qui prend en entrée un dataset, entraîne un modèle (RandomForestClassifier), puis écrit les métriques d’accuracy dans metrics.json.
git clone https://github.com/martinezcoralie/dvc-mini-pipeline.git
cd dvc-mini-pipeline
make venv.
├── data/ # Données versionnées par DVC
├── models/ # Modèles entraînés
├── scripts/ # Scripts exécutables (data generation, train)
├── src/ # Code métier (utils etc.)
├── dvc.yaml # Définition du pipeline
├── metrics.json # Fichier de métriques suivi par DVC
├── Makefile # Pour tout automatiser- Initialiser DVC
make init_dvc- Générer un dataset et lancer le pipeline
make clean_dataset && make run_pipeline && make tag_clean # dataset propre
make noisy_dataset && make run_pipeline && make tag_noisy # dataset bruité- Comparer les métriques sur plusieurs commits
make metricsExemple d’output :
Revision Path accuracy
f30ab6b (clean) metrics.json 0.89
dc9bc60 (noisy) metrics.json 0.74- Réinitialiser complètement
make clean
make reset_dvc➡️ Voir le tutoriel étape par étape dans docs/README.md