封装模型镜像

本文将为您介绍如何封装一个可集成到VCS平台的模型镜像。

前言

您的模型将以Docker镜像的方式在VCS中调度使用,VCS将为您做好服务进程守护、负载均衡、使用计量等。因此首先需要您将模型和服务端程序封装为Docker镜像。

操作步骤

1. 准备镜像内容,主要包括基础镜像、启动脚本、HTTP服务程序、算法包、Dockerfile

1)基础镜像

一般为包含NVIDIA CUDA的基础镜像,您可以使用自己已有的镜像,或者在VCS界面中获取(见附录)。

*注:VCS目前只提供CentOS 7.9 的基础镜像,若与您的系统不匹配,您需要自行准备基础镜像。

2)启动脚本

启动脚本在docker容器创建时被执行,负责启动您的HTTP服务程序以及完成一些必要的初始化动作。

3)HTTP服务程序

对外提供HTTP服务的程序,此程序应当能对外提供HTTP服务接口,并调用算法包处理待分析的数据。

4)算法包

包括您训练好的模型文件、代码文件(如.py文件)、库文件(如.dll、.so)等,由HTTP服务程序调用以完成数据分析。

5)Dockerfile

docker build 会根据此文件封装镜像。示例:

# 基础镜像信息,如可以使用平台提供的,基于centos操作系统与cuda11.0.3驱动
# 也可以使用自己的基础镜像
FROM hz-vcs-image-registry.cn-hangzhou.cr.aliyuncs.com/vcs-deploy/nvidia-cuda:11.0.3-devel-centos7
# 复制算法包,目录地址可自由指定
COPY mock-algorithm-service /home/vcs/model/mock-algorithm-service
# 复制启动脚本
COPY run.sh /home/vcs/model/run.sh
EXPOSE 9999
CMD ["bash","/home/vcs/model/run.sh"] 

*注:HTTP服务程序的监听端口必需是 9999

2. 封装镜像文件

使用docker build封装镜像,参见docker build。

附录

登录VCS后,在“模型中心-模型管理”菜单下,点击“模型导入”并提交后,进入模型联调页面。

点击下图①处:image您可以看到②:tag获取流程选择操作系统和CUDA版本后,您可以下载脚本,并在本地执行此脚本,获得基础镜像。