Skip to main content


license Build Status Issues Bugs Pull Requests Version Join the chat at https://gitter.im/bbo-open-box Documentation Status

OpenBox: Generalized and Efficient Blackbox Optimization System.

OpenBox is an efficient and generalized blackbox optimization (BBO) system, which owns the following characteristics:

  1. Basic BBO algorithms.
  2. BBO with constraints.
  3. BBO with multiple objectives.
  4. BBO with transfer learning.
  5. BBO with distributed parallelization.
  6. BBO with multi-fidelity acceleration.
  7. BBO with early stops.

Deployment Artifacts

Standalone Python package.

Users can install the released package and use it using Python.

Distributed BBO service.

We adopt the "BBO as a service" paradigm and implement OpenBox as a managed general service for black-box optimization. Users can access this service via REST API conveniently, and do not need to worry about other issues such as environment setup, software maintenance, programming, and optimization of the execution. Moreover, we also provide a Web UI, through which users can easily track and manage the tasks.

Features

  • Ease of use. Minimal user configuration and setup, and necessary visualization for optimization process.
  • Performance standards. Host state-of-the-art optimization algorithms; select proper algorithms automatically.
  • Cost-oriented management. Give cost-model based suggestions to users, e.g., minimal machines or time-budget.
  • Scalability. Scale to dimensions on the number of input variables, objectives, tasks, trials, and parallel evaluations.
  • High efficiency. Effective use of parallel resource, speeding up optimization with transfer-learning, and multi-fidelity acceleration for computationally-expensive evaluations.
  • Data privacy protection, robustness and extensibility.

Benchmark Results

Single-objective problems

Ackley-4 Hartmann

Single-objective problems with constraints

Mishra Keane-10

Multi-objective problems

DTLZ1-6-5 ZDT2-3

Multi-objective problems with constraints

CONSTR SRN

Installation

Installation via pip

For Windows and Linux users, you can install by

pip install lite-bo

For macOS users, you need to install pyrfr correctly first, and then pip install lite-bo.

The tips for installing pyrfr on macOS is here.

Manual installation from the github source

git clone https://github.com/thomas-young-2013/lite-bo.git && cd lite-bo
cat requirements.txt | xargs -n 1 -L 1 pip install
python setup.py install

macOS users still need to follow the tips to install pyrfr correctly first.

Quick Start

import numpy as np
from litebo.utils.start_smbo import create_smbo


def branin(x):
    xs = x.get_dictionary()
    x1 = xs['x1']
    x2 = xs['x2']
    a = 1.
    b = 5.1 / (4. * np.pi ** 2)
    c = 5. / np.pi
    r = 6.
    s = 10.
    t = 1. / (8. * np.pi)
    ret = a * (x2 - b * x1 ** 2 + c * x1 - r) ** 2 + s * (1 - t) * np.cos(x1) + s
    return {'objs': (ret,)}


config_dict = {
    "optimizer": "SMBO",
    "parameters": {
        "x1": {
            "type": "float",
            "bound": [-5, 10],
            "default": 0
        },
        "x2": {
            "type": "float",
            "bound": [0, 15]
        },
    },
    "advisor_type": 'default',
    "max_runs": 90,
    "time_limit_per_trial": 5,
    "logging_dir": 'logs',
    "task_id": 'hp1'
}

bo = create_smbo(branin, **config_dict)
bo.run()
inc_value = bo.get_incumbent()
print('BO', '=' * 30)
print(inc_value)

Releases and Contributing

OpenBox has a frequent release cycle. Please let us know if you encounter a bug by filling an issue.

We appreciate all contributions. If you are planning to contribute any bug-fixes, please do so without further discussions.

If you plan to contribute new features, new modules, etc. please first open an issue or reuse an existing issue, and discuss the feature with us.

To learn more about making a contribution to OpenBox, please refer to our How-to contribution page.

We appreciate all contributions and thank all the contributors!

Feedback

Targeting at openness and advancing AutoML ecosystems, we had also released few other open source projects.

  • VocalnoML : an open source system that provides end-to-end ML model training and inference capabilities.

License

The entire codebase is under MIT license

Metadata

Release files for lite-bo 0.6.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lite-bo 0.6.6
File Size Uploaded
lite-bo-0.6.6.tar.gz 145.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lite-bo 0.6.6
File Interpreter ABI Platform
lite_bo-0.6.6-py3-none-any.whl Python 3 none any Details

Total release size: 356.9 kB

Release files / lite-bo-0.6.6.tar.gz

Download URL lite-bo-0.6.6.tar.gz
Size 145.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d60199bd81acccd5f7d17c5247f39bb7be5e5753ecce81ce3d3174dc835b28b6
BLAKE2b-256 checksum
How to use checksums
c02b0734fa2a848cb543a39ee641f78804911eafba2689f2c152afee014329ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.6.1 requests/2.23.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.7.6

Release files / lite_bo-0.6.6-py3-none-any.whl

Download URL lite_bo-0.6.6-py3-none-any.whl
Size 211.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
47da57e7b312711045015ca617adc46c0be0fa646421fa17fe1d79471deee7e8
BLAKE2b-256 checksum
How to use checksums
b418df6ba25f921c249a8af72ea73c1a7c3905134126a8e1b848bf2d149074ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.6.1 requests/2.23.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.7.6

Release history Release notifications | RSS feed

This release

0.6.6 This release

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

3 release files

0.6.0

2 release files

0.5.9

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page