-
Notifications
You must be signed in to change notification settings - Fork 167
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
Add Compare Runs metric section #2798
Add Compare Runs metric section #2798
Conversation
4cae1ff
to
9a969fb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
frontend/src/concepts/pipelines/apiHooks/mlmd/useGetArtifactById.ts
Outdated
Show resolved
Hide resolved
frontend/src/concepts/pipelines/apiHooks/mlmd/useGetArtifactsList.ts
Outdated
Show resolved
Hide resolved
frontend/src/concepts/pipelines/content/artifacts/charts/ConfusionMatrix.tsx
Outdated
Show resolved
Hide resolved
frontend/src/concepts/pipelines/content/artifacts/charts/ConfusionMatrix.tsx
Outdated
Show resolved
Hide resolved
...epts/pipelines/content/compareRuns/metricsSection/confusionMatrix/ConfusionMatrixCompare.tsx
Outdated
Show resolved
Hide resolved
frontend/src/concepts/pipelines/content/compareRuns/metricsSection/roc/utils.ts
Outdated
Show resolved
Hide resolved
frontend/src/concepts/pipelines/content/compareRuns/metricsSection/scalar/ScalarMetricTable.tsx
Show resolved
Hide resolved
frontend/src/concepts/pipelines/content/compareRuns/metricsSection/scalar/utils.ts
Outdated
Show resolved
Hide resolved
frontend/src/concepts/pipelines/content/compareRuns/metricsSection/types.ts
Outdated
Show resolved
Hide resolved
frontend/src/pages/pipelines/global/experiments/compareRuns/CompareRunsMetricsSection.tsx
Outdated
Show resolved
Hide resolved
2fd73b2
to
e25ca4e
Compare
frontend/src/concepts/pipelines/content/artifacts/charts/ConfusionMatrix.tsx
Outdated
Show resolved
Hide resolved
frontend/src/concepts/pipelines/content/artifacts/charts/ConfusionMatrix.tsx
Outdated
Show resolved
Hide resolved
Are you sure the intention of |
The UX is different on the compare runs page vs the run details for expand |
This is what is done in KF, and i did not have a ref for what yan wanted so i fell back on what upstream did |
there could be multiple per run so it would have to be run name > execution name > artifact name.... this can get large so i assume thats why its just using series name. this can be iterated on late if it is confusing |
We could, this is what upstream had and there was no mock for what to do in our case |
I can remove the switch if there is only one run |
it only shows the runs with scalar metrics |
I think that would be confusing to the user if they could not deselect it. The blank skeleton was the closest PF like thing i could use to simulate what KF used. I think a lot of the concerns need UX to decide what is best, maybe we can wait until demo and @yannnz can give her opinion |
1967ca6
to
5c20c13
Compare
The skeleton is used for loading states, but this doesn't load anything, so I think if we are meant to deselect the item, the content should instead show empty state? |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2798 +/- ##
=======================================
Coverage ? 77.35%
=======================================
Files ? 1093
Lines ? 23021
Branches ? 5794
=======================================
Hits ? 17808
Misses ? 5213
Partials ? 0
Continue to review full report in Codecov by Sentry.
|
@yannnz I'm not sure either. I understood it as them being the runs since that's what is unique for each table row in this case, but I could be wrong. |
@yannnz I don't think so. At least how the Parameters compare table works, if 1 run has data, the other 2 show to compare against empty values. This should be achievable here as well, but not sure what was expected. |
@yannnz Does it still have parameters? I think the 2nd row here doesn't represent a parameter, just the execution name. |
@yannnz In KF UI, When adding filter text to the search box and no results are found, they don't update the table data, and instead still show the rows. In our case, we allow users to filter, which hides the rows, but yet they're still selected: |
.filter((confidenceMetrics) => !!confidenceMetrics.data) | ||
.map(({ data, fullArtifactPath }, i) => { | ||
// validate the custom properties | ||
const confidenceMetricsArray = data?.list as unknown[]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this case to unknown?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
becuase it is coming from custom properties
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i changed the logic to be based on the actual value now
This is not possible in victory charts |
KF does not show empty ones, just ones that gave the param. otherwise it may give the impression that the execution has that scalar metric. And if we do go down this route, then we would be showing a bunch of empty cells |
filtering should not deselect things from the checkboxes. that is not our behavior in other areas so it should not be here. i guess the idea is to help find your artifact to show if you have a lot? |
… and types.ts Refactor imports and remove unused code in ArtifactDetails.spec.tsx and ArtifactsTable.spec.tsx Refactor imports and remove unused code in ArtifactDetails.spec.tsx and ArtifactsTable.spec.tsx Add TestArtifacts component to GlobalPipelineExperimentsRoutes Refactor ConfusionMatrix component to improve readability and styling Add ConfusionMatrix component and buildConfusionMatrixConfig function Add ConfusionMatrix and ROCCurve components Remove TestArtifacts component and update related routes Refactor ROC curve table components, update imports, and remove unnecessary code Refactor ConfusionMatrixSelect component and add skeleton loading Refactor ROC curve table components and update imports Refactor ROC curve table components and add related constants Refactor ROC curve table components and add related constants Refactor CompareRunsMetricsSection component, update imports, and remove console.log statements Refactor CompareRunsMetricsSection component, update imports, and add ROC curve tab Refactor Dockerfile to use linux/amd64 platform Refactor CompareRunsMetricsSection component, update imports, and add confusion matrix tab Refactor CompareRunsMetricsSection component, add MetricSectionTabLabels enum, and update related types and imports Refactor CompareRunsMetricsSection component, add MetricSectionTabLabels enum, and update related types and imports Refactor CompareRunsMetricsSection component and add MetricSectionTabLabels enum Refactor and remove unused code in usePipelinesUiRoute.ts and ArtifactUriLink.tsx Refactor MLMD API hooks and remove unused code Refactor components to improve readability and add loading spinners Refactor components to improve readability and add loading spinners clean up Refactor imports and remove unused code in ArtifactDetails.spec.tsx and ArtifactsTable.spec.tsx Refactor ConfusionMatrix component to improve readability and styling Refactor ROC curve table components and update imports
5c20c13
to
c1291d3
Compare
}; | ||
|
||
const ROCCurve: React.FC<ROCCurveProps> = ({ configs, maxDimension }) => { | ||
const width = Math.min(maxDimension || 800, 500); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe this was added just to test out 500 px? Won't this always return 500?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm /approve
Approving with the expectation for any UX discussions to be made into a separate story and followed up on.
[APPROVALNOTIFIER] This PR is APPROVED Approval requirements bypassed by manually added approval. This pull-request has been approved by: The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
closes: https://issues.redhat.com/browse/RHOAIENG-4772
closes: https://issues.redhat.com/browse/RHOAIENG-4771
Description
Adds compare runs section for the following metrics:
Scalar metric table
Confusion matrix
roc curve
How Has This Been Tested?
Pipeline metrics-visualization-pipeline.yaml.zip
Test Impact
Tests are complicated becuase they involve graphs and mlmd. I am working on a solution now but i want to get this PR up so it unblocks
Request review criteria:
Self checklist (all need to be checked):
If you have UI changes:
After the PR is posted & before it merges:
main
cc @yannnz