- Initialisation du projet - découverte des pipelines ☑️
- Profiling des données (EDA) ☑️
- Validation des données avec pandera (data validation) ☑️
- Ajout de mlflow (experiment tracking) ☑️
- Evaluation du modèles avec mlflow.evaluate (Model validation) ☑️
- Interprétabilité du modèle et explicabilité avec InterpretML (XAI) ☑️
- Ajout de dvc (data versioning) ☑️
- Reporting avec evidently (drift) ☑️
- Packager le projet avec docker (prod) ☑️
- Model serving ☑️
It is 2160, and the space tourism industry is booming. Globally, thousands of space shuttle companies take tourists to the Moon and back. You have been able to source data that lists the amenities offered in each space shuttle, customer reviews, and company information.
uvx kedro new --starter=spaceflights-pandasuv sync
🚨 Avertissement: dans la suite des situations, le repo prise6/kedro-mlops-tp doit être cloner. Ce dernier étend le tutoriel spacefights de base avec des notions de MLOps dans le cadre d'un TP.
Ci dessous un exemple pour se mettre dans la situation 1.
git clone https://github.com/prise6/kedro-mlops-tp
cd kedro-mlops-tp
git checkout situation/1
uv sync -p python3.12
# /!\ si nécessaire copier les fichiers companies.csv, reviews.csv et shuttles.xlsx depuis le tuto initial
# cp ... data/01_raw/companies.csv
# cp ... data/01_raw/shuttles.xlsxgit checkout situation/1
- Quelles sont les pipelines ? A quoi elles servent ?
- Quelles sont les outils d'aide à la qualité utilisées ? Que manque-t-il ?
- Comment créer les données
reviews_prod.csvetreviews_dev.csv? - Lancer le pipeline de
data_processing. Corriger les erreurs.
Retour à la normale
git checkout feat-pipeline
git checkout situation/2
- Lancer le pipeline de
data_processing. Corriger les erreurs. - Quelles nodes a été ajouté ? De quel type est l'output ?
- Donne les variables les plus corrélées.
- Explorer.
Indice: ici
Retour à la normale
git checkout feat-profiling
git checkout situtation/3
- Lancer le notebook
data_validation.pyen interactif ou en CLI. - Corriger les erreurs.
- Ajouter une règle de validation
- Lancer le pipeline
data_processing. Corriger les erreurs.
Indices:
Retour à la normale
git checkout feat-data-validation
git checkout situation/4
- Lancer le notebook
experiment_tracking.py. Que faut-il lancer avant ? - Changer le nom de l'expérience.
- Decommenter les lignes qui suivents
# A DECOMMENTERpetit à petit. Commenter les résultats. - Logger la signature et des données d'exemples du modèle.
- Quelles sont les fonctionnalités de mlflow ? Différence entre Tracking server, backend store, artifactor store et model registry ?
Indices:
Retour à la normale
git checkout feat-mlflow
git checkout situation/5
- Ajouter mlflow à kedro. Aidez vous de la documentation.
- Lister les pipelines kedro. Lancer la pipeline
trainig. Verifier les artifacts dans l'UI mlflow. - Lancer la pipeline
inference. Corrigez les erreurs.
Indices:
- pour
1/on cherche qqch de simple et on veut ajouter--env basecomme paramètre. - kedro-mlflow.
- pour
3/, faites des actions manuelles dans l'UI de mlflow. Regarder danscatalogl'entréeselected_regressor.
Retour à la normale
git checkout feat-kedro-mlflow
git checkout situation/6
- Lancer la pipeline d'entrainement et noter l'ajout du noeud
evaluate_model. - Que fait
mlflow.evaluate? - Quelles sont les variables explicatives du modèles ?
Retour à la normale
git checkout feat-evaluate
git checkout situation/7
- Lancer la pipeline
predictionet noter l'ajout du noeudexplain. - Voir les artifacts générés dans mlflow.
- Comment interpréter les graphiques ?
Retour à la normale
git checkout feat-xai
git checkout situation/8
- Installer
dvc. Suivre la documentation. - Modifier les données. Créer un commit. Puis revenir aux données précédentes.
- Est-ce possible de traquer les données depuis un serveur distant ?
- Quelles données doivent être absolument traquées pour assurer la reproductibilité ?
Indices:
- kedro dvc
- quelques commandes:
dvc checkout,dvc data status,dvc init,dvc status,dvc add
Retour à la normale
git checkout feat-dvc
git checkout situation/9
- Prendre connaissance du fichier
dvc.yaml - Traquer les données
reviews_dev.csvetshuttles.xlsxavecdvc add .... - Lancer
dvc dagpuisdvc repro - Relancer
dvc repro: que se passe-t-il ? - Essayer de mofier les inputs et voir ce qu'il se passe.
- Ajouter un nouveau stage pour la prédiction.
Indice:
Retour à la normale
git checkout feat-dvc-repro
git checkout situation/10
- Lancer le pipeline de prédiction
kedro run --pipeline prediction. - Voir le noeud
create_evidently_report. - Ajouter les tests de evidently.
- Commenter les résultats.
Indices:
Retour à la normale
git checkout feat-monitoring-drift
git checkout situation/11
- Exporter les requirements
uv export --no-hashes --no-dev --no-annotate --no-editable --no-emit-project -o requirements.txt - Suivre la documentation pour packager le projet kedro avec docker.
- A part docker, comment packager le projet ?
Indice:
- kedro-docker
kedro docker init,kedro docker build,kedro docker run
Retour à la normale
git checkout feat-docker
git checkout situation/12
- Lancer le notebook
online_predictions.py. Faites en sorte que la requête fonctionne. - Suivre la documentation mlflow pour déployer un serveur localement.
- Comment déployer de façon plus propre ? Quelles commandes pour générer l'image?
Indice:
Retour à la normale
git checkout feat-model-serving
uvx kedro new --starter spaceflights-pandas --name kedro_mlops_t
git init --initial-branch main
uv sync -p python3.12
ruff format
ruff check
mypy .
python notebooks/reviews.py
kedro run --pipeline inference
kedro run --pipeline inference --nodes explain_node
kedro run python -m notebooks.experiment_tracking
dvc init
dvc data status
git checkout ed91b5c758a35450fa2615ccbf0b354797cbd813 data/01_raw/companies.csv.dvc
dvc repro
dvc status
dvc checkout
uv add kedro-docker
uv export --no-hashes --no-dev --no-annotate --no-editable --no-emit-project -o requirements.txt
kedro docker build
kedro docker run
mlflow models serve -m models:/price_regressor@challenger --env-manager local --port 5005