Skip to content

Release 1.1.0 - Self-Service ML Model Deployment

Released: Jan 31, 2023

TL;DR

This release solves one of the biggest pain points of deploying an ML model—waiting for an engineer to spin up a new dedicated service (e.g. Kubernetes) for the model. Now anyone can deploy a new serverless model themselves within Sumatra, so there's no back-and-forth between teams. Users can view and manage models directly in the Sumatra UI so you can easily track all of your models and model versions.

  1. Deploy a model without a new microservice
  2. View and manage models in the UI
  3. Add a comment to new model versions

Deploy a model without a new microservice

Now you can create, test, and deploy a new model entirely within Sumatra. You can even push it live to production while Sumatra handles the infrastructure for you.

Sumatra can serve a wide variety models built in a wide variety of environments, as long as the final artifact is serialized to PMML. An example in scikit-learn:

# train model in sklearn then serialize with sklearn2pmml
pipeline = PMMLPipeline([
    ("imputer", SimpleImputer(missing_values=np.nan, strategy='mean')),
    ("classifier", GradientBoostingClassifier(n_estimators=100))
])
pipeline.fit(train[features], train.target)
sklearn2pmml(pipeline, "my_model.pmml")

The one-liner to deploy to Sumatra:

sumatra.create_model_from_pmml("my_model_name", "my_model.pmml")

See the Models docs for the full details.

Can I still use my own model service?

Absolutely.

Sumatra's native model inference is one of many approaches for serving ML models, based on Sumatra's real-time features. There is no requirement to migrate legacy model services. Further, you can migrate a Sumatra PMML model to a standalone service if, at any time, that better suits your needs.

View and manage models in the UI

models

See all of your models and their versions in one place! From the main menu, navigate to "Models". This screen displays all models you've created, and you can see all the versions by clicking on a model. The status indicators show which model versions are Processing, Ready for use, and Live in your topology.

model-versions

Click a version to open the row and display the code snippet used to call the model inference function, the input/output schema, and the metadata for that model version.

Tip

Click the copy icon to easily copy and paste the snippet into the Scowl code editor to invoke model inference.

Screenshot 2023-01-23 at 3 22 08 PM

Add a comment to new model versions

comment-field

When uploading a model through your Python client, there is a comment field for notes or a description of that version. Use it to explain what improved, bugs fixed, or anything else you want to include.

create_model_from_pmml("delivery_time",
                       "delivery_time_v0.8.0.pmml",
                       comment="Raised max-depth from 3 to 4")

One more thing

Questions or feedback?

Questions or feedback about this release? Email us at hello@sumatra.ai or message us in our Slack Community!