如何修复 MLflow 中未显示的工件 UI

How to fixe Artifacts not showing in MLflow UI

我使用了 MLflow 并使用下面的函数(来自 pydataberlin)记录了参数。

def train(alpha=0.5, l1_ratio=0.5):
    # train a model with given parameters
    warnings.filterwarnings("ignore")
    np.random.seed(40)

    # Read the wine-quality csv file (make sure you're running this from the root of MLflow!)
    data_path = "data/wine-quality.csv"
    train_x, train_y, test_x, test_y = load_data(data_path)

    # Useful for multiple runs (only doing one run in this sample notebook)    
    with mlflow.start_run():
        # Execute ElasticNet
        lr = ElasticNet(alpha=alpha, l1_ratio=l1_ratio, random_state=42)
        lr.fit(train_x, train_y)

        # Evaluate Metrics
        predicted_qualities = lr.predict(test_x)
        (rmse, mae, r2) = eval_metrics(test_y, predicted_qualities)

        # Print out metrics
        print("Elasticnet model (alpha=%f, l1_ratio=%f):" % (alpha, l1_ratio))
        print("  RMSE: %s" % rmse)
        print("  MAE: %s" % mae)
        print("  R2: %s" % r2)

        # Log parameter, metrics, and model to MLflow
        mlflow.log_param(key="alpha", value=alpha)
        mlflow.log_param(key="l1_ratio", value=l1_ratio)
        mlflow.log_metric(key="rmse", value=rmse)
        mlflow.log_metrics({"mae": mae, "r2": r2})
        mlflow.log_artifact(data_path)
        print("Save to: {}".format(mlflow.get_artifact_uri()))

        mlflow.sklearn.log_model(lr, "model")

一旦我 运行 trin() 及其参数,在 UI 中我看不到工件,但我可以看到模型及其参数和指标。

在工件选项卡中写着No Artifacts Recorded Use the log artifact APIs to store file outputs from MLflow runs.但是在模型文件夹中的查找器中,所有工件都与模型 Pickle 一起存在。

帮助

这段代码不是运行本地的吗?也许您要移动 ml运行s 文件夹?我建议检查 meta.yaml 文件中存在的工件 URI。如果那里的路径不正确,可能会出现这样的问题。

有类似的问题。在我的例子中,我通过 运行 mlflow ui 在你的实验的 mlruns 目录中解决了它。

查看 Github here

上的完整讨论

希望对您有所帮助!

我遇到了同样的问题(mlflow.pytorch)。对我来说,它是通过替换 log_model()log_atrifacts().

来修复的

所以记录工件的是:

mlflow.log_metric("metric name", [metric value])
mlflow.pytorch.log_model(model, "model")
mlflow.log_artifacts(output_dir)

此外,对于终端中的ui,cd到mlruns所在的目录。例如,如果 mlruns 的位置是 ...\your-project\mlruns:

cd ...\your-project

进入安装mlflow的环境

...\your-project> conda activate [myenv]

然后,运行 mlflow ui

(myenv) ...\your-project> mlflow ui