Releases: automl/SMAC3
Releases · automl/SMAC3
Version 1.4.0
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 inaverage_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
andepm/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
- 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
- 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
- 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
tosetup.py
. - Added multi-objective support for ROAR.
- Added notes in documentation that
SMAC4MF
is the closest implementation to BOHB/HpBandSter.
Version 1.3.1
- Added Python 3.7 support again.
Version 1.3
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 aMapping
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 accessingrh.data
which is still possible.
Minor Changes
- Updated the signature of the
ROAR
facade to match with it's parent classSMAC4AC
. Anyone relying on the output directory without specifying an explicitrun_id
to aROAR
facade should now expect to see the output directory atrun_0
instead ofrun_1
. See #827.
Code-Quality
- Updated and integrated flake8, mypy, black, and isort.
Documentation
- SMAC uses automl_sphinx_theme now and therefore the API is displayed nicer.
Version 1.2
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
tosave_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
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
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
toscripts/smac.py
.
Minor Changes
README.md
updated.CITATION.cff
added.- Made
smac-validate.py
consistent with runhistory and tae. (#762) minR
,maxR
anduse_ta_time
can now be initialized by the scenario. (#775)ConfigSpace.util.get_one_exchange_neighborhood
's invalid configurations are ignored. (#773)
Bug Fixes
Release 1.0.1
1.0.1
Minor Changes
- Added license information to every file.
- Fixed a display bug inside usage recommendation.