You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/botorch_and_ax.md
+19-24Lines changed: 19 additions & 24 deletions
Original file line number
Diff line number
Diff line change
@@ -3,41 +3,36 @@ id: botorch_and_ax
3
3
title: Using botorch with Ax
4
4
---
5
5
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.
7
8
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
12
12
botorch is the "un-framework", then Ax is the "framework".
13
13
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.
18
18
19
19
## When to use botorch though Ax
20
20
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.
23
23
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
26
25
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,
28
27
as well as its powerful automated metadata management, data storage, etc. See the
29
28
[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.
34
30
35
31
## When not to use Ax
36
32
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
40
34
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
0 commit comments