Welcome to ConfigBase’s documentation!

_images/config.png

Welcome to ConfigBase’s documentation. Get started by reading our Usage and then get an overview with the Config API.

ConfigBase was developed for ABLATOR be sure to check the project’s documentation.

The goal of ConfigBase is to simplify configuration for Machine Learning (ML) experiments. Configuration for ML experiments is mostly unsolved. It is cumbersome, error-prone and does not address the standard use-cases, for example HPO, and multi-node or multi-tenant enviroments. ConfigBase builds on top of several pilars to address those problems.

  1. Strongly typed configuration, with type resolution during run-time.

  2. Address need for custom types specific to ML experiments
    • Derived, are derived during execution, e.g. the vocab_size depends on the dataset.

    • Stateless, take values which can change between execution runs or enviroments, e.g. the save directory.

  3. Finger-printing of the configuration object based on unique value assignment with their corresponding types. Where for example Stateless variables are ignored.

  4. Mutable and Imutable properties where one can freeze the configuration to prevent changes to it.

  5. Flexible configuration definition, compositionality and hierarchical definition

  6. Representation of configuration in YAML files for easy modification

  7. Easy representation of value-distributions, i.e. fields that can take a value within a range, or conditionally, i.e. nested categorical distributions. There is easy integration for sampling and use with third party HPO algorithms.