Seldon Core:超快、行业就绪的机器学习¶
一个开源平台,用于在 Kubernetes 上大规模部署您的机器学习模型。
概述¶
Seldon core 转换及的机器学习模型(Tensorflow, Pytorch, H2o 等)或封装语言 (Python, Java 等)为生产化额 REST/GRPC 微服务。
Seldon 处理扩展到数千个生产机器学习模型,并提供开箱即用的高级机器学习功能,包括高级指标、请求记录、解释器、异常值检测器、A/B 测试、金丝雀等。
加入 Slack 社区 来问问题
从 Seldon Core 笔记本示例 开始
了解如何 开始贡献
查看深入 Seldon Core 组件的 博客
观看使用 Seldon Core 的 视频和访谈
高级功能¶
Seldon Core 的安装量超过 200 万,用于跨组织管理机器学习模型的大规模部署,主要优势包括:
开箱即用的 Swagger UI 端点测试,Seldon Python 客户端或 Curl / GRPCurl。
Cloud 无关并且在 AWS EKS,Azure AKS,Google GKE,Alicloud,Digital Ocean 及 Openshift 都测试过。
丰富强大的推理图来管理 predictors, transformers, routers, combiners等。
元数据输出以确保每个模型都能追溯 训练系统,数据及指标。
高级自定义 Prometheus 和 Grafana 指标实现。
可审计的模型输入输出记录 Elasticsearch 日志集成。
通过 Jaeger 集成 实现微服务分布式追踪,以了解各微服务点延迟。
通过一致的 安全及更新策略 实现安全、可靠、强大的系统。
开始¶
通过我们的预包装服务器和封装语言可以非常容易的在 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/ 了解详情和试用。