CN111858351A - 一种基于差分评估的深度学习推理引擎测试方法 - Google Patents
一种基于差分评估的深度学习推理引擎测试方法 Download PDFInfo
- Publication number
- CN111858351A CN111858351A CN202010712793.5A CN202010712793A CN111858351A CN 111858351 A CN111858351 A CN 111858351A CN 202010712793 A CN202010712793 A CN 202010712793A CN 111858351 A CN111858351 A CN 111858351A
- Authority
- CN
- China
- Prior art keywords
- model
- engine
- compiler
- data
- difference
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 30
- 238000011156 evaluation Methods 0.000 title claims abstract description 15
- 238000010998 test method Methods 0.000 title claims abstract description 7
- 238000012360 testing method Methods 0.000 claims abstract description 36
- 230000008676 import Effects 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 8
- 238000004566 IR spectroscopy Methods 0.000 claims abstract description 7
- 230000007246 mechanism Effects 0.000 claims abstract description 6
- 230000002159 abnormal effect Effects 0.000 claims abstract description 4
- 238000000034 method Methods 0.000 claims description 19
- 238000005457 optimization Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000010835 comparative analysis Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims description 3
- 238000007689 inspection Methods 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 5
- 238000013136 deep learning model Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 238000013441 quality evaluation Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Abstract
一种基于差分评估的深度学习推理引擎测试方法,包含模型导入检查模块、中间表示获取模块和结果评估模块。在模型导入检查模块,分析引擎是否支持模型所涉及的所有算子和相关参数,结合引擎内部的异常捕获机制和导入前后的模型结构对比,判断模型导入引擎后结构是否保持一。在中间表示获取模块,整理不同编译器所提供的获取IR数据的途径,通过人工处理对引擎信息和对应的获取指令进行封装,并生成统一的调用接口。在结果评估模块,获取适用于差分测试任务的编译器列表,包括编译器名称和对应的模型来源,并调用中间表示获取接口得到IR数据。
Description
技术领域
本发明属于软件工程和机器学习领域,特别是针对深度学习推理引擎的模型处理。对于深度学习模型处理的中间过程和输出结果,评估推理引擎对具体深度学习框架的支持性。
背景技术
随着人工智能的快速发展,基于深度学习(DL)技术的神经网络模型纷纷涌现,并在自动驾驶、医疗诊断等前沿领域被广泛使用。为了提供方便的模型训练与部署服务,TensorFlow、PyTorch、Caffe等深度学习框架应需而生。然而由于平台支持差异等一系列问题,在多种硬件上部署特定框架训练出的DL模型存在许多困难,由此推动了社区中DL编译器的研究和开发。不同DL编译器的算子支持和内部推理优化方式差异较大,由此DL编译器测试等质量保障手段显得更加重要。
目前尚未有公开的针对深度学习推理引擎的测试方法。在传统编译器的测试过程中,差分测试是有效解决测试Oracle问题的主流方法。然而在针对深度学习推理引擎的测试任务中,深度学习编译器在输入数据模式和内部执行上与传统编译器存在较大差异。因此,尽管DL编译器和传统编译器存在相似之处,都是将前端输入转化为适用于具体硬件的后端输出,且均存在中间IR表示和编译优化等特性,但是DL编译器以深度学习模型为主要输入形式,且在推理优化的过程中更加关注矩阵运算等数值处理过程,与传统的编译优化技术和内部数据结构存在差异。因此,我们希望针对深度学习推理引擎的自身特点,设计可有效用于推理引擎测试任务的差分测试技术,从而达到测试目的。
目前深度学习方面的差分测试工作主要局限于基于深度学习模型质量的深度学习框架测试,推理引擎的测试工作尚未进入研究者的视野。
基于上述工作,本发明深度挖掘了在推理引擎执行过程中的数据流信息。这些信息的隐含缺陷是难以发掘的,但是通过差分对比后可以被检测到。因此本发明基于差分测试方法,将推理引擎执行的中间结果和输出进行总结,并选取多款同类推理引擎,在消除差异性的基础上对输出结果进行对比,从而定位隐含缺陷。
发明内容
本发明要解决的问题是:深度学习编译器的测试Oracle难以解决,单一输出结果的有效性难以评估。我们的发明能够通过差分测试,对比多款同类型编译器推理过程和输出结果的一致性,为编译器的模型质量评估提供参考依据。
本发明的技术方案为:一种基于差分评估的深度学习推理引擎测试技术,其特征是能采用差分测试技术对推理过程进行评估。该测试技术包含以下三个模块:
1)
模型导入检查模块:模型导入首先分析引擎是否支持模型所涉及的所有算子和相关参数,如果不支持且该引擎并非待测引擎,则将不支持的引擎移出差分对比候选引擎列表。接着,通过结合引擎内部的异常捕获机制和导入前后的模型结构对比,分析模型导入引擎后结构是否保持一致。如果出现不一致情况,则定位差异位置,并对差异位置、差异原因和差异类型进行记录。对于有效的导入模型,其结构将被编译器调整优化,并生成图IR。图IR最终被传递到引擎的硬件平台上,进过硬件运算优化后生成低级IR并被部署。
2)
中间表示获取模块:首先需要整理不同编译器所提供的获取IR数据的途径,包括命令行参数、文件重定位等。然后通过人工处理对引擎信息和对应的获取指令进行封装,并生成统一的调用接口,从而为结果评估模块提供中间表示获取服务。
3)
结果评估模块:编译器差分测试技术,首先获取适用于差分测试任务的编译器列表,包括编译器名称和对应的模型来源,并调用中间表示获取接口得到IR数据。考虑到不同编译器及其内部编译器的IR实现和表示方法不同,如XLA采用HLO格式,而TVM采用lambda表达式,通过一致性转化流程,生成统一的IR替代格式,包括算子和对应参数,从而实现中间结果的可比性。我们采用对比分析作为随机网络的测试Oracle,严格检查IR的功能完整性和连通有效性,并尝试通过一些额外指标,如计算复杂性,衡量编译器的优化效果。最终评估模块收集并记录出现不一致所对应的模型、框架、引擎和差异信息,并将额外指标作为参考信息进行记录与统计。
本发明的特点在于:
1.首次关注深度学习推理引擎的测试工作。
2.首次利用差分测试方法进行深度学习推理引擎测试。
3.首次将推理引擎测试工作自动化。
附图说明
图1为本发明实施总流程图。
图2为关键模块1流程图。
图3为关键步骤2流程图。
图4为关键步骤3流程图。
具体实施方式
本发明中涉及的几项关键技术是利用推理引擎支持的一些深度学习框架构造模型,并利用多款推理引擎来进行差分测试,并进行测试验证,具体实现上使用了提供待测模型的深度学习框架Caffe、Pytorch、Tensorflow等。
1.模型信息识别
在本发明中,我们对作为测试输入的模型类型进行结构和属性分析。一般的神经网络模型信息,主要包含框架依赖,模型的算子列表和权重等。这些信息将被使用在模型导入阶段,用于确认具体推理引擎是否有效支持针对该模型的推理部署。
2.推理引擎支持列表生成
本发明中,我们获取和分析测试任务所涉及的推理引擎,以人工方式整理推理引擎所支持的深度学习框架(如Caffe、Pytorch、Tensorflow等)、深度学习算子和底层硬件,并生成列表。这些信息的主要来源是推理引擎开发者和社区提供的官方文档,并规定了测试任务的测试范围。
3.模型筛查
本发明中,我们采用人工提取的支持列表对原始测试数据集中的测试模型进行筛选,保留与列表规定范围相符的模型输入,这批模型在理论上是推理引擎支持的。然后将筛选得到的模型作为测试数据集,并针对不同推理引擎进行一致性处理。
4.异常机制建立
本发明中,我们利用人工设计的方法,分析整合不同推理引擎内置的异常捕获机制,在模型导入的整个过程中进行实时异常检测。如果模型在执行过程中发现异常,我们直接将该模型的结构信息和异常信息进行记录,从而作为一个潜在的推理引擎缺陷。
5.中间节点归纳
本发明中,我们通过人工整理不同编译器内部IR格式和IR获取方式。接着我们对IR节点进行分类,并对每一类节点的标记进行聚类。最后我们为每一个聚簇封装一个API,用于获取该模式下的IR节点数据。
6.模型导入
本发明中,我们将筛选后的数据集进行一致性处理,并作为各推理引擎的输入。在执行过程中,如果异常机制没有未检查到模型的推理过程异常,我们对该模型调用节点信息获取API,得到模型对应的各IR节点数据和推理输出结果。
7.差分评估
本发明中,我们对IR节点数据进行一致性转化,将诸如HLO格式、lambda格式的IR信息进行等价转换。然后我们采用对比分析作为随机网络的测试Oracle,严格检查IR的功能完整性和连通有效性,并尝试通过一些额外指标,如计算复杂性,衡量编译器的优化效果。最终评估模块收集并记录出现不一致所对应的模型、框架、引擎和差异信息,并将额外指标作为参考信息进行记录与统计。
在本实例中,我们发现了多个模型导入推理异常,并根据异常类型进行了人工划分整合。在差异评估部分,我们发现了6种主要的差异类型,涉及所有的待测推理引擎和深度学习框架,我们总结了差异在推理引擎和深度学习框架的分布情况和差异程度,其中差异程度主要基于差异次数和差异距离。
Claims (4)
1.一种基于差分评估的深度学习推理引擎测试方法,其特征是分析引擎是否支持模型所涉及的所有算子和相关参数并定位;整理IR数据的途径,为结果评估模块提供中间表示获取服务;收集并记录出现不一致所对应的模型、框架、引擎和差异信息,并将额外指标作为参考信息进行记录与统计。
2.根据权利要求1所描述的分析引擎是否支持模型所涉及的所有算子和相关参数并定位,其特征是:模型导入首先分析引擎是否支持模型所涉及的所有算子和相关参数,如果不支持且该引擎并非待测引擎,则将不支持的引擎移出差分对比候选引擎列表。接着,通过结合引擎内部的异常捕获机制和导入前后的模型结构对比,分析模型导入引擎后结构是否保持一致。如果出现不一致情况,则定位差异位置,并对差异位置、差异原因和差异类型进行记录。
3.根据权利要求1所描述的以测试对前序数据处理后的数据概况通过多个指标展示,其特征是:首先需要整理不同编译器所提供的获取IR数据的途径,包括命令行参数、文件重定位等。然后通过人工处理对引擎信息和对应的获取指令进行封装,并生成统一的调用接口,从而为结果评估模块提供中间表示获取服务。
4.根据权利要求1所描述的以降维形式展示多维特征的数据拓扑图,其特征是:首先获取适用于差分测试任务的编译器列表,包括编译器名称和对应的模型来源,并调用中间表示获取接口得到IR数据。采用对比分析作为随机网络的测试Oracle,严格检查IR的功能完整性和连通有效性,并尝试通过一些额外指标,如计算复杂性,衡量编译器的优化效果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010712793.5A CN111858351A (zh) | 2020-07-23 | 2020-07-23 | 一种基于差分评估的深度学习推理引擎测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010712793.5A CN111858351A (zh) | 2020-07-23 | 2020-07-23 | 一种基于差分评估的深度学习推理引擎测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111858351A true CN111858351A (zh) | 2020-10-30 |
Family
ID=72949231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010712793.5A Pending CN111858351A (zh) | 2020-07-23 | 2020-07-23 | 一种基于差分评估的深度学习推理引擎测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858351A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377464A (zh) * | 2021-08-12 | 2021-09-10 | 苏州浪潮智能科技有限公司 | 一种基于多推理引擎系统的应用部署方法、装置及设备 |
CN115113528A (zh) * | 2022-07-06 | 2022-09-27 | 昆仑芯(北京)科技有限公司 | 神经网络模型的运行控制方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764744A (zh) * | 2018-07-25 | 2020-02-07 | 赛灵思公司 | 用于神经网络计算的中间表示生成方法和装置 |
CN110929850A (zh) * | 2019-11-26 | 2020-03-27 | 国家超级计算无锡中心 | 基于申威处理器的深度学习算子自动优化系统及方法 |
CN111162946A (zh) * | 2019-12-30 | 2020-05-15 | 北京奇艺世纪科技有限公司 | 构建模型推理网络的方法、数据处理方法、装置和存储介质 |
CN111325236A (zh) * | 2020-01-21 | 2020-06-23 | 南京大学 | 一种基于卷积神经网络的超声图像分类方法 |
CN111401560A (zh) * | 2020-03-24 | 2020-07-10 | 北京觉非科技有限公司 | 推理任务的处理方法、设备和存储介质 |
-
2020
- 2020-07-23 CN CN202010712793.5A patent/CN111858351A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764744A (zh) * | 2018-07-25 | 2020-02-07 | 赛灵思公司 | 用于神经网络计算的中间表示生成方法和装置 |
CN110929850A (zh) * | 2019-11-26 | 2020-03-27 | 国家超级计算无锡中心 | 基于申威处理器的深度学习算子自动优化系统及方法 |
CN111162946A (zh) * | 2019-12-30 | 2020-05-15 | 北京奇艺世纪科技有限公司 | 构建模型推理网络的方法、数据处理方法、装置和存储介质 |
CN111325236A (zh) * | 2020-01-21 | 2020-06-23 | 南京大学 | 一种基于卷积神经网络的超声图像分类方法 |
CN111401560A (zh) * | 2020-03-24 | 2020-07-10 | 北京觉非科技有限公司 | 推理任务的处理方法、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
法斯特豪斯: "初见MLIR", 《知乎:HTTPS://ZHUANLAN.ZHIHU.COM/P/101879367》 * |
蓝色: "手把手带你遨游TVM", 《知乎:HTTPS://ZHUANLAN.ZHIHU.COM/P/50529704》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377464A (zh) * | 2021-08-12 | 2021-09-10 | 苏州浪潮智能科技有限公司 | 一种基于多推理引擎系统的应用部署方法、装置及设备 |
CN115113528A (zh) * | 2022-07-06 | 2022-09-27 | 昆仑芯(北京)科技有限公司 | 神经网络模型的运行控制方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106895975B (zh) | 基于Stacked SAE深度神经网络的轴承故障诊断方法 | |
US8868985B2 (en) | Supervised fault learning using rule-generated samples for machine condition monitoring | |
CN105022691B (zh) | 一种基于uml图的高度自动化软件测试方法 | |
CN109255440B (zh) | 基于递归神经网络(rnn)的对电力生产设备进行预测性维护的方法 | |
CN107577603A (zh) | 一种基于测试用例构建决策树的程序条件语句自动化修复系统及方法 | |
CN111858351A (zh) | 一种基于差分评估的深度学习推理引擎测试方法 | |
CN110703057A (zh) | 基于数据增强和神经网络的电力设备局部放电诊断方法 | |
JP2021190716A (ja) | 弱いラベル付けを使用した半導体試料内の欠陥の検出 | |
CN106548206A (zh) | 基于最小生成树的多模态磁共振影像数据分类方法 | |
CN112756759B (zh) | 点焊机器人工作站故障判定方法 | |
CN110931112A (zh) | 一种基于多维信息融合和深度学习的脑部医学影像分析方法 | |
CN107122302A (zh) | 一种软件测试有效性度量和评估方法 | |
Leemans et al. | Software process analysis methodology–a methodology based on lessons learned in embracing legacy software | |
CN116991738A (zh) | 一种计算机软件测试系统、方法、计算机设备及存储介质 | |
Aceituna et al. | SQ^(2) E: An approach to requirements validation with scenario question | |
CN111062827B (zh) | 一种基于人工智能模式的工程监理方法 | |
CN111724290A (zh) | 基于深度分层模糊算法的环保设备识别方法与系统 | |
CN109582562B (zh) | 基于生成对抗网络的智能化软件测试及云平台构建方法 | |
CN111190944A (zh) | 一种数据挖掘方法和系统 | |
Ostrowski et al. | Knowledge-based software testing agent using evolutionary learning with cultural algorithms | |
CN116451016A (zh) | 一种卫星智能化故障系统诊断评估的方法 | |
CN112464237B (zh) | 一种静态代码安全诊断方法及装置 | |
CN114638185A (zh) | 一种芯片验证方法、装置及存储介质 | |
CN110008245B (zh) | 一个适用于设备故障预警模型时间段查找的方法 | |
Huang et al. | Towards automated model calibration and validation in rail transit simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201030 |