Skip to main content

DiscoGen: Procedural Generation of Algorithm Discovery Tasks in Machine Learning

DiscoGen Logo

This repository contains code for the DiscoGen modular benchmark for automated algorithm discovery.

Quick Start

Install DiscoGen:

pip install discogen

List available domains:

discogen get-domains

Create a task (the following will include a full implementation, and no editable modules):

discogen create-task --task-domain OnPolicyRL

Create an example task for running an agent (with an incomplete set of modules):

discogen create-task --task-domain OnPolicyRL --example

See the full documentation for detailed usage. Please note that each task_domain has its own set of requirements which may need to be installed, and these are often in conflict with the base DiscoGen requirements. This can be done using the install.sh script provided in each task folder.

Every domain includes references in discogen/domains/<task_domain>/utils/_reference.txt.

Task Domains

Task Domain Modules Datasets Description
BayesianOptimisation acq_fn, acq_optimizer, sampler, next_queries, surrogate, surrogate_optimizer Ackley1D, Ackley2D, Branin2d, Bukin2d, Cosine8d, DropWave2d, EggHolder2d, Griewank5d, Hartmann6d, HolderTable2d, Levy6d. Optimization of black-box functions using surrogate models to find global minima/maxima.
BrainSpeechDetection loss, networks, optim 7 LibriBrainSherlock tasks. Detecting speech features directly from brain activity data.
ComputerVisionClassification loss, networks, optim, preprocess CIFAR10, CIFAR10C, CIFAR10LT, CIFAR100, FashionMNIST, MNIST, OxfordFlowers, StanfordCars, TinyImageNet. Image classification on a range of datasets.
ContinualLearning optim, regularizer, replay, sampler, scheduler PermutedMNIST, SplitCIFAR100, TinyImageNetSplit. Training a model on continually changing data, such that it can adapt to new data without losing old capabilities.
GreenhouseGasPrediction data_processing, model 4 Mauna Loa Time-series (CO2, N2O, SF6, CH4). Time-series forecasting of atmospheric greenhouse gas concentrations.
LanguageModelling loss, networks, optim OPCFineWebCode, OPCFineWebMath, LMFineWeb, TinyStories. Training transformer-based models on code, mathematics, and narrative text.
ModelUnlearning loss MUSE, TOFU, WMDP_Cyber. Fine-tuning pretrained models to remove specific knowledge or data points while retaining others.
NeuralCellularAutomata loss, optimiser, perceive, train, update GrowingButterfly, GrowingLizard, MatrixOperations, MNISTInpainting, SelfClassifyingMNIST. Evolving neural cellular automata to different tasks based on reproduction and classification.
OfflineRL actor_loss, critic_loss, optim, networks, train 10 OGBench Training RL policies from offline datasets.
OffPolicyRL q_update, policy, networks, optim, rb, train, config 4 MinAtar. Value-based RL for training an agent in MinAtar.
OnPolicyMARL activation, loss, networks, optim, targets, train 5 MABrax, MPE Spread, 11 SMAX Training multiple on-policy RL agents in different multi-agent environments.
OnPolicyRL loss, networks, optim, train, activation, targets, schedule 4 MinAtar, 7 Brax, 2 Craftax. Training an RL agent in a range of different RL environments using PPO-style algorithms.
TrajectoryPrediction loss, networks, optim, train Argoverse2, nuScenes, Waymo. Training a model to predict trajectories in autonomous driving datasets.
UnsupervisedEnvironmentDesign sample_levels, train_step, variable_config 3 Kinetix sizes, Minigrid. Generating and curating training environments/levels to improve RL agent generalization.

Development Setup

1. Set Up Your Development Environment

Install the environment and the pre-commit hooks with:

make install

This will also generate your uv.lock file.

Contributing

We welcome contributions! DiscoGen grows stronger with more tasks and domains.

See CONTRIBUTING.md for detailed development guidelines.

Citation

If you use DiscoGen in your research, please cite:

@misc{goldie2026proceduralgenerationalgorithmdiscovery,
  title={Procedural Generation of Algorithm Discovery Tasks in Machine Learning},
  author={Alexander D. Goldie and Zilin Wang and Adrian Hayler and Deepak Nathani and Edan Toledo and Ken Thampiratwong and Aleksandra Kalisz and Michael Beukman and Alistair Letcher and Shashank Reddy and Clarisse Wibault and Theo Wolf and Charles O'Neill and Uljad Berdica and Nicholas Roberts and Saeed Rahmani and Hannah Erlebach and Roberta Raileanu and Shimon Whiteson and Jakob N. Foerster},
  year={2026},
  eprint={2603.17863},
  archivePrefix={arXiv},
  primaryClass={cs.LG},
  url={https://arxiv.org/abs/2603.17863},
}

License

DiscoGen is released under the MIT License.

Metadata

Release files for discogen 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for discogen 1.3.0
File Size Uploaded
discogen-1.3.0.tar.gz 1.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for discogen 1.3.0
File Interpreter ABI Platform
discogen-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.9 MB

Release files / discogen-1.3.0.tar.gz

Download URL discogen-1.3.0.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
e1237067c2a7938007c149a1aba9a996a8376eadcfdb210a0c44eb1f002bedb8
BLAKE2b-256 checksum
How to use checksums
00f8bcac0770e5996cb84acf4ac27a14211511febfadb1ac31ab0ce271d0702a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.6.14

Release files / discogen-1.3.0-py3-none-any.whl

Download URL discogen-1.3.0-py3-none-any.whl
Size 855.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2f3c24c07b5811cf24ecbdf6b609bb901cad349f709a6b90f0e621907dac2c46
BLAKE2b-256 checksum
How to use checksums
0d60fc8b435949df965dfbc4935fb36405a760869e213ca3f5b80fdf2b56d56b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.6.14

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page