Introduction au registre de modèles MLflow

Introduction à MLflow

Weston Bassler

Senior MLOps Engineer

Cycle de vie d'un modèle

Schéma du développement et de l'homologation

Introduction à MLflow

Registre de modèles MLflow

  • Emplacement centralisé de stockage

  • Gestion du cycle de vie

    • Interface Web
    • Module MLflow Client
    • Versions de modèles
    • Étapes des modèles

model-registry

Introduction à MLflow

Registre de modèles MLflow

  • Modèle

    • Modèle consigné dans MLflow Tracking
  • Modèle enregistré

    • Obtient une version
    • Admissible à une étape
Introduction à MLflow

Registre de modèles MLflow

  • Version de modèle

    • S'incrémente à chaque nouveau modèle enregistré
  • Étape du modèle

    • Peut être l'une des suivantes :
      • None
      • Staging
      • Production
      • Archived

Étapes

Introduction à MLflow

Utiliser le registre de modèles

Modèles

Introduction à MLflow

Module MLflow Client

  • Expériences

  • Exécutions

  • Versions de modèles

  • Modèles enregistrés

Machine Learning

1 Flaticon.com
Introduction à MLflow

Utiliser le module MLflow client

# Importer depuis le module MLflow
from mlflow import MlflowClient


# Créer une instance client = MlflowClient()
# Afficher l'objet client
<mlflow.tracking.client.MlflowClient object at 0x101d55f30>
Introduction à MLflow

Enregistrer un modèle

# Créer un modèle nommé "Unicorn"
client.create_registered_model(name="Unicorn")
<RegisteredModel: creation_timestamp=1679404160448, description=None, 
last_updated_timestamp=1679404160448, latest_versions=[], name='Unicorn', 
tags={}>
Introduction à MLflow

Interface du modèle

create-model

Introduction à MLflow

Rechercher des modèles enregistrés

search-models

Introduction à MLflow

Rechercher des modèles enregistrés

# Rechercher des modèles enregistrés
client.search_registered_models(filter_string=MY_FILTER_STRING)
  • Identifiants
    • name : nom du modèle
    • tags : étiquettes associées au modèle
  • Comparateurs
    • = : égal à
    • != : différent de
    • LIKE : correspondance sensible à la casse
    • ILIKE : correspondance insensible à la casse
Introduction à MLflow

Exemple de recherche

# Chaîne de filtrage
unicorn_filter_string = "name LIKE 'Unicorn%'"


# Rechercher des modèles client.search_registered_models(filter_string=unicorn_filter_string)
[<RegisteredModel: creation_timestamp=1679404160448, description=None, 
last_updated_timestamp=1679404160448, latest_versions=[], name='Unicorn', 
tags={}>, 
<RegisteredModel: creation_timestamp=1679404276745, description=None, 
last_updated_timestamp=1679404276745, latest_versions=[], name='Unicorn 2.0', 
tags={}>]
Introduction à MLflow

Passons à la pratique !

Introduction à MLflow

Preparing Video For Download...