TP3 Partie 1 : log_model + Model Registry + promotion par alias
This commit is contained in:
@@ -3,6 +3,7 @@ import logging
|
||||
import mlflow
|
||||
import pandas as pd
|
||||
import typer
|
||||
from mlflow.models import infer_signature
|
||||
from sklearn import linear_model
|
||||
from sklearn import metrics
|
||||
|
||||
@@ -17,6 +18,11 @@ logger = logging.getLogger(__name__)
|
||||
@app.command()
|
||||
def main(
|
||||
strategy: constants.ModellingStrategy,
|
||||
register: bool = typer.Option(
|
||||
False,
|
||||
"--register/--no-register",
|
||||
help="Enregistrer le modele dans le Model Registry (cree une nouvelle version).",
|
||||
),
|
||||
):
|
||||
training_file_path = constants.DATASET_DIR / "train.parquet"
|
||||
validation_file_path = constants.DATASET_DIR / "validation.parquet"
|
||||
@@ -72,6 +78,24 @@ def main(
|
||||
):
|
||||
mlflow.log_metric(f"coef_{feature_name}", float(coefficient))
|
||||
|
||||
# Sauvegarde de l'artefact du modele (poids + signature + environnement
|
||||
# d'execution : requirements.txt, conda.yaml, MLmodel). --register empile
|
||||
# une nouvelle version dans le Model Registry pour les meilleures experiences.
|
||||
signature = infer_signature(X_train, train_predictions)
|
||||
mlflow.sklearn.log_model(
|
||||
sk_model=model,
|
||||
name="model",
|
||||
signature=signature,
|
||||
input_example=X_train.iloc[:5],
|
||||
registered_model_name=(
|
||||
constants.REGISTERED_MODEL_NAME if register else None
|
||||
),
|
||||
)
|
||||
if register:
|
||||
logger.info(
|
||||
f"Model registered as '{constants.REGISTERED_MODEL_NAME}' (nouvelle version)"
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app()
|
||||
|
||||
Reference in New Issue
Block a user