Seldon Core:在 Kubernetes 上大规模部署机器学习模型

seldon-core 在 GitHub 上已经拿到 4,751 Star 了。

这是一个在 Kubernetes 上部署机器学习模型的平台,面向大规模生产环境。它把 TensorFlow、PyTorch、H2O 等框架训练出来的模型,以及用 Python、Java 写的自定义模型,统一转成 REST 或 GRPC 微服务。

1、这玩意儿是干嘛的

就做一件事:让 ML 模型稳定地跑在生产环境里。

你可以把它理解成模型和基础设施之间的一层粘合剂。模型训练完了,直接交给它,它负责容器化、扩缩容、暴露 API、打日志、做监控。目前累计安装量已经超过 200 万次。

正文顶部截图

2、为什么要用它

做模型服务的人都遇到过这类问题:本地跑得好好的模型,一上生产就各种不对。流量大了要手动扩容,A/B 测试要重新写路由,出了问题找不到日志,模型行为解释不清。

Seldon Core 把这些事内建到平台里了。它的核心思路是把每个模型都当成一个标准的微服务来管,借助 Kubernetes 的调度能力实现横向扩展,同时提供一套完整的可观测和治理能力。

README区域截图

3、核心能力有哪些

它支持两类部署方式:

第一种是预打包推理服务器。常见框架如 scikit-learn、TensorFlow、XGBoost、MLflow 都有现成镜像,你把模型文件上传到对象存储,写几行 YAML 就能部署。

第二种是自定义语言包装器。如果模型依赖第三方库或者有特殊逻辑,可以用 Python、Java、R、Go、NodeJS 等语言自己写包装类,再打包成镜像部署到集群。

除部署之外,它还内置了这些功能:

  • 高级指标与 Prometheus、Grafana 集成
  • 请求日志与 Elasticsearch 对接
  • 分布式追踪通过 Jaeger 实现
  • A/B 测试、金丝雀发布、多臂老虎机路由
  • 模型解释器和异常检测器
  • 元数据追溯,连接训练系统与生产模型

4、部署一个模型有多简单

用 Helm 3 安装核心组件:

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

然后部署一个 scikit-learn 的 iris 模型:

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.20.0-dev/sklearn/iris
      name: classifier
    name: default
    replicas: 1
END

模型部署后会暴露 OpenAPI 文档页面,也可以直接用 curl 调用:

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]] } }'

5、适合哪些人用

  • 需要在 Kubernetes 上运行大量模型服务的企业团队
  • 想要统一管理 TensorFlow、PyTorch、scikit-learn 等多框架模型的 MLOps 工程师
  • 需要 A/B 测试、金丝雀、模型可解释能力的数据科学团队
  • 使用 AWS EKS、Azure AKS、GKE 等云托管 Kubernetes 的组织

Seldon Core 目前同时维护 V1 和 V2 两个大版本,新用户建议直接从 V2 开始。

EKS、Azure AKS、GKE 等云托管 Kubernetes 的组织

Seldon Core 目前同时维护 V1 和 V2 两个大版本,新用户建议直接从 V2 开始。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐