1

到目前为止,我在我的 jupyterhub 环境中使用 mlflow 进行模型跟踪,我觉得很容易通过调用 run 来跟踪 mlflow 中的工件:

with mlflow.start_run():
    lr = ElasticNet(alpha=alpha, l1_ratio=l1_ratio, random_state=42)
    lr.fit(train_x, train_y)

    predicted_qualities = lr.predict(test_x)

    (rmse, mae, r2) = eval_metrics(test_y, predicted_qualities)

    mlflow.log_param("alpha", alpha)
    mlflow.log_param("l1_ratio", l1_ratio)
    mlflow.log_metric("rmse", rmse)
    mlflow.log_metric("r2", r2)
    mlflow.log_metric("mae", mae)

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

我现在要搬到 Kubeflow,不确定是否可以在不创建管道的情况下在这里做同样的事情。我能找到的是:

client.run_pipleline(exp.id, ....)

有什么方法可以跟踪 Kubeflow 中的 mlflow 等实验吗?

4

1 回答 1

0

使用 Kubeflow 0.6,您可以做到这一点(至少在 Juypter Notebooks 中,不要认为它还与 Kubeflow Pipelines 集成)。

这里有一个示例:https ://github.com/kubeflow/metadata/blob/master/sdk/python/sample/demo.ipynb

如果链接将来失效,请在此处复制一些片段:

from kubeflow.metadata import metadata

# Create a workspace and use similar APIs to create execution
ws1 = metadata.Workspace(
    # Connect to metadata-service in namesapce kubeflow in k8s cluster.
    backend_url_prefix="metadata-service.kubeflow:8080",
    name="ws1",
    description="a workspace for testing",
    labels={"n1": "v1"})

使用以下命令记录给定的数据exec

data_set = exec.log_input(
        metadata.DataSet(
            description="an example data",
            name="mytable-dump",
            owner="owner@my-company.org",
            uri="file://path/to/dataset",
            version="v1.0.0",
            query="SELECT * FROM mytable"))
assert data_set.id
print("data set id is %s" % data_set.id)
于 2019-10-06T16:58:23.597 回答