Baybe Versions Save

Bayesian Optimization and Design of Experiments

0.9.0

1 week ago

What's Changed

Added

  • Class hierarchy for objectives
  • AdditiveKernel, LinearKernel, MaternKernel, PeriodicKernel, PiecewisePolynomialKernel, PolynomialKernel, ProductKernel, RBFKernel, RFFKernel, RQKernel, ScaleKernel classes
  • KernelFactory 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 and SmoothedBoxPrior 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 to acquisition_function
  • User guide now explains the new objective classes
  • Telemetry deactivation warning is only shown to developers
  • torch, gpytorch and botorch 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 from Surrogate base class, GaussianProcessSurrogate and CustomONNXSurrogate
  • Dependency on requests package

Fixed

  • n_task_params now evaluates to 1 if task_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 of Objectives 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 and DesirabilityObjective
  • acquisition_function_cls constructor parameter for BayesianRecommender
  • VarUCB and qVarUCB acquisition functions

Expired Deprecations (from 0.6.*)

  • BayBE class
  • baybe.surrogate module
  • baybe.targets.Objective class
  • baybe.strategies.Strategy class

Merged Pull Requests

New Contributors

Full Changelog: https://github.com/emdgroup/baybe/compare/0.8.2...0.9.0

0.8.2

2 months ago

What's Changed

Added

  • Simulation user guide
  • Example for transfer learning backtesting utility
  • pyupgrade pre-commit hook
  • Better human readable __str__ representation of objective and targets
  • Alternative dataframe deserialization from pd.DataFrame constructors

Changed

  • More detailed and sophisticated search space user guide
  • Support for Python 3.12
  • Upgraded syntax to Python 3.9
  • Bumped onnx version to fix vulnerability
  • Increased threshold for low-dimensional GP priors
  • Replaced fit_gpytorch_mll_torch with fit_gpytorch_mll

Fixed

  • telemetry dependency is no longer a group (enables Poetry installation)

Merged Pull Requests

Full Changelog: https://github.com/emdgroup/baybe/compare/0.8.1...0.8.2

0.8.1

2 months ago

What's Changed

Added

  • Better human readable __str__ representation of campaign
  • README now contains an example on substance encoding results
  • Transfer learning user guide
  • from_simplex constructor now also takes and applies optional constraints

Changed

  • Full lookup backtesting example now tests different substance encodings
  • Replaced unmaintained mordred dependency by mordredcommunity
  • SearchSpaces now use ndarray instead of Tensor

Fixed

  • from_simplex now efficiently validated in Campaign.validate_config

Merged Pull Requests

Full Changelog: https://github.com/emdgroup/baybe/compare/0.8.0...0.8.1

0.8.0

3 months ago

What's Changed

Changed

  • BoTorch dependency bumped to >=0.9.3

Removed

  • Workaround for BoTorch hybrid recommender data type
  • Support for Python 3.8

Merged Pull Requests

Full Changelog: https://github.com/emdgroup/baybe/compare/0.7.4...0.8.0

0.7.4

3 months ago

What's Changed

Added

  • Subpackages for the available recommender types
  • Multi-style plotting capabilities for generated example plots
  • JSON file for plotting themes
  • Smoke testing in relevant tox environments
  • ContinuousParameter base class
  • New environment variable BAYBE_CACHE_DIR that can customize the disk cache directory or turn off disk caching entirely
  • Options to control the number of nonzero parameters in SubspaceDiscrete.from_simplex
  • Temporarily ignore ONNX vulnerabilities
  • Better human readable __str__ representation of search spaces
  • pretty_print_df function for printing shortened versions of dataframes
  • Basic Transfer Learning example
  • Repo now has reminders (https://github.com/marketplace/actions/issue-reminder) enabled
  • mypy for recommenders

Changed

  • Recommenders now share their core logic via their base class
  • Remove progress bars in examples
  • Strategies are now called MetaRecommender's and part of the recommenders.meta module
  • Recommender's are now called PureRecommender's and part of the recommenders.pure module
  • strategy keyword of Campaign renamed to recommender
  • NaiveHybridRecommender renamed to NaiveHybridSpaceRecommender

Fixed

  • Unhandled exception in telemetry when username could not be inferred on Windows
  • Metadata is now correctly updated for hybrid spaces
  • Unintended deactivation of telemetry due to import problem
  • Line wrapping in examples

Deprecations

  • TwoPhaseStrategy
  • SequentialStrategy
  • StreamingSequentialStrategy

Merged Pull Requests

New Contributors

Full Changelog: https://github.com/emdgroup/baybe/compare/0.7.3...0.7.4

0.7.3

3 months ago

What's Changed

Added

  • Copy button for code blocks in documentation
  • mypy for campaign, constraints and telemetry
  • Top-level example summaries
  • RecommenderProtocol as common interface for Strategy and Recommender
  • SubspaceDiscrete.from_simplex convenience constructor

Changed

  • Order of README sections
  • Imports from top level baybe.utils no longer possible
  • Renamed utils.numeric to utils.numerical
  • Optional chem dependencies are lazily imported, improving startup time

Fixed

  • Several minor issues in documentation
  • Visibility and constructor exposure of Campaign attributes that should be private
  • TaskParameters no longer disappear from computational representation when the search space contains only one task parameter value
  • Failing baybe import from environments containing only core dependencies caused by eagerly loading chem dependencies
  • tox coretest now uses correct environment and skips unavailable tests
  • Basic serialization example no longer requires optional chem dependencies

Removed

  • Detailed headings in table of contents of examples

Deprecations

  • Passing numerical_measurements_must_be_within_tolerance to the Campaign constructor is no longer supported. Instead, Campaign.add_measurements now takes an additional parameter to control the behavior.
  • batch_quantity replaced with batch_size
  • allow_repeated_recommendations and allow_recommending_already_measured are now attributes of Recommender and no longer attributes of Strategy

Merged Pull Requests

New Contributors

Full Changelog: https://github.com/emdgroup/baybe/compare/0.7.2...0.7.3

0.7.2

4 months ago

What's Changed

Added

  • Target enums
  • mypy for targets and intervals
  • Tests for code blocks in README and user guides
  • hypothesis strategies and roundtrip tests for targets, intervals, and dataframes
  • De-/serialization of target subclasses via base class
  • Docs building check now part of CI
  • Automatic formatting checks for code examples in documentation
  • Deserialization of classes with classmethod constructors can now be customized by providing an optional constructor field
  • SearchSpace.from_dataframe convenience constructor

Changed

  • Renamed bounds_transform_func target attribute to transformation
  • Interval.is_bounded now implements the mathematical definition of boundedness
  • Moved and renamed target transform utility functions
  • Examples have two levels of headings in the table of content
  • Fix orders of examples in table of content
  • DiscreteCustomConstraint validator now expects dataframe instead of series
  • ignore_example flag builds but does not execute examples when building documentation
  • New user guide versions for campaigns, targets and objectives
  • Binarization of dataframes now happens via pickling

Fixed

  • Wrong use of tolerance argument in constraints user guide
  • Errors with generics and type aliases in documentation
  • Deduplication bug in substance_data hypothesis
  • Use pydoclint as flake8 plugin and not as a stand-alone linter
  • Margins in documentation for desktop and mobile version
  • Intervals can now also be deserialized from a bounds iterable
  • SubspaceDiscrete and SubspaceContinuous now have de-/serialization methods

Removed

  • Conda install instructions and version badge
  • Early fail for different Python versions in regular pipeline

Deprecations

  • Interval.is_finite replaced with Interval.is_bounded
  • Specifying target configs without explicit type information is deprecated
  • Specifying parameters/constraints at the top level of a campaign configuration JSON is deprecated. Instead, an explicit searchspace field must be provided with an optional constructor entry.

Merged Pull Requests

New Contributors

Full Changelog: https://github.com/emdgroup/baybe/compare/0.7.1...0.7.2

0.7.1

5 months ago

What's Changed

Added

  • Release pipeline now also publishes source distributions

Fixed

  • Link handling in documentation

Merged Pull Requests

Full Changelog: https://github.com/emdgroup/baybe/compare/0.7.0...0.7.1

0.7.0

5 months ago

What's Changed

Added

  • GitHub CI pipelines
  • GitHub documentation pipeline
  • Optional --force option for building the documentation despite errors
  • Enabled passing optional arguments to tox -e docs calls
  • Logo and banner images
  • Project metadata for pyproject.toml
  • PyPI release pipeline
  • Favicon for homepage
  • More literature references
  • First drafts of first user guides

Changed

  • Reworked README for GitHub landing page
  • Now has concise contribution guidelines
  • Use Furo theme for documentation

Removed

  • --debug flag for documentation building

Merged Pull Requests

Full Changelog: https://github.com/emdgroup/baybe/compare/0.6.1...0.7.0

0.7.0a1

5 months ago

Test release.