模型服务化
model-offline-predict
支持模型弹性分布式推理(离线批量推理)。
入参:
- image:worker 镜像,直接运行你代码的环境镜像/基础镜像,如
ccr.ccs.tencentyun.com/cube-studio/ubuntu-gpu:cuda11.8.0-cudnn8-python3.9 - working_dir:启动目录,如
/mnt/admin/pipeline/example/offline-inference/ - command:环境安装和任务启动命令,如
bash start.sh - num_worker:占用机器个数,如
3
deploy-service
服务部署模板,将训练模型注册到推理服务管理模块并自动部署推理服务(代码入口 job-template/job/deploy-service/launcher.py)。
入参:
- project_name:项目组名称,如
public - label:推理服务描述/中文名,如
demo推理服务 - model_name:模型名
- model_version:模型版本号,如
v2022.10.01.1 - model_path:模型地址
- service_type:推理服务类型(默认
serving) - images:推理服务镜像
- working_dir:推理容器工作目录,个人工作目录
/mnt/$username - command:推理容器启动命令
- args:推理容器启动参数
- env:推理容器环境变量
- host:部署域名,留空自动生成
- ports:推理容器暴露端口,如
80 - replicas:pod 副本数,如
1 - resource_memory:每个 pod 占用内存,如
2G - resource_cpu:每个 pod 占用 cpu,如
2 - resource_gpu:每个 pod 占用 gpu,如
0 - volume_mount:容器挂载,支持 pvc/hostpath/configmap 三种形式,格式示例
$pvc_name1(pvc):/$container_path1,$hostpath1(hostpath):/$container_path2,注意 pvc 会自动挂载对应目录下的个人 username 子目录,如kubeflow-user-workspace(pvc):/mnt - metrics:请求指标采集,配置端口+url,示例
8080:/metrics - health:健康检查接口,使用 http 接口或 shell 命令,示例
8080:/health或shell:python health.py
代码中该模板还包含
hpa(弹性伸缩)和inference_config(配置文件)两个入参,见job-template/job/deploy-service/launcher.py:152,155。
注意:该模板可以配置 HOST 环境变量,以此在自动化部署的时候可以直接暴露服务的 ip,直接让外界进行访问。例如 HOST=http://当前浏览器ip:当前浏览器端口。
model-register
模型注册模板,将训练后的模型注册到模型管理中(代码入口 job-template/job/model_register/launcher.py)。
入参:
- project_name:部署项目名,如
public - model_name:模型名(a-z0-9- 字符组成,最长 54 个字符),如
mnist - model_version:模型版本号,如
{{ datetime.datetime.now().strftime('v%Y.%m.%d.1') }} - model_path:模型地址,如
https://cube-studio.oss-cn-hangzhou.aliyuncs.com/inference/tf-mnist.tar.gz - model_metric:模型指标,如
accuracy:0.8 - describe:模型描述,如
mnist模型 - framework:模型框架(默认
tf) - inference_framework:推理框架(默认
tfserving)