MLLFlow Mastery: un guide complet pour le suivi des expériences et la gestion des modèles

 MLLFlow Mastery: un guide complet pour le suivi des expériences et la gestion des modèles


MLLFlow Mastery: un guide complet pour le suivi des expériences et la gestion des modèlesImage de l’éditeur (Kanwal Mehreen) | Toile

Les projets d’apprentissage automatique impliquent de nombreuses étapes. Garder une trace des expériences et des modèles peut être difficile. MLFlow est un outil qui facilite cela. Il vous aide à suivre, gérer et déployer des modèles. Les équipes peuvent mieux travailler ensemble avec MLFlow. Il garde tout organisé et simple. Dans cet article, nous expliquerons ce qu’est MLFlow. Nous montrerons également comment l’utiliser pour vos projets.

Qu’est-ce que mlflow?

MLFlow est une plate-forme open source. Il gère l’intégralité du cycle de vie de l’apprentissage automatique. Il fournit des outils pour simplifier les workflows. Ces outils aident à développer, déployer et maintenir des modèles. MLFlow est idéal pour la collaboration par équipe. Il soutient les scientifiques des données et les ingénieurs travaillant ensemble. Il garde une trace des expériences et des résultats. Il emballe le code pour la reproductibilité. MLFlow gère également les modèles après le déploiement. Cela garantit des processus de production en douceur.

Pourquoi utiliser mlflow?

Gérer les projets ML sans MLFlow est difficile. Les expériences peuvent devenir désordonnées et désorganisées. Le déploiement peut également devenir inefficace. MLFlow résout ces problèmes avec des fonctionnalités utiles.

  • Suivi d’expérience: MLFlow aide à suivre facilement les expériences. Il enregistre les paramètres, les mesures et les fichiers créés lors des tests. Cela donne un enregistrement clair de ce qui a été testé. Vous pouvez voir comment chaque test a fonctionné.
  • Reproductibilité: MLFlow standardise comment les expériences sont gérées. Il enregistre les paramètres exacts utilisés pour chaque test. Cela rend les expériences répétitives simples et fiables.
  • Version de modèle: MLFlow a un registre de modèles pour gérer les versions. Vous pouvez stocker et organiser plusieurs modèles en un seul endroit. Cela facilite la gestion des mises à jour et des modifications.
  • Évolutivité: MLFlow fonctionne avec des bibliothèques comme TensorFlow et Pytorch. Il prend en charge les tâches à grande échelle avec l’informatique distribuée. Il s’intègre également au stockage cloud pour plus de flexibilité.

Configuration de mlflow

Installation

Pour commencer, installez mlflow en utilisant PIP:

Exécution du serveur de suivi

Pour configurer un serveur de suivi centralisé, exécutez:

mlflow server --backend-store-uri sqlite:///mlflow.db --default-artifact-root ./mlruns

Cette commande utilise une base de données SQLite pour le stockage des métadonnées et enregistre les artefacts dans le répertoire MLRUNS.

Lancement de l’interface utilisateur MLFlow

L’interface utilisateur MLFlow est un outil Web pour visualiser les expériences et les modèles. Vous pouvez le lancer localement avec:

Par défaut, l’interface utilisateur est accessible à http: // localhost: 5000.

Composants clés de mlflow

1. Suivi de Mlflow

Le suivi des expériences est au cœur de MLFlow. Il permet aux équipes de se connecter:

  • Paramètres: Hyperparamètres utilisés dans chaque course de formation de modèle.
  • Métrique: Les mesures de performance telles que la précision, la précision, le rappel ou les valeurs de perte.
  • Artefacts: Fichiers générés pendant l’expérience, tels que les modèles, les ensembles de données et les parcelles.
  • Code source: La version du code exact utilisé pour produire les résultats de l’expérience.

Voici un exemple de journalisation avec mlflow:

import mlflow

# Start an MLflow run
with mlflow.start_run():
    # Log parameters
    mlflow.log_param("learning_rate", 0.01)
    mlflow.log_param("batch_size", 32)

    # Log metrics
    mlflow.log_metric("accuracy", 0.95)
    mlflow.log_metric("loss", 0.05)

    # Log artifacts
    with open("model_summary.txt", "w") as f:
        f.write("Model achieved 95% accuracy.")
    mlflow.log_artifact("model_summary.txt")

2. Projets mlflow

Les projets MLFlow permettent la reproductibilité et la portabilité en normalisant la structure du code ML. Un projet contient:

  • Code source: Les scripts Python ou cahiers pour la formation et l’évaluation.
  • Spécifications de l’environnement: Dépendances spécifiées à l’aide de conda, pip ou docker.
  • Points d’entrée: Commandes pour exécuter le projet, telles que Train.py ou Evaluate.py.

Exemple de fichier mlproject:

name: my_ml_project
conda_env: conda.yaml
entry_points:
  main:
    parameters:
      data_path: {type: str, default: "data.csv"}
      epochs: {type: int, default: 10}
    command: "python train.py --data_path {data_path} --epochs {epochs}"

3. Modèles MLFlow

Les modèles MLFlow gèrent les modèles formés. Ils préparent des modèles pour le déploiement. Chaque modèle est stocké dans un format standard. Ce format comprend le modèle et ses métadonnées. Les métadonnées ont le cadre, la version et les dépendances du modèle. MLFlow prend en charge le déploiement sur de nombreuses plateformes. Cela inclut les API REST, Docker et Kubernetes. Il fonctionne également avec des services cloud comme AWS Sagemaker.

Exemple:

import mlflow.sklearn
from sklearn.ensemble import RandomForestClassifier

# Train and save a model
model = RandomForestClassifier()
mlflow.sklearn.log_model(model, "random_forest_model")

# Load the model later for inference
loaded_model = mlflow.sklearn.load_model("runs://random_forest_model")

4. Registre du modèle MLFlow

Le Registre du modèle suit les modèles à travers les étapes du cycle de vie suivant:

  1. Mise en scène: Modèles en test et évaluation.
  2. Production: Modèles déployés et servant du trafic en direct.
  3. Archivé: Modèles plus anciens conservés pour référence.

Exemple d’enregistrement d’un modèle:

from mlflow.tracking import MlflowClient

client = MlflowClient()

# Register a new model
model_uri = "runs://random_forest_model"
client.create_registered_model("RandomForestClassifier")
client.create_model_version("RandomForestClassifier", model_uri, "Experiment1")

# Transition the model to production
client.transition_model_version_stage("RandomForestClassifier", version=1, stage="Production")

Le registre aide les équipes à travailler ensemble. Il garde une trace de différentes versions de modèle. Il gère également le processus d’approbation pour déplacer les modèles.

Cas d’utilisation du monde réel

  1. Réglage hyperparamètre: Suivre des centaines d’expériences avec différentes configurations d’hyperparamètre pour identifier le modèle le plus performant.
  2. Développement collaboratif: Les équipes peuvent partager des expériences et des modèles via le serveur de suivi MLFlow centralisé.
  3. CI / CD pour l’apprentissage automatique: Intégrez MLFlow aux actions Jenkins ou GitHub pour automatiser les tests et le déploiement de modèles ML.

Meilleures pratiques pour mlflow

  1. Centraliser le suivi de l’expérience: Utilisez un serveur de suivi à distance pour la collaboration d’équipe.
  2. Contrôle de version: Maintenir le contrôle de la version pour le code, les données et les modèles.
  3. Standardiser les workflows: Utilisez des projets MLFlow pour assurer la reproductibilité.
  4. Surveiller les modèles: Suivre en continu les mesures de performances pour les modèles de production.
  5. Documenter et tester: Gardez une documentation approfondie et effectuez des tests unitaires sur les workflows ML.

Conclusion

MLFlow simplifie la gestion des projets d’apprentissage automatique. Il aide à suivre les expériences, à gérer les modèles et à assurer la reproductibilité. MLFlow facilite les équipes de collaborer et de rester organisé. Il prend en charge l’évolutivité et fonctionne avec les bibliothèques ML populaires. Le registre du modèle suit les versions et les étapes du modèle. MLFlow prend également en charge le déploiement sur diverses plates-formes. En utilisant MLFlow, vous pouvez améliorer l’efficacité du flux de travail et la gestion des modèles. Il permet d’assurer des processus de déploiement et de production en douceur. Pour de meilleurs résultats, suivez de bonnes pratiques telles que les modèles de contrôle des versions et de surveillance.

Jayita Gulati est une passionnée d’apprentissage automatique et une écrivaine technique motivée par sa passion pour la construction de modèles d’apprentissage automatique. Elle est titulaire d’une maîtrise en informatique de l’Université de Liverpool.



Source link

Related post