Package: lite-bo
OpenBox: Generalized and Efficient Blackbox Optimization System.OpenBox 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.Deployment ArtifactsStandalone 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.FeaturesEase 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.LinksBlog post:to appear soonDocumentation:https://lite-bo.readthedocs.io/en/latest/?badge=latestPypi package:https://pypi.org/project/lite-bo/Conda package:to appear soonExamples:https://github.com/thomas-young-2013/lite-bo/tree/master/examplesBenchmark ResultsSingle-objective problemsAckley-4HartmannSingle-objective problems with constraintsMishraKeane-10Multi-objective problemsDTLZ1-6-5ZDT2-3Multi-objective problems with constraintsCONSTRSRNInstallationInstallation via pipFor Windows and Linux users, you can install bypipinstalllite-boFor macOS users, you need to installpyrfrcorrectly first, and thenpip install lite-bo.The tips for installingpyrfron macOS ishere.Manual installation from the github sourcegitclonehttps://github.com/thomas-young-2013/lite-bo.git&&cdlite-bo
catrequirements.txt|xargs-n1-L1pipinstall
pythonsetup.pyinstallmacOS users still need to follow thetipsto installpyrfrcorrectly first.Quick Startimportnumpyasnpfromlitebo.utils.start_smboimportcreate_smbodefbranin(x):xs=x.get_dictionary()x1=xs['x1']x2=xs['x2']a=1.b=5.1/(4.*np.pi**2)c=5./np.pir=6.s=10.t=1./(8.*np.pi)ret=a*(x2-b*x1**2+c*x1-r)**2+s*(1-t)*np.cos(x1)+sreturn{'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 ContributingOpenBox has a frequent release cycle. Please let us know if you encounter a bug byfilling 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 ourHow-to contribution page.We appreciate all contributions and thank all the contributors!FeedbackFile an issueon GitHub.Email us vialiyang.cs@pku.edu.cn.Related ProjectsTargeting 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.LicenseThe entire codebase is underMIT license