Skip to content

Modular Reproducible Minimal Extensible Insightful

moai: Accelerating modern data-driven workflows

moai is a PyTorch-based AI Model Development Kit (MDK) that aims to improve data-driven model workflows, design and understanding. Since it is based on established open-source packages, it can be readily used to improve most AI workflows. To explore moai, simply install the package and follow the examples, having in mind that it is in early development alpha version, thus new features will be available soon.

Features & Design Goals

  • Modularity via Monads: Use moai's existing pool of modular model building blocks.
  • Reproducibility via Configuration: moai manages the hyper-parameter sensitive AI R&D workflows via its built-in configuration-based design.
  • Productivity via Minimizing Coding: moai offers a data-driven domain modelling language (DML) that can facilitates quick & easy model design.
  • Extensibility via Plugins: Easily integrate external code using moai's built-in metaprogramming and external code integration.
  • Understanding via Analysis: moai supports inter-model performance and design aggregation actions to consolidate knowledge between models and query differences.

Dependencies

moai stands on the shoulders of giants as it relies on various large scale open-source projects:

  1. PyTorch > 1.7.0 needs to be customly installed on your system/environment.
  2. Lightning > 1.0.0 is the currently supported training backend.
  3. Hydra > 1.0 drives moai's DML that sets up model configurations, and additionally manages the hyper-parameter complexity of modern AI models.
  4. Visdom is the currently supported visualization engine.
  5. HiPlot drives moai's inter-model analytics.
  6. Various PyTorch Open Source Projects:

    • Kornia for a set of computer vision operations integrated as moai monads.
    • Albumentations as the currently supported data augmentation framework.
  7. The Wider Open Source Community that conducts accessible R&D and drives most of moai's capabilities.

  8. A set of awesome Python libraries as found in our requirements file.

Installation

Package

To install the currently released moai version package run:

pip install moai-mdk

Source

Download the master branch source and install it by opening a command line on the source directory and running:

pip install . or pip install -e . (in editable form)

Getting Started

Visit the documentation site to learn about moai's DML and the overall MDK design and usage.

The examples found at conf/examples will be documented soon.

Documentation

Documentation is currently a work-in-progress.

API

The API documentation is currently a work-in-progress.

How-to extend moai with custom functionalities (external project)

In the case one needs to create a project beyond the existing functionality of the framework, he/she can go beyond the standard configuration. Custom modules can be developed and integrated to the framework.

To do so, the steps below should be followed:

  • Create a folder where the custom code lives ({custom_project}).
  • In this folder, create a configuration folder (e.g. '{custom_project}/conf'), to place the .yaml files of the new moduldes.
  • Create a source folder (e.g. '{custom_project}/src'), to place the implementations of the new modules.