DataScience叢集的KubeFlow服務內建了SeldonCore組件, 可以為模型提供線上服務,基於Kubernetes,您無需關心線上服務的營運工作。您可以根據提供的dsdemo代碼,將Tensorflow,Pytorch和Python等模型部署到Seldon中。
前提條件
- 已建立DataScience叢集,並且選擇了Kubeflow服務,詳情請參見建立叢集。
- 已進行keras-API訓練,詳情請參見基於Kubeflow的Training樣本。
- 下載dsdemo代碼:請已建立DataScience叢集的使用者,使用DingTalk搜尋DingTalk群號32497587加入DingTalk群以擷取dsdemo代碼。
操作步驟
重要 本樣本使用的是keras-api訓練的匯出模型,詳情請參見基於Kubeflow的Training樣本。
- 通過SSH方式串連叢集,詳情請參見登入叢集。
- 執行以下命令,進入mnist_from_pvcmodel目錄。
cd dsdemo/kubeflow_samples/serving/seldon/tf/mnist_from_pvcmodel/ - 執行以下命令,安裝seldon_core。
sudo pip3.7 install seldon_core - 根據實際需求,配置mnist_grpc.yaml檔案。
apiVersion: machinelearning.seldon.io/v1alpha2 kind: SeldonDeployment metadata: name: tfserving spec: name: mnist predictors: - graph: children: [] implementation: TENSORFLOW_SERVER modelUri: "pvc://strategy-volume/saved_model/master/" name: mnist-model parameters: - name: signature_name type: STRING value: serving_default - name: model_name type: STRING value: mnist-model - name: model_input type: STRING value: images - name: model_output type: STRING value: scores name: default replicas: 1 - 執行以下命令,擷取istio-gateway的IP地址。
kubectl get svc istio-ingressgateway -n istio-system返回如下類似資訊。# kubectl get svc istio-ingressgateway -n istio-system NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway NodePort 10.104.**.** <none> 15020:31872/TCP,80:31380/TCP,443:31390/TCP,31400:31400/TCP,15029:30016/TCP,15030:30264/TCP,15031:31961/TCP,15032:31309/TCP,15443:31254/TCP 86m說明CLUSTER-IP對應的值即為istio-gateway的IP地址。 - 模型預測GRPC協議或REST協議。說明 請根據實際需求修改predict_rest.py或predict_grpc.py中minikube_ambassador_endpoint地址,修改為步驟5中擷取到的istio-gateway的IP地址。
- 模型預測GRPC協議。
python3.7 predict_grpc.py - 模型預測REST協議。
python3.7 predict_rest.py
返回如下類似資訊。Response: {'data': {'names': ['t:0', 't:1', 't:2', 't:3', 't:4', 't:5', 't:6', 't:7', 't:8', 't:9'], 'tensor': {'shape': [1, 10], 'values': [0.0191311873, 9.02173269e-09, 0.000745186175, 0.000349402311, 3.86572756e-05, 0.000118751872, 0.00138262415, 1.31301803e-07, 0.978211641, 2.23898933e-05]}}, 'meta': {}}按照如上方式,即可將TensorFlow、PyTorch和Python等服務部署在Seldon中,實現線上服務。 - 模型預測GRPC協議。