使用 s2i 为 Seldon Core 打包 R 模型(孵化)¶
本章中,我们说名使用 source-to-image app s2i 为 R 模型构建使用 Seldon Core 部署的 docker 镜像,如果想要使用原生 Docker,查看Docker 说明。
如果您不熟悉 s2i,您可以阅读 使用 s2i 的一般说明,然后按照以下步骤。
步骤 1 - 安装 s2i¶
使用 s2i 准备工作
Docker
Git(如果使用远程 git 仓库)
所有工作就绪,可执行以下
s2i usage seldonio/seldon-core-s2i-r:0.1
步骤 2 - 创建源代码¶
要使用 s2i 构建封装 R 模型的镜像,你需要:
通过
initialise_seldon方法提供一个 S3 类的 R 文件的模型,并为您的组件提供适当的泛型,例如模型预测。运行的可选 install.R 以安装所需的任何库
.s2i/environment - s2i 正确构建模型的配置
我们将详细介绍每个步骤:
R 运行时模型文件¶
源代码需要包含定义了 S3 类的模型的 R 文件。比如,请查看我们的 skeleton R 模型文件在 incubating/wrappers/s2i/R/test/model-template-app/MyModel.R:
library(methods)
predict.mymodel <- function(mymodel,newdata=list()) {
write("MyModel predict called", stdout())
newdata
}
new_mymodel <- function() {
structure(list(), class = "mymodel")
}
initialise_seldon <- function(params) {
new_mymodel()
}
seldon_initialise函数 通过new_mymodel构造器创建模型 S3 类。这将在启动时调用,您可以使用它来加载模型所需的任何参数。通用
predict函数是为我们的模型类创建。将使用newdata字段的data.frame来进行预估。
ROUTERS 和 TRANSFORMERS 有类似的模板。
install.R¶
通过任意软件依赖放置 install.R 到你的代码:
install.packages('rpart')
.s2i/environment¶
定义我们的 R 构建器映像所需的核心参数来封装您的模型。一个例子是:
MODEL_NAME=MyModel.R
API_TYPE=REST
SERVICE_TYPE=MODEL
PERSISTENCE=0
构建映像时,也可以在命令行上提供或覆盖这些值。
步骤 3 - 构建您的映像¶
使用 s2i build 从代码构建 Docker 镜像。你需要本地安装 Docker,可选的如果时从公共 git 仓库构建需要安装 git。
使用 s2i 直接从远程仓库或者本地文件夹构建。查看 s2i 文档获取更多信息,一般格式为:
s2i build <git-repo> seldonio/seldon-core-s2i-r:0.1 <my-image-name>
s2i build <src-folder> seldonio/seldon-core-s2i-r:0.1 <my-image-name>
在 seldon-core 中使用测试模板模型的示例调用:
s2i build https://github.com/seldonio/seldon-core --context-dir=incubating/wrappers/s2i/R/test/model-template-app seldonio/seldon-core-s2i-r:0.1 seldon-core-template-model
上面的 s2i 构建调用:
使用 GitHub repo: https://github.com/seldonio/seldon-core 及 repo 中文件夹
incubating/wrappers/s2i/R/test/model-template-app。使用构建镜像
seldonio/seldon-core-s2i-r创建 docker 镜像
seldon-core-template-model
对于从本地源文件夹构建,我们克隆 seldon-core 存储库的示例:
git clone https://github.com/seldonio/seldon-core
cd seldon-core
s2i build incubating/wrappers/s2i/R/test/model-template-app seldonio/seldon-core-s2i-r:0.1 seldon-core-template-model
如需更多帮助,请参阅:
s2i usage seldonio/seldon-core-s2i-r:0.1
s2i build --help
参考¶
环境变量¶
面解释了构建器映像理解的必需环境变量。您可以在 .s2i/environment 文件中或在命令行 s2i build 中查看它们。
MODEL_NAME¶
包含模型的 R 文件的名称。
API_TYPE¶
要创建的 API 类型。目前只能是REST。
SERVICE_TYPE¶
正在创建的服务类型。可用选项有:
MODEL
ROUTER
TRANSFORMER
PERSISTENCE¶
目前只能由0。将来,将允许定期保存组件的状态。