seldon core 调研笔记 - 使用 seldon core 部署 Lightgbm 格式的模型

前言

Seldon Core 目前是机器学习模型部署领域最受欢迎的方案之一,由 seldon 公司开源和维护。seldon 同时还是 kfserving 的项目深度参与者。这篇文章用来记录下我在调研 Seldon Core 时遇到的一个 bug。

我在做什么

利用 Seldon Core 的 Custom Inference Server 机制向 Seldon Core 注册我构建的,用来加载 Lightgbm 模型的 Inference Server:Seldon-Lightgbm

为什么这么做

公司有很大一部分模型是 Lightgbm 格式,但 Seldon Core 目前并不支持部署这种模式的模型。Seldon Core 项目的创建者 Clive Cox 建议我自定义支持 Lightgbm 模型的 Inference Server,恰巧我对 docker 和 kubernetes 比较熟悉,大概了解 Seldon Core 项目 Inference Server 的运行机制,所以我决定先自定义一个 Inference Server。详情见我在 Slack 上和 Clive Cox 的讨论

遇到了什么困难

按照 Seldon Core 文档注册 Seldon-Lightgbm 后创建 seldondeployment 时报错:

1
Warning  InternalError  6m25s (x19 over 17m)  seldon-controller-manager  invalid implementation: CUSTOM_SERVER

详情见我在 Seldon Core 项目提的 Issue

怎么解决的

Seldon Core 的开发者反馈并没有复现我遇到的问题…

后来在 Seldon Core Slack 社区 问其它问题时给 alejandro 看了这个 Issue,alejandro 试了下但同样没有复现,我还以为是我哪里搞错了,详情见我我在 Slack 上和 alejandro 的 讨论

经过对比 alejandro 和我的 seldondeployment 文件发现:Custom Inference Server 的确注册成功了,但它并不支持 kfserving v2 协议,原因是 Seldon Core 在代码中少了一个判断条件。目前 Seldon Core 已经开了一个 PR 修复了这个 Bug,估计会在 1.10.0 版本发布。

至此问题解决,在 Seldon Core 1.10.0 发布前先将 Seldon Core 的一个 Pre-Package Inference Server 的镜像配置改成我构建的 Seldon-Lightgbm。

总结

Seldon Core 社区还是非常活跃,项目的维护者也会非常热心的回答各种使用者的问题,所以一般有什么问题及时和他们交流,总能及时解决。