模型评测方法、装置、电子设备和存储介质与流程

文档序号:30515137发布日期:2022-06-25 03:05阅读:90来源:国知局
模型评测方法、装置、电子设备和存储介质与流程

1.本公开涉及人工智能技术领域,尤其涉及人工智能开发技术领域,具体涉及一种模型评测方法、装置、电子设备和存储介质。


背景技术:

2.以深度学习(deep learning,dp)为代表的人工智能(artificial intelligence,ai)技术日趋成熟。在ai研究和工业化落地过程中每天都会有大量的模型被训练出来,如何高效准确的进行模型评测是ai生产中面临的重要问题之一。


技术实现要素:

3.本公开提供了一种模型评测方法、装置、电子设备和存储介质。
4.根据本公开的一方面,提供了一种模型评测方法,包括:
5.获取目标模型以及至少一个硬件设备的设备信息;
6.基于每个硬件设备的设备信息,确定该硬件设备对应的用于运行目标模型的软件开发工具包;
7.针对每个硬件设备的软件开发工具包,基于目标模型以及该软件开发工具包得到任务数据,并将任务数据分发到对应的硬件设备;
8.针对每个硬件设备,获取该硬件设备基于对应的任务数据得到的模型运行信息,并基于模型运行信息得到目标模型在该硬件设备上的指标评测结果。
9.根据本公开的另一方面,提供了一种模型评测装置,包括:
10.获取模块,用于获取目标模型以及至少一个硬件设备的设备信息;
11.工具包配置模块,用于基于每个硬件设备的设备信息,确定该硬件设备对应的用于运行目标模型的软件开发工具包;
12.任务处理模块,用于针对每个硬件设备的软件开发工具包,基于目标模型以及该软件开发工具包得到任务数据,并将任务数据分发到对应的硬件设备;
13.评测输出模块,用于针对每个硬件设备,获取该硬件设备基于对应的任务数据得到的模型运行信息,并基于模型运行信息得到目标模型在该硬件设备上的指标评测结果。
14.根据本公开的另一方面,提供了一种电子设备,包括:
15.至少一个处理器;以及
16.与该至少一个处理器通信连接的存储器;其中,
17.该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开任一实施例中的方法。
18.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行本公开任一实施例中的方法。
19.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本公开任一实施例中的方法。
20.根据本公开的技术,集成针对各种硬件设备的模型评测功能,可以基于目标模型得到针对多个硬件设备的评测结果,从而更全面地评测模型,并提高评测效率。
21.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
22.附图用于更好地理解本方案,不构成对本公开的限定。其中:
23.图1是根据本公开一实施例的模型评测方法的示意图;
24.图2是根据本公开应用示例的模型评测系统的示意图一;
25.图3是根据本公开应用示例的模型评测系统的示意图二;
26.图4是根据本公开一实施例的模型评测装置的示意图;
27.图5是根据本公开另一实施例的模型评测装置的示意图;
28.图6是用来实现本公开实施例的模型评测方法的电子设备的框图。
具体实施方式
29.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
30.目前,在ai领域,更多关注的是ai模型的设计与训练,而精度和性能等评测往往是依赖开发人员手动完成,或者通过简单的工具进行部分同类模型的精度测评,这显然不能满足规模化自动化工程应用中的模型评测需要。具体而言,ai生产中模型评测一般有如下方案:
31.1)人工手动测评:这种评测方式需要为每个模型实现一份测试代码,每次测试都通过手动运行计算出一些基本指标,然后通过人工记录和观察来评判模型的效果。到目前为止,人工评测方式在ai研发中还广泛存在。
32.2)通过工具或平台进行测评:工具或平台一般是面向具体业务场景实现,比如针对业务涉及到的nlp(natural language processing,自然语言处理)领域或图片分类领域等相关类型的模型评测。或者,工具或平台只计算对具体场景有效的少量指标以降低运算复杂度,比如进行图片分类则只获取了5个最优分类结果(top5)精度指标。或者,工具或平台是在固定的系统和设备上进行评测以获得效率提升,比如利用linux(林纳斯操作系统)上的gpu(graphics processing unit,gpu)专门做ai模型评测。
33.上述方案1)存在效率低、成本高的问题。人工评测过程中需要手动修改代码,拷贝模型,整理数据,最后需要手动收集结果进行再处理,单个模型评测耗时在小时级别。而且工作过程繁琐,容易出错,效率明显比较低,难以应对大规模评测需求,也进一步推高了企业研发成本。
34.上述方案2)通用性低且评测结果比较片面。一方面,这些评测工具/平台业务针对性比较强而通用性低,往往是只适合部分类别的ai模型评测或只能获得很有限的测试结果,而要扩展支持更多通用类别的模型和指标则需要进一步的开发或重新设计方案。另一
方面,这些评测工具/平台一般只计算精度类指标。通常,ai模型的设备适配性和不同设备上的性能指标作为评测模型在各种场景下的效能表现和实用性的重要方面,是现有方案所没有充分考虑的。因为模型在不同设备上的精度和性能表现可能完全不同。例如,主流的模型评测系统大都基于gpu以追求评测速度,而一些比较复杂的模型在gpu上与在arm(advanced risc machines,进阶精简指令集机器)cpu(central processing unit,中央处理器)上的精度因为硬件的差异可能大不相同,其计算耗时也会有明显差距。又例如,通过评测系统可以知道fastrcnn(fast-region-cnn,快速循环卷积神经网络)模型在一些端与边缘设备上可能无法运行(原因可能是其资源限制或其推理库有算子不支持等等)。
35.本公开实施例提供的方法,用于解决上述问题中的至少一个。
36.图1示出了本公开一实施例提供的模型评测方法。该方法可选地可以应用于模型评测系统,但不仅限与此。如图1所示,该方法包括:
37.步骤s110、获取目标模型以及至少一个硬件设备的设备信息;
38.步骤s120、基于每个硬件设备的设备信息,确定该硬件设备对应的用于运行目标模型的软件开发工具包(software development kit,sdk);
39.步骤s130、针对每个硬件设备的软件开发工具包,基于目标模型以及该软件开发工具包得到任务数据,并将任务数据分发到对应的硬件设备;
40.步骤s140、针对每个硬件设备,获取该硬件设备基于对应的任务数据得到的模型运行信息,并基于模型运行信息得到目标模型在该硬件设备上的指标评测结果。
41.其中,目标模型为待评测的模型。可选地,在本公开实施例中的模型可以为ai模型,例如基于深度学习的nlp类别的模型或图像处理类别的模型。其中,图像处理类别的模型可以包括用于图像分类、目标检测或图像分割等的模型。
42.可选地,每个硬件设备的设备信息可以包括该硬件设备的处理器类型、设备型号等信息。实际应用中,模型评测系统可以接入多个硬件设备,在执行模型评测方法的过程中,首先获取多个硬件设备中的全部或部分硬件设备的相关信息,则对模型在该全部或部分硬件设备上运行的指标进行评测。示例性地,硬件设备的设备信息可以通过用户输入的方式获取。例如,用户可以在操作页面上根据评测任务的需要输入设备信息,从而系统可以确定待评测的硬件设备。
43.示例性地,在本公开实施例中,硬件设备可以包括采用特定操作系统的终端设备/硬件单元,包括android(安卓)/ios(i-operating system,i-操作系统)移动端设备,如npu(neural-network processing unit,嵌入式神经网络处理器)、dsp(digital signal processing,数字信号处理)、mali gpu(mali系列图形处理器)等硬件单元,linux/windows服务器如cpu(central processing unit,中央处理器)、gpu等。
44.可选地,系统中可以预配置多种硬件设备对应的sdk,在获取至少一个硬件设备的设备信息后,系统可以自动配置对应的运行sdk。
45.可选地,分发给每个硬件设备的任务数据可以包括目标模型和上述sdk,硬件设备可以基于sdk运行目标模型,从而得到模型运行信息。在一些实施例中,任务数据还可以包括模型的测试数据集。该测试数据集可以包括至少一个测试数据,每个测试数据包括模型的输入信息例如图像或文本,并且每个输入信息对应于一个标注信息,用于与评测模型输出的预测结果进行比较以确定预测结果的好坏。
46.可选地,硬件设备输出的模型运行信息可以包括运行目标模型的运行日志、指标参数以及目标模型针对测试数据集的预测结果等。基于模型运行信息可以得到模型的各类指标检测结果。例如上述精度指标。在本公开实施例中,指标检测结果还可以包括其他方面的指标检测结果,例如性能指标、资源指标等。其中,性能指标包括硬件设备上的模型对测试数据的预处理耗时(单位:毫秒/ms)、推理耗时、后处理耗时等;资源指标包括内存占用(单位:mb)、gpu显存占用、cpu利用率、gpu利用率以及其他soc(system on chip,片上系统)设备的可用空间和计算资源的利用情况度量。
47.根据本公开的模型评测方法,在系统上集成针对各种硬件设备的模型评测功能,可以基于目标模型得到针对多个硬件设备的评测结果,从而更全面地评测模型,并提高评测效率。
48.可选地地,上述步骤s130中,针对每个硬件设备的软件开发工具包,基于目标模型以及该软件开发工具包得到任务数据,并将任务数据分发到对应的硬件设备,包括:
49.基于每个硬件设备的设备信息,确定该硬件设备对应的任务流;
50.基于与至少一个硬件设备分别对应的任务流,得到有向无环任务图;
51.执行有向无环任务图;
52.响应于在执行有向无环任务图的过程中触发第一硬件设备的模型运行任务,基于目标模型以及第一硬件设备的软件开发工具包,得到第一硬件设备对应的任务数据,并将任务数据分发到第一硬件设备。其中,上述至少一个硬件设备包括该第一硬件设备。示例性地,第一硬件设备可以是上述至少一个硬件设备中的任一硬件设备。
53.其中,有向无环任务图可以理解为以dag(directed acyclic graph,有向无环图)呈现的任务图。
54.示例性地,不同的硬件设备可以对应于不同的任务流,也可以对应于相同的任务流。一般来说,一个任务流可以包括数据准备(包括数据下载和预处理等逻辑)、配置生成、模型运行、结果收集、日志收集、指标收集等子任务。其中数据准备、配置生成、结果收集、指标收集等可以是通用的任务,可以调度在任何通用计算节点上执行。模型运行为针对硬件设备的任务,需要调度到对应的硬件设备上执行。实际应用中,可以基于计算节点的分布以及各任务的次序,得到有向无环任务图。根据该示例性方式,以有向无环图的形式执行任务,可以便于根据任务逻辑本身的并行性设置任务执行次序,从而优化任务等待情况,提高模型评测效率。
55.示例性地,每个硬件设备分别对应至少一个任务流,上述基于与至少一个硬件设备分别对应的任务流,得到有向无环任务图,包括:
56.合并至少一个任务流中相同的任务,并基于每个任务流中的各个任务的次序,得到有向无环任务图。
57.其中,合并至少一个任务流中相同的任务流,可以包括:合并不同任务流中相同的任务流。示例性地,当不同任务流中的两个任务的输入信息相同且任务类型相同,则该两个任务为相同的任务。例如,各任务流中的数据准备任务为相同的任务,可以将不同任务流中的多个数据准备任务合并成一个,并在其后分别连接不同任务流中的配置生成任务,以使系统并行地配置生成针对不同的硬件设备的任务数据。
58.根据上述方式,通过合并相同任务,以有向无环图的形式执行任务,各任务通过串
行或并行方式流式执行,可以尽可能地减少单个任务的等待时间,并充分利用任务逻辑本身的并行性提升执行速度,从而提高模型评测效率。
59.如前述说明,在本公开实施例中,基于模型运行信息可以得到模型的各类指标检测结果,各类指标包括精度指标、性能指标和资源指标等。具体地,基于模型运行信息得到目标模型在每个硬件设备上的指标评测结果,包括以下步骤中的至少之一:
60.基于模型运行信息中的模型预测结果,得到目标模型在每个硬件设备上的精度指标评测结果;该精度指标评测结果用于表征目标模型在该硬件设备上的预测精度;
61.基于模型运行信息中的运行日志和耗时信息,得到目标模型在每个硬件设备上的性能指标评测结果;该性能指标评测结果用于表征目标模型在该硬件设备上的运行速度;
62.基于模型运行信息中的运行日志和资源信息,得到目标模型在每个硬件设备上的资源指标评测结果;该资源指标评测结果用于表征目标模型对该硬件设备的资源的占用量。
63.在本公开实施例中,模型运行信息可以包括从硬件设备处收集到的模型预测结果、运行日志、运行指标如耗时、资源占用率等。
64.示例性地,模型预测结果例如是图像分类模型的分类结果(可以包括top1-top5的相似概率以及对应的类别),目标检测模型的目标框和对应的置信度,图像分割模型的分割区域信息等。
65.示例性地,精度指标评测结果包括评测得到的各类精度指标的取值或对应的等级,例如分类任务的5个最优分类结果top1-top5的得分的具体数值、map(mean average precision,平均精度均值)、精确率、召回率等。性能指标评测结果包括评测得到的各类性能指标的取值或对应的等级,例如模型对测试数据的预处理耗时、推理耗时、后处理耗时等。资源指标评测结果包括评测得到的各类资源指标的取值或对应的等级,例如gpu显存占用、cpu利用率、gpu利用率等。
66.根据上述实施方式提供的模型评测方法,支持更多通用类别的指标,可以通过计算一系列精度指标和实时获取性能指标、资源利用率等实现对模型的全方位洞察,提升模型评测的全面性。
67.可选地,上述评测结果可以以报表和图表的形式展示。例如,模型预测结果会在测试图片上直接标记方便直观查看,比如图片分类则会展示图片的原始标注标签(label),当前top1-top5的得分;目标检测则会画出所有目标框和对应置信度得分;图像分割则画出所有分割区域。各类指标可以报表形式展示。
68.可选地,模型评测方法还可以包括:
69.基于目标模型在每个硬件设备上的指标评测结果,得到目标模型的设备适配性评测结果。
70.其中,设备适配性评测结果用于表征目标模型在不同硬件设备上的性能差异。示例性地,可以对目标模型在每个硬件设备上的指标评测结果进行横向比较,得到目标模型的设备适配性评测结果。可以采用多个硬件设备的指标评测结果作为设备适配性评测结果,也可以采用运行效果最好的n个硬件设备(即最适合运行该模型的n个硬件设备)的设备信息作为设备适配性评测结果,n为预先配置的正整数。
71.根据上述方法,模型评测考虑了模型在不同设备上的精度和性能表现,有利于了
解模型在不同设备上的适配情况,评测模型的通用性。
72.可选地,模型评测方法还可以包括:
73.基于至少一个模型在目标硬件设备上的指标评测结果,得到目标硬件设备的模型适配性评测结果。
74.其中,各模型在目标硬件设备上的指标评测结果的获取过程,均可参考前述目标模型在各硬件设备上的指标评测结果的获取过程实现。
75.其中,模型适配性评测结果用于表征不同模型在目标硬件设备上的性能差异。示例性地,可以对不同模型在目标硬件设备上的指标评测结果进行横向比较,得到目标硬件设备的模型适配性评测结果。可以采用不同模型在目标硬件设备上的指标评测结果作为模型适配性检测结果,也可以采用性能指标最优的m个模型(即最适合在该硬件设备上运行的m个模型)作为模型适配性评测结果。
76.根据上述方法,可以对不同模型在同一设备发起评测并进行横向对比,则能够获得不同模型在同一设备上的精度和性能表现,有利于评测硬件设备的模型运行效能。
77.可选地,在上述方法中,可以将评测过程中产生的元数据信息,例如硬件设备的设备信息、模型名称、模型预测结果、指标评测结果等存储于基于关系型数据库的存储层,以利用其高吞吐读写能力,提高评测效率和稳定性。还可以将评测过程中利用到的模型和测试数据集存储于基于对象存储系统的存储层,从而充分利用对象存储的多媒体大数据存储能力。
78.可选地,可以在设备端设置评测节点服务模块,用以将数据、模型和推理sdk组合后在硬件设备上最终运行起来,并进行预测结果收集、运行时的指标度量收集等,为整个模型评测方法提供服务。
79.下面提供一个具体的应用示例。在该应用示例中,由模型评测系统实现上述方法,该系统可以称为全自动ai模型评测系统。具体地,如图2所示,全自动ai模型评测系统的输入包括数据集、待评测模型、可在目标平台运行模型的sdk以及其他配置信息。其中,数据集可以是开源评测集或用户自定义的数据集。其他配置信息可以包括硬件设备的设备信息、循环神经网络的输入尺寸(inputsize)、批尺寸(batchsize)等。用户只需要准备好待评测模型和测试数据集即可。在操作页面选择目标评测设备(比如选择在android系统arm gpu进行评测)后系统内部会自动配置对应的运行sdk。用户发起评测之后整个流程会自动进行,最终评测结果会以报表和图表的形式展示。ai模型评测系统的主要输出包括模型在测试数据集上的预测结果、精度指标、性能指标、资源指标等。预测结果会在测试图片上直接标记方便直观查看,比如图片分类则会展示图片的原始标注标签、当前分类结果;图片检测则会画出所有预测框和对应置信度;图像分割则画出所有分割区域;精度指标比如分类任务的5个最优分类结果(top1-top5具体得分)、检测任务的平均精度均值(map)、精确率、召回率等;性能指标包括预处理耗时(单位:毫秒/ms)、推理耗时、后处理耗时等;资源指标包括内存占用(单位:mb)、gpu显存占用、cpu利用率、gpu利用率以及其他soc设备可用空间和计算资源的利用情况度量。另一方面,用户可以对同一模型在不同服务器或端与边缘设备上同时发起评测,或者对不同模型在同一设备发起评测,这样就可以对所有的结果横向对比,得到soc设备适配性的评测结果,以展示不同设备对模型的适配情况以及不同模型的精度、性能的优劣。
80.针对上述的目标特性以及输入输出要求,全自动ai模型评测系统构架如图3所示,主要包含了业务层、服务层、数据存储层、评测节点代理(agent)模块和设备管理中心。
81.(1)业务层
82.业务层主要负责ai模型管理、评测数据集管理、评测任务管理、评测配置(如设备选择、batchsize设置等)、评测结果查询分析(如利用可视化图表展示评测结果)及历史查询结果与分析等,方便用户直接交互操作。
83.a)ai模型管理:模型管理提供了用户模型的上传、下载、更新、删除等功能。全自动ai模型评测系统具备广泛支持上传各种格式ai模型的能力,用户可上传如通用框架产出的模型以及各厂家设备专用框架对应的ai模型。
84.b)评测数据集管理:通过评测数据管理用户可以上传自己的数据集,并且可以为数据集上传标注文件,系统会自动进行校验数据及标注信息的完整性和可靠性。同时数据集模块也默认提供了开源的数据集供用户选择,如业界公认的基准数据集,这样可以节省数据集准备时间提高评测效率。
85.c)评测任务管理:准备好模型和数据集之后选择模型、数据集和目标评测设备即可新建评测任务。通过填写可选配置项比如batchsize就可以实现多batch(批数据)评测特性的使用。
86.d)评测结果查询分析:系统会自动收集模型的预测结果,性能及资源数据,最终计算出精度指标并汇总形成可视化图表。如果经过系统测试发现模型不能在某些平台适配运行则也会在结果页面展示其适配性。同时,系统也支持通过各种条件对历史评测结果进行聚合,实现评测结果模型维度或者平台设备维度横向对比的重要能力。
87.e)api(application programming interface,应用程序接口)入口:业务层的基本功能都可以通过api调用的方式完成,提供api访问的特性是为了方便用户通过系统集成方式接入自动评测能力。
88.(2)服务层
89.服务层提供了核心的评测任务调度、评测任务执行、指标计算与结果汇总能力,同时也为web业务层提供了相关功能接口。
90.a)运行试任务调度:任务调度器的基本能力包括评测任务生成,状态监测与执行调度等。此外任务管理器会将任务分解为子任务,最终以dag有向无环图的方式驱动整个任务的流式执行。这样能有效均衡任务的执行效率,充分利用计算资源,大幅提高系统吞吐能力,可以轻松实现每小时万级别的模型并发评测,并且评测规模可随着计算机设备资源的扩展持续提升。
91.b)任务执行:任务被拆分组织成dag任务图之后由执行器负责执行。一个评测任务可以拆分为数据准备(包括数据下载和预处理等逻辑)、配置生成、模型运行、结果收集、日志收集、指标收集等子任务。除了模型运行外其他的都是通用任务,可以调度到任何通用计算节点上执行。子任务通过串行或并行方式流式执行,这种方式的优点是尽可能减少了单个任务的等待时间,并充分利用任务逻辑本身的并行性提升执行速度。
92.c)指标计算与结果汇总:指标计算与结果汇总实际由划分出来的两个通用子任务来负责执行,由服务层提供底层的计算与汇总聚合引擎能力和底层接口给业务层调用。系统具备新指标计算子即时接入机制以灵活扩展指标种类动态增强评测指标全面性,适应不
同场景测试要求。
93.(3)评测代理(agent)
94.评测agent也即评测节点服务模块是部署在设备端的核心模型运行模块。它不仅负责将数据,模型和推理sdk组合后在目标设备上最终运行起来,还需要进行预测结果收集,运行时的指标度量如耗时,资源占用率。此外,还会通过日志队列实时上报运行日志,方便用户实时追踪模型执行过程和问题排查。评测agent和推理sdk都由跨平台语言实现集成了soc设备的推理库,能够在流行的操作系统如linux,windows,android和ios上执行,使用户只需关注模型本身,大大降低了评测人员负担,提升了生产效率。
95.(4)数据存储层
96.数据存储层主要包括两个子存储层,第一个是依赖于对象存储系统的ai模型和评测数据存储层,第二个是依赖于关系型数据库的元数据存储层,其中主要存放任务信息,预测结果以及指标汇总计算结果。这样的存储设计方式充分利用了对象存储的多媒体大数据存储能力和关系型数据库例如mysql的高吞吐读写能力,有助于降低成本,提升系统的稳定性和运行效率。
97.(5)设备管理中心
98.全自动ai模型评测系统具备各种异构设备的接入能力,实现了非常广泛的硬件平台适配,包括移动设备、开发板、ai计算盒、中控机和服务器等等。能够一键完成多平台横向评测,这是本公开实施例非常重要的优点之一。设备集群由设备中心子系统统一管理,支持动态扩展,设备监控等相关能力。设备通过部署评测agent即可高效便捷地自动接入到评测系统,并且开始监听对应的soc设备任务队列接收评测任务。
99.上述系统集成针对各种硬件设备的模型评测功能,可以基于目标模型得到针对多个硬件设备的评测结果,从而更全面地评测模型,并提高评测效率。
100.需要说明的是,本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
101.作为上述方法的实现,图4示出了本公开一实施例提供的模型评测装置的示意图,该装置包括:
102.获取模块410,用于获取目标模型以及至少一个硬件设备的设备信息;
103.工具包配置模块420,用于基于每个硬件设备的设备信息,确定该硬件设备对应的用于运行目标模型的软件开发工具包;
104.任务处理模块430,用于针对每个硬件设备的软件开发工具包,基于目标模型以及该软件开发工具包得到任务数据,并将任务数据分发到对应的硬件设备;
105.评测输出模块440,用于针对每个硬件设备,获取该硬件设备基于对应的任务数据得到的模型运行信息,并基于模型运行信息得到目标模型在该硬件设备上的指标评测结果。
106.图5示出了本公开另一实施例提供的模型评测装置的示意图,该装置包括:
107.获取模块510,用于获取目标模型以及至少一个硬件设备的设备信息;
108.工具包配置模块520,用于基于每个硬件设备的设备信息,确定该硬件设备对应的用于运行目标模型的软件开发工具包;
109.任务处理模块530,用于针对每个硬件设备的软件开发工具包,基于目标模型以及
该软件开发工具包得到任务数据,并将任务数据分发到对应的硬件设备;
110.评测输出模块540,用于针对每个硬件设备,获取该硬件设备基于对应的任务数据得到的模型运行信息,并基于模型运行信息得到目标模型在该硬件设备上的指标评测结果。
111.示例性地,任务处理模块530包括:
112.任务确定单元531,用于基于每个硬件设备的设备信息,确定该硬件设备对应的任务流;
113.任务调度单元532,用于基于与至少一个硬件设备分别对应的任务流,得到有向无环任务图;
114.任务执行单元533,用于执行有向无环任务图;
115.运行触发单元534,用于响应于在执行有向无环任务图的过程中触发第一硬件设备的模型运行任务,基于目标模型以及第一硬件设备的软件开发工具包,得到第一硬件设备对应的任务数据,并将任务数据分发到第一硬件设备,至少一个硬件设备包括第一硬件设备。
116.示例性地,每个硬件设备分别对应至少一个任务流,任务调度单元532用于:
117.合并至少一个任务流中相同的任务,并基于每个任务流中的各个任务的次序,得到有向无环任务图。
118.示例性地,评测输出模块540用于执行以下步骤中的至少之一:
119.基于每个硬件设备对应的模型运行信息中的模型预测结果,得到目标模型在该硬件设备上的精度指标评测结果;
120.基于每个硬件设备对应的模型运行信息中的运行日志和耗时信息,得到目标模型在该硬件设备上的性能指标评测结果;
121.基于每个硬件设备对应的模型运行信息中的运行日志和资源信息,得到目标模型在该硬件设备上的资源指标评测结果。
122.示例性地,该装置还包括:
123.第一横向评测模块550,用于基于目标模型在每个硬件设备上的指标评测结果,得到目标模型的设备适配性评测结果。
124.示例性地,该装置还包括:
125.第二横向评测模块560,用于基于至少一个模型在目标硬件设备上的指标评测结果,得到目标硬件设备的模型适配性评测结果。
126.本公开实施例各装置中的各单元、模块或子模块的功能可以参见上述方法实施例中的对应描述,在此不再赘述。
127.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
128.图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限
制本文中描述的和/或要求的本公开的实现。
129.如图6所示,电子设备600包括计算单元601,其可以根据存储在只读存储器(rom)602中的计算机程序或者从存储单元608加载到随机访问存储器(ram)603中的计算机程序来执行各种适当的动作和处理。在ram 603中,还可存储电子设备600操作所需的各种程序和数据。计算单元601、rom 602以及ram 603通过总线604彼此相连。输入输出(i/o)接口605也连接至总线604。
130.电子设备600中的多个部件连接至i/o接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许电子设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
131.计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如模型评测方法。例如,在一些实施例中,模型评测方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由rom 602和/或通信单元609而被载入和/或安装到电子设备600上。当计算机程序加载到ram 603并由计算单元601执行时,可以执行上文描述的模型评测方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行模型评测方法。
132.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
133.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
134.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom
或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
135.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入来接收来自用户的输入。
136.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
137.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
138.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
139.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1