0.9.0
What's Changed
Added
- Class hierarchy for objectives
AdditiveKernel
,LinearKernel
,MaternKernel
,PeriodicKernel
,
PiecewisePolynomialKernel
,PolynomialKernel
,ProductKernel
,RBFKernel
,
RFFKernel
,RQKernel
,ScaleKernel
classesKernelFactory
protocol enabling context-dependent construction of kernels- Preset mechanism for
GaussianProcessSurrogate
hypothesis
strategies and roundtrip test for kernels, constraints, objectives,
priors and acquisition functions- New acquisition functions:
qSR
,qNEI
,LogEI
,qLogEI
,qLogNEI
GammaPrior
,HalfCauchyPrior
,NormalPrior
,HalfNormalPrior
,LogNormalPrior
andSmoothedBoxPrior
classes- Possibility to deserialize classes from optional class name abbreviations
- Basic deserialization tests using different class type specifiers
- Serialization user guide
- Environment variables user guide
- Utility for estimating memory requirements of discrete product search space
mypy
for search space and objectives
Changed
- Reorganized acquisition.py into
acquisition
subpackage - Reorganized simulation.py into
simulation
subpackage - Reorganized gaussian_process.py into
gaussian_process
subpackage - Acquisition functions are now their own objects
acquisition_function_cls
constructor parameter renamed toacquisition_function
- User guide now explains the new objective classes
- Telemetry deactivation warning is only shown to developers
torch
,gpytorch
andbotorch
are lazy-loaded for improved startup time- If an exception is encountered during simulation, incomplete results are returned
with a warning instead of passing through the uncaught exception - Environment variables
BAYBE_NUMPY_USE_SINGLE_PRECISION
and
BAYBE_TORCH_USE_SINGLE_PRECISION
to enforce single point precision usage
Removed
model_params
attribute fromSurrogate
base class,GaussianProcessSurrogate
and
CustomONNXSurrogate
- Dependency on
requests
package
Fixed
n_task_params
now evaluates to 1 iftask_idx == 0
- Simulation no longer fails in
ignore
mode when lookup dataframe contains duplicate
parameter configurations - Simulation no longer fails for targets in
MATCH
mode closest_element
now works for array-like input of all kinds- Structuring concrete subclasses no longer requires providing an explicit
type
field _target(s)
attributes ofObjectives
are now de-/serialized without leading
underscore to support user-friendly serialization strings- Telemetry does not execute any code if it was disabled
- Running simulations no longer alters the states of the global random number generators
Deprecations
- The former
baybe.objective.Objective
class has been replaced with
SingleTargetObjective
andDesirabilityObjective
acquisition_function_cls
constructor parameter forBayesianRecommender
VarUCB
andqVarUCB
acquisition functions
Expired Deprecations (from 0.6.*)
BayBE
classbaybe.surrogate
modulebaybe.targets.Objective
classbaybe.strategies.Strategy
class
Merged Pull Requests
- Emojification by @AdrianSosic in #189
- Lazy load DTypeFloatTorch by @rjavadi in #173
- Fix: n_task_params now evaluates to 1 if task_idx == 0 by @tobiasploetz in #187
- Acquisition package by @AdrianSosic in #190
- Mypy for search spaces by @AdrianSosic in #177
- Lazy load
torch
in surrogates by @rjavadi in #165 - Objective classes by @AdrianSosic in #188
- Correct simulate_scenarios to simulate_experiment in docs by @brandon-holt in #199
- Acquisition function classes by @AdrianSosic in #191
- Skeleton for kernels by @AVHopp in #196
- Hypothesis for objectives by @AdrianSosic in #197
- Fix lookup bug in simulation by @AdrianSosic in #202
- Hypothesis for constraints by @AdrianSosic in #178
- Drop
model_params
where unnecessary by @AdrianSosic in #204 - Hotfix for match mode simulation by @AdrianSosic in #208
- Update objective user guide by @AdrianSosic in #201
- Telemetry changes by @Scienfitz in #205
- Use tox-uv by @AdrianSosic in #182
torch
lazy loading by @AdrianSosic in #206- Create
simulation
subpackage by @AdrianSosic in #210 - New acquisition functions by @Scienfitz in #203
- Custom kernel priors by @AVHopp in #219
- Serialization user guide by @AdrianSosic in #216
- Refactor surrogates and decorators by @AdrianSosic in #209
- Enable force docs and tag selection by @Scienfitz in #230
- Simplification of doc building script by @AVHopp in #224
- More Priors by @Scienfitz in #225
- Fix telemetry execution by @Scienfitz in #237
- Enable returning incomplete simulation results by @AdrianSosic in #213
- Include custom
ScaleKernel
by @AVHopp in #221 - Relocate priors by @AdrianSosic in #238
- Enable single point precision via env vars by @Scienfitz in #226
- Refactor GP Surrogates by @AdrianSosic in #235
- Arithmetic kernels by @AdrianSosic in #241
- Ditch
requests
by @Scienfitz in #240 - Increate hypothesis deadline by @Scienfitz in #245
- Avoid altering RNG states by @AdrianSosic in #239
- User guide for environment variables by @Scienfitz in #227
- Minor README fixes by @AdrianSosic in #242
- Memory estimation utilities by @Scienfitz in #228
- Add more kernels by @Scienfitz in #244
- Release 0.9.0 by @AdrianSosic in #217
New Contributors
- @tobiasploetz made their first contribution in #187
- @brandon-holt made their first contribution in #199
Full Changelog: 0.8.2...0.9.0