全部產品
Search
文件中心

E-MapReduce:基於Kubeflow或Seldon的線上服務

更新時間:Jul 01, 2024

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樣本
  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-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地址。
  6. 模型預測GRPC協議或REST協議。
    說明 請根據實際需求修改predict_rest.pypredict_grpc.pyminikube_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中,實現線上服務。