Open-BOX is an efficient and generalized blackbox optimization (BBO) system, which owns the following characteristics:
- Basic BBO algorithms.
- BBO with constraints.
- BBO with multiple objectives.
- BBO with transfer learning.
- BBO with distributed parallelization.
- BBO with multi-fidelity acceleration.
- BBO with early stops.
Users can install the released package and use it using Python.
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.
- 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.
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 via pip
For Windows and Linux users, you can install by
pip install lite-boFor 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 installmacOS users still need to follow the tips to install pyrfr correctly first.
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)- File an issue on GitHub.
- Email us via liyang.cs@pku.edu.cn.
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.
The entire codebase is under MIT license








