Favicon of BoTorch

BoTorch

A Bayesian optimization library for Python with GPU support, extensible models and GPyTorch integration. Open source under the MIT license.

Screenshot of BoTorch website

BoTorch is a Python library for researchers and experienced AI practitioners who build Bayesian optimization algorithms. It helps choose which inputs to evaluate next by fitting a probabilistic model to observed results. Its main appeal is control over the models and decision rules used in that search.

The components are interchangeable. You can supply your own probabilistic models, acquisition functions (rules for selecting the next candidates), and optimizers. That makes it useful for testing research ideas that need a different model or search strategy, rather than working within a fixed optimization workflow.

BoTorch builds on PyTorch's automatic differentiation and GPU support, and its code can run across multiple devices. It also integrates with PyTorch neural networks, including convolutional architectures. Monte Carlo acquisition functions let researchers develop selection rules without imposing restrictive assumptions on the underlying model.

GPyTorch provides its Gaussian process modeling capabilities. Supported approaches include multi-task Gaussian processes, deep kernel learning and deep Gaussian processes, with approximate inference available for model fitting. BoTorch also provides input normalization and outcome standardization.

It's open source under the MIT license. BoTorch is the lower-level library for implementing algorithms used with Ax; Ax provides a higher-level platform with data management and storage for people who want to apply Bayesian optimization without developing the algorithms themselves.

Similar to BoTorch