TransOPT: Transfer Optimization System for Bayesian Optimization Using Transfer Learning
Docs |
Tutorials |
Examples |
Paper |
Citation |
TransOPT is an open-source software platform designed to facilitate the design, benchmarking, and application of transfer learning for Bayesian optimization (TLBO) algorithms through a modular, data-centric framework.
- Contains more than 1000 benchmark problems covers diverse range of domains.
- Build custom optimization algorithms as easily as stacking building blocks.
- Leverage historical data to achieve more efficient and informed optimization.
- Deploy experiments through an intuitive web UI and monitor results in real-time.
TransOPT empowers researchers and developers to explore innovative optimization solutions effortlessly, bridging the gap between theory and practical application.
TransOPT is composed of two main components: the backend for data processing and business logic, and the frontend for user interaction. Each can be installed as follows:
Before installing TransOPT, you must have the following installed:
- Python 3.10+: Ensure Python is installed.
- Node.js 17.9.1+ and npm 8.11.0+: These are required to install and build the frontend. Download Node.js
Please install these prerequisites if they are not already installed on your system.
-
Clone the repository:
$ git clone https://github.com/maopl/TransOpt.git
-
Install the required dependencies:
$ cd TransOpt $ python setup.py install
-
Install the frontend dependencies:
$ cd webui && npm install
To start the backend agent, use the following command:
$ python transopt/agent/app.py
When TransOPT has been started successfully, go to the webui directory and start the web UI on your local machine. Enable the user interface mode with the following command:
cd webui && npm start
This will open the TransOPT interface in your default web browser at http://localhost:3000
.
In addition to the web UI mode, TransOPT also offers a Command Line (CMD) mode for users who may not have access to a display screen, such as when working on a remote server.
To run TransOPT in CMD mode, use the following command:
python transopt/agent/run_cli.py -n Sphere -v 3 -o 1 -m RF -acf UCB -b 300
This command sets up a task named Sphere with 3 variables and 1 objectives, using a Random Forest model (RF) as surrogate model and the upper confidence bound (UCB) acquisition function, with a budget of 300 function evaluations.
For a complete list of available options and more detailed usage instructions, please refer to the CLI documentation.
Our docs walk you through using TransOPT, web UI and key API points. For an overview of the system and workflow for project management, see our documentation documentation.
Recent years, Bayesian optimization (BO) has been widely used in various fields, such as hyperparameter optimization, molecular design, and synthetic biology. However, conventional BO is not that efficient, where it conduct every optimization task from scratch while ignoring the experiences gained from previous problem-solving practices. To address this challenge, transfer learning (TL) has been introduced to BO, aiming to leverage auxillary data to improve the optimization efficiency and performance. Despite the potential of TLBO, the usage of TLBO is still limited due to the complexity of advanced TLBO methods. TransOPT, a system that facilitates:
- development of TLBO algorithms;
- benchmarking the performance of TLBO methods;
- applications of TLBO for downstream tasks;
Upper-left: illustrates the use of a web UI to construct new optimization algorithms by combining different components. Upper-right: highlights the application of an LLM agent to effectively manage optimization tasks. Middle: shows various visualization results derived from the optimization processes. Lower: presents a performance comparison of different TLBO methods.
If you find our work helpful to your research, please consider citing our:
@article{TransOPT,
title = {{TransOPT}: Transfer Optimization System for Bayesian Optimization Using Transfer Learning},
author = {Author Name and Collaborator Name},
url = {https://github.com/maopl/TransOPT},
year = {2024}
}