-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build_python_component does not automatically configure the file outputs such as mlpipeline-ui-metadata in the containerop #2317
Comments
This does not seem to be a regression, since artifacts did not previously appear in ContainerOp.file_outputs. I'll fix this issue. |
Agreed that this is not regression but is a bug that we need to fix. |
I discovered two problems:
So, adding those two artifacts to |
mlpipeline-ui-metadata
output artifact is missing from ConatinerOp.outputs
Changed the title since this is not limited/related to the components - if you try to do the same with the task = ContainerOp(
file_outputs={
'mlpipeline-ui-metadata': '/tmp/mlpipeline-ui-metadata.json',
}
)
assert not task.outputs |
It will not be a breaking change because the outputs are only injected if the mlpipeline-ui-metadata is written in the python codes. The current (python component build)samples, which do not output Metric/Visualization are not affected.
AFAIK, the frontend/backend look for the metric/visualization based on the keys: https://www.kubeflow.org/docs/pipelines/sdk/output-viewer/
|
Are you sure? I tried on my machine and it worked fine. |
The
It's expected. That snippet demonstrates that the |
Let's take a step back and understand the high level CUJ here. The current state of the issue is: The "mlpipeline-ui-metadata" and "mlpipeline-metrics" entries are never added to the What CUJs are affected by this issues? What scenarios require passing "mlpipeline-ui-metadata" to another step? |
mlpipeline-ui-metadata
output artifact is missing from ConatinerOp.outputs
You might've misunderstood the issue. I was not referring to the task.outputs and I wasn't expecting the "mlpipeline-ui-metadata" and "mlpipeline-metrics" entries to be used by the downstream components. |
Oh. This changes everything. I was confused by this part in the description "the output such as mlpipeline-metrics.json or mlpipeline-ui-metadata.json, the generated containerop (by build_python_component) does not contain the corresponding file_output.". Does your component function have explicit outputs named 'mlpipeline_ui_metadata' and 'mlpipeline_metrics'? See the lightweight sample: https://github.com/kubeflow/pipelines/blob/master/samples/core/lightweight_component/lightweight_component.ipynb The metrics and visualizations should then work. |
Make sense. Similar to the codes below, If I'm understanding it correctly.
|
Yes. This code should work. Let me know if it does not. I think I should put a notice about the |
The issue is resolved. |
When the component python function contains the output such as mlpipeline-metrics.json or mlpipeline-ui-metadata.json, the generated containerop (by build_python_component) does not contain the corresponding file_output.
The text was updated successfully, but these errors were encountered: