Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,23 @@
- **Built-In Baselines:** Includes state-of-the-art metaheuristics for comparison.
- **Automatic Logging & Visualization:** Integrated with **IOHprofiler** for performance tracking.

#### Feature Coverage Map

To make feature discovery easier, this table maps the main BLADE features
to the implementation location and corresponding documentation entry.

| Feature | Implementation | Documentation |
|---|---|---|
| Experiment orchestration | `iohblade/experiment.py` | `docs/experiment.rst` |
| Problems and benchmark wrapping | `iohblade/problem.py`, `iohblade/benchmarks/` | `docs/problem.rst`, `docs/benchmarks.rst` |
| Search methods (LLaMEA, LHNS, MCTS-AHD, EoH, ReEvo, Random Search, FunSearch helper) | `iohblade/methods/` | `docs/method.rst`, `docs/methods.rst` |
| LLM provider integration | `iohblade/llm.py` | `docs/llm.rst` |
| Loggers (local, MLflow, Trackio) | `iohblade/loggers/` | `docs/loggers.rst` |
| Baselines | `iohblade/baselines/` | `docs/baselines.rst` |
| Plotting and analysis helpers | `iohblade/plots.py`, `iohblade/behaviour_metrics.py` | `docs/plots.rst`, `docs/behaviour_metrics.rst` |
| Streamlit result browser | `iohblade/webapp.py` | `docs/webapp.rst` |
| Utility helpers and exceptions | `iohblade/utils.py` | `docs/utils.rst` |

#### Included Benchmark Function Sets

BLADE incorporates several benchmark function sets to provide a comprehensive evaluation environment:
Expand Down Expand Up @@ -204,7 +221,7 @@ make sure you have `uv` installed.
from iohblade.experiment import Experiment
from iohblade.llm import Ollama_LLM
from iohblade.methods import LLaMEA, RandomSearch
from iohblade.problems import BBOB_SBOX
from iohblade.benchmarks import BBOB_SBOX
from iohblade.loggers import ExperimentLogger

llm = Ollama_LLM("qwen2.5-coder:14b") #qwen2.5-coder:14b, deepseek-coder-v2:16b
Expand Down
6 changes: 3 additions & 3 deletions docs/Installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ It is easiest to use BLADE from the PyPI package:
The Python version **must** be >= 3.11.
An OpenAI/Gemini/Ollama/Claude/DeepSeek API key is needed for using LLM models.

You can also install the package from source using **uv** (0.7.9).
You can also install the package from source using **uv** (0.7.19 or newer).

1. Clone the repository:

Expand All @@ -32,8 +32,8 @@ You can also install the package from source using **uv** (0.7.9).

uv sync --group dev --group docs

4. (Optional) Install support for running MLX optimised LLMs locally on apple silicon machine:
4. (Optional) Install support for running MLX optimised LLMs locally on Apple Silicon machines:

.. code-block:: bash

uv sync --group dev --group docs --group apple_silicon --prerelease=allow
uv sync --group dev --group docs --group apple-silicon --prerelease=allow
6 changes: 3 additions & 3 deletions docs/Quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Quick Start
from iohblade.experiment import Experiment
from iohblade.llm import Ollama_LLM
from iohblade.methods import LLaMEA, RandomSearch
from iohblade.problems import BBOB_SBOX
from iohblade.benchmarks import BBOB_SBOX
from iohblade.loggers import ExperimentLogger

llm = Ollama_LLM("qwen2.5-coder:14b") #qwen2.5-coder:14b, deepseek-coder-v2:16b
Expand All @@ -36,7 +36,7 @@ Quick Start
problems.append(BBOB_SBOX(training_instances=training_instances, test_instances=test_instances, dims=[5], budget_factor=2000, name=f"SBOX_COST"))
# Set up the experiment object with 5 independent runs per method/problem. (in this case 1 problem)
logger = ExperimentLogger("results/SBOX")
experiment = Experiment(methods=methods, problems=problems, llm=llm, runs=5, show_stdout=True, exp_logger=logger) #normal run
experiment = Experiment(methods=methods, problems=problems, runs=5, show_stdout=True, exp_logger=logger) #normal run
experiment() #run the experiment, all data is logged in the folder results/SBOX/

3. Monitoring experiment progress.
Expand All @@ -55,4 +55,4 @@ Quick Start
Examples
--------

Additional examples can be founnd in our `examples` folder on Github.
Additional examples can be found in our `examples` folder on GitHub.
7 changes: 7 additions & 0 deletions docs/assets.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Assets
======

.. automodule:: iohblade.assets
:members:
:undoc-members:
:show-inheritance:
7 changes: 7 additions & 0 deletions docs/behaviour_metrics.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Behaviour Metrics
=================

.. automodule:: iohblade.behaviour_metrics
:members:
:undoc-members:
:show-inheritance:
14 changes: 12 additions & 2 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
BLADE
===========================================================

.. image:: https://badge.fury.io/py/blade.svg
:target: https://pypi.org/project/blade/
.. image:: https://badge.fury.io/py/iohblade.svg
:target: https://pypi.org/project/iohblade/
:alt: PyPI version
:height: 18
.. image:: https://img.shields.io/badge/Maintained%3F-yes-brightgreen.svg
Expand Down Expand Up @@ -45,6 +45,15 @@ It focuses on **continuous black-box optimization** and integrates a diverse set
Features
--------

Documentation Guide
-------------------

- Start here for conceptual usage: :doc:`Introduction` and :doc:`Quickstart`.
- For benchmark catalog and taxonomy: :doc:`benchmarks`.
- For API reference by feature area: :doc:`modules`.
- For interactive monitoring: :doc:`webapp`.


- **Comprehensive Benchmark Suite:** Covers various classes of black-box optimization problems.
- **LLM-Driven Algorithm Design:** Supports algorithm evolution and design using large language models.
- **Built-In Baselines:** Includes state-of-the-art metaheuristics for comparison and LLM-driven AAD algorithms.
Expand Down Expand Up @@ -188,6 +197,7 @@ If you use BLADE in your research, please consider citing the associated paper:
benchmarks
webapp
modules
methods
notebooks/simple_experiment
notebooks/custom_problem
notebooks/custom_method
Expand Down
10 changes: 10 additions & 0 deletions docs/methods.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Search Methods
==============

This page documents the method implementations exposed in
``iohblade.methods``.

.. automodule:: iohblade.methods
:members:
:undoc-members:
:show-inheritance:
4 changes: 4 additions & 0 deletions docs/modules.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,13 @@ BLADE API
llm
loggers
method
methods
problem
solution
benchmarks
plots
behaviour_metrics
assets
utils
baselines
webapp