一种嵌入式模型SDK开发方法和开发平台技术

技术编号:27974614 阅读:20 留言:0更新日期:2021-04-06 14:08
本发明专利技术提供了一种嵌入式模型SDK开发方法和开发平台,所述方法包括:检测到开发模型的更新后,根据更新后的所述开发侧模拟流水线得到所述预设原始数据的模拟裸数据和模拟精度指标;拉取业务侧模型流水线的SDK包得到所述预设原始数据的模型裸数据和模型精度指标;分别进行对分;检测到SDK代码更新后,更新所述SDK包,并进行冒烟测试;检测到定版请求后,进行全量测试,通过后交付。这样,对于双方的人员来说,在对本侧的流水线理解上不会存在理解偏差,通过一一对应的裸数据,来判断出问题的环节或位置;另外,每次都可以对新版本的开发模型直接进行测试,从而将问题分散开来,便于双方的人员进行查找。

【技术实现步骤摘要】
一种嵌入式模型SDK开发方法和开发平台
本专利技术涉及嵌入式模型开发
,具体而言,涉及一种嵌入式模型SDK开发方法和开发平台。
技术介绍
嵌入式模型SDK的一般发版流程为:先训练各种大模型,比如检测模型、识别模型、活体模型、属性模型等,在大模型上做精度评测并蒸馏量化小模型,将小模型交付各业务线比如安防线,通行线,交通线等,各业务线根据自身业务场景开发模型流水线并封装成端上SDK,基于端上SDK开发测试程序验证端上SDK的质量、性能和精度,最后交付端上SDK给下游整机应用开发商。但是这种发版流程中,从大模型到端上SDK,中间环节比较多,每个环节都可能引来误差,会经常导致单模型评测涨点,但集成到SDK后无增益甚至掉点的情况;由于SDK测试是整个链条中最后一环,往往问题会在这个环节集中暴露,此时再去重新修改模型,往往会浪费大量时间,使得整个发版流程效率很低。
技术实现思路
本专利技术解决的问题是发版流程效率过低。为解决上述问题,本专利技术首先提供一种嵌入式模型SDK开发方法,其包括:检测到开发模型的更新后,根据所述开发模型更新已搭建好的开发侧模拟流水线;其中,所述开发侧模拟流水线的运行环境与所述开发模型的开发环境相匹配;根据更新后的所述开发侧模拟流水线对预设原始数据进行处理,得到所述预设原始数据的模拟裸数据和模拟精度指标;拉取业务侧模型流水线的SDK包并根据更新后的所述开发模型对所述SDK包进行更新;其中,所述业务侧模型流水线和所述开发侧模拟流水线所包含的所述开发模型、所述开发模型之间的数据流转逻辑相同;根据更新后的所述SDK包对预设原始数据进行处理,得到所述预设原始数据的模型裸数据和模型精度指标;将所述模型裸数据和所述模拟裸数据、所述模型精度指标和所述模拟精度指标分别进行对分;检测到SDK代码更新后,根据所述SDK代码和所述开发模型更新所述业务侧模型流水线的所述SDK包,并对更新后的所述SDK包进行冒烟测试;检测到所述开发模型和所述SDK包的定版请求后,对当前的所述开发模型和当前的所述SDK包进行全量测试,所述全量测试通过后交付所述SDK包。这样,业务侧模型流水线是根据业务侧的技术栈编译成的,开发侧模拟流水线是根据开发侧的技术栈编译成的,对于双方的人员来说,在对本侧的流水线理解上不会存在因为技术栈不同导致的理解偏差,通过生成一一对应的裸数据,可以将相同的问题展示给双方的人员,供双方的人员来判断出问题的环节或位置;另外,每次都可以对新版本的开发模型或SDK代码直接进行测试,而不需要再等到统一封装之后再集中检测,从而将可能暴露的问题分散开来,便于双方的人员进行查找。这样,减少了中间的手动操作环节,增加了执行效率;且通过不同的技术栈进行分别进行对应的封装,避免了不同技术栈给双方的人员造成的理解偏差,提高了缺陷找寻的效率,避免了时间浪费。可选的,所述根据更新后的所述开发侧模拟流水线对预设原始数据进行处理,得到所述预设原始数据的模拟裸数据和模拟精度指标,包括:读取所述预设原始数据;将所述预设原始数据输入所述开发侧模拟流水线,得到所述预设原始数据对应的模拟裸数据;读取所述预设原始数据的标注数据;根据所述预设原始数据的所述模拟裸数据和所述标注数据,计算所述模拟精度指标。这样,通过模拟裸数据,可以得出模拟流水线各个节点处的输出数据,从而在发现问题后,可以直接根据出问题的模拟裸数据确定问题产生的位置。可选的,所述拉取业务侧模型流水线的SDK包并根据更新后的所述开发模型对所述SDK包进行更新,包括:获取所述开发模型对应的超参数;将更新的所述开发模型和对应的所述超参数打包为更新的开发模型包;拉取所述业务侧模型流水线的所述SDK包,所述SDK包内加载有所述开发模型包;将更新的所述开发模型包重新加载到所述SDK包上。这样,可以根据更新后的开发模型对SDK包进行更新,从而使得更新后的SDK包和更新后的开发侧模拟流水线重新达到近似相同的目的,进而使得所述模型裸数据和所述模拟裸数据具有一一对应关系,所述模型精度指标和所述模拟精度指标具有一一对应关系。可选的,所述根据更新后的所述SDK包对预设原始数据进行处理,得到所述预设原始数据的模型裸数据和模型精度指标,包括:将所述预设原始数据输入所述SDK包,得到所述预设原始数据对应的模型裸数据;根据所述预设原始数据的所述模型裸数据和所述标注数据,计算所述模型精度指标。这样,通过模型裸数据,可以得出模型流水线各个节点处的输出数据,从而在发现问题后,可以直接根据出问题的模型裸数据确定问题产生的位置。可选的,所述将所述模型裸数据和所述模拟裸数据、所述模型精度指标和所述模拟精度指标分别进行对分,包括:拉取预先编译的SDK对分程序;根据所述SDK对分程序对所述预设原始数据对应的所述模型裸数据和所述模拟裸数据进行裸数据对分;对所述预设原始数据对应的所述模型精度指标和所述模拟精度指标进行指标对分;在所述指标对分成功且所述裸数据对分成功时,对所述开发模型包定版。这样,通过在开发侧模拟流水线和业务侧模型流水线上设置相同的节点,从而可以使得开发侧模拟流水线和业务侧模型流水线建立精确的对应关系;这样,一旦两者出现细微的差别,也很容易被发现;且通过在开发侧模拟流水线和业务侧模型流水线上进行不同版本开发模型包的测试,可以增加测试的间隔,从而在研发的过程中可以及时发现问题,解决问题,从而增加了缺陷的修正速度,大大减少了发版时间周期。可选的,所述根据所述SDK对分程序对所述预设原始数据对应的所述模型裸数据和所述模拟裸数据进行裸数据对分,之后还包括:在所述裸数据对分不成功时,对所述开发模型包存档。对开发模型包存档,一方面可以方便后期进行下一次开发侧模拟流水线和业务侧模型流水线的执行时可以直接通过读取存档来进行,减少了数据加载的复杂度;另一方面,也是避免由于失误删除了开发模型包。可选的,所述对所述预设原始数据对应的所述模型精度指标和所述模拟精度指标进行指标对分,之后还包括:在所述指标对分不成功时,对所述开发模型包存档。对开发模型包存档,一方面可以方便后期进行下一次开发侧模拟流水线和业务侧模型流水线的执行时可以直接通过读取存档来进行,减少了数据加载的复杂度;另一方面,也是避免由于失误删除了开发模型包。可选的,所述检测到SDK代码更新后,根据所述SDK代码和所述开发模型更新所述业务侧模型流水线的所述SDK包,并对更新后的所述SDK包进行冒烟测试,包括:检测到SDK代码更新后,获取定版或存档的所述开发模型包,并将更新后的所述SDK代码和所述开发模型包打包为所述SDK包;对所述SDK包进行接口功能测试和精度测试;在通过所述接口功能测试和所述精度测试后,对所述SDK包定版。这样,通过检测业务侧SDK代码的更新情况,对更新后的SD本文档来自技高网...

【技术保护点】
1.一种嵌入式模型SDK开发方法,其特征在于,包括:/n检测到开发模型的更新后,根据所述开发模型更新已搭建好的开发侧模拟流水线;其中,所述开发侧模拟流水线的运行环境与所述开发模型的开发环境相匹配;/n根据更新后的所述开发侧模拟流水线对预设原始数据进行处理,得到所述预设原始数据的模拟裸数据和模拟精度指标;/n拉取业务侧模型流水线的SDK包并根据更新后的所述开发模型对所述SDK包进行更新;其中,所述业务侧模型流水线和所述开发侧模拟流水线所包含的所述开发模型、所述开发模型之间的数据流转逻辑相同;/n根据更新后的所述SDK包对所述预设原始数据进行处理,得到所述预设原始数据的模型裸数据和模型精度指标;/n将所述模型裸数据和所述模拟裸数据、所述模型精度指标和所述模拟精度指标分别进行对分;/n检测到SDK代码更新后,根据所述SDK代码和所述开发模型更新所述业务侧模型流水线的所述SDK包,并对更新后的所述SDK包进行冒烟测试;/n检测到所述开发模型和所述SDK包的定版请求后,对当前的所述开发模型和当前的所述SDK包进行全量测试,所述全量测试通过后交付所述SDK包。/n

【技术特征摘要】
1.一种嵌入式模型SDK开发方法,其特征在于,包括:
检测到开发模型的更新后,根据所述开发模型更新已搭建好的开发侧模拟流水线;其中,所述开发侧模拟流水线的运行环境与所述开发模型的开发环境相匹配;
根据更新后的所述开发侧模拟流水线对预设原始数据进行处理,得到所述预设原始数据的模拟裸数据和模拟精度指标;
拉取业务侧模型流水线的SDK包并根据更新后的所述开发模型对所述SDK包进行更新;其中,所述业务侧模型流水线和所述开发侧模拟流水线所包含的所述开发模型、所述开发模型之间的数据流转逻辑相同;
根据更新后的所述SDK包对所述预设原始数据进行处理,得到所述预设原始数据的模型裸数据和模型精度指标;
将所述模型裸数据和所述模拟裸数据、所述模型精度指标和所述模拟精度指标分别进行对分;
检测到SDK代码更新后,根据所述SDK代码和所述开发模型更新所述业务侧模型流水线的所述SDK包,并对更新后的所述SDK包进行冒烟测试;
检测到所述开发模型和所述SDK包的定版请求后,对当前的所述开发模型和当前的所述SDK包进行全量测试,所述全量测试通过后交付所述SDK包。


2.根据权利要求1所述的嵌入式模型SDK开发方法,其特征在于,所述根据更新后的所述开发侧模拟流水线对预设原始数据进行处理,得到所述预设原始数据的模拟裸数据和模拟精度指标,包括:
读取所述预设原始数据;
将所述预设原始数据输入所述开发侧模拟流水线,得到所述预设原始数据对应的模拟裸数据;
读取所述预设原始数据的标注数据;
根据所述预设原始数据的所述模拟裸数据和所述标注数据,计算所述模拟精度指标。


3.根据权利要求1或2所述的嵌入式模型SDK开发方法,其特征在于,所述拉取业务侧模型流水线的SDK包并根据更新后的所述开发模型对所述SDK包进行更新,包括:
获取所述开发模型对应的超参数;
将更新的所述开发模型和对应的所述超参数打包为更新的开发模型包;
拉取所述业务侧模型流水线的所述SDK包,所述SDK包内加载有所述开发模型包;
将更新的所述开发模型包重新加载到所述SDK包上。


4.根据权利要求1-3中任一所述的嵌入式模型SDK开发方法,其特征在于,所述根据更新后的所述SDK包对预设原始数据进行处理,得到所述预设原始数据的模型裸数据和模型精度指标,包括:
将所述预设原始数据输入所述SDK包,得到所述预设原始数据对应的模型裸数据;
根据所述预设原始数据的所述模型裸数据和所述标注数据,计算所述模型精度指标。


5.根据权利要求1-4中任一所述的嵌入式模型SDK开发方法,其特征在于,所述将所述模型裸数据和所述模拟裸数据、所述模型精度指标和所述模拟精度指标分别进行对分,包括:
拉取预先编译的SDK对分程序;
根据所述SDK对分程序对所述预设原始数据对应的所述模型裸数据和所述模拟裸数据进行裸数据对分;
对所述预设原始数据对应的所述模型精度指标和所述模拟精度指标进行指标对分;
在所述指标对分成功且所述裸数据对分成功时,对所述开发模型包定版。


6.根据权利要求5所述的嵌入式模型SDK开发方法,其特征在于,所述根据所述SDK对分程序对所述预设原始数据对应的所述模型裸数据和所述模拟裸数据进行裸数据对分,之后还包括:
在所述裸数据对分不成功时,对所述开发模型包存档。


7.根据权利要求5或6所述的嵌入式模型SDK开发方法,其特征在于,所述对所述预设原始数据对应的所述模型精度指标和所述模拟精度指标进行指标对分,之后还包括:
在所述指标对分不成功时,对所述开发模型包存档。


8.根据权利要求1-7中任一所述的嵌入式模型SDK开发方法,其特征在于,所述检测到SDK代码更新后,根据所述SDK代码和所述开发模型更新所述业务侧模型流水线的所述SDK包,并对更新后的所述SDK包进行冒烟测...

【专利技术属性】
技术研发人员:谭翔华量王淑鹏武庚晨徐串
申请(专利权)人:北京旷视科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1