DataScience集群的KubeFlow服务内置了SeldonCore组件, 可以为模型提供在线服务,基于Kubernetes,您无需关心在线服务的运维工作。您可以根据提供的dsdemo代码,将Tensorflow,Pytorch和Python等模型部署到Seldon中。

前提条件

  • 已创建DataScience集群,并且选择了Kubeflow服务,详情请参见创建集群
  • 已进行keras-API训练,详情请参见基于Kubeflow的Training示例
  • 下载dsdemo代码:请已创建DataScience集群的用户,使用钉钉搜索钉钉群号32497587加入钉钉群以获取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中,实现在线服务。

问题反馈

如果您在使用DataScience集群过程中有任何疑问或问题,请联系我们的技术人员协助处理,同时也欢迎您使用钉钉搜索钉钉群号32497587加入钉钉群进行反馈或交流。