Enregistrer des modèles

Introduction à MLflow

Weston Bassler

Senior MLOps Engineer

Enregistrer des modèles MLflow

  • Versions de modèle

    • suit le développement logiciel traditionnel
    • suivre les changements
  • Collaboration

    • entre différents rôles
    • mêmes rôles pour l'amélioration
Introduction à MLflow

Gestion du cycle de vie des modèles

cycle de vie du modèle

1 datacamp.com
Introduction à MLflow

Façons d'enregistrer des modèles

# Existing MLflow Models
mlflow.register_model(model_uri, name)

model_uri

  • système de fichiers local
  • serveur de suivi
# During training run
mlflow.FLAVOR.log_model(name, 
    artifact_uri,
    registered_model_name="MODEL_NAME")

registered_model_name="MODEL_NAME"

Introduction à MLflow

Exemple d'enregistrement de modèle

# Import mlflow
import mlflow


# Register model from local filesystem mlflow.register_model("./model", "Unicorn")
# Register model from Tracking server mlflow.register_model("runs:/run-id/model", "Unicorn")
Introduction à MLflow
# Register local MLFlow Model
mlflow.register_model(model_uri="./model", name="Unicorn")
Registered model 'Unicorn' already exists. Creating a new version of this model...

2023/03/24 14:34:26 INFO mlflow.tracking._model_registry.client: Waiting up to 300 seconds for model version to finish creation. Model name: Unicorn, version 1 Created version '1' of model 'Unicorn'. <ModelVersion: creation_timestamp=1679682866413, current_stage='None', description=None, last_updated_timestamp=1679682866413, name='Unicorn', run_id=None, run_link=None, source='./model', status='READY', status_message=None, tags={}, user_id=None, version=1>
Introduction à MLflow
# Register model from MLflow Tracking
mlflow.register_model(model_uri="runs:/run-id/model", name="Unicorn")
Registered model 'Unicorn' already exists. Creating a new version of this model...
2023/03/24 14:36:56 INFO mlflow.tracking._model_registry.client: 
Waiting up to 300 seconds for model version to finish creation.                     
Model name: Unicorn, version 2
Created version '2' of model 'Unicorn'.
<ModelVersion: creation_timestamp=1679683016297, current_stage='None', 
description=None, last_updated_timestamp=1679683016297, name='Unicorn', 
run_id='2e974508b68b45ceb114657c6e97fef5', run_link=None, 
source='./mlruns/1/2e974508b68b45ceb114657c6e97fef5/artifacts/model', 
status='READY', status_message=None, tags={}, user_id=None, version=2>
Introduction à MLflow

Interface Models

interface des modèles

Introduction à MLflow

Versions d'Unicorn

versions d'Unicorn

Introduction à MLflow

Consigner un modèle

# Import modules
import mlflow
import mlflow.sklearn
from sklearn.linear_model import LogisticRegression


# Model lr = LogisticRegression() lr.fit(X, y)
# Log model mlflow.sklearn.log_model(lr, "model", registered_model_name="Unicorn")
Introduction à MLflow
# Log model
mlflow.sklearn.log_model(lr, "model", registered_model_name="Unicorn")
Registered model 'Unicorn' already exists. Creating a new version of this model...
2023/03/24 17:31:10 INFO mlflow.tracking._model_registry.client: 
Waiting up to 300 seconds for model version to finish creation.                     
Model name: Unicorn, version 3
Created version '3' of model 'Unicorn'.
<mlflow.models.model.ModelInfo object at 0x14734d330>
Introduction à MLflow

Passons à la pratique !

Introduction à MLflow

Preparing Video For Download...