Package: moai-mdk
moai- Accelerating modern data-driven workflowsOverviewmoaiis aPyTorch-based AI Model Development Kit (MDK) that aims toimprove data-driven model workflows, design and understanding.
Since it is based on establishedopen-source packages, it can be readily used to improve most AI workflows. To exploremoai, simplyinstallthe package and follow theexamples, having in mind that it is in early developmentalphaversion, thus new features will be available soon.Features & Design GoalsModularity via Monads: Usemoai's existing pool of modularmodel building blocks.Reproducibility via Configuration:moaimanages the hyper-parameter sensitive AI R&D workflows via its built-inconfiguration-based design.Productivity via Minimizing Coding:moaioffers adata-driven domain modelling language(DML) that can facilitate quick & easy model design.Extensibility via Plugins: Easily integrate external code usingmoai's built-in metaprogramming andexternal code integration.Understanding via Analysis:moaisupportsinter-model performance and design aggregationactionsto consolidate knowledge between models and query differences.Actionsmoaioffers a set of data-driven workflow functionalities through specific integratedactions. These consumemoaiconfiguration filesthat describe each action's executed context.
Asmoaiis built around these configuration files that define its context and describe each model's details, it offers actions that support heavy data-driven workflows with inter-model analytics, knowledge extraction and meticulous reproduction.Details for each action follow:moaiplayCONFIG_PATHUsing theplayaction,moaistarts the playback of a dataset'strain\val\testsplits.moai's exporters can be used to the extract dataset specific statistics.moai's visualization engine can be used to showcase the dataset. Optionally, monad processing graphs can be defined to transform the data.moaitrainCONFIG_PATHThetrainaction consumes a configuration file that defines the model that will be trained, the data that will be used to train and validate it, as well as configurating the engine around the training process.
The results include model states across training and logs including validation metrics and losses.moaievaluateCONFIG_PATHTheevaluateaction consumes a configuration file that defines the trained model that will be tested, the test data, as well as configurating the engine around the testing process.
The results include model aggregated and/or detailed metrics, and inference samples.moaiplotPATH_TO_EXPERIMENTSTheplotaction consumes various configuration files - usually from different versions of the same model - and generates a visualization consolidating and aggregating inter-model performance, providing the necessary means to analyze the behaviour of different hyper-parameters or model configurations.moaidifflhs=PATH_TO_CONFIG_Arhs=PATH_TO_CONFIG_BThediffaction consumes two different configuration file - usually from different versions of the same model - and reports their differences related to hyper-parameterization, processing graph variations, etc..moaireprodPATH_TO_RESOLVED_CONFIGThereprodaction consumes a previously logged and resolved configuration file, and facilitates its reproduction by re-executing it while adjusting to development environment differences.Dependenciesmoaistands on the shoulders of giants as it relies on various large scale open-source projects:> 1.7.0needs to be customly installed on your system/environment.> 1.0.0is the currently supported training backend.Hydra> 1.0drivesmoai's DML that sets up model configurations, and additionally manages the hyper-parameter complexity of modern AI models.> 0.5.3is needed to deploy models as services.> 1.11.0is needed to export models in an exchangeable format.Visdomis the currently supported visualization engine.HiPlotdrivesmoai's inter-model analytics.Various PyTorch Open Source Projects:Korniafor a set of computer vision operations integrated asmoaimonads.Albumentationsas the currently supported data augmentation framework.The Wider Open Source Communitythat conducts accessible R&D and drives most ofmoai's capabilities.A set of awesome Python libraries.InstallationPackageTo install the latestreleasedmoaipackage run:pip install moai-mdkSourceDownload the master branch source and install it by opening a command line on the source directory and running:pip install .orpip install -e .(in editable form)Getting StartedVisit thedocumentationsite to learn aboutmoai's DML and the overall MDK design and usage.Examples can be found atconf/examples.Licencemoaiis Apache 2.0 licenced, as found in the correspondingLICENCEfile.However, some code integrated from external projects may carry their own licences.PyTorch Developer's Day 2021CitationIf you usemoaiin your R&D workflows or find its code useful please consider citing:@misc{moai,
    key = {moai: PyTorch Model Development Kit},
    title = {{\textit{moai}: Accelerating modern data-driven workflows}},
    year = {2021},
    publisher = {GitHub},
    journal = {GitHub repository},
    howpublished = {\url{https://github.com/ai-in-motion/moai}},
}ContactEither use the:GitHub issue tracker, or,send an email tomoaiatai-in-motiondotdev