Skip to content

A framework for conducting machine learning experiments in python

License

Notifications You must be signed in to change notification settings

inria-thoth/mlxp

Repository files navigation

MLXP

What is MLXP?

MLXP (Machine Learning eXperimentalist for Python) package is an open-source Python framework for managing multiple experiments with a flexible option structure from launching, and logging to querying results.

A full documentation along with a tutorial is available in MLXPs project page. A presentation of MLXP can also be found in the companion paper.

Key functionalities

  1. Launching several jobs automatically using hydra and hierarchical configs by adding a single decorator to the main task function.
  2. Logging outputs (metrics, artifacts, checkpoints) of a job in a uniquely assigned directory along with all metadata and configuration options to reproduce the experiment.
  3. Code version management by automatically generating a deployment version of the code based on the latest git commit.
  4. Submitting jobs to a cluster using a job scheduler.
  5. Exploiting the results of several experiments by easily reading, querying, grouping, and aggregating the output of several jobs.

Installing MLXP

You can install MLXP in a virtualenv/conda environment where pip is installed (check which pip):

Stable release

$ pip install MLXP

Main branch

$ pip install git+https://github.com/inria-thoth/mlxp@master#egg=mlxp

Requirements

Requirements
hydra-core
omegaconf
tinydb
setuptools
PyYAML
pandas
ply
dill
GitPython

Documentation

A full documentation is available in the MLXP's official documentation website. See the following pages for more detailled information:

Quick start guide: for a simple example of how to use MLXP. Tutorial: to get a better understanding of all functionalities provided by MLXP. Documentation: for detailed documentation.

How to cite

If you use MLXP in your research, please cite the following paper:

@Misc{Arbel2023MLXP,
  author = {Michael Arbel, Alexandre Zouaoui},
  title = {MLXP: A framework for conducting replicable Machine Learning eXperiments in Python},
  howpublished = {arXiv preprint arXiv:2402.13831},
  year = {2024},
  url = {https://arxiv.org/abs/2402.13831}
}

Acknowledgments

License

MLXP is distributed under MIT license.