aiqc / AIQC

End-to-end deep learning on your desktop or server.
BSD 3-Clause "New" or "Revised" License
106 stars 21 forks source link

PyPI version docs status License


📚  Documentation



framework




Technical Overview


What is it?

AIQC is an open source Python package that provides a declarative API for end-to-end MLOps (dataset registration, preprocessing, experiment tracking, model evaluation, inference, post-processing, etc) in order to make deep learning more accessible to researchers.


How does it work?

The backend is a SQLite object-relational model (ORM) for machine learning objects (Dataset, Feature, Label, Splits, Algorithm, Job, etc). The high-level API stacks these building blocks into standardized workflows for various: analyses (classify, regress, generate), data types (tabular, sequence, image), and libraries (TensorFlow, PyTorch). The benefits of this approach are:


  1. ⏱️  90% reduction in data wrangling via automation of highly conditional and repetitive tasks that vary for each type of dataset and analysis (e.g. model evaluation, metrics, and charts for every split of every model).

  2. 💾  Reproducibility, not only because the workflow is persisted (e.g. encoder metadata) but also because it provides standardized classes as opposed to open-ended scripting (e.g. 'X_train, y_test').

  3. 🎛️  No need to install and maintain application and database servers for experiment tracking. SQLite is just a highly-performant and portable file that is automatically configured by `aiqc.setup()`. AIQC is just a pip-installable Python package that works great in Jupyter (or any IDE/shell), and provides a Dash-Plotly user interface (UI) for a real-time experiment tracking.


What's on the roadmap?

  1. 🖥️   Expand the UI (e.g. dataset registration and model design) to make it even more approachable for less technical users.
  2. ☁️  Schedule parallel training of models in the cloud.



📚  Documentation



Experiment Tracker

experiment_tracker




Compare Models

compare_models




What if?

compare_models





Usage

# Built on Python 3.7.12 to mirror Google Colab
$ pip install --upgrade pip
$ pip install --upgrade wheel
$ pip install --upgrade aiqc

# Monitor and evaluate models (from CLI)
$ python -m aiqc.ui.app
# High-level API
from aiqc import mlops

# Declare preprocessing steps
mlops.Pipeline()

# Define, train, & evaluate models
mlops.Experiment().run_jobs()

# Infer using original Pipeline
mlops.Inference()

Official Installation Documentation:

https://aiqc.readthedocs.io/en/latest/notebooks/installation.html



📚  Documentation