Skip to main content
Version: 0.5.0

Welcome to Ax Tutorials

Here you can learn about the structure and applications of Ax from examples.

Our 3 API tutorials: Loop, Service, and Developer — are a good place to start. Each tutorial showcases optimization on a constrained Hartmann6 problem, with the Loop API being the simplest to use and the Developer API being the most customizable.

NOTE: We recommend the Service API for the vast majority of use cases. This API provides an ideal balance of flexibility and simplicity for most users, and we are in the process of consolidating Ax usage around it more formally.

Further, we explore the different components available in Ax in more detail. The components explored below serve to set up an experiment, visualize its results, configure an optimization algorithm, run an entire experiment in a managed closed loop, and combine BoTorch components in Ax in a modular way.

  • Visualizations illustrates the different plots available to view and understand your results.

  • GenerationStrategy steps through setting up a way to specify the optimization algorithm (or multiple). A GenerationStrategy is an important component of Service API and the Scheduler.

  • Scheduler demonstrates an example of a managed and configurable closed-loop optimization, conducted in an asyncronous fashion. Scheduler is a manager abstraction in Ax that deploys trials, polls them, and uses their results to produce more trials.

  • Modular BoTorchModel walks though a new beta-feature — an improved interface between Ax and BoTorch — which allows for combining arbitrary BoTorch components like AcquisitionFunction, Model, AcquisitionObjective etc. into a single Model in Ax.

Our other Bayesian Optimization tutorials include:

For experiments done in a real-life setting, refer to our field experiments tutorials:

  • Bandit Optimization shows how Thompson Sampling can be used to intelligently reallocate resources to well-performing configurations in real-time.

  • Human-in-the-Loop Optimization walks through manually influencing the course of optimization in real-time.