Problem Statement: serving a unionml app today consists of a hodge-podge of APIs and different conventions for deploying services that’s cobbled together using different technologies (FastAPI, Mangum, SAM CLI), each with different conventions around app creation, builds, and deployment.
It’s on the user to figure out how to put all of these technologies together to achieve what they want.
Objective: Make a consistent, logical experience for deploying and serving a unionml app
Current state:
model.remote(...)
, then model.remote_deploy()
app = FastAPI(); model.serve(app)
app = FastAPI(); model.serve(app); handler = Mangum(App)
sam cli
and creating a custom handler.What’s missing:
ModelService
class that defines a protocol for the following types of services for model prediction (and potentially others like model explanations, training, tuning, active learning etc.):
ModelService
microservices.
ModelService
class, a framework-specific build and deploy process hides the complexity so that users don’t have to, e.g. learn the AWS SAM cli