介绍
功能介绍
ICS-SDK是AccDECS提供的增量学习功能的Python SDK接口。
应用场景
本SDK接口用于将用户应用场景的模型对应难例筛选算法、训练脚本、测评脚本,以及用户自己的模型仓对接适配到AccDECS增量学习框架中。
技术原理
ics-manager需要通过编排器自动编排各个组件,按增量学习工作流执行组件任务,以完成增量学习的功能。上图中包含了ICS-SDK中提供的各个常用组件的SDK接口。每个组件对外提供入口函数,以及组件对外可定义注册接口(部分组件可定制,部分组件不可定制)。
组件 |
说明 |
---|---|
dataprocess |
数据预处理组件,完成增量学习业务的预置数据集、难例数据集的预处理,包括数据集格式转换、增量学习抗遗忘数据replay技术以及准备好后面组件运行所需要的资源,如经过数据replay后的训练集、测评集、预训练模型、训练配置文件、测评配置文件、模型转换配置文件等。 |
trainer |
训练组件,从dataprocess组件读取输入数据(包括预训练模型文件、训练数据集、测评数据集、训练配置文件),并调用用户注册的训练脚本进行模型训练,并将用户训练脚本输出的训练模型,推理模型传递给后面的组件。 |
eval |
测评组件,从trainer组件拿到训练后的模型以及从dataprocess组件拿到预处理后的测评数据集,并调用用户注册的测评脚本在最新加入了难例的测评集上进行模型测评,并输出模型测评指标(目前支持全类平均精度(mAP@.5:mean average precision)、精准率(precission)和召回率(recall)三个指标)。 |
modelconvert |
模型转换组件,封装了的昇腾ATC模型转换工具,为工具准备输入模型、转换配置,并将转换后的离线模型文件传递给后面的组件。 |
modelrelease |
模型发布组件,本组件会自动将前面训练以及模型转换后的模型发布到对象存储中,用于增强学习后续的训练以及模型更新部署。同时本组件提供了注册接口,用户可注册自己的模型发布脚本,将模型发布到自己的模型仓。 |
postprocess |
数据后处理组件,为增量学习流程做数据的后处理工作,比如归档本次参与训练的难例数据集。 |
register |
用于注册用户的模型训练脚本、模型测评脚本、模型发布脚本和难例筛选脚本的相关接口。 |
config |
用于将yaml、json配置文件读取转换成dict对象的通用接口,用户可使用此接口解析配置文件后,供自己注册的训练脚本、测评脚本使用。 |
exit |
资源清理组件,在增量学习流程执行完后必须执行的组件,无论前面组件执行成功与否都执行本组件,清理相关资源。 |
dataconvert |
数据集转换组件,提供了常见数据集到ICS-SDK内部格式的转换实现,ICS-Manager中上传难例标注数据集时,会自动触发此组件进行数据集格式的处理。 |
hardmining |
难例筛选组件,支持从对象存储中下载推理服务捕获的数据,并调用用户注册的难例筛选算法对所有数据进行筛选,筛选出算法认为是难例的样本,并存储到指定的路径。 |