MLFlow

Vous pouvez utiliser les modèles MLflow qui prennent en charge PyFunc. Si votre modèle MLFlow possède une signature, l’argument signature est déduit du modèle. Sinon, vous devez fournir soit signature soit sample_input_data.

Les options supplémentaires suivantes peuvent être utilisées dans le dictionnaire options lors de l’appel à log_model :

Option

Description

model_uri

L’URI des artefacts du modèle MLFlow. Doit être fourni s’il n’est pas disponible dans les métadonnées du modèle sous la forme model.metadata.get_model_info().model_uri.

ignore_mlflow_metadata

Si True, les métadonnées du modèle ne sont pas importées dans l’objet modèle du registre. Par défaut : False

ignore_mlflow_dependencies

Si True, les dépendances dans les métadonnées du modèle sont ignorées, ce qui est utile en raison des limitations des paquets disponibles dans les entrepôts Snowflake. Par défaut : False

Exemple

import mlflow
from sklearn import datasets, model_selection, ensemble

db = datasets.load_diabetes(as_frame=True)
X_train, X_test, y_train, y_test = model_selection.train_test_split(db.data, db.target)
with mlflow.start_run() as run:
    rf = ensemble.RandomForestRegressor(n_estimators=100, max_depth=6, max_features=3)
    rf.fit(X_train, y_train)

    # Use the model to make predictions on the test dataset.
    predictions = rf.predict(X_test)
    signature = mlflow.models.signature.infer_signature(X_test, predictions)
    mlflow.sklearn.log_model(
        rf,
        "model",
        signature=signature,
    )
    run_id = run.info.run_id


model_ref = registry.log_model(
    mlflow.pyfunc.load_model(f"runs:/{run_id}/model"),
    model_name="mlflowModel",
    version_name="v1",
    conda_dependencies=["mlflow<=2.4.0", "scikit-learn", "scipy"],
    options={"ignore_mlflow_dependencies": True}
)
model_ref.run(X_test)
Copy