Skip to content

Releases: automl/SMAC3

Version 1.4.0

14 Jul 08:05
83a9bbe
Compare
Choose a tag to compare

Features

  • BOinG: A two-stage Bayesian optimization approach to allow the
    optimizer to focus on the most promising regions.
  • TurBO: Reimplementaion of TurBO-1 algorithm.
  • Updated pSMAC: Can pass arbitrary SMAC facades now. Added example and fixed tests.

Improvements

  • Enabled caching for multi-objectives (#872). Costs are now normalized in get_cost
    or optionally in average_cost/sum_cost/min_cost to receive a single float value. Therefore,
    the cached cost values do not need to be updated everytime a new entry to the runhistory was added.

Interface changes

  • We changed the location of Gaussian processes and random forests. They are in the folders
    epm/gaussian_process and epm/random_forest now.
  • Also, we restructured the optimizer folder and therefore the location of the acquisition functions
    and configuration chooser.
  • Multi-objective functions are located in the folder multi_objective.
  • pSMAC facade was moved to the facade directory.

Version 1.3.4

23 Jun 10:12
99d1129
Compare
Choose a tag to compare
  • Added reference to JMLR paper.
  • Typos in documentations.
  • Code more readable since all typings are imported at the beginning of the file.
  • Updated stale bot options.

Version 1.3.3

19 May 17:47
fc2fc14
Compare
Choose a tag to compare
  • Hotfix: Since multi-objective implementation depends on normalized costs, it now is ensured that the
    cached costs are updated everytime a new entry is added.
  • Removed mac-specific files.
  • Added entry point for cli.
  • Added ConfigSpace to third known parties s.t. sorting should be the same across different
    operating systems.
  • Fixed bugs in makefile in which tools were specified incorrectly.
  • Executed isort/black on examples and tests.
  • Updated README.
  • Fixed a problem, which incremented time twice before taking log (#833).
  • New wrapper for multi-objective models (base_uncorrelated_mo_model). Makes it easier for
    developing new multi-objective models.
  • Raise error if acquisition function is incompatible with the epm models.
  • Restricting pynisher.

Version 1.3.2

05 May 08:44
2935561
Compare
Choose a tag to compare
  • Added stale bot support.
  • If package version 0.0.0 via get_distribution is found, the version of the module is used
    instead.
  • Removed tox.ini.
  • Moved requirements.txt to setup.py.
  • Added multi-objective support for ROAR.
  • Added notes in documentation that SMAC4MF is the closest implementation to BOHB/HpBandSter.

Version 1.3.1

22 Apr 09:42
9d8f511
Compare
Choose a tag to compare
  • Added Python 3.7 support again.

Version 1.3

19 Apr 07:26
9d0d107
Compare
Choose a tag to compare

Features

  • PiBO: Augment the acquisition function by multiplying by a pdf given by the user.
    The prior then decays over time, allowing for the optimization to carry on as per default.
  • The RunHistory can now act as a Mapping in that you can use the usual methods you can use on dicts, i.e. len(rh), rh.items(), rh[key]. Previously this was usually done by accessing rh.data which is still possible.

Minor Changes

  • Updated the signature of the ROAR facade to match with it's parent class SMAC4AC. Anyone relying on the output directory without specifying an explicit run_id to a ROAR facade should now expect to see the output directory at run_0 instead of run_1. See #827.

Code-Quality

  • Updated and integrated flake8, mypy, black, and isort.

Documentation

Version 1.2

17 Feb 16:01
863e429
Compare
Choose a tag to compare

Features

  • Added multi-objective optimization via Mean-Aggregation or Par-EGO (#817, #818). Both approaches normalize
    the costs objective-wise based on all data in the history.

Major Changes

  • Results are instantly saved by default now. That means, runhistory.json is saved every time
    a trial is added.
  • Determinstic behaviour (defined in scenario) is default now. Calling a function/TAE with the same
    seed and configuration is expected to be the same.
  • Limit resources behaviour is by default false now. This is particually important because pynisher
    does not work on all machines (e.g. Colab, Mac, Windows, ...) properly.
  • Renamed scenario object save_results_instantly to save_instantly.
  • Added multi_objectives as scenario argument.
  • Expanded cost_for_crash for multi-objective support.

Examples

  • Integrated spear_qcp example for commandline.
  • Python examples are now executed so that the output in the documentation is shown.
  • Added multi-objective example.

Documentation

  • Added runhistory page.

Workflow Clean-up

  • Adds PEP 561 compliance (exports types so other packages can be aware of them).
  • Allow manual workflow_dispatch on actions that might require it (can manually trigger them from github UI).
  • Prevent the double trigger of actions by making push and pull_request and more strict.
  • A push to a pull request should no longer cause double the amount of tests to run (along with the other workflows that had on: [push, pull_request].
  • Some general cleanup, giving names to some actions, adding some linebreaks to break up things, ...
  • Command-line examples are tested again.
  • pytest.yaml:
    • Now scheduled to auto run everyday instead of every week.
    • Clean up the body of the steps and move some things to env var.
    • Scaffold for matrix that includes windows and mac testing (currently excluded, see comments).
    • Includes tests for Python 3.10.
    • Changed the boolean flags in the matrix to just be a categorical, easier to read.

Minor Changes

  • Specified that dask should not cache functions/results (#803) .
  • Handles invalid configuration vectors gracefully (#776).
  • Specified scenario docs that also SMAC options can be used.
  • Docs display init methods now.
  • Parameters in the docs are shown first now.
  • Successive Halving only warns you once if one worker is used only.
  • Statistics are better readable now.
  • Sobol sequence does not print warnings anymore.

Release 1.1.1

27 Jan 08:26
d4cb7ed
Compare
Choose a tag to compare

Minor Changes

  • Added comparison between SMAC and similar tools.
  • Updated installation guide.
  • Added a warning that CLI is only available when installing from GitHub.

Release 1.1.0

21 Oct 07:38
b2e0a65
Compare
Choose a tag to compare

Major Changes

  • Option to use an own stopping strategy using IncorporateRunResultCallback.
  • Documentation was updated thoroughly. A new theme with a new structure is provided and all pages
    have been updated. Also, the examples revised and up-to-date.
  • Changed scripts/smac to scripts/smac.py.

Minor Changes

  • README.md updated.
  • CITATION.cff added.
  • Made smac-validate.py consistent with runhistory and tae. (#762)
  • minR, maxR and use_ta_time can now be initialized by the scenario. (#775)
  • ConfigSpace.util.get_one_exchange_neighborhood's invalid configurations are ignored. (#773)

Bug Fixes

  • Fixed an incorrect adaptive capping behaviour. (#749)
  • Avoid the potential ValueError raised by LocalSearch._do_search. (#773)

Release 1.0.1

06 Aug 16:03
407b7c9
Compare
Choose a tag to compare

1.0.1

Minor Changes

  • Added license information to every file.
  • Fixed a display bug inside usage recommendation.