LLM4AD is an open-source Python-based Platform leveraging Large Language Models (LLMs) for Automatic Algorithm Design (AD). Please refer to the paper [LLM4AD] for detailed information, including the overview, methodology, and benchmark results.
LLM4AD is accomplished with Documents and Examples materials to support users and developers to easily test, build and deploy their own LLM4AD applications and conduct research.
LLM4AD was originally developed for optimisation tasks. The framework is versatile enough to be used in other areas, including machine learning, science discovery, game theory and engineering design.
For more information, see the contact list
-
2024.12 🎉🎉 **LLM4AD paper Released ** “LLM4AD: A Platform for Algorithm Design with Large Language Model" !
-
2024.11 🎉🎉 LLM4AD v1.0 Released !
-
2024.10 🎉🎉 Survey Paper “A Systematic Survey on Large Language Models for Algorithm Design” is online !
Feature | Support / To be supported |
---|---|
Unified Interfaces for methods | 🔥Support |
Unified Interfaces for tasks | 🔥Support |
Unified Interfaces for LLMs | 🔥Support |
Evaluation acceleration: multiprocessing evaluation, add Numba wrapper for heuristic | 🔥Support |
Secure Evaluation: main process protection, timeout interruption | 🔥Support |
Logs: local logs, Wandb and Tensorboard support | 🔥Support |
GUI: methods selection, tasks selection, convergence, best algorithm, ... | 🔥Support |
Resume run | 🚀Will be updated soon |
Support other languages | 🚀Will be updated soon |
More search methods | 🚀Will be updated soon |
More task examples | 🚀Will be updated soon |
Important
The Python version must be larger or equal to Python 3.9.
-
refer to requirements.txt
-
Numba (if you want to use Numba accelerate)
-
Tensorboard (if you want to use a Tensorboard logger)
-
wandb (if you want to use wandb logger)
-
gym (if you want to try Machine Learning tasks)
-
pandas (if you want to try Science Discovery tasks)
-
all required packages in requirements.txt (if you want to use GUI)
We suggest to install and run LLM4AD in conda env with python>=3.9, <=3.11
cd LLM4AD pip install .
We suggest to install and run LLM4AD in conda env with python>=3.9, <=3.11
pip install llm4ad
Note
Configure your LLM api before running the script. For example:
- Set
host
: 'api.deepseek.com' - Set
key
: 'your api key' - Set
model
`deepseek-chat'
from llm4ad.task.optimization.online_bin_packing import OBPEvaluation
from llm4ad.tools.llm.llm_api_https import HttpsApi
from llm4ad.method.eoh import EoH, EoHProfiler
def main():
llm = HttpsApi(host="xxx", # your host endpoint, e.g., api.openai.com, api.deepseek.com
key="sk-xxx", # your key, e.g., sk-xxxxxxxxxx
model="xxx", # your llm, e.g., gpt-3.5-turbo, deepseek-chat
timeout=20)
task = OBPEvaluation()
method = EoH(llm=llm,
profiler=EoHProfiler(log_dir='logs/eoh', log_style='simple'),
evaluation=task,
max_sample_nums=20,
max_generations=10,
pop_size=4,
num_samplers=1,
num_evaluators=1,
debug_mode=False)
method.run()
if __name__ == '__main__':
main()
Check Documents for more tasks and examples
Important
Install all required packages in requirements.txt for GUI usage
$ cd GUI
$ python run_gui.py
Check GUI Introduction for more information
Methods | Paper title |
---|---|
RandomSampling | Understanding the Importance of Evolutionary Search in Automated Heuristic Design with Large Language Models (PPSN 2024) |
FunSearch | Mathematical Discoveries from Program Search with Large Language Models (Nature 2023) |
EoH* | Evolution of Heuristics: Towards Efficient Automatic Algorithm Design Using Large Language Model (ICML 2024) |
(1+1)-EPS* (HillClimbing) |
Understanding the Importance of Evolutionary Search in Automated Heuristic Design with Large Language Models (PPSN 2024) |
RegEvo | coming soon |
Neighborhood search methods | coming soon |
Multi-objective search methods | coming soon |
Others | coming soon |
*The implementation has some minor differences from the original method (demonstrated in their original paper), considering generality and multithreading acceleration.
Area | Algorithm Task | Paper |
---|---|---|
Optimization | [Online Bin Packing, Constructive heuristic] | paper |
Traveling Salesman Problem (TSP), Construct heuristic | paper | |
Traveling Salesman Problem (TSP), Guided local search | paper | |
Flow Shop Scheduling Problem (FSSP), Guided local search | paper | |
Bayesian Optimization, Cost-aware Acquisition Function Design | paper | |
Machine Learning | Adversarial Attack, Attack strategy | paper |
Acrobot, Heuristic (Agent) | ||
Cart Pole, Heuristic (Agent) | ||
Mountain Car, Heuristic (Agent) | ||
Science Discovery | Computational fluid dynamics, Turbulence model design | paper |
Bacteria Growth, Function | ||
Oscillator, Equation | ||
Stress & Strain, Equation | ||
Math | Admissible Sets | paper |
coming soon ... |
There are three approaches on LLM interface implementation, check Tutorial on LLM interface implementation for more information.
- Remote LLM API (e.g., GPT4o, GPT3.5, Gemini Pro, Deepseek ...) (<Recommended !!!>)
- Local HuggingFace LLM Deployment (e.g., Llamacode, Llama, Gemma, Deepseek, ...)
- Your Implementation If you want to use your own GPT API or local LLMs deployment, please create and add your interface in LLM
A Step-by-step Tutorial on using LLM4AD to solve your algorithm design task is provided here
This project is licensed under the MIT License - see the LICENSE file for details. Parts of this project use code licensed under the Apache License 2.0.
If you find LLM4AD helpful please cite:
@article{liu2024llm4ad,
title={LLM4AD: A Platform for Algorithm Design with Large Language Model},
author={Fei Liu and Rui Zhang and Zhuoliang Xie and Rui Sun and Kai Li and Xi Lin and Zhenkun Wang and Zhichao Lu and Qingfu Zhang},
year={2024},
eprint={2412.17287},
archivePrefix={arXiv},
primaryClass={cs.AI},
url={https://arxiv.org/abs/2412.17287},
}
This platform is developed and maintained by LLM4AD developer group from the City University of Hong Kong (CityUHK) and the Southern University of Science and Technology (SUSTech). We develop LLM4AD platform for research purposes and hope to contribute to the research area by delivering tools for LLM-based algorithm design methods.
- Contribution: We are more than welcome to contribute including developing code and ideas to improve our platform.
- Collaborations: If you like our platform, and you would like to use it for profit-making purposes? We are always searching for industrial collaborations because they help direct research to meet the industry’s needs.
- Issue: If you find a bug or you have any kind of concern regarding the correctness, please report us an issue.
- Profit Purpose: If you intend to use LLM4AD for any profit-making purposes, please contact us.
If you are interested in LLM4AD or if you encounter any difficulty using the platform, you can:
-
Visit our website LLM4AD Web
-
Visit our collection a collection of resources and research papers on LLM4AD
-
Join our QQ Group
-
Contact us through email [email protected]
-
Submit an issue