-
Notifications
You must be signed in to change notification settings - Fork 4k
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
Show latest, minimum and maximum metric values on metric page #5574
Conversation
Signed-off-by: Adam Reeve <adreeve@gmail.com>
Signed-off-by: Adam Reeve <adreeve@gmail.com>
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.
@adamreeve This is really awesome! Tried it out locally and it works great! I have a few small suggestions; let me know what you think of them:
- Can we turn the
Run <id>
entries in the table into links that users can click on? - Can we display the step associated with each metric min / max / latest value in parentheses?
E.g.
Latest | Max | ....
0.355 (step=17). | 0.4 (step=15) | ....
-
Can we make the table columns sortable so that users can easily identify the run with the smallest or largest latest / max / min value for a particular metric?
-
Can we make the tables fixed height and scrollable to conserve page space when there are many metrics being plotted?
Looking forward to shipping this! Thanks so much for your contribution!
@sunishsheth2009 Can you take a look as well and provide feedback?
Signed-off-by: Adam Reeve <adreeve@gmail.com>
Signed-off-by: Adam Reeve <adreeve@gmail.com>
Signed-off-by: Adam Reeve <adreeve@gmail.com>
Signed-off-by: Adam Reeve <adreeve@gmail.com>
Signed-off-by: Adam Reeve <adreeve@gmail.com>
Signed-off-by: Adam Reeve <adreeve@gmail.com>
Signed-off-by: Adam Reeve <adreeve@gmail.com>
Thanks for the feedback @dbczumar, all good suggestions and I've had a go at addressing those points. Making the tables fixed height was a bit awkward and meant I had to make the column widths fixed sizes, but I think that's okay and works well now. I also allowed sorting by the run or metric name for completeness, but I'm not sure if that would be used much. Related to not taking up too much space, I'm also interested in being able to show multiple separate plots on the metric page (#5397 (comment)), so if that's something that might be accepted I'd have to think about how it fits in with this change, eg. making the summary table views collapsible, or maybe having the tables separate to the plots and being able to control the set of metrics in tables separate to the plots. Probably not worth worrying about that too much right now though, I can address that if and when it's needed. |
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.
@adamreeve Apologies for the delay. This is fantastic! Just a couple of tiny alignment / titling things, then this is ready to go from my perspective. Thank you for your contribution!
- When there's only one metric selected, can we still show the title for it on the associated table?
- I noticed that the width of the runs column causes certain run IDs to overflow on to the next line; can we expand the column width slightly?
@sunishsheth2009 Can you take a look from a code correctness / frontend best practices perspective?
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.
@@ -414,9 +425,8 @@ describe('unit tests', () => { | |||
}); | |||
test('should render the number of completed runs correctly', () => { |
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.
Can we add a test to verify that the metric summary table is rendered as expected in the metric plot panel component?
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.
Yep I've added a test for this now
}); | ||
} | ||
|
||
dataColumns() { |
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.
Is there a reason that this needs to be a function rather than just a const?
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.
It depends on this.props.intl
for formatting column titles, so I think it needs to be a function?
Signed-off-by: Adam Reeve <adreeve@gmail.com>
Signed-off-by: Adam Reeve <adreeve@gmail.com>
Signed-off-by: Adam Reeve <adreeve@gmail.com>
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! Thanks so much, @adamreeve !
@sunishsheth2009 Can you give this one more look so that we can get it merged?
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
…#5574) * Show latest, minimum and maximum metric values on metric page Signed-off-by: Adam Reeve <adreeve@gmail.com> * Consistent behaviour when no metrics selected Signed-off-by: Adam Reeve <adreeve@gmail.com> * Show corresponding step numbers next to metric values Signed-off-by: Adam Reeve <adreeve@gmail.com> * Link to runs when showing metrics for multiple runs Signed-off-by: Adam Reeve <adreeve@gmail.com> * Make metric summary columns sortable Signed-off-by: Adam Reeve <adreeve@gmail.com> * Fix metric table height and make it scrollable Signed-off-by: Adam Reeve <adreeve@gmail.com> * Fix after merge: Handle multiple experiment ids in metrics plot panel Signed-off-by: Adam Reeve <adreeve@gmail.com> * Test for presence of run links Signed-off-by: Adam Reeve <adreeve@gmail.com> * Always show metric name header Signed-off-by: Adam Reeve <adreeve@gmail.com> * Bump header column width to avoid run ids overflowing Signed-off-by: Adam Reeve <adreeve@gmail.com> * Test MetricsSummaryTable is rendered by MetricsPlotPanel Signed-off-by: Adam Reeve <adreeve@gmail.com>
What changes are proposed in this pull request?
Displays a table of the latest, minimum and maximum metric values in the metric view, as discussed in #5517. This partly addresses #4750. This handles the case when the metric view is used to show data for a single run and when comparing multiple runs.
Single run
Multiple runs
Multiple runs and multiple metrics
How is this patch tested?
New unit tests added.
Does this PR change the documentation?
ci/circleci: build_doc
check. If it's successful, proceed to thenext step, otherwise fix it.
Details
on the right to open the job page of CircleCI.Artifacts
tab.docs/build/html/index.html
.Release Notes
Is this a user-facing change?
The metric view now includes a table showing the latest, minimum and maximum metric values for runs.
What component(s), interfaces, languages, and integrations does this PR affect?
Components
area/artifacts
: Artifact stores and artifact loggingarea/build
: Build and test infrastructure for MLflowarea/docs
: MLflow documentation pagesarea/examples
: Example codearea/model-registry
: Model Registry service, APIs, and the fluent client calls for Model Registryarea/models
: MLmodel format, model serialization/deserialization, flavorsarea/projects
: MLproject format, project running backendsarea/scoring
: MLflow Model server, model deployment tools, Spark UDFsarea/server-infra
: MLflow Tracking server backendarea/tracking
: Tracking Service, tracking client APIs, autologgingInterface
area/uiux
: Front-end, user experience, plotting, JavaScript, JavaScript dev serverarea/docker
: Docker use across MLflow's components, such as MLflow Projects and MLflow Modelsarea/sqlalchemy
: Use of SQLAlchemy in the Tracking Service or Model Registryarea/windows
: Windows supportLanguage
language/r
: R APIs and clientslanguage/java
: Java APIs and clientslanguage/new
: Proposals for new client languagesIntegrations
integrations/azure
: Azure and Azure ML integrationsintegrations/sagemaker
: SageMaker integrationsintegrations/databricks
: Databricks integrationsHow should the PR be classified in the release notes? Choose one:
rn/breaking-change
- The PR will be mentioned in the "Breaking Changes" sectionrn/none
- No description will be included. The PR will be mentioned only by the PR number in the "Small Bugfixes and Documentation Updates" sectionrn/feature
- A new user-facing feature worth mentioning in the release notesrn/bug-fix
- A user-facing bug fix worth mentioning in the release notesrn/documentation
- A user-facing documentation change worth mentioning in the release notes