Seldon Core:超快、行业就绪的机器学习

一个开源平台,用于在 Kubernetes 上大规模部署您的机器学习模型。

概述

Seldon core 转换及的机器学习模型(Tensorflow, Pytorch, H2o 等)或封装语言 (Python, Java 等)为生产化额 REST/GRPC 微服务。

Seldon 处理扩展到数千个生产机器学习模型,并提供开箱即用的高级机器学习功能,包括高级指标、请求记录、解释器、异常值检测器、A/B 测试、金丝雀等。

高级功能

Seldon Core 的安装量超过 200 万,用于跨组织管理机器学习模型的大规模部署,主要优势包括:

开始

通过我们的预包装服务器和封装语言可以非常容易的在 Seldon Core 发布模型。下面能查看一个 “hello world Iris” 发布示例。你可以在 快速开始文档 查看有关这些工作流程的更多详细信息。

安装 Seldon Core

使用 Helm 3 快速安装(你也可以使用 Kustomize):

kubectl create namespace seldon-system

helm install seldon-core seldon-core-operator \
    --repo https://storage.googleapis.com/seldon-charts \
    --set usageMetrics.enabled=true \
    --namespace seldon-system \
    --set istio.enabled=true
    # You can set ambassador instead with --set ambassador.enabled=true

使用预打包模型服务快速部署模型

我们为一些最流行的深度学习和机器学习框架提供优化的模型服务器,允许您部署经过训练的模型二进制文件/权重,而无需容器化或修改它们。

您只需要将模型二进制文件上传到您首选的对象存储中,在这种情况下,我们在 Google 存储桶中有一个经过训练的 scikit-learn iris 模型:

gs://seldon-models/v1.14.0/sklearn/iris/model.joblib

创建一个命名空间来运行你的模型:

kubectl create namespace seldon

然后,我们可以使用预打包的 scikit-learn (SKLEARN_SERVER) 模型服务器通过 kubectl apply 将这个模型通过 Seldon Core 部署到我们的 Kubernetes 集群。

$ kubectl apply -f - << END
apiVersion: machinelearning.seldon.io/v1
kind: SeldonDeployment
metadata:
  name: iris-model
  namespace: seldon
spec:
  name: iris
  predictors:
  - graph:
      implementation: SKLEARN_SERVER
      modelUri: gs://seldon-models/v1.14.0/sklearn/iris
      name: classifier
    name: default
    replicas: 1
END

发送 API 请求到部署的模型

部署的每个模型都公开了一个标准化的用户界面,以使用我们的 OpenAPI 模式发送请求。

这可以通过端点访问 http://<ingress_url>/seldon/<namespace>/<model-name>/api/v1.0/doc/,它允许您直接通过浏览器发送请求。

或者,您可以使用我们的 Seldon Python Client 或其他 Linux CLI:

$ curl -X POST http://<ingress>/seldon/seldon/iris-model/api/v1.0/predictions \
    -H 'Content-Type: application/json' \
    -d '{ "data": { "ndarray": [[1,2,3,4]] } }'

{
   "meta" : {},
   "data" : {
      "names" : [
         "t:0",
         "t:1",
         "t:2"
      ],
      "ndarray" : [
         [
            0.000698519453116284,
            0.00366803903943576,
            0.995633441507448
         ]
      ]
   }
}

使用语言封装部署您的自定义模型

对于更多具有自定义依赖项的自定义深度学习和机器学习用例(例如三方库、操作系统二进制文件甚至外部系统),我们可以使用任何 Seldon Core 语言封装器。

您只需要编写一个公开模型逻辑的类包装器;例如在 Python 中,我们可以创建一个文件 Model.py

import pickle
class Model:
    def __init__(self):
        self._model = pickle.loads( open("model.pickle", "rb") )

    def predict(self, X):
        output = self._model(X)
        return output

可使用 Seldon Core s2i 工具 容器化我们的类文件,来生成 sklearn_iris 镜像:

s2i build . seldonio/seldon-core-s2i-python3:0.18 sklearn_iris:0.1

现在我们将它部署到我们的 Seldon Core Kubernetes 集群:

$ kubectl apply -f - << END
apiVersion: machinelearning.seldon.io/v1
kind: SeldonDeployment
metadata:
  name: iris-model
  namespace: model-namespace
spec:
  name: iris
  predictors:
  - componentSpecs:
    - spec:
        containers:
        - name: classifier
          image: sklearn_iris:0.1
    graph:
      name: classifier
    name: default
    replicas: 1
END

向您部署的模型发送 API 请求

部署的每个模型都公开了一个标准化的用户界面,以使用我们的 OpenAPI 模式发送请求。

这可以通过端点访问 http://<ingress_url>/seldon/<namespace>/<model-name>/api/v1.0/doc/,它允许您直接通过浏览器发送请求。

或者,您可以使用我们的 Seldon Python Client 或其他 Linux CLI 以编程方式发送请求:

$ curl -X POST http://<ingress>/seldon/model-namespace/iris-model/api/v1.0/predictions \
    -H 'Content-Type: application/json' \
    -d '{ "data": { "ndarray": [1,2,3,4] } }' | json_pp

{
   "meta" : {},
   "data" : {
      "names" : [
         "t:0",
         "t:1",
         "t:2"
      ],
      "ndarray" : [
         [
            0.000698519453116284,
            0.00366803903943576,
            0.995633441507448
         ]
      ]
   }
}

深入了解高级生产机器学习集成

任何使用 Seldon Core 部署和编排的模型都可以提供开箱即用的机器学习洞察力,用于监控、管理、扩展和调试。

以下是一些核心组件以及指向日志的链接,这些日志提供了有关如何设置它们的进一步见解。


prometheus 的标准和自定义指标


带有 ELK 请求日志记录的完整审计跟踪


机器学习可解释性解释器


用于监控的异常值和对抗性检测器


大规模 MLOps 的 CI/CD


用于性能监控的分布式跟踪

接下来该怎么看

开始

深入 Seldon Core

预打包推理服务器

语言封装 (生产)

语言封装 (孵化)

流量入口

生产环境

高级推理

示例

参考

开发者

关于「Seldon Core」

Seldon (ˈSɛldən) Core 名字的灵感来自 the Foundation Series (Scifi Novel) ,它的前提是由一位名叫“Hari Seldon”的数学家组成,他毕生致力于发展一种心理史理论,这是一种新的有效的数学社会学,它为未来创造了条件可以在很长一段时间内(跨越数十万年)进行极其准确的预测。

商业支持

我们通过我们的企业产品 Seldon Deploy 提供商业支持。请访问 https://www.seldon.io/ 了解详情和试用。