Как загрузить артефакты из mlflow на python

#python #python-3.x #mlflow

Вопрос:

Я создаю эксперимент mlflow, в котором регистрируется модель логистической регрессии вместе с метрикой и артефактом.

 import mlflow
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import precision_recall_fscore_support

with mlflow.start_run(run_name=run_name, experiment_id=experiment_id):

        logreg = LogisticRegression()
        logreg.fit(x_train, y_train)
        print('training over', flush=True)
        y_pred = logreg.predict(x_test)
        mlflow.sklearn.log_model(logreg, "model")
   
        mlflow.log_metric("f1", precision_recall_fscore_support(y_test, y_pred, average='weighted')[2])
        mlflow.log_artifact(x_train.to_csv('train.csv')
 

для получения некоторых данных ( x_train, y_train, x_test, y_test )

Есть ли какой-либо способ получить доступ к артефактам для этого конкретного experiment_id для этого имени запуска и прочитать train.csv , а также прочитать model ?

Ответ №1:

Существует функция download_artifacts, которая позволяет вам получить доступ к зарегистрированному артефакту:

 local_path = client.download_artifacts(run_id, "train.csv", local_dir)
 

Артефакт модели можно либо загрузить с помощью той же функции (должен быть вызван объект model/model.pkl (для scikit-learn или что-то еще), либо вы можете загрузить модель, выполнив:

 loaded_model = mlflow.pyfunc.load_model(f"runs:/{run_id}/model")