secondmind-labs / trieste

A Bayesian optimization toolbox built on TensorFlow
Apache License 2.0
219 stars 42 forks source link

Batch trust regions implementation of TURBO #791

Closed khurram-ghani closed 9 months ago

khurram-ghani commented 11 months ago

Related issue(s)/PRs: None

Summary

This PR adds a TURBO implementation based on the new batch-trust-region classes and replaces the original TURBO implementation.

The entry point filter_datasets in acquisition rules from the earlier local-models PR is called after acquisition and observation of new query-points, but before model training. Trust region algorithms do not update their regions in acquire anymore, instead the update is now in this new method. This enables the behaviour of the new TURBOBox class to match the previous TURBO implementation.

Existing notebook, unit tests and integration tests have been updated to use the new classes. The trust_region notebook shows how local models can be used with TURBOBox.

Fully backwards compatible: no

We have agreed that we don't need backwards compatibility.

Previously, a TURBO rule was created like this:

rule = TURBO(search_space)

This will need to be replaced with the following:

rule = BatchTrustRegionBox(TURBOBox(search_space))

PR checklist