MLFlow

PyFunc 를 지원하는 MLflow 모델을 사용할 수 있습니다. MLFlow 모델에 서명이 있는 경우 signature 인자는 모델에서 추론됩니다. 그렇지 않으면 signature 또는 sample_input_data 를 제공해야 합니다.

log_model 을 호출할 때 options 사전에서 다음 추가 옵션을 사용할 수 있습니다.

옵션

설명

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