-
Notifications
You must be signed in to change notification settings - Fork 415
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 tutorial for TuRBO-1 #598
Conversation
Thanks for putting this up, overall this lgtm. A few comments:
Test failure is unrelated - should disappear afterrebase. |
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.
Looks pretty good to me, added two brief comments.
tutorials/turbo_1.ipynb
Outdated
"outputs": [], | ||
"source": [ | ||
"def create_initial_state(dim, batch_size):\n", | ||
" return {\n", |
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.
suggest using a dataclass
or namedtuple
here.
tutorials/turbo_1.ipynb
Outdated
"\n", | ||
"TuRBO-1 is a local optimizer that can be used for a fixed evaluation budget in a multi-start fashion. Once TuRBO converges, `state[\"restart_triggered\"]` will be set to true and the run should be aborted. If you want to run more evaluations with TuRBO, you simply generate a new set of initial points and then keep generating batches until convergence or when the evaluation budget has been exceeded. It's important to note that evaluations from previous instances are discarded when TuRBO restarts.\n", | ||
"\n", | ||
"NOTE: We use a `FixedNoiseGP` in this case as the problem is noise-free." |
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 am not sure if we want to encourage users to input noisy observations when no observation noise is present. Inferring the noise can help with numerical stability and help protect against model misspecification (see e.g., https://arxiv.org/pdf/1007.4580.pdf)
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.
The thought here is that the FixedNoiseGP
with a little bit of noise acts as regularization, but it makes sense to learn. I can switch over to the SingleTaskGP
and add a constraint + prior to keep the learned noise from being large since we know the problem is noise-free.
Codecov Report
@@ Coverage Diff @@
## master #598 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 91 91
Lines 5957 5957
=========================================
Hits 5957 5957 Continue to review full report at Codecov.
|
Thanks for fixing the failing tests on master, @Balandat! I've made some changes, what do you think? |
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! Feel free to import and land.
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.
@dme65 has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.
This adds a tutorial for TuRBO-1.
Motivation
To allow people to use, improve upon, and experiment with TuRBO in BoTorch.
Have you read the Contributing Guidelines on pull requests?
Yes.
Test Plan
This only adds a notebook, so no additional tests should be needed.
Related PRs
N/A