Suggested Software

The AutoML group recommends a spectrum of software for empirical projects. Tools and frameworks on this list are useful for working with us and may be used at any time. Any other software should first be cleared with the supervisor.

  • Setup & Best Practices
  • ML Frameworks
    • Torch
      Our standard ML framework. Torch should be the basis for most projects and should only be deviated from in very special cases.
    • Jax
      Alternative to Torch, but only recommended for project with high hardware demands. The startup cost is high and thus this should be discussed with the supervisor before using.
    • Scikit-Learn
      Framework with many options for classic ML & Data Science methods.
    • Tensorflow
      Alternative to Torch. Tensorflow should not be used in projects with us.
    • Keras
      Interface for multiple ML frameworks. There should be no reason to use Keras over Torch.
  • AutoML Tools & Benchmarks

    Tools

    • SMAC 
      Our HPO Tool, the default choice for optimization.
    • Hypersweeper
      Parallel execution of different HPO tools. Should be combined with SMAC for expensive projects.
    • AutoPyTorch
      Pipeline search for Torch.
    • AutoSKlearn
      Pipeline search for SKlearn. Useful for tabular data.

    Benchmarks

  • Analysis Tools
    • DeepCave 
      HPO analysis, e.g. hyperparameter importance.
    • Penzai
      Analysis of JAX networks.
  • Reinforcement Learning

    RL Algorithms

    • Mighty 
      Flexible implementations of (Meta-)RL algorithms in Torch.
    • CleanRL
      Implementations of various algorithms and environments.
    • PureJax
      Very fast, but not very flexible or simple to change
    • Stoix
      Alternative zu PureJax with simpler interface

    Environments

    • Classic Control
      Very simple, but good for testing & debugging.
    • MiniGrid
      Testing exploration with a large variety of difficulties.
    • CARL
      Extensions of classic environments to test generalization.
    • Mujoco
      Robotic simulations.
    • Brax
      Alternative to Mujoco, only recommend for use cases with high parallelization.
    • MiniHack
      NetHack variations, that have a lot of variance and can become very difficult, but also have complicated observation spaces. Ideal to test skills or for very hard tasks.
    • Crafter/Craftax
      Minecraft-like environment with simpler observations. Can become quite complex and contains temporal dependencies.
    • Robotics Gym
      Complex robotics tasks on realistic models.
    • Atari
      Atari game. Somewhat difficult, but most of all expensive to evaluate. Only recommended for HPO, offline RL or in the 100k version.
    • ProcGen
      Similar to Atari with added complexity.
    • Pufferlib
      Faster execution of many different environments.
  • Setup & Best Practices
  • ML Frameworks
    • Torch
      Unser Standard ML framework. Torch sollte die Grundlage der meisten Projekte bilden und nur in Ausnahmefällen nicht genutzt werden.
    • Jax
      Alternative zu Torch, allerdings nur für Projekte mit hohen Hardwareanforderungen empfohlen. Die Einarbeitung ist aufwendig und sollte vorher abgesprochen werden.
    • Scikit-Learn
      Framework mit vielen Funktionen für klassische ML & Data Science Ansätze
    • Tensorflow
      Alternative zu Torch. Tensorflow sollte nicht für Projekte bei uns genutzt werden.
    • Keras
      Interface für verschiedene ML frameworks. Es sollte eigentlich keinen Grund geben Keras statt Torch zu nutzen.
  • AutoML Tools & Benchmarks

    Tools

    • SMAC 
      Unser HPO Tool, das als Standard für Black-box Optimierung genutzt werden sollte.
    • Hypersweeper
      Parallelisierung verschiedener HPO Tools. Sollte zusammen mit SMAC für HPO von teueren Projekten benutzt werden.
    • AutoPyTorch
      Pipelinesuche für Torch.
    • AutoSKlearn
      Pipelinesuche für SKlearn. Nützlich für tabulare Daten.

    Benchmarks

  • Analyse Tools
    • DeepCave 
      HPO Analyse, z.B. Einfluss verschiedener Hyperparameter.
    • Penzai
      Analyse von Netzwerken (in Jax)
  • Reinforcement Learning

    RL Algorithmen

    • Mighty 
      Flexible Implementationen von RL Algorithmen in Torch
    • CleanRL
      Implementationen verschiedener Algorithmen und Environments.
    • PureJax
      Sehr schnell, aber nicht besonders flexibel/einfach zu ändern
    • Stoix
      Alternative zu PureJax mit einfacherem Interface

    Environments

    • Classic Control
      Sehr einfach, aber gut für Testen & Debuggen
    • MiniGrid
      Testen von Exploration mit großer Bandbreite an Schwierigkeiten.
    • CARL
      Erweiterungen klassischer environments um Generalisierung zu testen.
    • Mujoco
      Robotik Simulationen
    • Brax
      Alternative zu Mujoco, empfohlen allerdings nur für Usecases mit starker Parallelisierung
    • MiniHack
      NetHack varianten, die viel Varianz haben und sehr schwer werden können, allerdings auch komplexe Observations haben. Ideal um Skills zu testen oder für sehr schwere Aufgaben.
    • Crafter/Craftax
      Minecraft-artiges Environment with einfacheren Observations. Kann sehr komplex werden und enthält lange zeitliche Abhängigkeiten.
    • Robotics Gym
      Komplexe Robotikaufgaben an realistischen Modellen.
    • Atari
      Atari Spiele. Relativ schwer, vor allem aber sehr teuer zu evaluieren. Nur für HPO, offline RL oder in der 100K Version empfohlen.
    • ProcGen
      Ähnlich wie Atari mit etwas höherer Komplexität.
    • Pufferlib
      Schnellere Ausführung vieler dieser Environments