Skip to content

AlexGoldie/discogen

Repository files navigation

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 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.

About

Official implementation of DiscoGen, for "Procedural Generation of Algorithm Discovery Tasks in Machine Learning"

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages