Ablation studies are experiments used to identify the causal effects on a method performance. For example, does your novel layer really improve performance?
Ablators are materials that are depleted during operation (NASA). An experimental ABLATOR should not interfere with the experimental result.
- Strictly typed configuration system prevents errors.
- Seamless prototyping to production
- Stateful experiment design. Stop, Resume, Share your experiments
- Automated analysis artifacts
- Template Training
Comparison table with existing framework:
Framework | HPO | Configuration | Training | Tuning | Analysis |
---|---|---|---|---|---|
Ray | ✅ | ❌ | ❌ | ✅ | ❌ |
Lighting | ❌ | ❌ | ✅ | ❌ | ❌ |
Optuna | ✅ | ❌ | ❌ | ❌ | ✅ |
Hydra | ❌ | ✅ | ❌ | ❌ | ❌ |
ABLATOR | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Features compared, hyperparameter selection (HPO
), removing boilerplate code for configuring experiments (Configuration
), removing boiler plate code for running experiments at scale (Tuning
) and performing analysis on the hyperparameter selection (Analysis
).
Using:
-
Ray: You will need to write boiler-plate code for integrating with a configuration system (i.e. Hydra), saving experiments artifacts or logging (i.e. integrate with Wandb).
-
Lighting: You will need to write boiler-plate code for HPO (i.e. using Optuna), Configuring experiments (i.e. Hydra) and horizontal distributed execution (i.e. integrate with Ray)
-
Hydra: The configuration system is not strongly typed (ABLATOR), and does not provide support for common ML use-cases where configuration attributes are Derived (inferred during run-time) or Stateless (change between trials). Additionally, ABLATOR provides support for custom objects that are dynamically inferred and initialized during execution.
-
ABLATOR: Combines Ray back-end, with Optuna for HPO and removes boiler-plate code for fault tollerant strategies, training, and analyzing the results.
Integrating different tools, for distributed execution, fault tollerance, training, checkpointing and analysis is error prone! Poor compatibility between tools, verisioning errors will lead to errors in your analysis.
You can use ABLATOR with any other library i.e. PyTorch Lighting. Just wrap a Lighting model with ModelWrapper. For examples please look examples
Spend more time in the creative process of ML research and less time on dev-ops.
The library is under active development and a lot of the API endpoints will be removed / renamed or their functionality changed without notice.
Use a python virtual enviroment to avoid version conflicts.
pip install git+https://github.com/fostiropoulos/ablator.git
For Development
git clone [email protected]:fostiropoulos/ablator.git
cd ablator
pip install -e .[dev]