Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 24 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org, ieee.org, acm.org, zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.9%) to scientific vocabulary
Repository
Large Language Model Evolutionary Algorithm
Basic Info
- Host: GitHub
- Owner: XAI-liacs
- License: mit
- Language: Jupyter Notebook
- Default Branch: main
- Size: 514 MB
Statistics
- Stars: 58
- Watchers: 3
- Forks: 9
- Open Issues: 9
- Releases: 16
Metadata Files
README.md
LLaMEA: Large Language Model Evolutionary Algorithm
⭐ If you like this, please give the repo a star – it helps!
The fully-open successor to Google DeepMind’s AlphaEvolve for automated algorithm discovery. First released 📅 Nov 2024 • MIT License • 100 % reproducible. Also read the Documentation.
🥈 Winner of the Silver Humies 2025 at GECCO!
LLaMEA couples large-language-model reasoning with an evolutionary loop to invent, mutate and benchmark algorithms fully autonomously.
Table of Contents
Introduction
LLaMEA (Large Language Model Evolutionary Algorithm) is an innovative framework that leverages the power of large language models (LLMs) such as GPT-4 for the automated generation and refinement of metaheuristic optimization algorithms. The framework utilizes a novel approach to evolve and optimize algorithms iteratively based on performance metrics and runtime evaluations without requiring extensive prior algorithmic knowledge. This makes LLaMEA an ideal tool for both research and practical applications in fields where optimization is crucial.
Key Features: - Automated Algorithm Generation: Automatically generates and refines algorithms using GPT-based or similar LLM models. - Performance Evaluation: Integrates seamlessly with the IOHexperimenter for real-time performance feedback, guiding the evolutionary process. - LLaMEA-HPO: Provides an in-the-loop hyper-parameter optimization mechanism (via SMAC) to offload numerical tuning, so that LLM queries focus on novel structural improvements. - Extensible & Modular: You can easily integrate additional models and evaluation tools. - Niching for Diversity: Fitness sharing and clearing strategies maintain a diverse set of solutions. - Unified Diff Mode: Evolve code through patch-based edits for efficient token usage. - Population Evaluation Mode: Optionally evaluate whole populations in a single call to speed up expensive fitness functions.
Example use-cases: - Problem specific optimization algorithms: Easily generate and fine-tune optimization algorithms to work on your specific problem. By leveraging problem knowledge in the prompt the generated optimized algorithms can perform even better. - Efficient new Bayesian Optimization algorithms: Generate optimized and novel Bayesian optimization algorithms, specifically for optimizing very expensive problems such as auto-motive crash worthiness or car shape design optimization tasks. - Machine Learning Pipelines: Without any ML knowledge, you can use LLaMEA to generate optimized machine learning pipelines for any task. Just insert the task description and provide the dataset and evaluation metric and start LLaMEA.
🔥 News
2025.07 🎉🎉 "LLaMEA" won the Any-time Performancy on Many-Affine BBOB competition, and the Silver award at the Humies @GECCO2025!
2025.06 🎉🎉 "LLaMEA-BO: A Large Language Model Evolutionary Algorithm for Automatically Generating Bayesian Optimization Algorithms" published on Arxiv!
2025.05 🎉🎉 "Optimizing Photonic Structures with Large Language Model Driven Algorithm Discovery" accepted as workshop paper at GECCO 2025!
2025.05 🎉🎉 "BLADE: Benchmark Suite for LLM-Driven Automated Design and Evolution of iterative optimisation heuristics" accepted as workshop paper at GECCO 2025!
2025.04 🎉🎉 LLaMEA-HPO paper accepted in ACM TELO “In-the-loop Hyper-Parameter Optimization for LLM-Based Automated Design of Heuristics"!
2025.04 🎉🎉 "Code Evolution Graphs" accepted as full paper at GECCO 2025!
2025.03 🎉🎉 LLaMEA v1.0.0 released!
2025.01 🎉🎉 LLaMEA paper accepted in IEEE TEVC “Llamea: A large language model evolutionary algorithm for automatically generating metaheuristics"!
🎁 Installation
It is the easiest to use LLaMEA from the pypi package.
bash
pip install llamea
[!Important] The Python version must be larger or equal to 3.11. You need an OpenAI/Gemini/Ollama API key for using LLM models.
For a slimmed-down installation without bundled LLM or HPO dependencies, install the lite package:
bash
pip install llamea-lite
HPO features in the lite package require installing ConfigSpace separately.
You can also install the package from source using uv (0.7.19).
make sure you have uv installed.
- Clone the repository:
bash git clone https://github.com/XAI-liacs/LLaMEA.git cd LLaMEA - Install the required dependencies via uv:
bash uv sync - Optional install dev or/and example dependencies:
bash uv sync --dev --group examples
💻 Quick Start
Set up an OpenAI API key:
- Obtain an API key from OpenAI.
- Set the API key in your environment variables:
bash export OPENAI_API_KEY='your_api_key_here'
Running an Experiment
To run an optimization experiment using LLaMEA:
```python from llamea import LLaMEA
Define your evaluation function
def yourevaluationfunction(solution): # Implementation of your function # return feedback, quality score, error information return "feedback for LLM", 0.1, ""
Initialize LLaMEA with your API key and other parameters
optimizer = LLaMEA(f=yourevaluationfunction, apikey="yourapikeyhere")
Run the optimizer
bestsolution, bestfitness = optimizer.run() print(f"Best Solution: {bestsolution}, Fitness: {bestfitness}") ```
⚙️ Configuration
Key hyper-parameters of LLaMEA:
| Parameter | Description |
| --- | --- |
| n_parents, n_offspring | Population sizes controlling selection and mutation |
| budget | Number of generations to run |
| niching | Diversity management strategy (None, "sharing", "clearing") with niche_radius and related options |
| evaluate_population | If True, the evaluation function f operates on a list of solutions |
| diff_mode | Requests unified diff patches instead of full code for mutations |
| HPO | Enable in-the-loop hyper-parameter optimization |
| eval_timeout, max_workers, parallel_backend | Control evaluation time and parallelism |
| adaptive_mutation, adaptive_prompt | Adaptive control of mutation strength and task prompt |
See the Documentation for a complete description of all parameters.
💻 Examples
Below are two example scripts from the examples directory demonstrating LLaMEA in action for black-box optimization with a BBOB (24 noiseless) function suite. One script (examples/black-box-optimization.py) runs basic LLaMEA, while the other (examples/black-box-opt-with-HPO.py) incorporates a hyper-parameter optimization pipeline—known as LLaMEA-HPO—that employs SMAC to tune the algorithm’s parameters in the loop.
Running black-box-optimization.py
black-box-optimization.py showcases a straightforward use-case of LLaMEA. It:
- Defines an evaluation function evaluateBBOB that runs generated algorithms on a standard set of BBOB problems (24 functions).
- Initializes LLaMEA with a specific model (e.g., GPT-4, GPT-3.5) and prompts the LLM to generate metaheuristic code.
- Iterates over a (1+1)-style evolutionary loop, refining the code until a certain budget is reached.
How to run:
bash
uv run python examples/black-box-optimization.py
The script will: 1. Query the specified LLM with a prompt describing the black-box optimization task. 2. Dynamically execute each generated algorithm on BBOB problems. 3. Log performance data such as AOCC (Area Over the Convergence Curve). 4. Iteratively refine the best-so-far algorithms.
Running black-box-opt-with-HPO.py (LLaMEA-HPO)
black-box-opt-with-HPO.py extends LLaMEA with in-the-loop hyper-parameter optimization—termed LLaMEA-HPO. Instead of having the LLM guess or refine hyper-parameters directly, the code:
- Allows the LLM to generate a Python class representing the metaheuristic plus a ConfigSpace dictionary describing hyper-parameters.
- Passes these hyper-parameters to SMAC, which then searches for good parameter settings on a BBOB training set.
- Evaluates the best hyper-parameters found by SMAC on the full BBOB suite.
- Feeds back the final performance (and errors) to the LLM, prompting it to mutate the algorithm’s structure (rather than simply numeric settings).
Why LLaMEA-HPO?
Offloading hyper-parameter search to SMAC significantly reduces LLM query overhead and encourages the LLM to focus on novel structural improvements.
How to run:
bash
uv run python examples/black-box-opt-with-HPO.py
Script outline: 1. Prompt & Generation: Script sets up a role/task prompt, along with hyper-parameter config space templates. 2. HPO Step: For each newly generated algorithm, SMAC tries different parameter values within a budget. 3. Evaluation: The final best configuration from SMAC is tested across BBOB instances. 4. Refinement: The script returns the performance to LLaMEA, prompting the LLM to mutate the algorithm design.
[!Note] Adjust the model name (
ai_model) or API key as needed in the script. Changingbudgetor the HPO budget can drastically affect runtime and cost. Additional arguments (e.g., logging directories) can be set if desired.
Running automl_example.py
automl_example.py uses LLaMEA to showcase that it can not only evolve and generate metaheuristics but also all kind of other algorithms, such as Machine Learning pipelines.
In this example, a basic classification task on the breast-cancer dataset from sklearn is solved by generating and evolving open-ended ML pipelines.
- We define the evaluate function (accuracy score on a hold-out test set)
- We provide a very basic example code to get the algorithm started.
- We run a few iterations and observe the excellent performance of our completely automatic ML pipeline.
How to run:
bash
uv run python examples/automl_example.py
[!Note] Adjust the model name (
ai_model) or API key as needed in the script.
Viewing conversation logs
The repository provides a minimal Flask app in logreader/app.py to explore
conversation logs stored as JSON Lines files. Start the server with a log file
path:
bash
uv run python logreader/app.py --logfile path/to/conversationlog.jsonl
You can also set the environment variable CONVERSATION_LOG instead of passing
--logfile. If neither is given, the app defaults to conversationlog.jsonl in
the current working directory. Navigate to http://localhost:5001 to browse the
messages.
🤖 Contributing
Contributions to LLaMEA are welcome! Here are a few ways you can help:
- Report Bugs: Use GitHub Issues to report bugs.
- Feature Requests: Suggest new features or improvements.
- Pull Requests: Submit PRs for bug fixes or feature additions.
Please refer to CONTRIBUTING.md for more details on contributing guidelines.
🪪 License
Distributed under the MIT License. See LICENSE for more information.
🤖 Reproducability
Each paper we published also has an accompanying Zenodo repository for full reproducability of all our results.
- van Stein, N. (2025). BLADE - Code and Results for the paper [Data set]. Zenodo. https://doi.org/10.5281/zenodo.15119985
- van Stein, N., Vermetten, D., & Bäck, T. (2025). LLaMEA-HPO: code, generated algorithms and IOH logging data. https://doi.org/10.5281/zenodo.14917719
- van Stein, N., Kononova, A. V., Kotthoff, L., & Bäck, T. (2025). Figures and code for Code Evolution Graphs. Zenodo. https://doi.org/10.5281/zenodo.14770672
- van Stein, N., & Bäck, T. (2024). LLaMEA. Zenodo. https://doi.org/10.5281/zenodo.13842144
✨ Citation
If you use LLaMEA in your research, please consider citing the associated paper:
bibtex
@ARTICLE{van2025llamea,
author={Stein, Niki van and Bäck, Thomas},
journal={IEEE Transactions on Evolutionary Computation},
title={LLaMEA: A Large Language Model Evolutionary Algorithm for Automatically Generating Metaheuristics},
year={2025},
volume={29},
number={2},
pages={331-345},
keywords={Benchmark testing;Evolutionary computation;Metaheuristics;Codes;Large language models;Closed box;Heuristic algorithms;Mathematical models;Vectors;Systematics;Automated code generation;evolutionary computation (EC);large language models (LLMs);metaheuristics;optimization},
doi={10.1109/TEVC.2024.3497793}
}
If you only want to cite the LLaMEA-HPO variant use the folllowing:
bibtex
@article{van2024intheloop,
author = {van Stein, Niki and Vermetten, Diederick and B\"{a}ck, Thomas},
title = {In-the-loop Hyper-Parameter Optimization for LLM-Based Automated Design of Heuristics},
year = {2025},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3731567},
doi = {10.1145/3731567},
note = {Just Accepted},
journal = {ACM Trans. Evol. Learn. Optim.},
month = apr,
keywords = {Code Generation, Heuristic Optimization, Large Language Models, Evolutionary Computation, Black-Box Optimization, Traveling Salesperson Problems}
}
Other works about extensions or integrations of LLaMEA:
bibtex
@InProceedings{yin2024controlling,
author="Yin, Haoran and Kononova, Anna V. and B{\"a}ck, Thomas and van Stein, Niki",
editor="Garc{\'i}a-S{\'a}nchez, Pablo and Hart, Emma and Thomson, Sarah L.",
title="Controlling the Mutation in Large Language Models for the Efficient Evolution of Algorithms",
booktitle="Applications of Evolutionary Computation",
year="2025",
publisher="Springer Nature Switzerland",
address="Cham",
pages="403--417",
isbn="978-3-031-90065-5"
}
For more details, please refer to the documentation and tutorials available in the repository.
mermaid
flowchart LR
A[Initialization] -->|Starting prompt| B{Stop? fa:fa-hand}
B -->|No| C(Generate Algorithm - LLM )
B --> |Yes| G{{Return best so far fa:fa-code}}
C --> |fa:fa-code|D(Evaluate)
D -->|errors, scores| E[Store session history fa:fa-database]
E --> F(Construct Refinement Prompt)
F --> B
CodeCov test coverage
Owner
- Name: XAI
- Login: XAI-liacs
- Kind: organization
- Email: n.van.stein@liacs.leidenuniv.nl
- Location: Netherlands
- Website: https://nikivanstein.nl
- Repositories: 1
- Profile: https://github.com/XAI-liacs
XAI research group @LIACS, Leiden University
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use LLaMEA, please cite:"
title: "LLaMEA: Large Language Model Evolutionary Algorithm"
version: "1.0.4"
doi: 10.1109/TEVC.2024.3497793
authors:
- family-names: van Stein
given-names: Niki
- family-names: Bäck
given-names: Thomas
date-released: 2025-03-01
url: "https://github.com/XAI-liacs/LLaMEA"
GitHub Events
Total
- Create event: 33
- Release event: 8
- Issues event: 13
- Watch event: 42
- Delete event: 13
- Issue comment event: 32
- Push event: 217
- Pull request review comment event: 1
- Pull request review event: 6
- Pull request event: 90
- Fork event: 4
Last Year
- Create event: 33
- Release event: 8
- Issues event: 13
- Watch event: 42
- Delete event: 13
- Issue comment event: 32
- Push event: 217
- Pull request review comment event: 1
- Pull request review event: 6
- Pull request event: 90
- Fork event: 4
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 10
- Total pull requests: 55
- Average time to close issues: about 1 month
- Average time to close pull requests: about 16 hours
- Total issue authors: 3
- Total pull request authors: 3
- Average comments per issue: 1.0
- Average comments per pull request: 0.35
- Merged pull requests: 36
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 10
- Pull requests: 55
- Average time to close issues: about 1 month
- Average time to close pull requests: about 16 hours
- Issue authors: 3
- Pull request authors: 3
- Average comments per issue: 1.0
- Average comments per pull request: 0.35
- Merged pull requests: 36
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- nikivanstein (8)
- wendylearn233 (1)
Pull Request Authors
- nikivanstein (53)
- kadiryonak (1)
- anantashahane (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- pypi 742 last-month
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 19
- Total maintainers: 1
pypi.org: llamea-lite
LLaMEA without bundled LLM or HPO dependencies
- Homepage: https://github.com/XAI-liacs/LLaMEA
- Documentation: https://llamea-lite.readthedocs.io/
- License: mit
-
Latest release: 1.1.5
published 10 months ago
Rankings
Maintainers (1)
pypi.org: llamea
LLaMEA is a Python framework for automatically generating and refining metaheuristic optimization algorithms using large language models, featuring optional in-the-loop hyper-parameter optimization.
- Homepage: https://github.com/XAI-liacs/LLaMEA
- Documentation: https://llamea.readthedocs.io/
- License: mit
-
Latest release: 1.1.5
published 10 months ago