CN117667662A - 模型中算子的异常检测方法、装置、芯片、设备及系统 - Google Patents

模型中算子的异常检测方法、装置、芯片、设备及系统 Download PDF

Info

Publication number
CN117667662A
CN117667662A CN202211091169.3A CN202211091169A CN117667662A CN 117667662 A CN117667662 A CN 117667662A CN 202211091169 A CN202211091169 A CN 202211091169A CN 117667662 A CN117667662 A CN 117667662A
Authority
CN
China
Prior art keywords
model
data
operator
computing device
operation data
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
Application number
CN202211091169.3A
Other languages
English (en)
Inventor
尤安升
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202211091169.3A priority Critical patent/CN117667662A/zh
Publication of CN117667662A publication Critical patent/CN117667662A/zh
Pending legal-status Critical Current

Links

Abstract

公开了模型中算子的异常检测方法、装置、芯片、设备及系统,涉及计算机领域。该模型中算子的异常检测方法包括:第一设备可在第一设备和第二设备根据待处理数据运行同样的模型的过程中,比对模型中第一算子在不同设备的运行数据以确定是否为异常算子,避免了通常技术中服务器仅能在多个设备运行模型后进行数据比对,模型的差异检测效率较低的问题。而且,第一设备无需存储第二设备中运行模型的所有数据,减少了第一设备中存储资源的占用,以及减少了运行数据从第二设备→存储设备(如服务器)→第一设备的数据拷贝和传输时间,缩短了差异检测所需的时长,提升了模型的差异检测效率。

Description

模型中算子的异常检测方法、装置、芯片、设备及系统
技术领域
本申请涉及计算机领域,尤其涉及模型中算子的异常检测方法、装置、芯片、设备及系统。
背景技术
网络模型包括一个或多个计算单元,计算单元也可称为算子(Operator,Op),算子对应于网络模型中的计算逻辑。示例性的,卷积层(convolution layer)、全连接层(Fully-connected Layer,FC layer)中的权值求和过程均可被称为网络模型的算子。当同样的网络模型部署到多个不同的硬件上时,运算精度存在差异。通常,服务器获取多个不同硬件运行同样的模型的所有数据,并选择一个硬件的数据为参考数据后,将其他硬件的数据与该参考数据进行比对,确定模型在其他硬件中的异常算子。然而,由于在多个硬件运行模型并输出的所有数据后,服务器才能进行模型中算子的异常检测,模型检测的效率较低。因此,如何提供一种更有效的异常检测方法成为目前亟需解决的问题。
发明内容
本申请提供了模型中算子的异常检测方法、装置、芯片、设备及系统,解决了通常技术中对模型检测的效率较低的问题。
第一方面,提供了一种模型中算子的异常检测方法,该模型中算子的异常检测方法可应用于第一设备,或者支持实现该模型中算子的异常检测方法的设备,例如该设备包括芯片。该模型中算子的异常检测方法包括:首先,第一设备将待处理数据输入模型,并获取模型中第一算子的第一运行数据。其次,第一设备获取第二设备将待处理数据输入模型后,模型中第一算子的第二运行数据。最后,第一设备将前述的第一运行数据和第二运行数据进行比对,确定比对结果,在比对的结果符合预设的条件时,确定该算子为模型在第一设备中的异常算子。第一设备可在两个设备运行同样的模型的过程中,比对模型中算子在不同设备的运行数据以确定该算子是否为异常算子,避免了服务器仅能在多个设备运行模型后进行数据比对,模型的差异检测效率较低的问题。而且,第一设备无需存储第二设备中运行模型的所有数据,减少了第一设备中存储资源的占用,以及减少了运行数据从第二设备→存储设备(如服务器)→第一设备的数据拷贝和传输时间,缩短了差异检测所需的时长,提升了模型的差异检测效率。
在一种可能的实现方式中,第一设备通过向第二设备发送检测命令,以指示第二设备根据待处理数据运行模型,以得到所述第二运行数据,并向所述第一设备返回所述第二运行数据,实现第一设备和第二设备运行相同的模型,提高了得到异常算子的可信度。
在一种可能的实现方式中,检测命令携带有第一算子在第二设备中的标识,标识用于指示第二设备中待传输的第二运行数据。
基于第一算子在第二设备中的标识,第一设备从第二设备中获取标识指示的第一算子的第二运行数据,第一设备对第一算子对应的第一运行数据和第二运行数据进行比对,避免了第一设备将不同设备中不同功能的算子进行比对导致的差异检测出错的问题,提高了差异检测的准确性。
在一种可能的实现方式中,第一设备通过查询算子注册表确定第一算子在第二设备中的标识,算子注册表包括了不同的多个设备调度第一算子时采用的标识,标识与设备一一对应,多个设备包括第一设备和第二设备。示例的,第一设备根据第一算子在第一设备中的标识和第二设备的属性(如GPU)查询算子注册表,得到第一算子在第二设备中的标识。
第一设备通过算子注册表确定第一算子在第二设备中的标识,并将携带有前述标识的检测命令发送到第二设备,从而第一设备从第二设备中获取标识指示的第一算子的第二运行数据,并将第一设备本地的第一运行数据和第二运行数据进行比对,实现了相同功能的第一算子在不同设备中的数据比对,避免了第一设备将不同设备中不同功能的算子进行比对导致的差异检测出错的问题,提高了差异检测的准确性。
在一种可能的实现方式中,第一运行数据还包括第一算子的输入数据和输出数据,以及第一设备的运算差异值确定的第一算子的反馈信息,第一设备根据模型的输出数据和待处理数据的特征确定反馈信息。
由于第一运行数据中包括了第一算子的输入数据、输出数据以及反馈信息,利用前述的第一运行数据与第二运行数据进行比对,相较于通常技术中仅利用算子的输出数据进行比对,在相同训练轮次下,增加了比对的数据量,提高了比对效率。
在一种可能的实现方式中,检测命令和第二运行数据由第一设备与第二设备之间的远程过程调用(Remote Procedure Call,RPC)通道传输。
第一设备基于RPC通道指示第二设备根据待处理数据运行模型,并将第二设备上算子的运行数据读取至第一设备。避免了通常技术中对该运行数据转发占用的带宽、以及存储占用的存储资源,提高了多个计算设备之间进行数据传输的效率,从而缩短了模型的差异检测时长。
在另一种可能的实现方式中,检测命令和第二运行数据由第一设备与第二设备之间的硬件通信信道传输。示例的,第一设备和第二设备可以挂载到一个主机或服务器上,并利用硬件通信信道进行通信,以降低数据或指令的传输时延,缩短模型的差异检测时长,提高了检测效率。
在一种可能的实现方式中,计算设备利用相似度来量化比对结果,在相似度小于或等于设定的相似度阈值的情况下,确定第一算子为模型在第一设备中运行的异常算子,从而实现模型的差异检测。
第二方面,提供了一种模型中算子的异常检测装置,该模型中算子的异常检测装置应用于第一设备,该模型中算子的异常检测装置包括用于执行第一方面或第一方面任一种可能设计中的模型中算子的异常检测方法的各个模块。示例的,该模型中算子的异常检测装置包括:运行模块、获取模块和确定模块;运行模块,用于第一设备将待处理数据输入模型,并获取模型中第一算子的第一运行数据。获取模块,用于第一设备向第二设备发送检测命令,以指示第二设备运行模型,在第二设备将待处理数据输入模型后,第一设备获取第一算子的第二运行数据。确定模块,用于第一设备将前述的第一运行数据和第二运行数据进行比对,在比对的结果符合预设的条件时,确定该第一算子为模型在第一设备中的异常算子。
有益效果可以参见第一方面中任一种可能实现方式中的描述,此处不再赘述。所述虚拟机迁移装置具有实现上述第一方面中任一种可能实现方式中的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,提供一种芯片,包括处理器和供电电路,供电电路用于为所述处理器供电;处理器用于调用并运行计算机指令,以执行上述第一方面及其第一方面任意可能的实现方式中的方法。
第四方面,提供一种计算设备,包括处理器和存储器;存储器存储有指令,所述处理器调用所述指令实现上述第一方面及其第一方面任意可能的实现方式中的方法。
第五方面,提供一种交互系统,包括第一设备和第二设备;第一设备和第二设备用于基于待处理数据运行模型,执行上述第一方面及其第一方面任意可能的实现方式中的方法。
第六方面,提供一种计算机可读存储介质,存储介质中存储有计算机程序或指令,当计算机程序或指令被处理设备执行时,实现上述第一方面和第一方面中任一种可能实现方式中的方法。
第七方面,提供一种计算机程序产品,该计算程序产品包括计算机程序或指令,当该计算机程序或指令在处理设备上运行时,使得处理设备执行该计算机程序或指令,以实现上述第一方面和第一方面中任一种可能实现方式中的方法。
以上第二方面至第七方面的有益效果可参照第一方面或第一方面中任一种实现方式的描述,在此不予赘述。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1A为本申请提供的一种检测系统的应用场景图;
图1B为本申请提供的一种算子调用示意图;
图2为本申请提供的一种模型比对图;
图3为本申请提供的一种模型中算子的异常检测方法的流程示意图一;
图4为本申请提供的一种模型中算子的异常检测方法的流程示意图二;
图5为本申请提供的模型中算子的异常检测装置的结构示意图;
图6为本申请提供的一种处理设备的结构示意图。
具体实施方式
本申请提供一种模型中算子的异常检测方法,该模型中算子的异常检测方法包括:针对于相同的输入数据和功能一致的模型,在不同设备中运行时的运行数据进行比对,从而确定模型运行在设备中的异常算子。在一种可行的示例中,首先,服务器将模型包括的多个算子进行注册,注册的过程包括:记录每个算子在不同设备中的标识、以及每个算子的调用接口等。其次,第一设备将待处理数据输入模型,并获取模型中算子的第一运行数据。以及,第一设备还向第二设备发送携带有前述算子的标识的检测命令,在第二设备将待处理数据输入模型后,获取该算子的第二运行数据。最后,第一设备将前述的第一运行数据和第二运行数据进行比对,在比对的结果符合预设的条件时,确定该算子为模型在第一设备中的异常算子。第一设备可在两个设备运行同样的模型的过程中,比对模型中算子在不同设备的运行数据以确定该算子是否为异常算子,避免了服务器仅能在多个设备运行模型后进行数据比对,模型中算子的差异检测效率较低的问题。而且,第一设备无需存储第二设备中运行模型的所有数据,减少了第一设备中存储资源的占用,以及减少了运行数据从第二设备→存储设备(如服务器)→第一设备的数据拷贝和传输时间,缩短了差异检测所需的时长,提升了模型中算子的差异检测效率。
上述模型中算子的差异检测是指将相同模型在不同硬件上运行时,对模型中的算子进行的差异检测。
上述方法可应用于图1A所示的检测系统中。如图1A所示,图1A为本申请提供的一种检测系统的应用场景图。该检测系统中可以包括计算设备110、计算设备120和计算设备130,上述各计算设备间通过信道140连接。
其中,计算设备110、计算设备120或计算设备130可以包括一个或多个处理单元,例如:上述计算设备可包括中央处理器(Central Processing Unit,CPU),应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),专用集成电路(Application SpecificIntegrated Circuit,ASIC),现场可编程门阵列(fieldprogrammable gate array,FPGA),分立门,晶体管逻辑器件、分立硬件组件,基带处理器,和/或神经网络处理器(neural-networkprocessing unit,NPU)等。或者为包括上述任一种或多种处理单元的处理设备,如终端、服务器等。
示例性的,计算设备110可包括NPU,计算设备120可包括GPU,计算设备130可包括CPU。
信道140用于在上述计算设备之间传送信息。信道140除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为信道140。
在一种可能的情形中,信道140可以是快捷外围组件互连(peripheral componentinterconnect express,PCIe)高速总线,或扩展工业标准结构(extended industrystandard architecture,EISA)总线、统一总线(unifiedbus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect foraccelerators,CCIX)等总线。例如,计算设备110可以通过PCIe总线访问计算设备120。计算设备110可通过双倍速率(double data rate,DDR)总线和计算设备120相连。这里,不同的计算设备120可能采用不同的数据总线与计算设备110通信,因此,DDR总线也可以替换为其他类型的数据总线,本申请实施例不对总线类型进行限定。应理解,多个计算设备可以挂载到一个主机或服务器上,并利用硬件通信信道进行通信,多个计算设备间通过内存或者临时文件进行数据传输,降低了数据或指令的传输时延,缩短模型的差异检测时长。
在另一种可能的情形中,图1A所示出的信道140可为RPC通道,多个计算设备通过RPC通道连接。示例性的,计算设备110可在不知道具体调用细节的情况下,基于RPC通道调用远程的计算设备120或计算设备130上的对象(如数据等)。例如,计算设备110基于RPC通道指示计算设备120或计算设备130根据待处理数据运行模型,并将计算设备120或计算设备130上算子的运行数据读取至计算设备110。避免了通常技术中对该运行数据转发时占用的带宽、以及对该运行数据存储时占用的存储资源,从而提高了多个计算设备之间进行数据传输的效率,从而缩短了模型的差异检测时长。
示例的,计算设备110通过远程通讯工具(如Run-time Library)远程调用计算设备120的RPC接口,实现计算设备110与计算设备120建立RPC通道连接。
计算设备110通过Run-time Library远程调用计算设备130的RPC接口,实现计算设备110与计算设备130建立RPC通道连接。
需要说明的是,图1A只是本申请提供的示例,该检测系统中还可以包括其他计算设备,或支持计算设备运行的存储器、电源、硬盘、光驱、机箱、散热系统以及其他输入输出控制器和接口,在图1A中未画出。本申请的实施例对该其他计算设备或上述支持计算设备运行的硬件的形态和数量不做限定。
本方法的执行主体可以是图1A中的任一个计算设备,也可以是信道140上连接的其他设备。本实施例的执行主体以计算设备110、模型的差异检测的基准设备是计算设备120为例进行说明,基准设备将待处理数据输入模型所产生的中间数据或输出的数据结果为模型差异检测的参考数据。
可选的,在计算设备110和计算设备120运行模型之前,服务器可将同样的模型分别部署到计算设备110和计算设备120中。示例的,部署的模型可以是目标检测模型,特征提取模型、分类模型等深度学习模型。本实施例中,同样的模型是指处理逻辑一致的模型,但在不同的设备中,该模型包括的算子会进行硬件适配,使得模型在不同的设备包括的算子的参数不会完全相同。
其中,模型包括的算子是指模型中的计算单元,如该计算单元是指深度学习模型中的卷积层、池化层或者全连接层等,不同的处理层具有不同的处理逻辑,因此,具有不同的处理逻辑的计算单元也称不同类型的算子。通常,一个模型包括了多种不同类型的算子,而对于不同类型的算子,计算设备的支持情况不同。各计算设备对不同类型的算子的支持情况不同是指由于各计算设备间的硬件差异或处理逻辑上的差异,导致各计算设备根据部分类型的算子得出的运行数据差异过大,或者部分类型的算子仅能在特定的计算设备上运行。示例性的,该支持情况的不同指示了计算设备运行算子的运算精度的差异,若计算设备对算子的支持情况较差,则该算子在计算设备中的运算精度较低;若计算设备对算子的支持情况较好,则该算子在计算设备中的运算精度较高。
示例的,以模型中包含的全连接层为例,当包括GPU的计算设备120时,其准确率很高,可将模型中全连接层的输出数据作为基准数据;再利用包括NPU的计算设备110,获取计算设备110运行模型时,全连接层的输出数据,将其与上述基准数据比较得到准确率,仅为5%,该数据变得不可用;或者计算设备110根本不能运行模型中的全连接层,导致该全连接层无对应输出数据或报错等情况。上述数值仅为示例,并不构成对本申请的限定。
为此,在本实施例中,服务器可对多个计算设备都支持运行的算子进行注册打桩。
下面给出一种可能的具体示例,计算设备110对各计算设备都支持的算子进行注册打桩过程进行说明,参考图1B,图1B为本申请提供的一种算子调用示意图。如图1B所示,包括NPU的计算设备110、包括GPU的计算设备120、包括CPU的计算设备130通过调用接口,调用服务器中的算子,以实现模型的构建。其中,前述的算子包括计算设备110、计算设备120和计算设备130都支持的算子。在本示例中,计算设备110可称为第一设备,运行在计算设备110上的模型称为第一模型;计算设备120可称为第二设备,运行在计算设备120上的模型称为第二模型,该注册打桩过程可由计算设备110执行,该注册打桩过程包括以下内容。
计算设备110可通过在Pytorch上对计算设备110和计算设备120都支持的算子进行注册打桩,如该计算设备110和计算设备120都支持的算子包括第一算子,该第一算子可以是指池化层、全连接层、卷积层或者模型包括的其他处理层中任一个。在不同的计算设备中,该第一算子是指在多个计算设备运行的模型中功能一致且位置匹配的算子,该功能一致是指处理逻辑相同,位置匹配是指在算子在不同设备的模型中所处的位置相同。
示例的,计算设备110获取到待注册算子的实现方式,再通过Pytorch底层的注册接口(torch::RegisterOperators),对算子进行注册。由于Pytorch目前仅直接支持常用的,如CPU,CUDA等硬件。对于如NPU或ASIC等硬件,还需在Pytorch增加新硬件支持,通过在Pytorch源码中的Backend、Device等模块中添加新硬件的支持实现。在注册时,对算子和使用对象进行了对应配置,如根据计算设备110和计算设备120的属性(硬件标识等),分别对不同类型的算子进行注册,计算设备110仅会调用配置为计算设备110可使用的算子。
作为示例,如下表1所示的算子注册表,计算设备110调用Con1、Pool1等算子,其中,Con1、Pool1等可称为算子的标识或名称。计算设备110在每注册完一个算子后,会将该算子与先前已注册好的算子建立映射关系。该算子注册表指示了不同的多个设备调度第一算子所采用的标识,如当计算设备110要调用Con类型的算子时,将调用Con1,当计算设备120要调用Con类型的算子时,将调用Con2。一个设备对应一个标识,其中,上述多个设备包括计算设备110和计算设备120。
表1
算子类型 计算设备110 计算设备120 计算设备130
Con Con1 Con2 Con3
Pool Pool1 Pool2 Pool3
在一种可能的情形中,在注册算子时,还为各算子配置了对应的调用接口。
如下表2所示的接口关系表,示例性的示出了各算子的标识与调用接口的对应关系。
表2
标识 接口
Con1 npu_module.torch_launch_CON1
Con2 cpu_module.torch_launch_CON2
Con3 gpu_module.torch_launch_CON3
Pool1 npu_module.torch_launch_POOL1
Pool2 cpu_module.torch_launch_POOL2
Pool3 gpu_module.torch_launch_POOL3
对于上述注册算子以及对算子间建立映射的过程,本申请实施例称为对算子进行注册打桩的过程。并且在服务器对算子注册完成后,得到的算子注册表,将该算子注册表存储在第一设备中。
如图2所示,图2为本申请提供的一种模型比对图。图2示出了部署在第一设备的模型称为第一模型,以该第一模型可以是图2所示的特征提取模型为例,该特征提取模型包括:卷积层1(Con1)、池化层1(Pool1)、全连接层1(FC1)和激活函数层1(SOFTMAX1)。部署在第二设备中的模型称为第二模型,并且指示了第一模型和第二模型中需要进行精度比对的第一算子,如卷积层1和卷积层2。在服务器对计算设备110和计算设备120都支持的算子注册打桩完毕后,服务器将模型分别部署到计算设备110和计算设备120,计算设备110根据已注册的算子注册表,确定部署在计算设备110中第一模型和部署在计算设备120中第二模型都支持的算子,进而计算设备110对该都支持的算子进行精度比对,如精度比对是通过比对算子在不同设备中的运行数据来实现,从而确定算子在不同设备之间的运算精度差异,有利于提高模型在不同设备中运行时,算子得到的运行数据的可信度。
在一种可能的示例中,计算设备110在获取到待部署模型的信息后,根据上述表1示出的算子注册表,确定第一模型中所有算子的标识,和需进行精度比对的算子的标识。计算设备110基于上述第一模型中所有算子的标识,根据上述表2调用标识对应的接口,实现对第一模型的部署。
计算设备120部署第二模型的步骤可参考上述计算设备110部署第一模型的步骤,在此不予赘述。或者,计算设备110确定第二模型中所有算子的标识,并发送至计算设备120。计算设备120基于计算设备110发送的第二模型中所有算子的标识,查询接口关系表,确定标识对应的接口,通过调用接口实现对第二模型的部署。减少了计算设备120查询算子注册表的过程,提高了处理效率。
应理解,上述确定需进行精度比对的算子标识,可通过判断算子注册表中同一算子类型下,计算设备110和计算设备120是否有对应的算子标识确定,若有,则获取需进行精度比对的算子标识;反之,则不获取。
相较于通常技术中服务器利用PyTorch提供的钩子函数来确定待比对的算子,其仅适用于Module类算子,算子适配范围较小。本申请中计算设备110通过将计算设备110和计算设备120都支持的算子进行注册打桩,实现凡是进行了注册打桩的算子(如表1和表2所示出的算子)都能进行比对,算子适配范围变大,有利于提升模型在不同设备之间的差异检测效果,以便于确定模型在计算设备中的运算精度。
在将模型都部署到对应的计算设备上后,计算设备基于待处理数据运行模型。如图3所述,图3为本申请提供的一种模型中算子的异常检测方法的流程示意图一,该模型中算子的异常检测方法可应用于图1A所示出的检测系统。示例性的,该模型中算子的异常检测方法由图1A所示出的计算设备110执行,计算设备110可称为第一设备,运行在计算设备110上的模型称为第一模型,计算设备120可称为第二设备,运行在计算设备120上的模型称为第二模型。第一模型包括算子111、算子112以及算子11n,第二模型包括算子121、算子122以及算子12n,n为大于等于2的整数。
请参照图3,本实施例提供的模型中算子的异常检测方法包括以下步骤S310至S330。
S310、计算设备110基于待处理数据运行第一模型,以获取第一模型中第一算子的第一运行数据。
第一模型可为上述部署的模型所示的任一个,在此不予赘述。计算设备110基于该待处理数据,对第一模型进行训练、测试或处理,得到第一模型的输出数据。
示例的,当第一模型进行训练或测试时,其过程不限于将待处理数据分多次不断的输入第一模型,使第一模型不断的迭代运行;计算设备110还可仅对第一模型进行一轮训练或测试,即将一组数据输入第一模型进行处理,得到第一模型的输出结果以及第一运行数据。第一运行数据为第一模型中的第一算子在模型运行过程中产生的数据。
第一算子为第一模型包括的多个算子中任一个,该多个算子为计算设备110和计算设备120都支持的算子。示例的,如图2中所示,Con1与卷积层2(Con2)对应的算子类型Con为计算设备110与计算设备120都支持的算子,所以计算设备110将获取Con1的第一运行数据。计算设备110通过查询上述的算子注册表,确定第一模型中的Con1、Pool1、FC1和第二模型中的Con2、池化层2(Pool2)、全连接层2(FC2)为第一算子。其中,Con1与Con2将对应比对,Pool1与Pool2将对应比对,FC1与FC2将对应比对。对于SOFTMAX1由于计算设备110不支持,所以不将其作为计算设备110和计算设备120之间待比对的第一算子。
第一运行数据包括第一算子的输入数据和输出数据,如对于图2中Pool1的输出数据是将Con1的输出数据作为输入数据后处理得到的。上述Pool1的输入数据和输出数据可由向量来表示,如第一运行数据为(1,1,1,3,4,6)、(2,3,7,3,5,6)。上述第一运行数据仅为示例,不构成对本申请的限定,第一运行数据可为几十维或上百维的向量。
在一种可能的实现方式中,该第一运行数据还包括计算设备110根据运算差异值确定的第一算子的反馈信息,运算差异值是根据计算设备110中第一模型的输出数据和待处理数据的特征确定的。
该反馈信息用于指示梯度信息,该梯度信息为利用运算差异值对第一模型进行反向传播后获得的张量。张量表示一种多维数组,如可表示一维或多维的向量。
上述第一模型的输出数据为第一模型正向传播时得到的输出数据,正向传播是指对模型沿着输入处理层(如conv1)到输出处理层(如softmax1)的顺序,依次计算模型中各处理层的输出数据。应理解的,第一模型的输出数据为softmax1的输出数据。
反向传播是指计算模型参数梯度的方法。依据微积分中的链式法则,根据上述运算差异值,对模型沿着输出处理层到输入处理层的顺序,依次计算模型中各处理层的梯度信息。
在本实施例中,由于反馈信息是计算设备110根据第一模型正向传播得到的输出数据与待处理数据的特征对第一模型进行反向传播确定的。其中,计算设备110通过正向传播得到第一模型中各处理层的输出数据,计算设备110基于第一模型的输出数据和待处理数据的特征通过反向传播得到第一模型中各处理层的反馈信息。因此,当利用前述的各处理层的输出数据、输入数据和反馈信息作为运行数据进行比对时,在对模型进行一轮训练后,将得到的多组数据进行比对,相较于通常技术中仅利用处理层的输出数据进行比对,增加了比对的数据量,提高了比对效率。
请继续参见图3,本实施例提供的模型中算子的异常检测方法还包括步骤S320。
S320、计算设备110从计算设备120中获取第二运行数据。
示例性的,计算设备110可向计算设备120发送检测命令,其中,检测命令用于指示计算设备120根据待处理数据运行第二模型,计算设备120根据待处理数据运行第二模型的方法步骤,可参考S310中计算设备110根据待处理数据运行第一模型的内容,在此不予赘述。第二运行数据为第二模型运行在计算设备120中时,第二模型中第一算子的运行数据,对于第二运行数据的内容,可参考S310中第一运行数据的表述,不予赘述。
在一种可选的实现方式中,该检测命令携带有第一算子在计算设备120中的标识,该标识用于指示第二模型中的第一算子以及待传输的第一算子的第二运行数据。该标识由计算设备110根据第一算子在计算设备110中的标识(conv1)和计算设备120的属性(如GPU)查询前述实施例的算子注册表确定。
示例的,如图2所示,在第一模型中第一算子为Con1时,计算设备110基于前述的标识查询算子注册表,得到对应的第二模型中的第一算子为Con2,所以第二运行数据包括上述Con2在第二模型正向传播时的输入数据和输出数据,且还包括在第二模型反向传播时的反馈信息。通过将第一模型和第二模型中具有相同功能的第一算子,作为需进行精度比对的算子,如Pool1和Pool2、FC1和FC2。计算设备110可根据算子注册表来确定功能一致的算子在不同设备中的标识,进而将携带有算子在基准设备(本实施例是指计算设备120)中的标识的检测命令发送到基准设备,从而,计算设备110从基准设备中获取标识指示的算子的第二运行数据,并将计算设备110本地的第一运行数据和第二运行数据进行比对,实现了相同功能的算子在不同设备中的运行数据比对,避免了计算设备110将不同设备中不同功能的算子进行比对导致的差异检测出错的问题,提高了差异检测的准确性。
在一种可能的情形中,该检测命令为全局指令,在第二模型中的所有第一算子执行完毕后,将发送该所有第一算子对应的第二运行数据至计算设备110。若在计算设备110中第一算子执行完毕后,若在设定的时间(如2秒)内未收到计算设备120中对应的第一算子的第二运行数据时,计算设备110将发送催发命令至计算设备120,催发指令用于指示计算设备120对应的第一算子发送第二运行数据。
示例的,在第一模型中的Pool1执行完毕,并得到第一运行数据后,在上述设定的时间内未收到Pool2的第二运行数据,计算设备110将发送催发命令至计算设备120,以使计算设备120发送Pool2的第二运行数据。
在另一种可能的情形中,在计算设备110发送一次检测命令至计算设备120,指示第二计算设备基于待处理数据运行第二模型后,每当计算设备110上的第一算子执行完毕后,将向计算设备120发送一次检测命令,该检测命令用于指示与前述的第一算子对应的计算设备120中第一算子发送第二运行数据。举例来说,在接收到上述第二运行数据之前,计算设备110将第一模型挂起等待;或者计算设备110将第一运行数据存储至计算设备110的内存中,以等待计算设备110接收到上述第二运行数据,在此过程中,计算设备110正常运行第一模型。
下面提供了一种可选的实现方式用于在计算设备110和计算设备120间建立连接关系。
在一种可选的实现方式中,上述检测命令和第二运行数据由计算设备110和计算设备120间基于RPC建立的通道进行传输。
其中,计算设备110和计算设备120基于RPC连接的表述,可参考上述计算设备110分别和计算设备120与计算设备130利用RPC建立远程连接的内容,在此不予赘述。
示例的,如图4所示,图4为本申请提供的一种模型中算子的异常检测方法的流程示意图二,计算设备110基于RPC通道,分别向计算设备120和计算设备130发送检测命令,并实时获取到计算设备120的第二运行数据和计算设备130的第三运行数据。
基于RPC建立的通道,计算设备110发送检测命令,并接收第二运行数据和第三运行数据,避免了对该运行数据进行转发时占用的带宽、以及对该运行数据进行存储时占用的存储资源,提高了多个计算设备之间进行数据传输的效率,从而缩短了模型的差异检测时长,提高了比对效率。
请继续参见图3,本实施例提供的模型中算子的异常检测方法还包括步骤S330。
S330、计算设备110确定第一运行数据和第二运行数据的比对结果,在比对结果满足设定的条件时,确定第一算子为第一设备中的异常算子。
本实施例中,该计算设备120为差异检测的基准设备,计算设备120输出的第二运行数据为基准数据,计算设备110将第一运行数据与该基准数据进行比对,确定比对结果,该比对结果例如为相似度。
其中,相似度可为:欧式距离、余弦相似度或欧几里得距离等。上述的条件可为相似度小于或等于设定的阈值,如95%;在第一运行数据和第二运行数据的相似度小于或等于95%时,确定第一算子为第一模型运行在第一设备中的异常算子。上述数值仅为示例,不应理解为对本申请的限定。
在本实施例中,计算设备利用相似度来量化比对结果,在相似度小于或等于设定的相似度阈值的情况下,确定第一算子为模型在计算设备中运行的异常算子,从而实现模型的差异检测;该相似度还可作为该模型与计算设备之间进行硬件适配的参考信息,以使模型与该计算设备进行适配后,提高该异常算子的运算精度。
在一种可能的情形中,在确定该异常算子后,计算设备110确定异常算子的标识,并向前端输出该标识,使得有关处理人员根据该标识可定位到计算设备110的模型中对应的算子,并对该异常算子进行调试,该调试例如是指调整异常算子与计算设备110的硬件适配关系(如修改算子的参数)等。这里的前端可以是指与计算设备110连接的显示器,或者计算设备110所具备的显示屏等,本申请对此不做限定。
第一设备可在两个设备运行同样的模型的过程中,比对模型中算子在不同设备的运行数据以确定该算子是否为异常算子,避免了服务器仅能在多个设备运行模型后进行数据比对,模型的差异检测效率较低的问题。而且,第一设备无需存储第二设备中运行模型的所有数据,减少了第一设备中存储资源的占用,以及减少了运行数据从第二设备→存储设备(如服务器)→第一设备的数据拷贝和传输时间,缩短了差异检测所需的时长,提升了模型的差异检测效率。
应理解,以上实施例是以两个计算设备均在运行模型的过程中进行差异检测的,即动态检测。但在一些可能的示例中,也可以是服务器获取不同设备运行模型产生的中间数据或者输出的结果来进行模型的差异检测,即静态检测。当本申请提供的差异检测方法应用在静态检测场景中时,相较于通常技术中服务器仅能对Module类算子的数据进行比对,本实施例提供的技术方案中,计算设备可对多个计算设备都支持的算子进行数据比对,提高了模型在不同设备中的差异检测范围,在模型与计算设备进行重新适配后,有利于提高模型在计算设备中的运算精度。
在本申请的另一实施例中,计算设备可包括多个处理单元,如同时包括NPU和GPU,NPU和GPU通过上述的硬件通信信道连接,计算设备在NPU和GPU上运行相同的模型,并对应得到第一算子的第一运行数据和第二运行数据。NPU通过内存或者临时文件进行数据传输,得到第二运行数据。NPU确定第一运行数据和第二运行数据的比对结果,根据该比对结果确定该算子为NPU上运行模型中的异常算子。NPU和GPU通过上述的硬件通信信道传输数据,降低了数据的传输时延,缩短模型的差异检测时长。对于获取第一运行数据和第二运行数据,以及将第一运行数据和第二运行数据进行比对的详细内容,可参见上述实施例的表述,在此不予赘述。
可以理解的是,为了实现上述实施例中的功能,处理设备包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
上文中结合图1A至图4,详细描述了根据本实施例所提供的模型中算子的异常检测方法,下面将结合图5,描述根据本实施例所提供的模型中算子的异常检测装置。
图5为本申请提供的模型中算子的异常检测装置的结构示意图。该模型中算子的异常检测装置可以用于实现上述方法实施例中处理器的功能,因此也能实现上述方法实施例所具备的有益效果。在本实施例中,该模型中算子的异常检测装置可以是应用于计算设备110、计算设备120或计算设备130的模块(如芯片)。
如图5所示,模型中算子的异常检测装置500包括运行模块510、获取模块520和确定模块530。模型中算子的异常检测装置500用于实现上述图2至图4中所示的方法实施例中的功能。
运行模块510,用于基于待处理数据运行第一模型,以获取第一模型中第一算子的第一运行数据。
第一模型可为上述部署的模型所示的任一个,在此不予赘述。示例的,该第一模型可以为图2所示的特征提取模型,该特征提取模型,包括卷积层1、池化层1、全连接层1和激活函数层1,对应的算子标识为Con1、Pool1、FC1、SOFTMAX1。对应的待处理数据包括其对应的特征,计算设备110基于该待处理数据,对第一模型进行训练、测试或处理,得到第一模型的输出数据。
获取模块520,用于计算设备110从计算设备120中获取第二运行数据。
确定模块530,用于确定第一运行数据和第二运行数据的比对结果,在比对结果满足设定的条件时,确定第一算子为第一设备中的异常算子。
通过将计算设备作为基准设备,计算设备得到的第二运行数据为基准数据,计算设备基于该基准数据,与第一运行数据进行比对,实现对计算设备上的第一算子进行异常检测。
应理解,根据本申请实施例的计算设备110、计算设备120或计算设备130可对应于申请实施例中的模型中算子的异常检测装置500,并可以对应于执行根据本申请实施例的方法图2~图4对应的相应主体,并且模型中算子的异常检测装置500中的各个模块的操作和/或功能分别为了实现图2至图4中对应实施例的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例提供的一种处理设备,如图6所示,图6为本申请提供的一种处理设备的结构示意图。该处理设备可应用于图1A所示的检测系统中,该处理设备可以为计算设备110、计算设备1120或计算设备130任一个。
处理设备600具体可以为手机、平板电脑、电视(也可称为智能电视、智慧屏或大屏设备)、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、手持计算机、上网本、个人数字助理(Personal DigitalAssistant,PDA)、可穿戴电子设备(例如:智能手表,智能手环,智能眼镜)、车载设备、虚拟现实设备等具有运行模型功能的处理设备。
如图6所示,处理设备600可以包括处理器610、存储器620、通信接口630和总线640等,处理器610、存储器620、通信接口630通过总线640连接。
可以理解的是,本发明实施例示意的结构并不构成对处理设备的具体限定。在本申请另一些实施例中,处理设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器610可以包括一个或多个处理单元,例如:处理器610可以包括AP,调制解调处理器,CPU,GPU,ISP,控制器,存储器,视频编解码器,DSP,基带处理器,和/或NPU等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器610中还可以设置内部存储器,用于存储指令和数据。在一些实施例中,处理器610中的内部存储器为高速缓冲存储器。该内部存储器可以保存处理器7610刚用过或循环使用的指令或数据。如果处理器610需要再次使用该指令或数据,可从所述内部存储器中直接调用。避免了重复存取,减少了处理器610的等待时间,因而提高了系统的效率。
存储器620可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器610通过运行存储在内部存储器620的指令,从而执行处理设备600的各种功能应用以及数据处理。内部存储器620可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如运行模型功能,发送功能等)等。存储数据区可存储处理设备600使用过程中所创建的数据(比如运行数据,电话本等)等。此外,内部存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
通信接口630用于实现处理设备600与外部设备或器件的通信。在本实施例中,通信接口630用于与其他处理设备进行数据交互。
总线640可以包括一通路,用于在上述组件(如处理器610、存储器620、通信接口630)之间传送信息。总线640除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线640。总线640可以是PCIe总线,EISA总线、Ubus或UB、CXL、CCIX等。
值得说明的是,图6中仅以处理设备600包括1个处理器610和1个存储器620为例,此处,处理器610和存储器620分别用于指示一类器件或设备,具体实施例中,可以根据业务需求确定每种类型的器件或设备的数量。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。

Claims (21)

1.一种模型中算子的异常检测方法,其特征在于,所述方法包括:
第一设备基于待处理数据运行模型,以获取所述模型中第一算子的第一运行数据;所述第一算子为所述模型包括的多个算子中任一个;
第一设备从第二设备中获取第二运行数据;所述第二运行数据为所述模型运行在所述第二设备中时,所述模型中第一算子的运行数据;
所述第一设备确定所述第一运行数据和所述第二运行数据的比对结果,在所述比对结果满足设定的条件时,确定所述第一算子为所述第一设备中的异常算子。
2.根据权利要求1所述的方法,其特征在于,所述第一设备从所述第二设备中获取第二运行数据包括:
所述第一设备向所述第二设备发送检测命令,所述检测命令用于指示所述第二设备根据所述待处理数据运行所述模型,以得到所述第二运行数据,并向所述第一设备返回所述第二运行数据。
3.根据权利要求2所述的方法,其特征在于,所述检测命令携带有所述第一算子在所述第二设备中的标识,所述标识用于指示所述第二设备中待传输的第二运行数据。
4.根据权利要求3所述的方法,其特征在于,所述标识是所述第一设备查询算子注册表确定的,所述算子注册表包括多个设备调度所述第一算子时采用的标识,一个设备对应一个标识,所述多个设备包括所述第一设备和所述第二设备。
5.根据权利要求1所述的方法,其特征在于,所述第一运行数据用于指示:所述第一算子的输入数据和输出数据,以及所述第一设备的运算差异值确定的所述第一算子的反馈信息,所述运算差异值是根据所述第一设备中所述模型的输出数据和所述待处理数据的特征确定的。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述检测命令和所述第二运行数据由所述第一设备与所述第二设备之间的远程过程调用通道传输。
7.根据权利要求1至5中任一项所述的方法,其特征在于,所述检测命令和所述第二运行数据由所述第一设备与所述第二设备之间的硬件通信信道传输。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述比对结果为所述第一运行数据和所述第二运行数据之间的相似度,所述比对结果满足设定的条件包括相似度小于或等于相似度阈值。
9.一种模型中算子的异常检测装置,其特征在于,所述装置包括:
运行模块,用于第一设备基于待处理数据运行模型,以获取所述模型中第一算子的第一运行数据;所述第一算子为所述模型包括的多个算子中任一个;
获取模块,用于第一设备从第二设备中获取第二运行数据;所述第二运行数据为所述模型运行在所述第二设备中时,所述模型中第一算子的运行数据;
确定模块,用于所述第一设备确定所述第一运行数据和所述第二运行数据的比对结果,在所述比对结果满足设定的条件时,确定所述第一算子为所述第一设备中的异常算子。
10.根据权利要求9所述的装置,其特征在于,所述获取模块,还用于,所述第一设备向所述第二设备发送检测命令,所述检测命令用于指示所述第二设备根据所述待处理数据运行所述模型,以得到所述第二运行数据,并向所述第一设备返回所述第二运行数据。
11.根据权利要求10所述的装置,其特征在于,所述检测命令携带有所述第一算子在所述第二设备中的标识,所述标识用于指示所述第二设备中待传输的第二运行数据。
12.根据权利要求11所述的装置,其特征在于,所述标识是所述第一设备查询算子注册表确定的,所述算子注册表包括多个设备调度所述第一算子时采用的标识,一个设备对应一个标识,所述多个设备包括所述第一设备和所述第二设备。
13.根据权利要求9所述的装置,其特征在于,所述第一运行数据用于指示:所述第一算子的输入数据和输出数据,以及所述第一设备的运算差异值确定的所述第一算子的反馈信息,所述运算差异值是根据所述第一设备中所述模型的输出数据和所述待处理数据的特征确定的。
14.根据权利要求9至13中任一项所述的装置,其特征在于,所述检测命令和所述第二运行数据由所述第一设备与所述第二设备之间的远程过程调用通道传输。
15.根据权利要求9至13中任一项所述的装置,其特征在于,所述检测命令和所述第二运行数据由所述第一设备与所述第二设备之间的硬件通信信道传输。
16.根据权利要求9至15中任一项所述的装置,其特征在于,所述比对结果为所述第一运行数据和所述第二运行数据之间的相似度,所述比对结果满足设定的条件包括相似度小于或等于相似度阈值。
17.一种芯片,其特征在于,包括:处理器和供电电路,所述供电电路用于为所述处理器供电,所述处理器用于调用并运行计算机指令,以执行权利要求1至8中任一项所述的方法。
18.一种计算设备,其特征在于,包括:处理器和存储器;所述存储器存储有指令,所述处理器调用所述指令实现权利要求1至8中任一项所述的方法。
19.一种交互系统,其特征在于,包括:第一设备和第二设备;
所述第一设备和所述第二设备用于根据待处理数据运行模型,执行权利要求1至8中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序或指令,当所述计算机程序或指令被处理设备执行时,实现权利要求1至8中任一项所述的方法。
21.一种计算机程序产品,包括计算机程序或指令,其特征在于,当所述计算机程序或指令在被处理设备执行时,实现权利要求1至8中任一项所述的方法。
CN202211091169.3A 2022-09-07 2022-09-07 模型中算子的异常检测方法、装置、芯片、设备及系统 Pending CN117667662A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211091169.3A CN117667662A (zh) 2022-09-07 2022-09-07 模型中算子的异常检测方法、装置、芯片、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211091169.3A CN117667662A (zh) 2022-09-07 2022-09-07 模型中算子的异常检测方法、装置、芯片、设备及系统

Publications (1)

Publication Number Publication Date
CN117667662A true CN117667662A (zh) 2024-03-08

Family

ID=90085118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211091169.3A Pending CN117667662A (zh) 2022-09-07 2022-09-07 模型中算子的异常检测方法、装置、芯片、设备及系统

Country Status (1)

Country Link
CN (1) CN117667662A (zh)

Similar Documents

Publication Publication Date Title
CN110765024B (zh) 模拟测试方法、装置、电子设备和计算机可读存储介质
US10354031B2 (en) Information processing by interpenetrating signal transmission channel in design for testability of chip
US11893331B2 (en) Device verification method, UVM verification platform, electronic apparatus and storage medium
CN110727581B (zh) 崩溃定位方法与电子设备
US9424169B1 (en) Method of integrating heterogeneous test automation frameworks
CN110532182A (zh) 一种虚拟化平台的自动化测试方法及装置
US11663113B2 (en) Real time fault localization using combinatorial test design techniques and test case priority selection
CN112231210A (zh) 网络功能虚拟化环境下的测试方法、设备及存储介质
CN117667662A (zh) 模型中算子的异常检测方法、装置、芯片、设备及系统
CN114640614B (zh) Rpc接口自动化测试方法、系统、电子设备、介质及产品
US9003364B2 (en) Overriding system attributes and function returns in a software subsystem
CN114564241B (zh) 硬件设备的访问方法、装置、计算机设备和存储介质
CN116521530A (zh) 单元测试方法、装置、设备、存储介质和产品
CN112506781B (zh) 测试监控方法、装置、电子设备、存储介质及程序产品
CN115656788A (zh) 一种芯片测试系统、方法、设备及存储介质
US20220137125A1 (en) Method and device for testing system-on-chip, electronic device using method, and computer readable storage medium
CN113535578B (zh) 一种cts测试方法、装置及测试设备
CN115034164A (zh) 验证方法、电子设备及存储介质
CN114116509A (zh) 程序分析方法、装置、电子设备和存储介质
CN115858256A (zh) 一种物联网设备的测试方法、装置及电子设备
CN112711602B (zh) 一种存储过程的运行方法、装置,数据库系统及存储介质
CN113392010A (zh) 公共组件测试方法、装置、电子设备及存储介质
US20190251015A1 (en) Mainframe testing framework
CN110704320A (zh) 控件操作方法及装置
CN111949510B (zh) 测试处理方法、装置、电子设备及可读存储介质

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