From 9db74ff8c8de57516e4e0d1fc9b51192003d7ad8 Mon Sep 17 00:00:00 2001 From: Clive Cox Date: Wed, 7 Apr 2021 13:20:33 +0100 Subject: [PATCH] add overview docs --- docs/examples/intro/local.md | 7 +++-- docs/index.rst | 1 + docs/overview/architecture.md | 47 +++++++++++++++++++++++++++++++ docs/overview/internals.png | Bin 0 -> 30957 bytes docs/overview/model-pipeline.png | Bin 0 -> 28028 bytes docs/overview/outlier-demo.png | Bin 0 -> 41031 bytes docs/overview/runtimes.md | 20 +++++++++++++ 7 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 docs/overview/architecture.md create mode 100644 docs/overview/internals.png create mode 100644 docs/overview/model-pipeline.png create mode 100644 docs/overview/outlier-demo.png create mode 100644 docs/overview/runtimes.md diff --git a/docs/examples/intro/local.md b/docs/examples/intro/local.md index 8c5349fc..9530e1ee 100644 --- a/docs/examples/intro/local.md +++ b/docs/examples/intro/local.md @@ -4,8 +4,11 @@ This notebook will walk you through an end-to-end example deploying a Tempo pipe ## Prerequisites - * rclone and conda installed. - * Run this notebook within the `seldon-examples` conda environment. Details to create this can be found [here](). +This notebooks needs to be run in the `tempo-examples` conda environment defined below. Create from project root folder: + +```bash +conda env create --name tempo-examples --file conda/tempo-examples.yaml +``` ## Architecture diff --git a/docs/index.rst b/docs/index.rst index f0a66cf4..ee21feab 100755 --- a/docs/index.rst +++ b/docs/index.rst @@ -8,6 +8,7 @@ Tempo :caption: Documentation: Quickstart + Architecture .. toctree:: :titlesonly: diff --git a/docs/overview/architecture.md b/docs/overview/architecture.md new file mode 100644 index 00000000..e87cf3c0 --- /dev/null +++ b/docs/overview/architecture.md @@ -0,0 +1,47 @@ +# Architecture + +Overview of Tempo architecture. + +![internals](internals.png) + + +## Model and Pipeline + +A Model is the core deployment artifact in tempo and describes the link to a saved machine learning component. A Pipeline is a custom python orchestrator that references other Tempo models or pipelines specied in its definition. + +![model-pipeline](model-pipeline.png) + + +A Model can be: + + * An optimized prepackaged server running a model artifact created by the data scientist, e.g. a Tnesorflow model. + * Custom python code (defined via a class or function). + + +A Pipeline is custom python code (defined via a class or function) which references other Tempo components as callabale functions. + +An example is shown below for the outlier demo. There we have a Pipeline which calls the outlier model and if the request is determined to be an outlier then the processing is halted otherwise the model is called. + +![outlier demo](outlier-demo.png) + +## Runtimes + +Runtimes provide the core functionality to deploy a Tempo model to an infrastructure platform. + +Read more about [Tempo Runtimes](./runtimes.html) + + +## Protocols + +Models when deployed will expose endpoints that respect a particular protocol. The available protocols in Tempo are shown below. + +| Protocol | Description | +|--------|---------| +| KFServingV2Protocol | [V2 definition](https://github.com/kubeflow/kfserving/tree/master/docs/predict-api/v2) | +| KFServingV1Protocol | [Tensorflow protocol](https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/api_rest.md) | +| SeldonProtocol | [Seldon protcol definition](https://docs.seldon.io/projects/seldon-core/en/latest/graph/protocols.html#rest-and-grpc-seldon-protocol) | + + +The default protocol is KFServingV2 protocol. + +If calling the model with tempo you will not need to deal with the protocol explicitly as translation from the defined python types to runtime payloads and vice versa will be automatic. diff --git a/docs/overview/internals.png b/docs/overview/internals.png new file mode 100644 index 0000000000000000000000000000000000000000..a7665e99f75f4e032e2bf5e789a51a731661eb08 GIT binary patch literal 30957 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

-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 YO(tv9s{U~qcnd^LN$X+ZgXgdRAETk9KmY&$ literal 0 HcmV?d00001 diff --git a/docs/overview/outlier-demo.png b/docs/overview/outlier-demo.png new file mode 100644 index 0000000000000000000000000000000000000000..d1415588d2ff82afd65282cb2fd710565297fa3a GIT binary patch literal 41031 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 WkAyc2FDJm8piZCk^K3j3ef_`bQTXNn literal 0 HcmV?d00001 diff --git a/docs/overview/runtimes.md b/docs/overview/runtimes.md new file mode 100644 index 00000000..eb6aa2ab --- /dev/null +++ b/docs/overview/runtimes.md @@ -0,0 +1,20 @@ +# Runtimes + +Tempo runtimes provide the core functionality to deploy a tempo Model. They must provide concrete implementations for the following functionality: + +| Method | Action | +|--------|---------| +| deploy | deploy a model | +| undeploy | undeploy a model | +| wait_ready | wait for a deployed model to be ready | +| get_endpoint | get the URL for the deployed model so it can be called | +| to_k8s_yaml | optionally get the Kubernetes declarative yaml for the model | + +The Runtimes defined within Tempo are: + +| Runtime | Infrastructure Target | Example | +| ------- | --------------------- | -------- | +| SeldonDockerRuntime | deploy Tempo models to Docker | [intro](../examples/intro/local.html) | +| SeldonKubernetesRuntime | deploy Tempo models to a Kubernetes cluster with Seldon Core installed | [intro_k8s](../examples/intro/k8s.html) | +| KFServingKubernetesRuntime | deploy Tempo models to a Kubernetes cluster with KFServing installed | [intro](../examples/kfserving/README.html) | +| SeldonDeployRuntime | deploy Tempo models to a Kubernetes cluster with Seldon Deploy installed | | \ No newline at end of file