Hydra sweeper integration of our favorite optimization packages, utilizing ask-and-tell interfaces.
Project description
HyperSweeper
Hydra sweeper integration of our favorite optimization packages, utilizing ask-and-tell interfaces.
- Free software: BSD license
- Documentation: https://automl.github.io/hypersweeper
Installation
We recommend installing hypersweeper via a uv virtual environment:
pip install uv
uv venv --python 3.10
source .venv/bin/activate
make install
For extra dependencies, add them like this:
uv sync --extra dev --extra carps
Note that CARP-S requires you to install benchmarks and optimizers on your own, e.g. by running:
python -m carps.build.make optimizer_smac
The full optimizer options are:
optimizer_smac optimizer_dehb optimizer_nevergrad optimizer_optuna optimizer_ax optimizer_skopt optimizer_synetune
Basic Usage
To use the sweeper, you need to specify a target function with a hydra interface (see our examples). Then you can add one of the Hypersweeper variations as a sweeper and run with the '-m' flag to start the optimization. This will start a sequential run of your selected optimizer. If you want to use Hypersweeper on a cluster, you should additionally add a launcher, e.g. the submitit launcher for slurm.
As an example, take black-box optimization for Branin using SMAC. Simply run:
python examples/branin.py -m
You should see the launched configurations in the terminal. The results are located in 'tmp', including a record of each run, the final config and a full runhistory. For more information, see our example ReadMe.
Current Sweeper Integrations
Hypersweeper currently interfaces the following optimizers:
- SMAC
- HEBO
- Nevergrad
- CARP-S (which contains many different optimizers in itself)
We also implement sweepers from scratch for:
- Random Search
- Grid Search (for collecting analysis data)
- PBT, PB2 and BGPBT as adaptations of the original code
- Local parameter importance (LPI)
- Ablation Paths
We also have an interface for NePS, but due to them using an old configspace version, this sweeper is not usable out of the box and requires at least a change to the configspace version, possibly even some smaller changes to the config parsing.
Cite Us
If you use Hypersweeper in your project, please cite us:
@misc{eimer24,
author = {T. Eimer},
title = {Hypersweeper},
year = {2024},
url = {https://github.com/automl/hypersweeper},
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hypersweeper-0.2.3.tar.gz.
File metadata
- Download URL: hypersweeper-0.2.3.tar.gz
- Upload date:
- Size: 314.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08e15f0ea4f9a0300c590a1399c828c3887d766d22b23293f096cfa2f0c279f7
|
|
| MD5 |
9ab66531635acc4047c153e24ce01e09
|
|
| BLAKE2b-256 |
e8e50965a8b41096e8f883dea67dd6f354e19409d16cdb353826b1cc63df09ab
|
File details
Details for the file hypersweeper-0.2.3-py3-none-any.whl.
File metadata
- Download URL: hypersweeper-0.2.3-py3-none-any.whl
- Upload date:
- Size: 68.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8e824af9d301f3863a267b74c6557a3ad99c0b553d8678743af36061b0ccb70
|
|
| MD5 |
a380c2ac575fd39e086ce06a0f9de69d
|
|
| BLAKE2b-256 |
ca8afcae1fd6c7c343a681db87558a58a75dcd66cc523c90386eda489093d992
|