Katana ML Skipper
Katana ML Skipper is an easy-to-use yet powerful workflow engine designed for machine learning tasks. This versatile tool allows users to efficiently orchestrate and manage the flow of events across various microservices, enabling the creation of executable workflows to handle requests smoothly. The engine is built to be highly configurable, making it adaptable to any set of microservices that a user might wish to employ.
Features and Functionality
The core of Katana ML Skipper is its engine and communication components, which are designed to be generic and reusable. These frameworks serve as a foundation upon which users can build customized machine learning services. For illustrative purposes, the project includes a suite of sample ML services that work with the well-known Boston Housing dataset. These services include:
- Data Service: Fetches Boston Housing data and transforms it into a format suitable for further processing with TensorFlow.
- Training Service: Constructs a machine learning model using TensorFlow.
- Serving Service: Scaled to run two instances simultaneously, this service handles incoming prediction requests.
One particularly standout feature is the mobilenetservice, a JavaScript-based microservice that demonstrates how Skipper can integrate with various programming languages, including Python, JavaScript, and Java. This flexibility means users can implement ML services using diverse technologies like Python frameworks or Node.js, depending on their needs and preferences.
Getting Started
Skipper can be quickly set up using Docker Compose or Kubernetes, with detailed instructions available for both environments. These options allow users to run Skipper and its associated services either on a local machine or in a cloud-hosted Kubernetes cluster, offering great flexibility and scalability.
Components
Skipper encompasses several components, each serving a distinct purpose:
- API - Provides the web API interface.
- Workflow - Manages the workflow logic.
- Services - Houses the sample microservices (which users are encouraged to replace with their own).
- RabbitMQ - Acts as the message broker.
- Skipper-Lib - A reusable Python library that facilitates event communication via RabbitMQ.
- Skipper-Lib-JS - The Node.js counterpart library for event communication.
- Logger - Facilitates logging services.
Deployment and Cloud Integration
For cloud enthusiasts, Katana ML Skipper offers deployment guides for major cloud platforms such as Oracle Container Engine for Kubernetes (OKE) and Google Kubernetes Engine (GKE). This ensures that Skipper is not only ready for local use but is also equipped for cloud deployments, offering the scalability benefits of cloud technology.
Usage
Users can leverage Katana ML Skipper to operate its web API, create workflows, and communicate efficiently with a custom set of ML microservices. The engine's flexibility allows it to be deployed across various cloud platforms, ensuring that users can scale the runtime environment as needed using Kubernetes commands.
Licensing
Katana ML Skipper is available under the Apache License, Version 2.0, and users are encouraged to view the license documentation for more information.
In conclusion, Katana ML Skipper serves as a robust and flexible tool for anyone looking to streamline machine learning workflows. Its ability to integrate with various microservices makes it a versatile choice suitable for a wide range of ML applications. Whether deployed locally or on the cloud, Skipper offers scalability, configurability, and ease of use, making it an excellent choice for ML projects.