Empfohlene Software

Die AutoML Grupper empfiehlt eine Reihe von Software für empirische Arbeiten. Tools und Frameworks auf dieser Liste befinden wir als nützlich und hilfreich für Arbeiten bei uns und können jederzeit genutzt werden. Andere Software sollte mit der Betreuung abgestimmt werden.

  • 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