Spaces:
Running
Running
| # 📚 Exemples MLflow | |
| Ce dossier contient des exemples pratiques pour utiliser MLflow dans le projet. | |
| ## 🚀 Exemples disponibles | |
| ### 1. Trouver le meilleur modèle | |
| ```bash | |
| 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 | |
| ```bash | |
| 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 | |
| ```bash | |
| 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é | |
| ```bash | |
| # 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é : | |
| ```python | |
| 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 : | |
| ```bash | |
| mlflow ui --backend-store-uri sqlite:///mlflow.db --port 5000 | |
| ``` | |
| Puis ouvre http://localhost:5000 | |