Science Score: 44.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
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.7%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: TheEimer
  • License: other
  • Language: Jupyter Notebook
  • Default Branch: main
  • Size: 230 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog Contributing License Citation Authors

README.md

ARLBench Logo ARLBench Logo

[![PyPI Version](https://img.shields.io/pypi/v/arlbench.svg)](https://pypi.python.org/pypi/arlbench) ![Python](https://img.shields.io/badge/Python-3.10-3776AB) ![License](https://img.shields.io/badge/License-BSD3-orange) [![Test](https://github.com/automl/arlbench/actions/workflows/pytest.yaml/badge.svg)](https://github.com/automl/arlbench/actions/workflows/pytest.yaml) [![Doc Status](https://github.com/automl/arlbench/actions/workflows/docs.yaml/badge.svg)](https://github.com/automl/arlbench/actions/workflows/docs.yaml)

Features | Installation | Quickstart | Cite Us


🦾 Automated Reinforcement Learning Benchmark

The ARLBench is a benchmark for HPO in RL - evaluate your HPO methods fast and on a representative number of environments! For more information, see our documentation. The dataset is available at HuggingFace.

Features

  • Lightning-fast JAX-Based implementations of DQN, PPO, and SAC
  • Compatible with many different environment domains via Gymnax, XLand and EnvPool
  • Representative benchmark set of HPO settings

ARLBench Subsets

Installation

There are currently two different ways to install ARLBench. Whichever you choose, we recommend to create a virtual environment for the installation:

bash conda create -n arlbench python=3.10 conda activate arlbench

The instructions below will help you install the default version of ARLBench with the CPU version of JAX. If you want to run the ARLBench on GPU, we recommend you check out the JAX installation guide to see how you can install the correct version for your GPU setup before proceeding.

PyPI You can install ARLBench using `pip`: ```bash pip install arlbench ``` If you want to use envpool environments (not currently supported for Mac!), instead choose: ```bash pip install arlbench[envpool] ```
From source: GitHub First, you need to clone the ARLBench reopsitory: ```bash git clone git@github.com:automl/arlbench.git cd arlbench ``` Then you can install the benchmark. For the base version, use: ```bash make install ``` For the envpool functionality (not available on Mac!), instead use: ```bash make install-envpool ```

[!CAUTION] Windows is currently not supported and also not tested. We recommend using the Linux subsytem if you're on a Windows machine.

Quickstart

Here are the two ways you can use ARLBench: via the command line or as an environment. To see them in action, take a look at our examples.

Use the CLI

We provide a command line script for black-box configuration in ARLBench which will also save the results in a 'results' directory. To execute one run of DQN on CartPole, simply run:

bash python run_arlbench.py

You can use the hydra command line syntax to override some of the configuration like this to change to PPO:

bash python run_arlbench.py algorithm=ppo

Or run multiple different seeds after one another:

bash python run_arlbench.py -m autorl.seed=0,1,2,3,4

All hyperparamters to adapt are in the 'hpoconfig' and architecture settings in the 'nasconfig', so to run a grid of different configurations for 5 seeds each , you can do this:

bash python run_arlbench.py -m autorl.seed=0,1,2,3,4 nas_config.hidden_size=8,16,32 hp_config.learning_rate=0.001,0.01

We recommend you create your own custom config files if using the CLI (for more information on this, checkout Hydra's guide to config files). Our examples can show you how these can look.

Use the AutoRL environment

If you want to have specific control over the ARLBench loop, want to do dynamic configuration or learn based on the agent state, you should use the environment-like interface of ARLBench in your script.

To do so, import ARLBench and use the AutoRLEnv to run an RL agent:

```python from arlbench import AutoRLEnv

env = AutoRLEnv()

obs, info = env.reset()

action = env.configspace.sampleconfiguration() obs, objectives, term, trunc, info = env.step(action) ```

Just like with RL agents, you can call 'step' multiple times until termination (which you define via the AutoRLEnv's config). For all configuration options, check out our documentation.

Cite Us

If you use ARLBench in your work, please cite us:

bibtex @misc{beckdierkes24, author = {J. Becktepe and J. Dierkes and C. Benjamins and D. Salinas and A. Mohan and R. Rajan and F. Hutter and H. Hoos and M. Lindauer and T. Eimer}, title = {ARLBench}, year = {2024}, url = {https://github.com/automl/arlbench},

Owner

  • Name: Theresa Eimer
  • Login: TheEimer
  • Kind: user
  • Location: Hannover
  • Company: @automl Hannover

PhD candidate @automl in Hannover, Germany. I'm interested in RL as well as AutoML generally and DAC specifically. Say hi on twitter!

Citation (CITATION.cff)

---
cff-version: 1.2.0

message: "This is the message displayed when viewing the citation on github"

title: "ARLBench"
date-released: "<<date>>"

url: "https://automl.github.io/ARLBench/main/"

# Replace automl here with your own github name if you need
repository-code: "https://github.com/automl/ARLBench"

version: "0.1.0"

type: "template"
keywords:
  - "template"

<<requires::license license: "BSD license" endrequires::license>>

authors:
  - family-names: "Becktepe"
    given-names: "Jannis"
    affiliation: "Leibniz University Hannover"
  - family-names: "Dierkes"
    given-names: "Julian"
    affiliation: "RWTH Aachen University"
  - family-names: "Benjamins"
    given-names: "Carolin"
    affiliation: "Leibniz University Hannover"
  - family-names: "Salinas"
    given-names: "David"
    affiliation: "Albert-Ludwigs University Freiburg"
  - family-names: "Mohan"
    given-names: "Aditya"
    affiliation: "Leibniz University Hannover"
  - family-names: "Rajan"
    given-names: "Raghu"
    affiliation: "Albert-Ludwigs University Freiburg"
  - family-names: "Eimer"
    given-names: "Theresa"
    affiliation: "Leibniz University Hannover"
  - family-names: "Hutter"
    given-names: "Frank"
    affiliation: "Albert-Ludwigs University Freiburg"
  - family-names: "Hoos"
    given-names: "Holger"
    affiliation: "RWTH Aachen University"
  - family-names: "Lindauer"
    given-names: "Marius"
    affiliation: "Leibniz University Hannover"

GitHub Events

Total
  • Push event: 27
  • Create event: 3
Last Year
  • Push event: 27
  • Create event: 3

Dependencies

.github/workflows/docs.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/publish_release.yaml actions
  • actions/checkout v2 composite
  • actions/checkout v4 composite
  • actions/setup-python v2 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/pytest.yaml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
pyproject.toml pypi
  • ConfigSpace ==0.7.1
  • brax ==0.10.3
  • bump-my-version *
  • chex ==0.1.86
  • codecarbon ==2.3.5
  • coverage ==7.4.4
  • distrax ==0.1.5
  • flashbax ==0.1.2
  • flax ==0.8.2
  • gymnax ==0.0.6
  • hydra-core *
  • hydra-submitit-launcher *
  • hydra_colorlog *
  • jax ==0.4.26
  • jaxlib ==0.4.26
  • memray ==1.12.0
  • mypy *
  • pathos ==0.3.2
  • pre-commit ==3.7.0
  • pytest ==7.4.4
  • ruff *
  • tomli ==2.0.1
  • tox *
  • twine *
  • typing_extensions *
setup.py pypi