模型管理
AIStation平台提供了统一的模型管理能力,集中管理在训练任务中得到的模型、用户本地开发的模型、外部平台输出的模型。模型管理提供统一的导入功能入口,可以方便把本地和外部模型导入到模型管理系统中。在模型管理中提供在线测试和离线测试两种方式进行模型的测试,测试过程提供详细的日志信息查看,测试完成后提供统一的模型发布功能,为部署模型做准备。
1.导入模型
在训练任务完成后,AIStation会自动把模型文件保存到用户家目录中,能够方便地导入模型管理中:
点击【模型管理】->【导入】,进入导入界面。导入主要包括四大部分:基本信息、模型文件、参数信息、评估信息。
其中名称、版本、场景、开发/训练文件为必填项,界面中标红色标记的均为必填项。其余参数,包括数据、镜像、脚本、模型参数(batch_size、learning_rate、weight_decay、momentum)、评估信息等可选填。用户通过选择用户家目录下的开发/训练文件,将该模型文件导入。
示例中用户选择的文件为本次训练任务中得到的模型文件。

导入模型的名称只接受汉字、英文字母、数字、下划线, 不能以下划线开头,版本为整数。
导入模型的场景参数,默认内置了image classification(图像分类)、object detection(物体检测)、semantic segmentation(语义分割)和other(其他)四类。可通过更改yml配置文件,并重启服务,添加或更改。
导入模型的脚本参数只可以选择以.py和.prototxt结尾的脚本文件。
模型参数中batch_size,learning_rate、weight_decay、momentum可根据实际情况填写。若填写,必须为数字,其中batch_size是整数,范围为[0-100000],其余参数支持的数据精度为小数点前最多5位,小数点后最多16位。
评估信息中的预处理脚本支持任意linux下的文件,召回率、准确率、精确率、f1值可根据实际情况填写。若填写,必须为数字,参数精度为数点前最多5位,小数点后最多16位。

点击确定后,进入传输列表。
对于模型较大的文件,传输列表用于展示操作(导入、导出、删除、发布)的进度,同一用户的同类型操作排队处理。传输列表进度删除,导入失败后二次导入等功能详见7.8章节。

对于外部模型的导入(即非本平台训练产生的模型文件),若模型小于1GB,可通过文件管理上传至用户家目录,若模型大于1GB,可通过xftp登录到后台,传输至用户家目录,然后再将该外部模型导入模型管理。
2.共享模型
模型的共享属性有三种:私有、组、全局。
普通用户点击【模型管理】,普通用户可以共享私有和自已组内模型。
选择要共享的模型,点击右上方【共享】按钮,支持批量操作。
3.取消共享
取消共享操作和模型共享操作互逆。
普通用户点击【模型管理】,可以将自已共享到组或全局的模型取消共享。支持批量操作。

4.删除模型
普通用户点击【模型管理】,普通用户可以删除拥有者是自已的模型。支持批量操作。
点击确定,二次确认后,进入传输列表。

5.导出模型
普通用户在【模型管理】中,点击导出按钮,并在弹出框中自定义tar包名称,导出模型tar包至用户家目录下。

6.模型测试
模型测试分为离线测试和在线测试,离线测试是根据用户自定义的镜像、模型输入、模型文件发起的测试。在线测试是通过平台内置的serving引擎发起的测试。下面分别说明两种测试方法。 普通用户点击【模型管理】,点击模型列表中的“发起测试”按钮,发起模型测试任务,用户可在弹出框自定义模型测试的任务属性。

6.1离线测试
用户可以发起离线测试,用以测试模型的精确度等指标。用户在进入发起模型测试页面后,在属性“测试类型”下拉框中选择“离线测试”,然后选择相应的测试脚本以及测试数据,点击【启动测试】按钮进行模型测试任务提交。提交后的模型测试任务将会展示在模型测试实例页面。
【注意事项】:测试脚本中需要手动更改模型加载路径,示例:比如您的模型文件为my_mnist.h5,你的模型测试任务名称为mnist_test,则模型在启动容器中的路径为/mnist_test/my_mnist.h5。

在模型实例页面会展示模型测试任务列表,每条测试任务后面都有“日志”按钮,点击“日志”按钮,可以实时查看模型测试任务日志。

6.2在线测试
用户使用在线模型测试发起serving服务,需要在发起模型测试时选择“在线测试”选项。平台会暴露出8500、8501的映射端口用于grpc和restful服务访问。

当日志显示serving已经启动时,则证明serving服务可用,此时可以通过平台向外暴露的端口进行服务访问。
7.发布模型
普通用户默认没有发布权限,需要管理员通过用户管理界面赋予该用户模型发布的权限。

赋权后,该普通用户需要重新登录。点击【模型管理】,选中要发布的模型,点击发布按钮。

点击确定后,二次确认,进入传输列表。

发布成功的模型是一个tar包,已发布模型可以通过北向接口查询和下载。
现以100.7.36.88环境为例,将两个北向接口及其操作说明描述如下:
1)已发布模型列表查询
https://100.7.36.88:32002/istorage/v1/openapi/model/publish
接口返回示例:
其中,modelPath为可下载模型的路径;url为下载模型的http请求。

2) 下载模型文件 https://100.7.36.88:32002/istorage/v1/openapi/file/download?filePath=xxxxx
filePath参数传入1)中返回的modelPath即可。
操作说明:上述两个北向接口需要传入token参数。
下载模型文件可以通过curl命令在后台下载,-H参数后传入token参数,-o参数后传入下载路径和名称。
curl -k -H "X-auth-Token:fb4acdc497584a9caa01ccf3542299f6" https://100.7.36.88:32002/istorage/v1/openapi/file/download?filePath=/mnt/inspurfs/model/02601156-f847-4307-987c-6dc13859311e.tar -o /mnt/inspurfs/user-fs/zyh128/02601156-f847-4307-987c-6dc13859311e.tar
8.模型传输列表
进入传输列表的操作有:导入、导出、删除、发布。同一用户同一操作进行排队。
对于模型较大的文件,可以展示操作进度。对于完成、失败、排队的进度,可以点击删除按钮逐条删除。进行中的进度无法删除。
对于导入失败的进度,提供二次导入操作,且只能操作一次,二次操作作为新的进度展示。
二次导入操作按钮如下:

9.模型列表
可以根据名称、状态、导入时间等查询模型列表。 模型列表列包括:名称、版本、拥有者、是否测试、状态、共享、创建时间、操作。可以根据创建时间进行升序或降序排列
10.编辑模型
选择模型列表中的一个模型,点击编辑按钮,输入要更改的模型信息,点击确定