meta-pytorch/botorch

Bayesian optimization in PyTorch

What it solves

BoTorch provides a modular framework for Bayesian Optimization, allowing users to efficiently find the optimal parameters of expensive-to-evaluate functions. It simplifies the process of composing probabilistic models, acquisition functions, and optimizers to perform optimization loops.

How it works

Built on PyTorch, BoTorch leverages auto-differentiation and GPU acceleration to optimize acquisition functions. It uses Monte Carlo-based acquisition functions via the reparameterization trick, which allows it to work with a wide variety of probabilistic models without restrictive assumptions. It integrates seamlessly with GPyTorch for state-of-the-art probabilistic models like Gaussian Processes (GPs), as well as deep and convolutional architectures.

Who it’s for

Researchers and sophisticated practitioners in Bayesian Optimization and AI who need a low-level API to implement new algorithms. For end-users who are not doing active research, the project recommends using Ax.

Highlights

  • Modular interface for composing Bayesian optimization primitives.
  • Native PyTorch support for GPU acceleration and dynamic computation graphs.
  • Support for Monte Carlo-based acquisition functions.
  • First-class integration with GPyTorch for multi-task GPs, deep kernel learning, and deep GPs.

Related

  • Project
  • Project
  • Project
  • Project
  • Project