从现在开始,我在jupyterhub环境中使用mlflow进行模型跟踪,我觉得只需调用以下运行即可轻松跟踪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之类的实验吗?
答案 0 :(得分:0)
使用Kubeflow 0.6,您可以做到这一点(至少在Juypter笔记本电脑中,不要认为它尚未与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)