MLFlow

您可以使用支持 PyFunc 的 MLflow 模型。如果您的 MLFlow 模型具有签名,则会从模型中推断出 signature 实参。否则,必须提供 signaturesample_input_data

调用 options 时,可以在 log_model 字典中使用下列附加选项:

选项

描述

model_uri

MLFlow 模型工件的 URI。如果在模型的元数据中不可用,则必须以 model.metadata.get_model_info().model_uri 的形式提供。

ignore_mlflow_metadata

如果为 True,则不将模型的元数据导入到注册表中的模型对象。默认:False

ignore_mlflow_dependencies

如果为 True,则忽略模型元数据中的依赖项,由于 Snowflake 仓库中的包可用限制,这非常有用。默认:False

示例

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
语言: 中文