E-MapReduce(EMR)Data Science クラスタの Kubeflow サービスは、組み込みの Seldon Core コンポーネントを提供します。これは、Kubernetes 上のモデルにオンラインサービスを提供します。 Kubernetes を使用する場合、オンラインサービスの O&M に焦点を当てる必要はありません。 dsdemo コードを実行して、TensorFlow、PyTorch、Python モデルなどのモデルを Seldon Core にデプロイできます。
前提条件
- Data Science クラスタが作成され、クラスタの作成時にオプションサービスから Kubeflow が選択されています。 詳細については、「クラスタの作成」をご参照ください。
- Keras API を呼び出すことによるモデルのトレーニングが実行されています。 詳細については、「Kubeflow を使用したモデルのトレーニング」をご参照ください。
- dsdemo コードがダウンロードされています。 Data Science クラスタを作成した場合、32497587 という番号の DingTalk グループに参加して dsdemo コードを取得できます。
手順
重要 この例では、Keras API を呼び出すことによってトレーニングされたエクスポートモデルを使用します。 詳細については、「Kubeflow を使用したモデルのトレーニング」をご参照ください。
- 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 ingress 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 ingress gateway の IP アドレスです。 - Google Remote Procedure Call(gRPC)または REST プロトコルを介してモデル予測を実行します。 説明 minikube_ambassador_endpoint の値を predict_rest.py スクリプトまたは predict_grpc.py スクリプトで Istio ingress gateway の IP アドレスに変更します。 Istio ingress gateway の IP アドレスは 手順 5 で取得します。
- gRPC を介してモデル予測を実行します。
python3.7 predict_grpc.py - REST プロトコルを介してモデル予測を実行します。
python3.7 predict_rest.py
次のような情報が返されます:Response: null上記の手順を実行して、TensorFlow、PyTorch、Python などのサービスを Seldon Core にデプロイし、オンラインサービスを実装できます。 - gRPC を介してモデル予測を実行します。