Replies: 1 comment 9 replies
-
@sdaulton @danielrjiang @dme65 @qingfeng10 @bletham @eytan @bkarrer @liangshi7 @mshvartsman @saitcakmak @wjmaddox @henrymoss, any thoughts on this? Specifically about whether you think this additional complexity / overhead would make it harder (or at lest perceived to be harder) to work with BoTorch. |
Beta Was this translation helpful? Give feedback.
9 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Context:
#783 introduces a new
construct_inputs
class method onAcquisitionFunction
s that can be used to construct the arguments to the respective acquisition function constructor in a programmatic way based on a general set of inputs. This is analogous to theconstruct_inputs
methods on theModel
s that we already have in place. It would be an optional method and when called on acquisition functions that do not implement custom handling would just raise aNotImplementedError
.Why do this:
The main use case for these is to simplify the instantiation of acquisition functions based on a general set of inputs with a consistent call signature in higher-level libraries using botorch as a modeling / optimization engine under the hood. Specifically, this would significantly simplify putting together custom combinations of Surrogate models, Acquisition functions, and optimizers in the modular botorch model setup in Ax: https://github.com/facebook/Ax/tree/master/ax/models/torch/botorch_modular. That avoids having to write a big old registry in Ax that is not only ugly but will also be very hard to keep in sync with the BoTorch changes.
Why not do this:
This adds a bunch of additional complexity and code that's not actually used directly within BoTorch. This means that even though this functionality is optional, the more complicated implementations of our stock acquisition functions could scare away users from using BoTorch in the first place. It also means additional maintenance overhead.
I am curious to hear what people think about this proposal.
Beta Was this translation helpful? Give feedback.
All reactions