oc_p5-dev / examples /README.md
ASI-Engineer's picture
Upload folder using huggingface_hub
aac75d5 verified
|
raw
history blame
2.78 kB

📚 Exemples MLflow

Ce dossier contient des exemples pratiques pour utiliser MLflow dans le projet.

🚀 Exemples disponibles

1. Trouver le meilleur modèle

python examples/01_find_best_model.py

Ce qu'il fait :

  • Liste les 5 meilleurs runs selon une métrique (cv_f1)
  • Affiche les hyperparamètres et métriques du meilleur
  • Charge le modèle pour vérifier qu'il fonctionne

Utilisation : Parfait pour identifier quel modèle utiliser dans ton API


2. Comparer plusieurs modèles

python examples/02_compare_models.py

Ce qu'il fait :

  • Compare tous les runs d'une expérience
  • Affiche un tableau avec métriques et hyperparamètres
  • Génère un graphique de comparaison (si matplotlib installé)
  • Calcule des statistiques (moyenne, max, min, écart-type)

Utilisation : Pour analyser tes expériences d'hyperparameter tuning


3. Gérer le Model Registry

python examples/03_model_registry.py

Ce qu'il fait :

  • Liste tous les modèles enregistrés
  • Affiche les versions et leurs stages
  • Démontre comment promouvoir un modèle
  • Charge un modèle depuis le Registry

Utilisation : Workflow de versioning pour la production


📖 Guide complet

Consulte docs/mlflow_guide.md pour :

  • Architecture MLflow complète
  • Intégration API FastAPI/Flask
  • Best practices
  • Workflow de retraining

🎯 Workflow recommandé

# 1. Entraîner plusieurs modèles
MLFLOW_TRACKING_URI=sqlite:///mlflow.db python tests/test_mlflow_quick.py

# 2. Trouver le meilleur
python examples/01_find_best_model.py

# 3. Comparer tous les runs
python examples/02_compare_models.py

# 4. Gérer le Registry
python examples/03_model_registry.py

# 5. Promouvoir en production (dans le code Python)
from mlflow.tracking import MlflowClient
client = MlflowClient()
client.transition_model_version_stage(
    name="XGBoost_Employee_Turnover",
    version=1,
    stage="Production"
)

🔗 Intégration API

Une fois le meilleur modèle identifié :

import mlflow

# Option A : Charger par run_id
model = mlflow.sklearn.load_model("runs:/RUN_ID/model")

# Option B : Charger depuis le Registry
model = mlflow.sklearn.load_model("models:/XGBoost_Employee_Turnover/Production")

# Prédiction
predictions = model.predict(X_new)

💡 Tips

  • Métrique principale : cv_f1 (F1-score en cross-validation)
  • Métriques secondaires : test_precision, test_recall, test_f1
  • Vérifier : Que test_f1 ≈ cv_f1 (pas de surapprentissage)
  • Favoriser : Modèles simples si performances similaires

🌐 MLflow UI

Pour visualiser graphiquement :

mlflow ui --backend-store-uri sqlite:///mlflow.db --port 5000

Puis ouvre http://localhost:5000