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:
-
⏱️ 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).
-
💾 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').
-
🎛️ 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?
-
🖥️ Expand the UI (e.g. dataset registration and model design) to make it even more approachable for less technical users.
-
☁️ Schedule parallel training of models in the cloud.
Experiment Tracker
Compare Models
What if?
Usage
$ pip install --upgrade pip
$ pip install --upgrade wheel
$ pip install --upgrade aiqc
$ python -m aiqc.ui.app
from aiqc import mlops
mlops.Pipeline()
mlops.Experiment().run_jobs()
mlops.Inference()
Official Installation Documentation:
https://aiqc.readthedocs.io/en/latest/notebooks/installation.html