Home

PyBOP

PyBOP is an open-source Python library designed to facilitate Bayesian optimization of expensive black-box objective functions. It provides a modular toolkit for building surrogate models, selecting evaluation points, and managing optimization campaigns. The core idea is to use a probabilistic surrogate, typically a Gaussian process, to model the objective and to choose future samples by optimizing an acquisition function such as Expected Improvement, Upper Confidence Bound, or Probability of Improvement.

PyBOP emphasizes modularity: users can swap surrogate models, kernels, and acquisition strategies without changing the surrounding

Typical usage involves defining a wrapper around the objective function, configuring the search space through bounds

PyBOP is intended for researchers and practitioners who need a lightweight, extensible platform for hyperparameter tuning,

optimization
loop.
The
library
supports
common
features
found
in
Bayesian
optimization
workflows,
including
handling
noisy
evaluations,
bounding
constraints
on
parameters,
and
optional
parallel
or
batched
evaluations
to
accelerate
the
search.
or
categorical
options,
and
initiating
an
optimization
run
with
a
specified
number
of
iterations
or
a
time
budget.
The
library
maintains
a
history
of
evaluated
points
and
observed
values,
updates
the
surrogate
model
after
each
evaluation,
and
returns
the
best
observed
parameters
along
with
the
corresponding
objective
value.
experimental
design,
or
automated
parameter
searches.
It
interoperates
with
NumPy
and
SciPy
for
numerical
routines
and
can
be
extended
with
custom
kernels,
priors,
or
acquisition
strategies
as
needed.
Documentation
and
source
code
are
typically
hosted
on
a
public
repository
with
examples
and
tutorials
to
illustrate
common
workflows.