自定义预估服务器¶
开箱即用,Seldon 提供一些 预封装预估 服务器。 然而,但是,在某些情况下,推出您自己的可重复使用的 推论服务器是有意义的。 例如,您可能需要特定的依赖关系、特定版本、 自定义过程来下载模型权重等。
为了支持这些使用案例,Seldon 允许您轻松地构建自己的
推理服务器,并可以配置使用,
就像您进行预封装的一样。
即通过使用 implementation 选项并定义模型参数
(例如 modelUri)。
apiVersion: machinelearning.seldon.io/v1alpha2
kind: SeldonDeployment
metadata:
name: nlp-model
spec:
predictors:
- graph:
children: []
implementation: CUSTOM_INFERENCE_SERVER
modelUri: s3://our-custom-models/nlp-model
name: model
name: default
replicas: 1
构建一个新的预估服务器¶
要构建自定义服务器可
查看如何封装模型说明。
唯一区别在于,服务器会接收一些模型参数,
如:modelUri。
作为灵感,您可以参考 SKLearn
server
和 其他预封装服务器
的 __init__() 处理方法:
def __init__(self, model_uri: str = None, method: str = "predict_proba"):
super().__init__()
self.model_uri = model_uri
self.method = method
self.ready = False
self.load()
添加一个服务器¶
可用预估服务器列表 Seldon Core 存放在
seldon-config 配置中,它同 Seldon
Core operator
在同一命名空间中。特别是,predictor_servers 关键字 为每个
预估服务器保存着 JSON 配置。
predictor_servers 关键字保存的 JSON 字典
如下:
{
"SKLEARN_SERVER": {
"grpc": {
"defaultImageVersion": "0.2",
"image": "seldonio/sklearnserver_grpc"
},
"rest": {
"defaultImageVersion": "0.2",
"image": "seldonio/sklearnserver_rest"
}
}
}
添加新的预估服务器就像 上面一样添加一个新的配置到字典中。 如:
{
"CUSTOM_INFERENCE_SERVER": {
"grpc": {
"defaultImageVersion": "1.0",
"image": "org/custom-server-grpc"
},
"rest": {
"defaultImageVersion": "1.0",
"image": "org/custom-server-rest"
}
},
"SKLEARN_SERVER": {
"grpc": {
"defaultImageVersion": "0.2",
"image": "seldonio/sklearnserver_grpc"
},
"rest": {
"defaultImageVersion": "0.2",
"image": "seldonio/sklearnserver_rest"
}
}
}
可用示例¶
一个可工作的构建 LighGBM 模型服务器可在这里查看。