This repository walks through an example of what a "deep learning platform" could look like. It uses all open source tools:
- Pachyderm to manage, version, and transform data
- Determined to train a model and manage model artifacts
- Seldon Core to deploy models to Kubernetes
We walk through using this platform in platform_example.ipynb.
These instructions will walk through installing Pachyderm, Determined, and Seldon. This is a sample installation meant for a demo -- for an enterprise level installation you'll want to significantly customize this process.
kubectl
eksctl
helm
You can create your EKS cluster using eksctl
. The following command will work, but you'll want to customize eks.yaml
to configure your cluster. See the eksctl documentation here.
eksctl create cluster -f cluster.yaml
Follow the Pachyderm docs to deploy Pachyderm to your EKS cluster. You'll need to install pachctl
as a part of this process
You'll want to expose the pachd
process via some sort of external IP address. One way to do this (not recommended for production deployments) is to patch the pachd
kubernetes service and make it a load balancer. Something like:
kubectl patch svc pachd -p '{"spec": {"type": "LoadBalancer"}}'
Before installing Seldon Core, you'll want to install some sort of ingress provider. One option is Ambassador, which can be installed using helm.
You can then install Seldon Core with helm
as well, following their instructions.
You can use these instructions to create a Determined cluster in AWS.. Take note of the URL of the Determined Master, as you'll need it throughout this example.
There are a few things you'll need to modify through the course of this example:
In det/adaptive.yaml, you'll need to update the pachyderm host field to the address of pachd
that you set up above.
When you wrap your Docker image for use with Seldon, you'll need to push it to a docker registry, then update the image in seldon/serve.yaml with the docker image you pushed.
In the example notebook, you'll need to use the determined hostname, pachd hostname, and ambassador hostname, all of which you created while setting up your cluster.