すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:Seldon Core を使用したオンラインサービスの実装

最終更新日:Jan 11, 2025

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 を使用したモデルのトレーニング」をご参照ください。
  1. SSH モードでクラスタにログオンします。 詳細については、「クラスタへのログオン」をご参照ください。
  2. 次のコマンドを実行して、mnist_from_pvcmodel ディレクトリにアクセスします:
    cd dsdemo/kubeflow_samples/serving/seldon/tf/mnist_from_pvcmodel/
  3. 次のコマンドを実行して、Seldon Core をインストールします:
    sudo pip3.7 install seldon_core
  4. ビジネス要件に基づいて 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
  5. 次のコマンドを実行して、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 アドレスです。
  6. 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 にデプロイし、オンラインサービスを実装できます。