Skip to content
/ myx Public

🧪 Experimental 🧪 - ML Experiment to Service Conversion Utility Tool!

Notifications You must be signed in to change notification settings

mkamadeus/myx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

myx - ML Experiment to Service utility tool

itb goversion author

Introduction

Made to fulfill the requirements of graduation in Bandung Institute of Technology as an Informatics Engineer (2018). This repository holds a proof-of-concept tool that converts complete ML experiments to a working code. Don't expect this project to be used in production; this was really made to see if a certain tool can be useful and be adopted into a MLOps workflow.

How It Works

  • It accepts a specification file which contains information regarding what service should be made
  • In the specification file, users can configure how to process their input before going to the model itself, since there usually exist an extra step in data preprocessing.
  • It uses existing scalers/encoders and pretrained models that is used in the training process to make the process more streamlined.
  • This tool generates Python code which are widely used in ML services. Currently based only on FastAPI.

Running the Project

Prerequisites

  • Go v1.18
  • Python, pip for installing the requirements

Building and Running

$ make build
$ ./myx

Usage:
  myx [flags]

Flags:
  -h, --help            help for myx
  -o, --output string   generated code output (default "./")
  -v, --verbose         verbose output

Running in Docker

Build the image and pass the parameters when running through docker run. E.g:

docker build -t myx:latest .
docker run \
  -v "$(pwd)/examples/:/root/examples" \
  myx:latest --output ./examples/titanic ./examples/titanic/spec.yaml

Specification Format

Some examples are generated in the examples directory. In general, there are five main sections in the directory.

input:
  format: <input-format>
  meta: <input-metadata>
output:
  - name: <output-name>
    type: <output-type>
pipeline:
  - module: <module-name>
    meta: <module-parameters>
model:
  format: <model-format>
  path: <model-path>
interface:
  - type: <interface-type>
    port: <interface-port>

Specification format is open to changes and additions. Author designed this to be especially extensible.

Author

@mkamadeus [email protected]

About

🧪 Experimental 🧪 - ML Experiment to Service Conversion Utility Tool!

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published