Skip to content

Commit bbdec4d

Browse files
eytanfacebook-github-bot
authored andcommitted
Update botorch_and_ax.md (#71)
Summary: Revised documentation / narrative on ax integration. Pull Request resolved: #71 Reviewed By: Balandat Differential Revision: D14994033 Pulled By: eytan fbshipit-source-id: 45dd4a0ce44c3bd5870e4f74fec8affe90ae1b53
1 parent 734b50d commit bbdec4d

File tree

1 file changed

+19
-24
lines changed

1 file changed

+19
-24
lines changed

docs/botorch_and_ax.md

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,41 +3,36 @@ id: botorch_and_ax
33
title: Using botorch with Ax
44
---
55

6-
[Ax](https://github.com/facebook/Ax) is a platform for optimizing experiments.
6+
[Ax](https://github.com/facebook/Ax) is a platform for sequential
7+
experimentation.
78
It relies on botorch for implementing Bayesian Optimization algorithms, but
8-
provides much higher-level APIs that make it easy and convenient to specify
9-
problems. It also comes with powerful metadata management, storage of results,
10-
different APIs that support a variety of use cases. Ax makes it convenient to
11-
use botorch in many standard Bayesian Optimization settings. Simply put, if
9+
provides higher-level APIs that make it easy and convenient to specify
10+
problems, visualize results, and benchmark new algorithms. It also comes with powerful metadata management, storage of results, and deployment-related APIs. Ax makes it convenient to
11+
use botorch in most standard Bayesian Optimization settings. Simply put, if
1212
botorch is the "un-framework", then Ax is the "framework".
1313

14-
Ax provides a `BotorchModel` that is a sensible default for modeling and
15-
optimization, but that can easily be customized by specifying and passing in
16-
custom model constructors, acquisition functions, and optimization strategies.
17-
14+
Ax provides a `BotorchModel` (**TODO**: cross-link to Ax documentation) that is a sensible default for modeling and
15+
optimization which can be customized by specifying and passing in
16+
bespoke model constructors, acquisition functions, and optimization strategies.
17+
This model bridge utilizes a number of built-in transformations (**TODO**: make sure these transformations are documented in Ax, and link to them here), such normalizing input spaces and outputs to ensure reasonable fitting of GPs.
1818

1919
## When to use botorch though Ax
2020

21-
*Short answer:* If it's simple to use botorch through Ax for your problem, then
22-
use Ax. This should apply to most standard use cases.
21+
If it's simple to use botorch through Ax for your problem, then
22+
use Ax. It dramatically reduces the amount of bookkeeping one needs to do as a Bayesian optimization researcher, such as keeping track of results, and transforming inputs and outputs to ranges that will ensure sensible handling in (G)PyTorch. The functionality provided by Ax should apply to most standard use cases.
2323

24-
For instance, say you want to tinker around with some parameters of your botorch
25-
model (e.g. the kind of kernel), but leave the rest of the the Bayesian
24+
For instance, say you want to experiment with using a different kind of surrogate model, or a new type of acquisition function, but leave the rest of the the Bayesian
2625
Optimization loop untouched. It is then straightforward to plug your custom botorch
27-
model into Ax to take advantage of Ax's various loop control APIs,
26+
model or acquisition function into Ax to take advantage of Ax's various loop control APIs,
2827
as well as its powerful automated metadata management, data storage, etc. See the
2928
[Using a custom botorch model in Ax](../tutorials/custom_botorch_model_in_ax)
30-
tutorial for how to do this.
31-
32-
**TODO:** Link to docs on Ax's transformations.
33-
29+
tutorial for more on how ot do this.
3430

3531
## When not to use Ax
3632

37-
If you're working in a non-standard setting, where you might deal with very
38-
high-dimensional feature or parameter spaces, or where the model fitting process
39-
requires interactive work, then using Ax may end up becoming cumbersome. In such
33+
If you're working in a non-standard setting, such as those with high-dimensional or structured feature or design spaces, or where the model fitting process requires interactive work, then using Ax may not be the best solution for you. In such
4034
a situation, you might be better off writing your own full Bayesian Optimization
41-
loop outside of Ax (hey, it's all just python after all...). The
42-
[q-Noisy Constrained EI](../tutorials/closed_loop_botorch_only) tutorial shows
43-
how this can be done.
35+
loop outside of Ax. The
36+
[q-Noisy Constrained EI](../tutorials/closed_loop_botorch_only) tutorial and
37+
[variational auto-encoder](../tutorials/vae_mnist) tutorial give examples of how
38+
this can be done.

0 commit comments

Comments
 (0)