模型部署介绍
在完成了模型的训练后可以将模型以某种方式部署到服务端或者存放到设备端对外提供实时的模型推理服务。「模型部署(Serving)」就是 OpenBayes 提供的服务端模型推理功能。
创建 Serving 需要以下步骤:
- 导出训练好的模型,模型的训练可以在 Gear - 算力容器 中完成
- 编写
predictor.py
模型部署脚本,其编写规则在 Serving 服务编写 有详细的介绍,在 openbayes-serving-examples 模型仓库中有编写样例作为参考
其中「数据绑定」与创建 算力容器时类似,同时支持容器输出和数据仓库中的路径绑定。
在 模型部署 - 快速上手 中介绍了创建一个模型部署的完整样例。
模型数据与 predictor.py
的存放
在创建模型部署前,需要将训练好的模型文件与 predictor.py
放在同一个目录下。具体目录所在的位置不受限制:
- 可以是任意算力容器的工作空间下
- 也可以是通过文件上传而已来的数据仓库中
- 甚至是 OpenBayes 中的公开模型内容
其绑定时的选取方式与算力容器创建时绑定数据非常类似:
不过与算力容器也有以下的区别:
- 模型部署时只能绑定一个目录,因此要求模型文件
predictor.py
必须同属于同一个数据空间下,该目录以只读形式绑定,没有目录的写权限,请勿存储任意数据到目录中 - 模型部署时可以选择具体绑定的「数据仓库」或「模型输出」的目录层级,而不是必须选取根目录,如下图所示,可以绑定 onnx/image-classifier-modelnetv2 这样的子目录
模型部署的内容要求:
- 模型部署必须包含
predictor.py
以及其所依赖的文件(比如模型文件),用于模型请求 的处理。 - (可选)
requirements.txt
、dependencies.sh
、conda-packages.txt
等外部依赖管理的文件,用于安装除镜像中预装之外其他依赖,详细内容可以在依赖管理找到。 - (可选)
.env
用于创建在predictor.py
中所使用的环境变量,每一行的格式必须是 VARIABLE=value 这种形式。
predictor.py
文件的要求在 Serving 服务编写 有详细的介绍。模型文件的导出在模型导出有详细的介绍。
版本管理
模型部署有「版本」的概念,版本之间相互独立可以支持不同的运行时环境、资源类型以及部署内容。当部署新的版本的时候老的版本会自动下线。与「数据集」类似其版本号以数字序号递增。
详细的操作在 模型部署的管理 有介绍。