seldon-model-deployer
Overview
Seldon Core deployment skill for model serving, A/B testing, canary deployments, and advanced inference graphs on Kubernetes.
Capabilities
- SeldonDeployment creation and management
- Multi-model serving
- Traffic splitting (canary/shadow/A/B)
- Model monitoring integration
- Custom inference graphs
- Explainer deployment (SHAP, Anchor)
- Request logging and tracing
- Autoscaling configuration
Target Processes
- Model Deployment Pipeline with Canary Release
- A/B Testing Framework for ML Models
- ML Model Retraining Pipeline
Tools and Libraries
- Seldon Core
- Seldon Deploy
- Kubernetes
- Istio/Ambassador (ingress)
Input Schema
{
"type": "object",
"required": ["action"],
"properties": {
"action": {
"type": "string",
"enum": ["deploy", "update", "rollback", "delete", "status", "traffic-split"],
"description": "Seldon action to perform"
},
"deploymentConfig": {
"type": "object",
"properties": {
"name": { "type": "string" },
"namespace": { "type": "string" },
"modelUri": { "type": "string" },
"implementation": { "type": "string" },
"replicas": { "type": "integer" },
"resources": {
"type": "object",
"properties": {
"requests": { "type": "object" },
"limits": { "type": "object" }
}
}
}
},
"trafficConfig": {
"type": "object",
"properties": {
"canaryPercent": { "type": "integer" },
"shadowEnabled": { "type": "boolean" },
"abTestEnabled": { "type": "boolean" }
}
},
"explainerConfig": {
"type": "object",
"properties": {
"type": { "type": "string", "enum": ["anchor_tabular", "anchor_text", "shap"] },
"enabled": { "type": "boolean" }
}
}
}
}
Output Schema
{
"type": "object",
"required": ["status", "action"],
"properties": {
"status": {
"type": "string",
"enum": ["success", "error", "pending"]
},
"action": {
"type": "string"
},
"deploymentName": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"deploymentStatus": {
"type": "string",
"enum": ["creating", "available", "failed", "unknown"]
},
"replicas": {
"type": "object",
"properties": {
"desired": { "type": "integer" },
"ready": { "type": "integer" }
}
},
"trafficSplit": {
"type": "object"
}
}
}
Usage Example
{
kind: 'skill',
title: 'Deploy model with canary',
skill: {
name: 'seldon-model-deployer',
context: {
action: 'deploy',
deploymentConfig: {
name: 'fraud-detector',
namespace: 'ml-serving',
modelUri: 'gs://models/fraud-v2',
implementation: 'SKLEARN_SERVER',
replicas: 3
},
trafficConfig: {
canaryPercent: 10
},
explainerConfig: {
type: 'shap',
enabled: true
}
}
}
}