/bodywork-core

ML-Ops framework for running model-training workloads and deploying model-scoring services on Kubernetes.

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

bodywork


Bodywork is a simple framework for machine learning engineers to run model-training workloads and deploy model-scoring services, in containers on Kubernetes. It is built by machine learning engineers, for machine learning engineers. It automates the repetitive tasks that most machine learning engineers think of as DevOps, allowing them to focus on what they do best - machine learning.

Bodywork uses Kubernetes for running machine learning workloads and services, because we believe that Kubernetes comes shipped with all the resources required for building an effective Machine Learning Operations (MLOps) platform.

What Problems Does Bodywork Solve?

Running machine learning code in containers has become a common pattern to guarantee reproducibility between what has been developed and what is deployed in production.

The process of containerising machine learning code using Docker to build images, pushing the build artefacts to an image repository and then configuring a container orchestration platform to run batch workloads and deploy services, requires skills and expertise that most machine learning engineers do not have the time (and often the desire) to learn.

Scale this scenario to one where there are multiple models to worry about, all needing to be re-trained and re-deployed, and it is easy to see how quickly the management of these pipelines will become a large and undesirable burden.

This is where the Bodywork MLOps framework steps-in - to take care of delivering your code to the right place and executing it at the right time, so that your models are always trained, deployed and available.

bodywork_diagram

Bodywork is a tool built upon the Kubernetes container orchestration platform and is aimed at machine learning engineers to help them:

  • Continuously deliver code - for training models and defining model-scoring services. Bodywork containers running on Kubernetes will pull code directly from your project's Git repository, removing the need to build-and-push your own container images.
  • Automate deployments - of batch workloads and model-scoring services, using the Bodywork workflow-controller to orchestrate end-to-end machine learning workflows on Kubernetes.

Kubernetes is available as a managed service from all major cloud computing platforms.

Prerequisites

Before you start exploring what Bodywork can do for you, you will need:

Familiarity with basic Kubernetes concepts and some exposure to the kubectl command-line tool will make life easier. We recommend the first two introductory sections of Marko Lukša's excellent book Kubernetes in Action, or the introductory article we wrote on Deploying Python ML Models with Flask, Docker and Kubernetes.

Documentation

The official documentation for bodywork-core can be found here. This is the best place to start.

Contacting Us

If you:

  • have a question that these pages haven't answered, then please ask a question on our forum.
  • have found a bug, then please open an issue.
  • would like to read the Bodywork source code, then you can find it here.
  • would like to contribute, then please talk to us first at info@bodyworkml.com
  • would like to commission new functionality, then please contact us at info@bodyworkml.com