一种基于模型结构演化的缺陷代码块定位方法技术

技术编号:34036051 阅读:55 留言:0更新日期:2022-07-06 12:19
本发明专利技术公开了一种基于模型结构演化的缺陷代码块定位方法,首先基于若干深度学习计算框架库,总结其对象库和安全性问题,构建计算框架对象库;再构成计算框架安全性缺陷库和代码安全性缺陷库;然后构建一神经网络模型,并对其进行变异,得到变异模型集合,对变异模型集合进行输出差异提取,得到特征差异向量,计算预测匹配率,并以此判定神经网络模型是否存在缺陷代码块;最后通过语句操作方法对神经网络模型的缺陷代码进行验证和溯源,并与计算框架安全性缺陷库和代码安全性缺陷库进行对比,实现缺陷代码块定位。本发明专利技术方法降低计算成本,部署和应用场景更广,提高代码块的缺陷定位精度。位精度。位精度。

A defect code block location method based on model structure evolution

【技术实现步骤摘要】
一种基于模型结构演化的缺陷代码块定位方法


[0001]本专利技术属于面向深度学习的缺陷定位领域,尤其涉及一种基于模型结构演化的缺陷代码块定位方法。

技术介绍

[0002]智能计算在日常生活中的应用广泛,其安全性问题尤为关键。如美国的DARPA发现,正常工作的智能语音识别系统,在高对抗不确定的复杂环境中,不仅性能下降严重,而且其安全性也极易受到对抗语音指令、中毒语音等污染数据的威胁,存在极大的安全隐患。根据服务对象的不同,智能计算由计算框架、模型算法、数据样本三方面组成。智能计算的安全性则是指用户使用安全的计算框架搭建可靠的模型算法,使用无污染的数据样本进行训练,得到鲁棒的智能模型,进行可信的决策。
[0003]因此,自底向上的智能计算安全包括:计算框架安全性、模型算法安全性、数据样本安全性。其中,模型算法和数据样本的安全性已经有较多研究,而作为人工智能构建基础的智能计算框架本身的安全性问题研究尚处于起步阶段,但是对智能计算的安全威胁却远甚于前两者。例如,数据样本的安全威胁可能是因为当前批次的数据被污染,换一批数据即可;模型算法安全可能源于结构设计的不合理或者超参数设置不合适,换一段代码即可;两者的威胁范围仅限于几个智能模型,风险范围有限。但是计算框架的安全,以最常见的库算子精度误差为例,凡是在该计算框架下,使用了该库算子的模型,都会留下安全隐患,风险范围极大且十分隐蔽。
[0004]具体地,按照错误缺陷的主体不同,智能计算框架的安全性问题可以分为框架库层面、框架代码层面、模型系统层面。首先是框架库层面,包括了执行不一致性,声明函数定义错误,拒绝服务等安全性问题;然后是框架代码层面,包括了模型参数和结构声明、维度不匹配的张量、API函数滥用等问题;最后是模型系统层面,包括了性能错误、精度错误、操作符计算错误等问题。已有的测试技术在不一致性、精度误差和性能错误方面对智能计算框架及其代码和API函数进行了系统性测试,并在常用的计算框架上进行效果验证,解决了部分安全威胁,但是,现有技术仍存在以下挑战:
[0005](1)先验知识依赖性强:大多数测试方法依赖先验知识或模型信息来触发错误,或需要专业知识来指定可接受的错误判定阈值。这在一定程度上增加了计算成本,并妨碍了其在实际场景中的部署和应用。
[0006](2)测试方法通用性差:测试方法依赖框架的某些特殊性,如封装属性、类属性、成员属性等,并不能应用于目前所有的智能计算框架,对于国产的技术平台MindSpore和飞桨,仍然缺乏有效的通用测试方法。
[0007](3)缺陷定位精度低:框架中的错误和不一致性可能是由输入样本、执行错误、细微的精度差异、完全不同的算法耦合引起的,后两种不被视为错误却会造成安全隐患。此外,在对框架的测试过程中难以排除真实类标和输入值对结果的影响,在定位错误时容易出现偏差。
[0008]现有计算框架缺陷测试技术仍无法对缺陷所在的代码进行定位,这直接导致了查找到的缺陷的真实性无法进行确定。

技术实现思路

[0009]针对现有技术不足,保证计算框架在智能计算中的确定性与安全性,本专利技术提出了一种基于模型结构演化的缺陷代码块定位方法。
[0010]为实现上述专利技术目的,本专利技术的技术方案为:
[0011]本专利技术实施例的第一方面提供了一种基于模型结构演化的缺陷代码块定位方法,包括以下步骤:
[0012](1)基于若干深度学习计算框架库,总结其对象库和安全性问题,构建计算框架对象库;
[0013](2)集成计算框架对象库中的目标计算框架的安全性问题,构成计算框架安全性缺陷库;集成计算框架对象库中的计算框架常见性代码错误,构成代码安全性缺陷库;
[0014](3)构建一神经网络模型,并对其进行变异,得到变异模型集合,对变异模型集合进行输出差异提取,得到特征差异向量,计算预测匹配率,并以此判定神经网络模型是否存在缺陷代码块;
[0015](4)通过语句操作方法对神经网络模型的缺陷代码进行验证和溯源,并与计算框架安全性缺陷库和代码安全性缺陷库进行对比,实现缺陷代码块定位。
[0016]优选地,所述深度学习计算框架库包括MindSpore、Paddle、TensorFlow、PyTorch和Keras。
[0017]优选地,所述步骤(2)具体包括以下子步骤:
[0018](2.1)通过集成计算框架对象库目标计算框架的包括框架库前后输出差异,库算子精度误差和API函数的输出错误在内的安全性问题,构建计算框架安全性缺陷库;
[0019](2.2)通过集成计算框架对象库中包括数值错误、模型参数声明错误和张量维度不一致错误在内的计算框架常见性代码错误,构建代码安全性缺陷库。
[0020]优选地,所述步骤(3)具体包括以下子步骤:
[0021](3.1)初始化一神经网络模型;
[0022](3.2)将步骤(3.1)构建的神经网络模型,基于沙普利值框架进行变异操作,以此来构建变异模型集合;
[0023](3.3)对变异模型集合进行输出差异提取,得到特征差异向量,计算预测匹配率,并以此判定神经网络模型是否存在缺陷代码块。
[0024]优选地,所述变异操作包括:恒等操作、投影操作、选择操作、连接操作或反连接操作。
[0025]优选地,所述语句操作方法包括语句删除、语句开关、语句复制或语句添加。
[0026]本专利技术实施例的第二方面提供了一种电子设备,包括存储器和处理器,其中,所述存储器与所述处理器耦接;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述的基于模型结构演化的缺陷代码块定位方法。
[0027]本专利技术实施例的第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现上述的基于模型结构演化的缺陷代码块定位方法。
[0028]本专利技术的有益效果为:本专利技术通过计算不同框架下模型的输出差异来检测不同框架下的缺陷代码检测,利用一系列的代码操作命令实现缺陷代码的定位。克服了先验知识依赖型强,降低计算成本,部署和应用场景更广。本专利技术方法通过多种深度学习计算框架库融合构建了计算框架对象库,使得本专利技术提出的测试定位方法通用更强更广泛,适用于更多的国产技术平台。本专利技术方法通过对目标模型的结构变异,以及缺陷库比较,提高代码块的缺陷定位精度,协助提高查找缺陷真实性的准确率。
附图说明
[0029]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动前提下,还可以根据这些附图获得其他附图。
[0030]图1是本专利技术的实施例中基于模型结构演化的缺陷代码块定位方法的流程图;
[0031]图2是本专利技术的实施例中基于模型结构演化的缺陷代码块定位装置的示意图。
具体实施方式
[0032本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于模型结构演化的缺陷代码块定位方法,其特征在于,包括以下步骤:(1)基于若干深度学习计算框架库,总结其对象库和安全性问题,构建计算框架对象库;(2)集成计算框架对象库中的目标计算框架的安全性问题,构成计算框架安全性缺陷库;集成计算框架对象库中的计算框架常见性代码错误,构成代码安全性缺陷库;(3)构建一神经网络模型,并对其进行变异,得到变异模型集合,对变异模型集合进行输出差异提取,得到特征差异向量,计算预测匹配率,并以此判定神经网络模型是否存在缺陷代码块;(4)通过语句操作方法对神经网络模型的缺陷代码进行验证和溯源,并与计算框架安全性缺陷库和代码安全性缺陷库进行对比,实现缺陷代码块定位。2.根据权利要求1所述的基于模型结构演化的缺陷代码块定位方法,其特征在于,所述深度学习计算框架库包括MindSpore、Paddle、TensorFlow、PyTorch和Keras。3.根据权利要求1所述的基于模型结构演化的缺陷代码块定位方法,其特征在于,所述步骤(2)具体包括以下子步骤:(2.1)通过集成计算框架对象库目标计算框架的包括框架库前后输出差异,库算子精度误差和API函数的输出错误在内的安全性问题,构建计算框架安全性缺陷库;(2.2)通过集成计算框架对象库中包括数值错误、模型参数声明错误和张量维度不一...

【专利技术属性】
技术研发人员:陈晋音李晓豪金海波郑海斌倪洪杰
申请(专利权)人:浙江工业大学
类型:发明
国别省市:

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

1