Skip to content

A command line tool for managing machine learning projects and their associated resources.

License

Notifications You must be signed in to change notification settings

kirubarajan/keplet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Keplet

Building machine learning is hard. Using it shouldn't be.

Keplet is a non-intrusive CLI for developing and interacting with machine learning projects by scafolding common architectures and abstracting model management (e.g. dependencies, documentation, containerization). Keplet supports any model architecture and is compatible with any framework, making it easier to publish reproducable models and deploy pre-trained instances.

Features

  • Virtual environments provisioner for environment variables and dependencies
  • Dataset directory cache for use across multiple projects
  • File directory usage for project management
  • Command line documentation (by using the --help flag)
  • Automatic REST API creation for model predictions over HTTP

Example

Creating new project: keplet create chatbot --framework torch

🤖 New project named 'chatbot':
✨ Creating folder with kep.json...
✨ Cloning boilerplate files...
✨ Creating virtual environment...
✨ Generating README file...
✨ Installing torch...

🤖 Success! Access your project by running:
 0. cd chatbot
 1. source venv/bin/activate
 2. pip install -r requirements.txt
 3. keplet start

Resulting project architecture (with PyTorch-enabled virtual environment):

chatbot/
├── /venv                    # Virtual environment location
├── kep.json                 # Model/dataset definition and  misc. metadata
├── data.py                  # Data loader from either Keplet cache or by path
├── model.py                 # Model class with interface to make predictions
├── server.py                # REST API dynamically generated from kep.json config
├── requirements.txt         # Dependency tracker for use with pip/anaconda
├── Dockerfile               # Minimal Docker configuration for deployment
└── README.md                # Boilerplate README.md with file instructions

Additionally, running keplet start will launch a Flask server in server.py. By default, the server listens at localhost:5000/predict and returns JSON-encoded predictions over HTTP.

Usage

After installing Keplet using pip install keplet:

Usage: manage.py [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Learn more about the standard Keplet commands.

Commands:
  init
  list
  create
  start
  train
  predict
  containerize
  run

Where run can execute scripts defined in kep.json.

License

MIT

About

A command line tool for managing machine learning projects and their associated resources.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages