买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:大连理工大学
摘要:本发明属于软件测试领域,涉及一种基于强化学习的深度学习编译器测试加速方法。特征提取模块负责从收集到的深度学习模型进行特征分析,提取深度学习模型的节点特征和边特征,并收集模型编译过程中的不同模块的覆盖率作为阶段的目标结果;多回归覆盖率模型利用提取出来的特征信息和覆盖率进行训练,该模型负责从模型的特征信息中预测该模型在编译过程中的模块覆盖率;强化学习引导模型生成是本发明中的核心模块,主要负责利用强化学习算法和覆盖率模型,使深度学习模型生成工具具有主动探索并生成具备高模块覆盖率的模型用于编译器的测试;编译器测试模块负责利用生成的深度学习模型进行编译器测试,发现潜在的编译器错误。
主权项:1.一种基于强化学习的深度学习编译器测试加速方法,其特征在于,所述的步骤主要由特征提取、多回归覆盖率模型、强化学习引导模型生成和编译器测试四个模块组成;其中,特征提取模块负责从收集到的深度学习模型进行特征分析,提取深度学习模型的节点特征和边特征,并收集模型编译过程中的不同模块的覆盖率作为阶段的目标结果;多回归覆盖率模型利用提取出来的特征信息和覆盖率进行训练,该模型负责从模型的特征信息中预测该模型在编译过程中的模块覆盖率;强化学习引导模型生成是本发明中的核心模块,主要负责利用强化学习算法和覆盖率模型,使深度学习模型生成工具具有主动探索并生成具备高模块覆盖率的模型用于编译器的测试;编译器测试模块负责利用生成的深度学习模型进行编译器测试,发现潜在的编译器错误;具体步骤如下:步骤1:收集深度学习模型,构建数据集;收集的深度学习模型中,一部分模型利用深度学习模型生成工具随机生成;另一部分模型从Github中的开源项目ONNX_MODEL_ZOO中选择;收集的深度学习模型均以ONNXOpenNeuralNetworkExchange格式保存;步骤2:ONNX模型特征提取;用于深度学习编译器测试的深度学习模型,看作是有向的计算图;将深度学习模型识别为两类特征;第一类特征是节点特征,包括深度学习模型中每个节点的各种属性;不同的节点类型涉及到不同的代码覆盖信息;因此,节点属性用于预测测试模型在编译过程中的代码覆盖率;第二类特征是边特征,在深度学习模型中,边特征用于描述模型中不同节点之间的连接关系;每一组边特征包含入节点和出节点的属性;通过细致地描述这些边特征,更准确地捕捉模型的结构和行为,从而为模型的分析和优化提供更丰富的信息;步骤3:收集训练集中的模型使用深度学习编译器进行编译时的代码覆盖率;在ONNX模型输入深度学习编译器进行编译的过程中,通过python中的coverage库方法,捕获ONNX模型在编译过程中的深度学习编译器代码覆盖率报告,该覆盖率报告包括模型在编译的过程中对深度学习编译器中所有的方法的覆盖情况;然后,对覆盖率情况进行统一处理,按照深度学习编译器源码中的模块划分,计算模型在编译过程中对每个模块的覆盖率;选用对应的模块覆盖信息将作为多回归模型的目标任务用于训练;步骤4:训练多回归覆盖率预测模型;结合步骤2中提取的模型特征和步骤3中的模块覆盖率结果,训练多回归覆盖率预测模型;考虑到深度学习模型中包含多种类型的节点和边,因此使用异构图卷积神经网络HGCN构建覆盖率预测模型;异构图卷积神经网络是一种用于处理异构图数据的深度学习模型;在构建异构图数据的表示时,将其表示为一个R+1维的张量,其中R维对应不同类型的边,另一维对应节点;每一维对应于一种边的类型,每条边的特征信息由权重Wrl和偏置bl来描述,其中r表示不同类型的边,Nr是不同类型的边的数量;Wrl是对应该条边的权重矩阵,bl是对应该类型变的偏置项;在每个节点的特征信息聚合过程中,其特征向量Hl会被更新为Hl+1,这一更新的过程中会涉及到其邻居节点Ni的信息,其中Ni表示节点i的邻居节点集合;信息聚合是通过对每个邻居节点的特征向量Hjl进行加权求和实现的,加权因子通过对应类型边的权重Wrl和偏置bl确定的;并引入激活函数σ,使模型能够学习非线性的特征表示,从而提高模型的表达能力: 步骤5:使用强化学习算法引导模型生成;基于学习的覆盖率预测模型,在用深度学习模型生成工具生成用于测试的深度学习模型时使用强化学习算法引导工具生成提高覆盖率结果的模型;具体如下:首先,根据所使用的深度学习编译器构建约束池;在不添加任何约束条件的情况下使用深度学习模型生成工具生成测试模型,通过步骤4中的覆盖率预测模型预测生成的测试模型在使用深度学习编译器进行编译过程中的代码覆盖率;然后,使用强化学习中的置信域策略梯度优化TRPO算法,用于优化策略以生成覆盖更多深度学习编译器代码的测试用例;TRPO是一种改进的自然梯度策略优化算法,通过优化目标函数,并确保在状态st下的新策略πθ·|st与旧策略πθold·|st之间的KL散度KL[πθold·|st,πθ·|st]不超过控制新旧策略之间的最大允许变化幅度δ,从而控制策略的变化;优化的主要目标是最大化在t时间段的状态st下采取行动at的优势函数Ast,at,即:Ast,at=rst,at+γVst+1-Vst其中rst,at是状态st下采取行动at的及时奖励,γ是折扣因子,而Vst+1和Vst分别是在时间步t+1和t时的状态价值;然后,通过最大化策略改进比率Loldθ,并在KL散度约束的条件下优化策略参数: 其中,表示在时间步t的期望值,用来计算在该时间步内所有可能发生的行动和状态下的平均效果;θ是从状态到动作的映射参数,maxθ是最大化操作符,表示在映射参数θ上进行优化,以求得最优策略;优化过程迭代进行,通过更新策略参数和价值函数,不断生成新的测试用例,直到满足终止条件;步骤6:计算测试价值函数;测试价值函数的目的是评估新生成的模型对于增加代码覆盖率和发现潜在错误的贡献的能力;测试价值函数包含两部分内容,分别是模块覆盖率增量和错误发现比例;1模块覆盖率增量:计算新生成的模型相对于当前测试轮已探索的模型在不同模块的覆盖率情况的增量;2错误发现比例:搜集深度学习编译器历史上发现的所有错误报告,并且根据步骤3中划分的模块对错误进行分类,计算出模块的错误比例;步骤7:测试;当新生成的模型计算步骤6中的测试价值函数并得到正结果时,说明该模型具备测试的价值;如果计算结果为负数则丢弃该模型;在测试过程中,使用崩溃和结果不一致两种测试预言来发现模型可能触发的错误。
全文数据:
权利要求:
百度查询: 大连理工大学 一种基于强化学习的深度学习编译器测试加速方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。