Skip to main content

User-oriented system for painless managing, storing, sharing, organizing and deploying Machine Learning models.

Project description

Maisie (stable)

Azure DevOps Badge

Maisie (development)

Azure DevOps Badge

Maisie Sphinx Theme

Azure DevOps Badge

Documentation

Read the Docs Badge

PyPI

PyPI Badge

DockerHub

DockerHub Pulls Badge

1 Features

Could archiving, storing, managing and organizing machine learning models be done efficiently and with great focus on user experience? Sure, Maisie does just that.

Maisie is a friendly, easy to use assistant that consists of:

  • Web Application written in React

  • Backend API written in Python, Flask

  • Client Application/Package written in Python and hosted on PyPI

It integrates seamlessly with your favorite tools and provides you with all the important data, such as:

  • Git revisions for all trained models, as well as information about source branches

  • Searchable, filterable hyperparameters, parameters and metrics

  • A single identifying dataset name, as well as an optional description

  • Permanent URLs for easy sharing and downloading of stored models

2 Installing

You can get the most current package from PyPI

$ pip install Maisie

Using it in your training environment is fairly straightforward:

import maisie
from sklearn.externals import joblib

# Define your model here

model.fit(X, y)
model_filename = "example_model.pkl"
joblib.dump(model, model_filename)

# Define your metrics, fetch parameters and hyperparameters

models = maisie.Models()
models.upload(
    name="My first uploaded model",
    filename=model_filename,
    dataset_name="Singly Identifying Dataset Name",
    metrics={"accuracy": accuracy},
    hyperparameters=hyperparameters,
    parameters=parameters,
)

3 Deploying

3.1 Using docker-compose

This repository provides a pre-configured docker-compose.yml file that contains sensible default options.

Before starting the containers, you should create a local .env file using the included .env.sample.

To start up all services, run:

$ docker-compose up

To stop your services, you can press Ctrl+C/Ctrl+D. If you started the services in the background using docker-compose up -d, the correct way to do this would be:

$ docker-compose stop

You can learn more about Docker Compose by clicking here.

3.2 Fetching individual images

Both frontend and backend images are automatically published to Docker Hub as soon as new stable release is made available.

Links

For reference, you can look at the sample Ansible playbook that deploys all containers to a specified host using the locally configured .env file.

4 Contributing

4.1 Getting started

  1. Clone the repository from the develop branch

$ git clone -b develop git@github.com:nokia-wroclaw/innovativeproject-ml-models-management.git
  1. Install pre-commit

  2. Inside the project’s root directory install all required githooks:

$ pre-commit install
  1. To start all required services for local development, run:

$ docker-compose up
  1. You’re all set up!

4.2 Fixing existing issues

  1. Pick one of the open issues or create a new one

  2. Create a new branch named issue-[number]-[short description] derived from the develop branch, for example

$ git checkout -b issue-42-project-removal-permissions develop
  1. Make sure your implementation fixes the actual problem and is well tested.

4.3 Implementing new features

When implementing new features, you should start by creating a new branch named feature-[short description] derived from the develop branch, for example

$ git checkout -b feature-new-user-profile develop

4.4 Commiting the changes

To run all tests and check whether all required pre-commit githooks are satisfied, run

$ pre-commit run --all-files

Your commit message should briefly summarize the changes (if possible) in plain English. To learn how to write a proper commit message, check out this article.

When ready, create a new pull request compared with the develop branch set as a base branch.

5 Documentation

For the lastest stable release, the documentation can be seen at docs.maisie.dev.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Maisie-0.1.6.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

Maisie-0.1.6-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file Maisie-0.1.6.tar.gz.

File metadata

  • Download URL: Maisie-0.1.6.tar.gz
  • Upload date:
  • Size: 14.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.2

File hashes

Hashes for Maisie-0.1.6.tar.gz
Algorithm Hash digest
SHA256 bf70a61b977ffffdd8e2bb2ba83aeaa9f351f3868ecb8eaf5c2d860a55e8dfb7
MD5 c0b8e074c3efde9fb9ebe87c0a5afc79
BLAKE2b-256 d9c23f03383bd7a530724fa34d67c64881dbf8b36005a76422435e78fa36bfd7

See more details on using hashes here.

File details

Details for the file Maisie-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: Maisie-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.2

File hashes

Hashes for Maisie-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 5a95815eb060415a58f0f2aadaea080619d694fa29a2af5755222111701c2ee9
MD5 199ecdda203a2f06b004182dc92b7ccd
BLAKE2b-256 507bae86cd32851c59497d48dd3cfb049f4a7e778d460b651a7933c09986ef37

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page