增量学习管理服务接口介绍
增量学习管理服务作为ICS-Manager的核心特性,承载着对增量学习进行全生命周期管理的任务。其主要功能包括创建增量学习任务的参数配置,任务启动、停止与删除,训练数据的收集与展示,对边缘推理数据进行定时批量难例筛选后难例图片的下载与标注数据的上传,以及训练完成后模型的部署。
条件约束
- 增量学习任务最多同时创建128个。
- 对于一个增量学习任务,最多支持完成1000轮增量训练。
任务管理状态
- 运行中(RUNNING)
- 此状态代表增量学习任务运行中,对应WFE实例处于运行状态。
- 此状态下中心难例筛选定时任务处于运行状态,支持下载难例进行标注,上传标注触发训练,查看训练信息和部署模型。
- 新创建的增量学习任务的初始管理状态为运行中,对处于运行中的任务调用停止接口会将任务管理状态变更为已停止。
- 已停止(STOPPED)
- 此状态代表增量学习任务已停止,对应WFE实例处于停止状态。
- 此状态下中心难例筛选定时任务处于停止状态,不支持上传标注文件,不支持部署模型,但支持查看训练数据和下载未标注文件。
- 对管理状态为已停止的增量学习任务调用重启接口会将任务管理状态变更为运行中。
任务运行状态
运行状态 |
状态枚举值 |
含义 |
|---|---|---|
等待中 |
WAITING |
等待中表示任务状态正常且没有训练流水线正在运行,此时可以上传标注数据触发新一轮增量训练。 |
数据转换中 |
DATA_CONVERTING |
数据转换中代表正在将用户上传的标注数据由用户提供格式转换为管理服务内部格式并添加到已标注数据存储中,对应ICS-SDK datasetconvert组件。 |
数据处理中 |
DATA_PROCESSING |
数据处理中代表正在执行训练前的数据预处理,对应ICS-SDK中的dataprocess组件。 |
训练中 |
TRAINING |
训练中表示正在进行增量训练,对应ICS-SDK中trainer组件。 |
测评中 |
EVALUATING |
测评中表示正在对新训练出的模型以及旧模型进行效果评估,输出测评结果,对应ICS-SDK中的eval组件。 |
模型转换中 |
MODEL_CONVERTING |
模型转换表示正在对模型格式进行转换,对应ICS-SDK中的modelconvert组件。 |
发布中 |
RELEASING |
发布中表示正在上传模型,对应ICS-SDK中的modelrelease组件。 |
后处理中 |
POST_PROCESSING |
后处理中代表正在进行训练完成后的相关数据归档工作,对应ICS-SDK中的postprocess组件。 |
启动中 |
INITIALIZING |
启动中表示任务对应的WFE Pod正在启动中,此时尚不可上传标注文件触发训练。 |
执行异常 |
ERROR |
执行异常表示任务对应的WFE Pod出现了不可用状态,或ics-manager与WFE/minio之间的通信出现了问题,具体原因可以参考查询详情接口的errorMsg字段。此时不可以上传标注触发训练。 |
已停止 |
TERMINATED |
已停止对应管理状态已停止。 |
增量学习管理服务使用minio工作空间说明
增量学习任务被创建后,会使用指定工作空间下的固定子目录读取、储存增量学习相关数据、文件等。具体细节如下所示:
├── data_cap # 推理数据读取目录
│ ├── descs # 推理应用信息
│ │ ├── 20230904-115516-425989.desc
│ │ ├── 20230904-115518-489835.desc
│ │ └── ...
│ ├── features # 推理结果(未经后处理)
│ │ ├── 20230904-115516-425989.ts
│ │ ├── 20230904-115518-489835.ts
│ │ └── ...
│ ├── images # 推理图片
│ │ ├── 20230904-115516-425989.jpg
│ │ ├── 20230904-115518-489835.jpg
│ │ └── ...
│ └── results # 推理结果(经过后处理)
│ ├── 20230904-115516-425989.res
│ ├── 20230904-115518-489835.res
│ └── ...
├── data # 训练数据目录
│ ├── annotations # 标注
│ │ ├── 1 # 第一轮训练使用的数据
│ │ │ ├── dataIndex.txt
│ │ │ ├── data.txt
│ │ │ └── metadata.json
│ │ ├── 2 # 第二轮训练使用的数据
│ │ │ ├── dataIndex.txt
│ │ │ ├── data.txt
│ │ │ └── metadata.json
│ │ ├── ...
│ │ └── current # 待训练数据
│ │ ├── dataIndex.txt
│ │ ├── data.txt
│ │ └── metadata.json
│ └── images # 图片
│ ├── descs # 难例筛选输出的筛选原因
│ │ ├── 20230904-115516-425989.reason
│ │ ├── 20230904-115518-489835.reason
│ │ └── ...
│ ├── tagged # 已标注过的图片
│ │ ├── 20230904-115516-425989.jpg
│ │ ├── 20230904-115518-489835.jpg
│ │ └── ...
│ └── untagged # 未标注过的图片
│ ├── 20230904-115516-425989.jpg
│ ├── 20230904-115518-489835.jpg
│ └── ...
└── output # 任务输出的文件
├── upload_status.json # 上传状态文件
├── train_status.json # 训练状态文件
├── deploy_status.json # 部署状态文件
├── hard_mining_hsitory.json # 难例筛选缓存文件
├── models # 每轮训练产生的模型
│ ├── 1 # 第一轮训练产生的模型
│ ├── 2 # 第一轮训练产生的模型
│ └── ...
└── deployed # 部署的模型