Model On-Boarding Overview

Acumos accommodates the use of a wide range of tools and technologies in the development of machine learning models, including support for both open source and proprietary toolkits. Models can be easily onboarded and wrapped into containerized microservices which are interoperable with many other components. On-boarding provides an ingestion interface for various types of models to enter the Acumos Machine Learning (ML) platform. Examples of models include well-defined objects such as scikit-learn estimators, TensorFlow weights, and arbitrary R functions.

The solution for accommodating a myriad of different model types is to provide a custom wrapping library for each runtime. The client library encapsulates the complexity surrounding the serialization and deserialization of models. Additionally, the client library creates a common native interface, a wrapper, for invoking the inner model. In order for Acumos to be able to reason about models uniformly, there is a common model interface description that details what the available model methods are and what they look like. Acumos instantiates ML models as microservices and safely composes them together.

Architecture

High-level flow:

../../../_images/UseCase.png

In the illustrations below, custom transformation functions which consume and produce a native DataFrame are converted to standardized native models. The transforms are then composed together in Acumos as microservices. This illustration begs the question of how the DataFrame can be represented abstractly in order to validate this workflow.

../../../_images/UG_image3.png ../../../_images/UG_image4.png ../../../_images/UG_image5.png

Methods and Semantics

Acumos is a machine learning platform, thus we need to provide certain “methods” in our wrapped models that Acumos can invoke in order to support various workflows. In a machine learning setting, these methods might look like:

  • fit(message) -> model state

    • Does a full “batch” fit, replacing previous internal model parameters
    • Returns a “model state” object that provides a standard serialization method
  • partial_fit(message) -> model state

    • Does a partial fit, updating internal model parameters
    • Returns a “model state” object that provides a standard serialization method
  • transform(message) -> message

    • Returns an object that provides a standard serialization method

On-Boarding Client Libraries

The Acumos on-boarding process generates everything needed to create an executable microservice for your model and add it to the catalog. Acumos uses Protobuf as a language-agnostic data format to provide a common description of the model data inputs and outputs.

Acumos supports on-boarding Python, Java, and R models. The appropriate client library does the first step of the on-boarding process. This includes:

  1. Introspection to assess the toolkit library versions and determine file types
  2. Creation of a JSON description of the system
  3. Creation of the protobuf file
  4. File push to the Acumos on-boarding server