Skip to content
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

Introduce basic experiment visualization module mlos_viz via dabl #624

Merged
merged 71 commits into from
Jan 16, 2024

Conversation

bpkroth
Copy link
Contributor

@bpkroth bpkroth commented Jan 5, 2024

Adds a basic mlos_viz.plot(exp) style API for simple visualizations of ExperimentData results relative to the experiment's objectives (building off of #628 and dabl/dabl#335).

Note: this PR currently omits unit tests for the new module due to the complexity of testing visualizations. We intend to add this in future PRs. There is however, a working example of its use here right now:
Microsoft-CISL/sqlite-autotuning#41

@bpkroth bpkroth marked this pull request as ready for review January 12, 2024 23:43
@bpkroth bpkroth requested a review from a team as a code owner January 12, 2024 23:43
@bpkroth bpkroth requested a review from motus January 12, 2024 23:43
@bpkroth bpkroth added the ready for review Ready for review label Jan 13, 2024
Co-authored-by: Sergiy Matusevych <[email protected]>
Copy link
Member

@motus motus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, but let's merge #628 first

bpkroth added a commit that referenced this pull request Jan 16, 2024
…experiment (#628)

This PR is useful for mlos-viz and dabl wrapper (#624) to be able to
automatically graph the results for a given optimization target, for
instance via something like the following:

```python
for opt_target in exp.objectives:
    dabl.plot(exp.results, opt_target)
```

Since the prior efforts on capturing this data in the Trial metadata are
somewhat problematic (allow conflicting changes between runs of an
experiment, don't support multi-objective), we extend them to also store
values directly as a part of the Experiment, which is a somewhat more
appropriate location. Upon retrieval, an attempt is also made to merge
the two data sources for backwards compatibility.

This PR does not enforce strictness on that metadata, but future
versions could (e.g., disallow resuming an Experiment if it looks like
the objective targets have changed. In that case the prior Trial results
can potentially still be used to prewarm a new Experiment's optimizer).

---------

Co-authored-by: Sergiy Matusevych <[email protected]>
@bpkroth bpkroth enabled auto-merge (squash) January 16, 2024 18:20
@bpkroth bpkroth disabled auto-merge January 16, 2024 18:26
@bpkroth bpkroth enabled auto-merge (squash) January 16, 2024 18:47
@bpkroth bpkroth merged commit 1f3b26d into microsoft:main Jan 16, 2024
11 checks passed
@bpkroth bpkroth deleted the initial-mlos-viz-with-dabl branch January 16, 2024 18:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready for review Ready for review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants