CN114168446A - 一种面向移动端运行算法模型的模拟评测方法及设备 - Google Patents
一种面向移动端运行算法模型的模拟评测方法及设备 Download PDFInfo
- Publication number
- CN114168446A CN114168446A CN202210126304.7A CN202210126304A CN114168446A CN 114168446 A CN114168446 A CN 114168446A CN 202210126304 A CN202210126304 A CN 202210126304A CN 114168446 A CN114168446 A CN 114168446A
- Authority
- CN
- China
- Prior art keywords
- evaluation
- model
- environment
- equipment
- cloud
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Evolutionary Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供一种面向移动端运行算法模型的模拟评测方法及设备。在本申请实施例中,在面向移动端的模型评测中,针对部分设备评测环境,在云侧资源上模拟出与之适配的云评测环境,可代替部分真机设备进行模型评测,解决无法在所有真机设备进行模型评测的问题;针对另一部分设备评测环境,采用对应的真机设备进行真机评测,同时对机器学习模型进行基于真机环境的和基于云评测环境的模型评测,解决了面向真机设备的模型评测问题,为端侧智能化的落地实现提供了条件,还可兼顾基于真机环境的模型评测和基于云评测环境的模型评测的两者的评测优势,有利于提高针对机器学习模型的评测效率、评测结果的正确性和真实性,实现面向移动端的自动化评测。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种面向移动端运行算法模型的模拟评测方法及设备。
背景技术
机器学习(Machine Learning)是一门关于计算机算法的研究,它希望通过数据或以往的经验,自动地优化计算机算法(或模型)的性能。通常,机器学习模型是由机器学习工程师针对问题完成数据采集和算法设计,然后在云端使用传统的云侧机器学习框架,如TensorFlow、PyTorch进行模型训练得到的。在模型推理过程中,移动设备向云端发起模型请求,云端利用机器学习模型执行相关计算任务并将任务结果返回给移动设备,供移动设备进一步处理。这种远程使用机器学习模型的方式存在响应实时性差的问题。
随着移动设备算力的提升、模型压缩技术的成熟,可以对云侧产出的机器学习模型进行压缩和转换,得到模型体积较小、适配于移动设备的端侧机器学习模型,基于端侧机器学习模型可使模型推理过程在端侧完成,实现端侧智能化,提高模型推理效率。但是,在压缩转换之后,机器学习模型的结构和性能都会发生变化,这就有必要对压缩转换后的模型进行评测。然而,面向移动设备的模型评测是端侧智能化面临的一个痛点问题。
发明内容
本申请的多个方面提供一种面向移动端运行算法模型的模拟评测方法、设备及存储介质,用以解决面向移动设备的模型评测问题,为端侧智能化的落地实现提供条件。
本申请实施例提供一种面向移动端运行算法模型的模拟评测方法,包括:响应模型评测请求,获取待评测模型及其对应的多种设备评测环境的描述信息,待评测模型是指对原始机器学习模型进行压缩和转换得到的机器学习模型;根据多种设备评测环境的描述信息,确定待模拟的第一类设备评测环境和基于真机设备的第二类设备评测环境;在目标云侧资源上模拟与第一类设备评测环境对应的云评测环境,并在目标真机设备提供的硬件运行环境中部署软件运行环境,得到第二类设备评测环境,云评测环境与其对应的第一类设备评测环境包括相同的硬件运行环境和软件运行环境;根据第二类设备评测环境和云评测环境对待评测模型进行联合评测,以得到待评测模型的性能评测结果。
本申请实施例还提供一种面向移动端运行算法模型的模拟评测装置,包括:获取模块,用于响应模型评测请求,获取待评测模型及其对应的多种设备评测环境的描述信息,待评测模型是指对原始机器学习模型进行压缩和转换得到的机器学习模型;确定模块,用于根据多种设备评测环境的描述信息,确定待模拟的第一类设备评测环境和基于真机设备的第二类设备评测环境;构建模块,用于在目标云侧资源上模拟与第一类设备评测环境对应的云评测环境,并在目标真机设备提供的硬件运行环境中部署软件运行环境,得到第二类设备评测环境,云评测环境与其对应的第一类设备评测环境包括相同的硬件运行环境和软件运行环境;联合评测模块,用于根据第二类设备评测环境和云评测环境对待评测模型进行联合评测,以得到待评测模型的性能评测结果。
本申请实施例还提供一种计算机设备,包括:存储器和处理器;存储器,用于存储计算机程序,处理器与存储器耦合,用于执行计算机程序,以用于实现面向移动端运行算法模型的模拟评测方法。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现面向移动端运行算法模型的模拟评测方法。
在本申请实施例中,在面向移动端的模型评测中,从多种设备评测环境中确定待模拟的部分评测环境信息和基于真机设备的部分设备评测环境,针对部分设备评测环境,在云侧资源上模拟出与之适配的云评测环境,利用与设备评测环境适配的云评测环境可以代替部分真机设备进行模型评测,解决无法在所有真机设备进行模型评测的问题;针对另一部分设备评测环境,采用真机设备进行真机评测,同时对待评测的机器学习模型进行基于真机环境的模型评测和基于云评测环境的模型评测,解决了面向真机设备的模型评测问题,为端侧智能化的落地实现提供了条件。
进一步,在本申请实施例中,一方面基于真机环境的模型评测能够保证模型评测结果的正确性和真实性;另一方面基于云评测环境的模型评测可利用云侧资源的优势,不仅可代替更多真机设备进行模型评测,而且可完成大规模数据集的评测,有利于提高机器学习模型的评测效率和覆盖范围,在一定程度上能够弥补在真机设备上进行模型测试所存在的模型评测稳定性较差的问题。进一步地,兼顾基于真机环境的模型评测和基于云评测环境的模型评测的两者的评测优势,满足面向移动端运行的模型精度和模型运行性能的评测任务,提高了针对机器学习模型的评测效率、评测结果的正确性和真实性,实现面向移动端的模型自动化评测。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种面向移动端运行算法模型的模拟评测方法的流程示意图;
图2为一种示例性的端智能化的开发流程图;
图3为本申请实施例提供的一种评测系统的结构示意图;
图4为本申请实施例提供的一种面向移动端运行算法模型的模拟评测方法的交互流程图;
图5为本申请实施例提供的一种面向移动端运行算法模型的模拟评测装置的结构示意图;
图6为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了实现端侧智能化,可以对云侧产出的机器学习模型进行压缩和转换,得到模型体积较小、适配于移动设备的端侧机器学习模型,基于端侧机器学习模型可使模型推理过程在端侧完成,实现端侧智能化,提高模型推理效率。其中,模型在压缩和转换前后的结构和性能会发生一些变化,为了保证压缩和转换后的新模型能与移动设备适配,有必要对新模型进行评测。例如,模型在压缩和转换前后可能变更机器学习框架,例如:从云侧使用的TensorFlow变更为端侧使用的MNN,这需要验证新模型在新框架上的精度相较于原模型在原框架上的精度是否基本保持一致,从而降低压缩和转换步骤给模型引入的误差,降低算法的效果。又例如,考虑到移动设备的资源(例如:算力、内存、带宽)与云端相比较为有限,因此还需要对新模型在端侧执行的资源消耗进行评测,检验新模型在端侧部署的可行性和稳定性。
然而,面向移动设备的模型评测是端侧智能化面临的一个痛点问题。之所以是痛点问题,是因为:
第一:移动设备碎片化严重,难以覆盖所有真机设备完成全量评测。移动设备的计算单元、OS(operating system,操作系统)、硬件资源存在较大差异性,累计设备种类超500种。若对每个转换出的模型都在所有设备种类上分别完成真机评测,其工程量和时间代价难以承受。其中,移动设备的计算单元例如包括但不限于:ARM(Advanced RISC Machines)、CPU(中央处理器,central processing unit)、GPU(图形处理器,graphics processingunit)、NPU(Neural-network Processing Unit,嵌入式神经网络处理器)。OS包括但不限于:iOS(苹果)、Android(安卓)、鸿蒙系统。硬件资源例如包括但不限于:内存、显卡、带宽等等。
第二:移动设备设计轻量化,难以支持复杂且繁重的模型评测。单台移动设备的算力、存储、内存有限,而完整模型评测所用的测试集通常包含万级别甚至亿级别的数据,数据总量可达GB级别。若将这些数据下载到移动设备,并且在移动设备上全部经由模型执行完成评测,不仅链路复杂度高难以实现自动化,同时移动设备也无法很好地完成模型评测任务。另外,移动设备和服务器稳定的长连接也是一个问题,经常会出现移动设备掉线等情况,因此模型评测的稳定性也存在挑战。
针对上述技术问题,在本申请实施例中,在面向移动端的模型评测中,从多种设备评测环境中确定待模拟的部分评测环境信息和基于真机设备的部分设备评测环境,针对部分设备评测环境,在云侧资源上模拟出与之适配的云评测环境,利用与设备评测环境适配的云评测环境可以代替部分真机设备进行模型评测,解决无法在所有真机设备进行模型评测的问题;针对另一部分设备评测环境,采用真机设备进行真机评测,同时对待评测的机器学习模型进行基于真机环境的模型评测和基于云评测环境的模型评测,解决了面向真机设备的模型评测问题,为端侧智能化的落地实现提供了条件。进一步,利用与设备评测环境适配的云评测环境可以代替部分真机设备进行模型评测,使得只需采用少量真机设备进行模型评测,大部分模型评测转移到云侧完成,这在很大程度上解决了真机设备因其算力、存储、内存等资源有限无法很好地完成模型评测任务以及用于模型评测的长连接不稳定等问题。
进一步,在本申请实施例中,一方面基于真机环境的模型评测能够保证模型评测结果的正确性和真实性;另一方面基于云评测环境的模型评测可利用云侧资源的优势,不仅可代替更多真机设备进行模型评测,而且可完成大规模数据集的评测,有利于提高机器学习模型的评测效率和覆盖范围,在一定程度上能够弥补在真机设备上进行模型测试所存在的模型评测稳定性较差的问题。进一步地,兼顾基于真机环境的模型评测和基于云评测环境的模型评测的两者的评测优势,满足面向移动端运行的模型精度和模型运行性能的评测任务,提高了针对机器学习模型的评测效率、评测结果的正确性和真实性,实现面向移动端的模型自动化评测。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请实施例提供的一种面向移动端运行算法模型的模拟评测方法的流程示意图。参见图1,该方法可以包括以下步骤:
101、响应模型评测请求,获取待评测模型及其对应的多种设备评测环境的描述信息,待评测模型是指对原始机器学习模型进行压缩和转换得到的机器学习模型。
102、根据上述多种设备评测环境的描述信息,确定待模拟的第一类设备评测环境和基于真机设备的第二类设备评测环境。
103、在目标云侧资源上模拟与第一类设备评测环境对应的云评测环境,并在目标真机设备提供的硬件运行环境中部署软件运行环境,得到第二类设备评测环境,其中,云评测环境与其对应的第一类设备评测环境包括相同的硬件运行环境和软件运行环境。
104、根据目标真机设备提供的第二类设备评测环境和目标云侧资源提供的云评测环境对待评测模型进行联合评测,以得到待评测模型的性能评测结果。
为了便于理解,结合图2对端智能的开发流程进行简单说明。首先对需要开发机器学习模型的应用场景进行问题定义,以及基于定义的问题进行需求分析;接着,根据需求分析确定需要采集哪些数据,并利用诸如手机、平板电脑、IOT(Internet of things,物联网)设备、可穿戴设备、车载设备等端侧设备进行数据采集;接着,将端侧采集的数据作为训练数据,结合训练数据进行算法设计,确定机器学习模型的模型结构;基于训练数据和模型结构进行模型训练,得到原始机器学习模型。其中,该原始机器学习模型的训练过程可以在云侧完成,例如可以是基于适用于云侧的Tensorflow开发框架开发出的Tensorflow模型、基于适用于云侧的PyTorch开发框架训练出的PyTorch模型或者是基于适用于云侧的Caffe开发框架开发出的Caffe模型。在此说明,原始机器学习模型的训练过程并不限于采用适用于云侧的机器学习框架进行训练,也可以在端侧采用适用于端侧的机器学习框架训练得到。接着,在模型训练结束后,对模型训练出的原始机器学习模型进行压缩和转换。压缩和转换,主要是优化模型大小,例如可以通过剪枝、量化等手段降低模型大小,改变模型框架等,以便模型在端侧使用。压缩转化后的机器学习模型例如可以为基于TFLite开发框架的TFLite模型或基于MNN开发框架的MNN模型或者是基于PyTorch Mobile开发框架的机器学习模型。对压缩后的机器学习模型进行评测,评测通过的机器学习模型可被部署到端侧进行推理运行,进一步结合推理结果对应用场景进行分析决策。
值得说明的是,Tensorflow开发框架、PyTorch开发框架、Caffe开发框架、TFLite开发框架、MNN开发框架等均为一种机器学习开发框架,机器学习开发框架本质上是一种编程库或工具,目的是能够让开发人员更容易、更快速地构建机器学习模型。机器学习开发框架不仅可以开发机器学习模型,还可以为开发出的机器学习模型提供机器学习推理引擎,或者作为机器学习模型的推理引擎,从而为机器学习模型提供运行环境。
在此对几种深度学习开发框架进行说明。Tensorflow开发框架是使用C++语言开发的开源数学计算软件和使用数据流图(Data Flow Graph)的形式进行计算的一种用于机器学习和深度学习的端到端开发框架。TFLite开发框架相对于Tensorflow开发框架是个轻量化版本的适配移动设备硬件资源环境的机器学习开发框架。PyTorch开发框架是使用Python编程语言开发的机器学习开发框架。Caffe开发框架是是一个兼具表达性、速度和思维模块化的机器学习开发框架。PyTorch Mobile开发框架相对于PyTorch开发框架是个轻量化版本的、适配移动设备硬件资源环境的机器学习开发框架。MNN开发框架是一种高性能的深度学习开发框架。其中,机器学习开发框架Tensorflow、PyTorch或Caffe更适合云侧,而机器学习开发框架TFLite或MNN或PyTorch Mobile更适合于端侧。
在本实施例中,将上述对原始机器学习模型进行压缩和转换得到的机器学习模型称为待评测模型,待评测模型是需要在移动设备上运行的机器学习模型,在部署到移动设备之前需要先经过模型评测,以确定模型在移动上的运行效果。作为一种示例,可以采用适用于云侧的机器学习框架进行模型训练,得到原始机器学习模型;根据适用于端侧的机器学习框架,对原始机器学习模型进行压缩和转换,得到待评测模型。其中,根据适用于端侧的机器学习框架,对原始机器学习模型进行压缩和转换是指参照适用于端侧的机器学习框架所支持的模型算子、模型大小、模型结构等对原始机器学习模型进行算子融合,量化,压缩等处理,最终得到与适用于端侧的机器学习框架适配的待评测模型,一方面可采用适用于端侧的机器学习框架对待评测模型进行性能评测,另一方面在待评测模型通过性能评测之后,还可以采用适用于端侧的机器学习框架对通过性能评测的模型进行模型推理。
其中,原始机器学习模型可以是在云服务器上采用适用于云侧的机器学习框架进行模型训练得到的机器学习模型,具体是指利用云服务器的云侧资源和支持的机器学习开发框架开发出机器学习模型。或者,原始机器学习模型可以是在端侧设备上训练出来的机器学习模型,具体是指利用端侧设备的端侧资源和支持的机器学习开发框架开发出机器学习模型。由于开发原始机器学习模型的端侧设备与需要部署待评测模型的端侧设备在硬件运行环境和软件运行环境方面有所差异,于是,需要对原始机器学习模型进行压缩和转换得到的待评测模型进行评测。在此说明,在本申请实施例中,端侧设备是与云侧资源相对的资源设备,至少包括移动设备。另外,在模型评测过程中,为便于区分和描述,会将移动设备称为真机设备。
在本实施例中,模型评测请求可以由用户按需触发,该用户例如可以是机器学习模型的算法开发人员,或是负责机器学习模型评测的运维人员,模型评测请求也可以在满足设定触发条件的情况下自动触发,该模型评测请求用于请求对待评测模型在多种设备评测环境进行评测。对模型评测请求进行解析,以获取待评测模型及其对应的多种设备评测环境的描述信息。设备评测环境的描述信息用于描述对将要应用于真机设备的待评测模型进行评测所需的评测环境,这些设备评测环境是指真机设备在实际应用中运行待评测模型时需要提供的运行环境,同样也是在真机设备上对待评测模型进行评测所需要的运行环境,运行环境主要包括真机设备在运行待评测模型时所能提供的硬件运行环境和/或软件运行环境。可选的,每种设备评测环境的描述信息包括对端侧(也就是移动设备)用于模型评测的硬件运行环境进行描述的硬件描述信息和对端侧用于模型评测的软件运行环境进行描述的软件描述信息。这里的硬件运行环境和软件运行环境主要是指在真机设备上运行端侧机器学习模型所依赖的硬件环境和软件环境。硬件运行环境例如包括但不限于:CPU(中央处理器,Central Processing Unit)及其参数指标、GPU(图形处理器,GraphicsProcessing Unit)及其参数指标、NPU(Neural-network Processing Unit,嵌入式神经网络处理器)及其参数指标、内存及其参数指标、显卡及其参数指标、带宽。软件运行环境例如包括但不限于:操作系统OS(Operating System,操作系统)及其版本、机器学习推理引擎及其版本、数据库及其参数指标等等。
进一步可选的,模型评测请求中携带待评测模型对应的评测任务标识,可以根据模型评测请求中的评测任务标识,获取待评测模型及其对应的多种设备评测环境的描述信息。
具体而言,在对待评测模型进行评测之前时,可以为待评测模型创建一个评测任务,该评测任务的相关信息例如可以包括但不限于:作为评测任务唯一标识的评测任务标识、任务名称、待评测模型的模型文件的获取地址、评测数据集的获取地址、模型输入参数、模型输出参数、性能评测指标项、模型评测所需的多种设备评测环境的描述信息。需要说明的是,上文提到的与评测任务相关的信息(包括多种设备评测环境的描述信息在内)可以在模型评测之前预先存储,但不限于此,例如也可以是在用户提交模型评测请求时随着模型评测请求同步提交。
其中,待评测模型的模型文件的获取地址用于获取待评测模型的模型文件。评测数据集的获取地址用于从评测数据管理端获取待评测模型的评测数据集。其中,评测数据管理端至少存储各个需要评测的机器学习模型的评测任务标识及其评测数据集。评测数据集可以包括多个数据对,每个数据对的表现形式为:<模型输入数据,预期模型输出数据>。模型输入参数例如包括但不限于:模型输入数据的数据类型、数据格式和每轮模型训练的批尺寸(batchsize)。模型输出参数例如包括但不限于:模型输出数据的数据类型、数据格式和每轮模型训练输出结果的batchsize。
上述性能评测指标项是指需要对待评测模型进行评测的性能指标项,例如包括但不限于:与模型精度相关的Accuracy(正确率)、Precision(准确率)、Recall(召回率)、AUC(曲线下面积),或者,与模型运行性能相关的内存占用、CPU耗用、推理平均耗时等等。上述多种设备评测环境的描述信息用于对待评测模型进行模型评测所需的端侧运行环境进行描述,运行环境包括硬件运行环境和软件运行环境,具体可参见前述实施例,在此不再赘述。
基于上述,在一可选实施例中,可以根据模型评测请求中的评测任务标识,获取对应的评测任务的相关信息,根据相关信息中待评测模型的模型文件的获取地址,可以获取到待评测模型的模型文件。在本实施例中,获取到待评测模型的模型文件也即指获取到待评测模型。进一步,从评测任务的相关信息中获取待评测模型涉及的多种设备评测环境的描述信息。
在本实施例中,考虑到无法在所有真机设备上对待评测模型进行真机评测,故可以针对多种设备评测环境的描述信息,确定待模拟的第一类设备评测环境信息和需要基于真机设备的第二类设备评测环境;第一类设备评测环境是指需要使用云评测环境进行模拟的设备评测环境,第二类设备评测环境是指由真机设备直接提供的设备评测环境。于是,针对待模拟的第一类设备评测环境信息,在目标云端资源上模拟出与其对应的云评测环境,该云评测环境与其对应的第一类设备评测环境信息具有相同的硬件运行环境和软件运行环境,因此可以代替真机设备对待评测模型进行评测。对于第二类设备评测环境,可以直接在目标真机设备提供的硬件运行环境中部署第二类设备评测环境要求的用于模型评测的软件运行环境,即可得到基于真机设备的第二类设备评测环境。
在本申请实施例中,不仅支持基于真机设备的模型评测模式,还支持基于云评测环境的模型评测模式。其中,基于云评测环境的模型评测模式是指在云侧资源模拟出与第一类设备评测环境所涉及的硬件运行环境和软件运行环境均相同的云评测环境,利用该云评测环境进行模型评测的模式。基于真机环境的模型评测模式是指在真机设备提供的真机评测环境中进行模型评测。其中,云评测环境和真机环境都属于用于模型评测的评测环境。本实施例的云评测环境是指采用虚拟化技术对第一类设备评测环境进行模拟得到的评测环境,例如,云评测环境可以是在ARM服务器上基于MNN引擎构建的评测环境,还可以是在ARM服务器上通过虚拟化技术模拟运行Android系统,然后在其中构建MNN评测环境。无论是哪类设备评测环境都包括硬件运行环境和软件运行环境。
其中,每种设备评测环境的描述信息包括硬件描述信息和软件描述信息,硬件描述信息用于描述对应设备评测环境所要求的硬件运行环境的相关信息,例如硬件运行环境所需硬件资源的类型、资源占用量等;软件描述信息用于描述对应设备评测环境所要求的软件运行环境的相关信息,例如软件运行环境所要求的操作系统的类型、版本、用于待评测模型的端侧机器学习推理引擎等。在本实施例中,并不限定根据多种设备评测环境的描述信息,确定待模拟的第一类设备评测环境和基于真机设备的第二类设备评测环境的详细实施方式。下面举例说明:
方式1:根据多种设备评测环境的硬件描述信息,结合设定的数量比例,选择至少两种设备评测环境作为待模拟的第一类设备评测环境,并将其余设备评测环境作为基于真机设备的第二类设备环境信息。
可选地,在每种设备评测环境的软件描述信息相同的情况下,则可以单独根据多种设备评测环境的硬件描述信息,确定多种设备评测环境要求的硬件运行环境的类型和资源占用量;根据多种设备评测环境要求的硬件运行环境的资源类型和资源占用量,结合设定的数量比例,选择至少两种设备评测环境作为待模拟的第一类设备评测环境。例如,可以结合硬件运行环境的类型和资源占用量,选择80%以上的设备评测环境采用云评测环境进行模拟,有利于充分发挥云侧资源的优势,降低真机评测的成本。例如,可以根据硬件运行环境的资源类型和资源占用量,确定采用真机设备实现时的成本,优先选择成本较高的设备评测环境作为待模拟的第一类设备评测环境。又例如,可以根据硬件运行环境的资源类型和资源占用量,确定特定资源类型或资源占用量较大的设备评测环境作为待模拟的第一类设备评测环境。
当然,在每种设备评测环境的软件描述信息不相同的情况下,也可以单独根据多种设备评测环境的硬件描述信息确定待模拟的第一类设备评测环境,详细实施方式参见上文,在此不再赘述。
方式2:根据多种设备评测环境的软件描述信息,结合设定的数量比例,选择至少两种设备评测环境作为待模拟的第一类设备评测环境,并将其余设备评测环境作为基于真机设备的第二类设备环境信息。
可选地,在每种设备评测环境的软件描述信息不相同的情况下,根据多种设备评测环境的软件描述信息,确定待模拟的第一类设备评测环境。例如,根据每种设备评测环境的软件描述信息,确定每种设备评测环境要求的软件运行环境的操作系统的类型、版本、用于待评测模型的端侧机器学习推理引擎等信息,可以选择特定类型的操作系统对应的设备评测环境作为待模拟的第一类设备评测环境,或者,也可以选择特定版本的操作系统对应的设备评测环境作为待模拟的第一类设备评测环境,或者,也可以选择要求特定的端侧机器学习推理引擎的设备评测环境作为待模拟的第一类设备评测环境,或者也可以根据端侧机器学习推理引擎的资源消耗,选择资源消耗较大的端侧机器学习推理引擎对应的设备评测环境作为待模拟的第一类设备评测环境,等等。另外,也可以采用前文列举的两种或两种以上选择方式的组合来确定待模拟的第一类设备评测环境。
方式3:根据多种设备评测环境的硬件描述信息和软件描述信息,结合设定的数量比例,选择至少两种设备评测环境作为待模拟的第一类设备评测环境,并将其余设备评测环境作为基于真机设备的第二类设备环境信息。
在多种设备评测环境的硬件描述信息和软件描述信息均有所不同的情况下,可以同时结合设备评测环境的硬件描述信息和软件描述信息,以及设定的数量比例,例如不少于50%,或者不超过90%,或者80%等,来确定待模拟的第一类设备评测环境。在具体确定过程中,可根据硬件描述信息所限定的硬件运行环境的资源类型和资源占用量,以及软件描述信息所限定的操作系统的类型、版本、端侧机器学习推理引擎的类型和资源消耗等,综合确定待模拟的第一类设备评测环境。
基于上述,可确定出待模拟的第一类设备评测环境之后,其余设备评测环境即为基于真机设备的第二类设备评测环境。进一步,可以在云侧资源上构建出与模型评测所需的第一类设备评测环境一样的评测环境。为了便于理解,将云侧资源上构建出的与模型评测所需的第一类设备评测环境一样的评测环境称作云评测环境,以及将构建了云评测环境的云侧资源称作目标云侧资源。目标云侧资源包括但不限于:ARM服务器等各种云计算资源、ODPS、ODS等各种云存储资源等。于是,在本实施例中,在目标云侧资源上模拟与第一类设备评测环境对应的云评测环境,云评测环境与其对应的第一类设备评测环境包括相同的硬件运行环境和软件运行环境。值得注意的是,目标云侧资源可以看作是在云侧模拟出的模拟设备,模拟设备是与端侧的真机设备相对而言的。例如,端侧的真机设备是真实的手机、平板电脑、IOT设备、可穿戴设备、车载设备。模拟设备则是在云侧模拟出的模拟手机、模拟平板电脑、模拟IOT设备、模拟可穿戴设备、模拟车载设备等等,模拟设备具有与真机设备相同的硬件运行环境和软件运行环境。
具体应用时,第一类设备评测环境的描述信息包括硬件描述信息和软件描述信息,则在目标云侧资源上模拟与第一类设备评测环境对应的云评测环境的一种可选实施方式是:根据第一类设备评测环境的硬件描述信息,从云侧资源中选择硬件运行环境与第一类设备评测环境要求的硬件运行环境相同的云侧资源作为目标云侧资源;根据第一类设备评测环境的软件描述信息,在目标云侧资源上构建第一类设备评测环境要求的软件运行环境,以得到第一类设备评测环境对应的云评测环境。例如,第一类设备评测环境的硬件描述信息指示采用支持ARM指令集的真机设备进行评测,从多个云服务器中选择采用支持ARM指令集的云服务器作为目标云侧资源;若第一类设备评测环境的软件描述信息指示真机设备需配置安卓系统和MNN推理引擎,则在目标云侧资源上部署安卓系统和MNN推理引擎。
进一步可选的,为了提高针对待评测模型的评测结果的正确性和真实性,可以将目标云侧资源上部署与待评测模型评测所需的操作系统和端侧机器学习推理引擎。其中,待评测模型对应的机器学习开发框架与端侧机器学习推理引擎所属的机器学习开发框架一致,例如,待评测模型是基于MNN开发框架的机器学习模型,则端侧机器学习推理引擎是MNN推理引擎。又例如,待评测模型是基于TFLite开发框架的机器学习模型,则端侧机器学习推理引擎是TFLite推理引擎。
基于上述,根据第一类设备评测环境的软件描述信息,在目标云侧资源上构建第一类设备评测环境中的软件运行环境,以得到第一类设备评测环境对应的云评测环境的一种可选实施方式是:根据第一类设备评测环境的软件描述信息,获取第一类设备评测环境要求的操作系统以及与待评测模型适配的端侧机器学习推理引擎;根据第一类设备评测环境要求的操作系统,采用虚拟化技术在目标云侧资源上构建目标容器,在目标容器中部署端侧机器学习推理引擎,以得到第一类设备评测环境对应的云评测环境。值得注意的是,第一类设备评测环境中的不同设备评测环境所要求的端侧机器学习推理引擎可以相同,也可以不同,对此不做限定。
在本实施例中,目标容器所依赖的操作系统需要与第一类设备评测环境要求的操作系统相同。实际应用中,目标云侧资源的操作系统可能与第一类设备评测环境要求的操作系统相同或不同,针对这种情形,需要进行区分性构建目标容器。于是,在一可选实施方式中,根据第一类设备评测环境要求的操作系统,采用虚拟化技术在目标云侧资源上构建目标容器具体是:若第一类设备评测环境要求的操作系统与其对应目标云侧资源的操作系统相同,则在目标云侧资源上构建依赖宿主操作系统的第一容器作为目标容器;若第一类设备评测环境要求的操作系统与其对应目标云侧资源的操作系统不相同,则在目标云侧资源上构建自带操作系统的第二容器作为目标容器,第二容器自带的操作系统与第一类设备评测环境要求的操作系统相同。
值得注意的是,宿主操作系统即为目标云侧资源的操作系统。若第一类设备评测环境要求的操作系统是Linux操作系统,例如有很多IOT设备是基于Linux操作系统的,且宿主操作系统(即目标云侧资源的操作系统)也是Linux操作系统,则第一容器无需自带操作系统,该第一容器依赖宿主操作系统运行,基于第一容器模拟出的云评测环境用以代替基于Linux操作系统的真机环境;若第一类设备评测环境要求的操作系统是Android操作系统,宿主操作系统(即目标云侧资源的操作系统)是Linux操作系统,则第二容器需要自带操作系统,且自带的操作系统为Android操作系统。
在本实施例中,为了提高评测结果的正确性和真实性,还支持基于真机环境的模型评测模式,也即在真机设备上对待评测模型进行评测。基于此,需要确定能够提供第二类设备评测环境的目标真机设备。于是,在本实施例中,根据第二类设备评测环境的描述信息,从可提供第二类设备评测环境要求的硬件运行环境的真机设备中选择目标真机设备,并在目标真机设备上部署对应第二类设备评测环境中的软件运行环境,以得到第二类设备评测环境。
实际应用中,真机设备的厂商多和机型多,造成真机设备种类繁多。进一步可选的,为了使得待评测模型的评测能够覆盖更加全面的真机设备,根据第二类设备评测环境的描述信息,选择目标真机设备的一种实施方式是:根据第二类设备评测环境的描述信息,确定可提供第二类设备评测环境中的硬件运行环境的真机设备;根据真机设备的多维度属性信息,将真机设备划分为多类,从每类真机设备中选择部分真机设备作为目标真机设备。
具体而言,真机设备的多维度属性信息例如包括但不限于:厂商名称、用户数量、CPU的参数指标、GPU参数指标、NPU参数指标、内存及其参数指标、显卡及其参数指标、带宽等等。例如,按照厂商名称可以将真机设备分为不同厂商的真机设备;按照用户数量可以将真机设备分为用户数量多的主流设备和用户数量少的非主流设备;按照CPU的参数指标、GPU参数指标、NPU参数指标、内存及其参数指标、显卡及其参数指标、带宽等一种或多种硬件指标的参数指标从高到低划分为不同级别的真机设备。当然,具体分类策略根据实际应用需求而定。
在本实施例中,在对真机设备进行分类后,可以从各个类别下的真机设备中选择部分真机设备作为目标真机设备进行真机评测,部分真机设备可以是一个或多个。应理解,真机评测覆盖不同类别的真机设备,能够提高待评测模型的评测结果的正确性和真实性。
在本实施例中,在目标真机设备构建出的第二类设备评测环境和目标云侧资源构建出云评测环境后,可根据目标真机设备提供的第二类设备评测环境和云侧资源提供的云评测环境对待评测模型进行联合评测,以得到待评测模型的性能评测结果。
具体应用时,可以根据待评测模型对应的评测任务标识,从评测数据管理端获取与待评测模型适配的目标评测数据;根据目标评测数据,分别在目标真机设备提供的第二类设备评测环境和云侧资源提供的云评测环境中运行待评测模型,得到与性能评测指标项适配的真机评测结果和模拟评测结果;按照性能评测指标项,对真机评测结果和模拟评测结果进行联合分析,以得到待评测模型的性能评测结果。其中,在得到与性能评测指标项适配的真机评测结果和模拟评测结果时,可以根据性能评测指标项,获取待评测模型分别在第二类设备评测环境和云评测环境中产生的运行结果数据、中间状态数据和资源消耗数据中的至少一种数据,并根据在不同评测环境中产生的至少一种数据生成待评测模型对应真机评测结果和模拟评测结果。
在本实施例中,根据待评测模型对应的评测任务标识,可以获取评测任务中与待评测模型适配的性能评测指标项,性能评测指标项至少可以包括与模型精度相关的性能评测指标项和与模型运行性能相关的性能评测指标项。
在本实施例中,根据待评测模型对应的评测任务标识还可以从评测数据管理端获取与评测任务标识关联的评测数据集,从评测数据集中选择多个数据对作为与待评测模型适配的目标评测数据。将目标评测数据中的模型输入数据作为待评测模型的输入数据,分别在目标真机设备提供的第二类设备评测环境和云侧资源提供的云评测环境中运行待评测模型;获取待评测模型运行过程中产生的运行结果数据、中间状态数据和资源消耗数据。其中,待评测模型的运行结果数据可以是指待评测模型根据输入数据进行算法计算得到的结果数据。中间状态数据可以是指待评测模型运行过程中一个或多个处理步骤产生的非结果数据。资源消耗数据例如包括但不限于:待评测模型运行过程消耗的内存资源量、CPU资源量、推理平均耗时。
值得注意的是,基于根据上述运行结果数据与预期模型结果数据的比较结果可以计算出与模型精度相关的正确率(Accuracy)、准确率(Precision)、召回率(Recall)、曲线下面积(Area under Curve Roc,AUC)。
其中,正确率是指被机器学习模型正确区分的样本数除以所有的样本数,通常来说,正确率越高,机器学习模型的分类效果越好。精度是精确性的度量,表示被机器学习模型分为正例的分类结果中实际为正例的比例。召回率是覆盖面的度量,度量有多个正例被分为正例。曲线下面积是对机器学习模型对所有可能的分类阈值的效果进行综合衡量。
在获取到待评测模型运行过程中产生的待评测模型的运行结果数据、中间状态数据和资源消耗数据中至少一种数据之后,可以计算与模型精度相关的实际性能评测指标或与模型运行性能相关的实际性能评测指标。将与模型精度相关的实际性能评测指标和与模型精度相关的性能评测指标项对应的参考指标进行比对,确定待评测模型在模型精度这一维度的评测结果;将与模型运行性能相关的实际性能评测指标和与模型运行性能相关的性能评测指标项对应的参考指标进行比对,确定待评测模型在模型运行性能这一维度的评测结果;综合基于第二类设备评测环境和云评测环境分别得到的待评测模型在模型精度这一维度的评测结果和待评测模型在模型运行性能这一维度的评测结果共同决策待评测模型的性能评测结果。例如,可以对基于第二类设备评测环境和云评测环境得到的待评测模型在不同性能评测指标项下的实际性能评测指标进行加权求和,最终得到待评测模型的性能评测结果。其中,对于不同性能评测指标项,两类评测环境对应的权重会有所不同。其中,待评测模型的性能评测结果例如包括评测通过、评测不通过等等。
值得注意的是,云侧资源提供的云评测环境,能够实现模型的大规模数据集完整评测和多种类真机设备自动化评测;真机设备提供的第二类设备评测环境使得支持真机评测成为可能,能够获得模型真实运行的性能数据指标,检验模型在复杂真机环境下的模型部署的正确性与稳定性。于是,通过真机设备提供的第二类设备评测环境和云侧资源提供的云评测环境等多种评测环境,可以满足面向移动端运行的模型精度和模型运行性能的评测任务,且支持大规模的数据集评测任务、支持多种类真机设备上的自动化评测。
在一可选实施例中,第一类设备评测环境的种类和数量大于第二类设备评测环境的种类和数量,也即将大部分真机设备的评测任务由云端执行,少部分的真机设备的评测任务由真机设备执行,这样,能够提高评测效率的同时,还能提高评测结果的正确性和真实性。
值得说明是,在实际应用中,也可以将待评测模型对应的多种设备评测环境全部划分为第一类设备评测环境,这样,待评测模型在多种设备评测环境下将全部使用基于云评测环境的模型评测模式。当然,也可以将待评测模型对应的多种设备评测环境全部划分为第二类设备评测环境,这样,待评测模型在多种设备评测环境下将全部使用基于真机环境的模型评测模式。
本申请实施例提供的面向移动端运行算法模型的模拟评测方法,在面向移动端的模型评测中,针对部分设备评测环境,在云侧资源上模拟出与之适配的云评测环境,利用与设备评测环境适配的云评测环境可以代替部分真机设备进行模型评测,解决无法在所有真机设备进行模型评测的问题;针对另一部分设备评测环境,采用对应的真机设备进行真机评测,同时对待评测的机器学习模型进行基于真机环境的模型评测和基于云评测环境的模型评测,解决了面向真机设备的模型评测问题,为端侧智能化的落地实现提供了条件。进一步,利用与设备评测环境适配的云评测环境可以代替部分真机设备进行模型评测,使得只需采用少量真机设备进行模型评测,大部分模型评测转移到云侧完成,这在很大程度上解决了真机设备因其算力、存储、内存等资源有限无法很好地完成模型评测任务以及用于模型评测的长连接不稳定等问题。
进一步,在本申请实施例中,一方面基于真机环境的模型评测能够保证模型评测结果的正确性和真实性;另一方面基于云评测环境的模型评测可利用云侧资源的优势,不仅可代替更多真机设备进行模型评测,而且可完成大规模数据集的评测,有利于提高机器学习模型的评测效率和覆盖范围,在一定程度上能够弥补在真机设备上进行模型测试所存在的模型评测稳定性较差的问题。进一步地,兼顾基于真机环境的模型评测和基于云评测环境的模型评测的两者的评测优势,满足面向移动端运行的模型精度和模型运行性能的评测任务,提高了针对机器学习模型的评测效率、评测结果的正确性和真实性,实现面向移动端的模型自动化评测。
为了便于理解,下面以一种具体的评测系统为例对面向移动端运行算法模型的模拟评测方法进行说明。
图3为本申请实施例提供的一种评测系统的结构示意图。如图3所示,该系统包括:模型评测调度端10、评测数据管理端20以及模型评测执行端30。其中,三端之间可以是有线或无线网络连接。可选的,图3所示系统中的两两设备之间通过有线网络、或者无线网络进行交互。例如,有线网络可以包括同轴电缆、双绞线和光纤等,无线网络可以是2G网络、3G网络、4G网络或者5G网络、无线保真(Wireless Fidelity,简称WIFI)网络等。本申请对交互的具体类型或者具体形式并不做限定,只要其能够实现两两设备之间交互的功能即可。应当理解的是,图3中的模型评测调度端10、评测数据管理端20以及模型评测执行端30的数量仅仅是示意性的。实际应用中,可以根据实际需求部署任意数量的模型评测调度端10、评测数据管理端20以及模型评测执行端30。
本申请实施例对模型评测调度端10、评测数据管理端20以及模型评测执行端30的设备形态不做限制,模型评测调度端10、评测数据管理端20以及模型评测执行端30例如可以是但不限于:手机、平板电脑、可穿戴式智能设备、智能家居设备等终端设备,或者,模型评测调度端10、评测数据管理端20以及模型评测执行端30例如可以是但不限于:单个服务器或多个服务器组成的分布式服务器集群。
在本实施例中,模型评测调度端10主要管理评测任务相关的创建、发布等,以及评测数据管理端20主要用于管理评测数据,例如,关联存储各个需要评测的机器学习模型的评测任务标识及其评测数据集。模型评测执行端30主要用于执行模型评测。
结合图4所示的交互流程图对面向移动端运行算法模型的模拟评测方法进行说明。参见图4,本实施例的方法可以包括以下步骤:
S1、用户向模型评测调度端10发送评测任务创建请求。
S2、模型评测调度端10响应评测任务创建请求,创建待评测模型的评测任务。
S3、模型评测调度端10向评测数据管理端20发送待评测模型对应的评测任务标识及其评测数据集。
S4、评测数据管理端20关联存储待评测模型对对应的评测任务标识及其评测数据集。
S5、用户向模型评测调度端10发送模型评测请求。
S6、模型评测调度端10向模型评测执行端30转发模型评测请求。
S7、模型评测执行端30响应模型评测请求,从模型评测调度端10获取待评测模型及其对应的多种设备评测环境的描述信息,以及从评测数据管理端20获取对应的目标评测数据。
S8、模型评测执行端30根据多种设备评测环境的描述信息确定待模拟的第一类设备评测环境和基于真机设备的第二类设备评测环境,根据第二类设备评测环境的描述信息在目标真机设备上构建第二类设备评测环境,以及根据第一类设备评测环境的描述信息在目标云侧资源上构建云评测环境。
S9、模型评测执行端30以目标评测数据作为模型输入数据,分别在在目标真机设备提供的第二类设备评测环境和目标云侧资源提供的云评测环境中运行待评测模型。
S10、模型评测执行端30根据评测任务的相关信息和模型运行数据对待评测模型进行联合评测,得到待评测模型的性能评测结果。
具体而言,整个模拟评测过程可以划分为评测任务创建阶段和评测任务执行阶段。图4中S1步骤至S4步骤对应的是评测任务创建阶段,图4中S5步骤至S10步骤对应的是评测任务执行阶段。
在评测任务创建阶段,用户可以按需发起评测任务创建请求,模型评测调度端10响应评测任务创建请求,创建待评测模型的评测任务。例如,模型评测调度端10向用户推送评测任务创建页面,以供用户在评测任务创建页面输入评测任务的相关信息,评测任务的相关信息,例如包括但不限于:作为评测任务唯一标识的评测任务标识、任务名称、待评测模型的模型文件的获取地址、评测数据集的获取地址、模型输入参数、模型输出参数、性能评测指标、评测环境。其中,评测任务创建页面上例如提供如图3中的模拟MNN运行环境、模拟Android系统评测、真机评测三种评测环境,以供用户选择。用户在选择评测环境后,在评测任务创建页面上输入评测环境的描述信息。
模型评测调度端10响应用户在评测任务创建页面上的评测任务的相关信息的确认操作,创建评测任务。模型评测调度端10可以根据待评测模型的模型文件的获取地址下载待评测模型的模型文件并在本端进行存储,以及向评测数据管理端20发送待评测模型对应的评测任务标识及其评测数据集,以供评测数据管理端20在本地关联存储待评测模型对应的评测任务标识及其评测数据集。至此,完成创建待评测模型的评测任务。
在评测任务执行阶段:模型评测调度端10在接收到用户发送的模型评测请求时,确认进入评测任务执行阶段。此时,模型评测调度端10向模型评测执行端30转发模型评测请求,模型评测执行端30执行S7步骤至S10步骤以执行评测任务。关于S7步骤至S10步骤的具体实现方式可以参见前述实施例的介绍。
以用户选择在图3中的模拟MNN运行环境、模拟Android系统评测、真机评测三种评测环境进行评测为例,首先,模型评测执行端30基于三种评测环境的描述信息分别创建出模拟MNN运行环境、模拟Android系统评测、真机评测三种评测环境;接着,模型评测执行端30从模型评测调度端10获取待评测模型的模型文件并部署至三种评测环境,以实现在三种评测环境中部署待评测模型;另外,模型评测执行端30从评测数据管理端20对应的目标评测数据并部署至三种评测环境。以目标评测数据为模型输入数据,在三种评测环境分别运行待评测模型,并收集待评测模型运行过程中产生的待评测模型的运行结果数据、中间状态数据和资源消耗数据等模型运行数据。模型评测执行端30根据本次评测任务中的参考性能评测指标和模型运行数据进行模型评测。
下面对三种评测环境的实现原理、评测目标进行简要说明。
1、模拟MNN运行环境
实现原理:在ARM服务器上基于MNN引擎构建评测运行环境,因为与真机设备使用相同的指令集架构(ARM),故能够取得与真机设备真机一致的评测输出。
评测目标:用于在大规模评测数据集上评测模型的精度,即模型的Accuracy(正确率)、Precision(准确率)、Recall(召回率)、AUC(曲线下面积)等精度指标。可通过创建多个评测引擎实例在评测数据集上进行并行评测,以加速评测结果的获取。
2、模拟Android运行环境
实现原理:在ARM服务器上通过虚拟化技术模拟运行Android系统,然后在其中构建MNN评测环境。因使用虚拟化技术模拟出端侧硬件和系统环境,故能够测得与真机设备真机运行基本一致的性能指标。可通过创建多个评测引擎实例在评测数据集上进行并行评测,以加速评测结果的获取。
评测目标:用于评测模型在真机设备上运行所消耗的CPU、内存、推理耗时等运行性能指标评测。可通过设置模拟器参数快速修改模拟硬件、可通过切换系统镜像快速更换模拟系统,两者结合可实现大量模拟真机设备上的自动化评测,提高评测的真机设备覆盖率。
3、真机运行环境
实现原理:通过通信协议连接真机设备,部署MNN评测引擎,推送评测任务,获得执行结果。图3中,真机平台以包括多个真机设备,且真机设备为手机为例示出。
评测目标:用于特定设备的真实模型精度和性能评测。同时检验在复杂真机环境下模型部署的正确性和稳定性。
值得注意的是:基于ARM服务器,构建2种端侧引擎端侧运行的模拟环境,实现模型的大规模数据集完整评测和多种真机设备自动化评测。基于真机平台可以进行真机评测,也能支持面向特定设备的真实运行环境评测,获得模型真实运行的性能数据指标,检验模型在复杂真机环境下的模型部署正确性与稳定性。于是,通过三种评测环境,可以满足面向移动端运行的模型精度和模型运行性能的评测任务,且支持大规模的数据集评测任务、支持多种真机设备上的自动化评测。
在本申请上述各实施例中,在待评测模型的性能评测结果表示评测不通过的情况下,可以向负责待评测模型的算法开发人员推送评测不通过的通知信息,以供算法开发人员及时对待评测模型进行修复。在待评测模型的性能评测结果表示评测通过的情况下,将待评测模型部署到运行有目标应用的真机设备上,目标应用是指需要使用待评测模型的应用;进一步可以根据目标应用运行过程中产生的目标事件的信息,生成待评测模型的触发事件序列;根据触发事件序列,触发部署在真机设备上的计算容器执行待评测模型。
在本申请实施例中,目标应用所在真机设备上还部署有数据流处理组件或框架以及计算容器。其中,该数据流处理组件或框架用于根据目标应用运行过程中产生的目标事件的信息,生成待评测模型的触发事件序列,并触发计算容器执行通过评测的机器学习模型或机器学习模型所属的机器学习任务。计算容器主要负责对通过评测的机器学习模型进行模型推理,但不限于此。例如,在机器学习模型隶属于机器学习任务,机器学习任务还包括与机器学习模型相关的前处理和后处理任务的情况下,计算容器也可以执行这些前处理和后处理任务。
本实施例给出一种机器学习任务的定义和其实现结构,机器学习任务的真实表达可以认为是一段程序代码,机器学习任务的实现结构可以包括前处理任务、机器学习模型和后处理任务。前处理任务用于对待输入至机器学习模型的输入数据进行预处理,例如,在计算机视觉场景,前处理任务需要执行以下数据预处理:图像旋转、图像放大、图像缩小等。机器学习模型是一个由一段数据表达的函数,数据记录了函数结构和函数参数。机器学习模型在经过训练(参数优化)后可以识别特定类型的模式,其具体作用是实现从一个样本到样本标签的映射。前处理任务用于对机器学习模型的输出数据进行后处理,例如,机器学习模型的输出多个分类结果及其概率,根据多个分类结果的概率从多个分类结果中选择符合要求的最终分类结果进行输出。
关于数据流处理组件或框架的工作原理如下:
在本实施例中,可以采用任务树的方式对目标应用的机器学习任务及其触发事件序列进行组织管理,针对目标应用运行过程中发生的当前目标事件,通过查询任务树的方式将当前目标事件与任务树上事件节点或叶子节点进行匹配,并根据匹配结果决策是否触发执行机器学习任务,以在端侧完成与机器学习任务相关的数据流(或事件流)处理。由此,结合任务树可以自动、快速、准确地在端侧识别机器学习任务的触发条件是否被满足,保证机器学习任务的自动、准确以及快速执行。
具体地,预先生成目标应用对应的任务树,该任务树包括根节点、事件节点和叶子节点,每个叶子节点关联至少一个机器学习任务,且至少一个机器学习任务对应触发事件序列中的触发事件与从根节点到该叶子节点经过的事件节点按序对应。当目标应用产生当前目标事件时,获取用于当前目标事件的候选事件节点,候选事件节点包括两类事件节点,第一类事件节点为根节点的下一级事件节点,第二类事件节点为上一目标事件在任务树匹配到的事件节点的下一级事件节点。将当前目标事件与候选事件节点对应的触发事件进行匹配,以获取触发事件与当前目标事件匹配的至少一个候选事件节点作为目标事件节点。对每个目标事件节点,若该目标事件节点的下一级节点中包括叶子节点,则根据从根节点到叶子节点经过的事件节点匹配到的目标事件的信息,执行叶子节点关联的至少一个机器学习任务。
在本实施例中,机器学习任务的触发条件可以是有一个或多个触发事件ID(Identity/Identifier的缩写)组成的触发事件序列,触发事件ID在触发事件序列中的位置表明对应的触发事件发生的先后顺序。应理解,当真机设备检测到按序出现了触发事件序列中全部的触发事件时,满足机器学习任务的触发条件,机器学习任务被触发,真机设备需要执行机器学习任务。当然,若没有按序出现触发事件序列中全部的触发事件不满足机器学习任务的触发条件,机器学习任务不会被触发,计算容器不需要执行机器学习任务。
在本实施例中,触发事件可以是基础事件。基础事件是指随着真机设备中用户操作产生的原始事件,基础事件基于用户操作不同例如可以但不限于分类成以下几种类别:与页面进入(page enter)操作对应的页面进入事件、与页面退出(page exit)操作对应的页面退出事件、与页面滑动(page scroll)操作对应的滚动事件、与控件点击(click)操作对应的点击事件、与曝光(exposure)操作对应的曝光事件。需要说明的是,曝光操作是指随着用户的其他交互操作(如页面进入、页面滑动、控件点击),某些特定内容(如商品、广告横幅)在真机设备的屏幕上展示给了用户(此时便认为用户看到了该特定内容)。“特定内容出现在屏幕中”也可称为是“用户看到该特定内容”,此时会被记录为一次该特定内容的曝光事件。
在本实施例中,基础事件可以通过对用户在操作真机设备上的App产生的用户行为数据进行分析得到。基础事件的事件信息包括但不限于:事件ID、页面ID、时间戳、事件内容。其中,事件ID用于区分不同类型的基础事件,不同事件ID对应不同的基础事件。例如,事件ID采用数字的形式表示,事件ID分别为1(对应页面进入事件)、2(对应页面退出事件)、3(对应页面滚动事件)、4(对应点击事件)、5(对应曝光事件)。当然,事件ID采用数字的形式表示仅为示例,本实施例对事件ID的表示形式不做限制。
页面ID是指发生事件ID对应的基础事件所关联的页面的ID。例如,目标应用为购物类APP,该购物类APP例如包括首页面、购物车页面或系统消息页面等。当用户在首页面、购物车页面或系统消息页面上进行与基础事件相关的操作时,这些页面即为与基础事件关联的页面。
在本实施例中,用户使用真机设备上的APP过程产生一系列的基础事件按照时间先后顺序组成基础事件流(Basic Events)。在基础事件流的基础上还可构造页面事件流。页面事件流的构造过程如下:在新的基础事件进入基础事件流之后,根据新的基础事件的事件ID确定新的基础事件是否属于页面进入事件,在新的基础事件属于页面进入事件的情况下,确定出现新的页面事件,获取新的基础事件的事件ID和该新的基础事件所属页面的ID(简称页面ID),按照{页面 ID:[事件 ID]}的形式构建新的页面事件的信息,并加入页面事件流。其中,根据{页面 ID:[事件 ID]}可以获知页面 ID对应的页面上发生过事件ID对应的基础事件。页面事件流包括按照时间先后顺序产生的多个页面事件,不同页面事件所属页面ID不同,也即每个页面事件是一个页面ID标识的页面事件,一个页面事件可以包括一个或多个基础事件。
值得注意的是,每当出现新的基础事件进入基础事件流,可以判断该新的基础事件的页面ID与最晚加入至页面事件流的页面事件对应的页面ID是否一致,若一致,则新的基础事件的事件ID继续更新到最晚加入至页面事件流的页面事件的信息当中。随着加入同一页面事件的基础事件越来越多,同一页面ID下关联多个基础事件的事件ID,例如{页面ID:[事件ID,...,事件ID]}表示同一页面ID下关联的多个基础事件的事件ID。值得注意的是,在同一页面上检测到页面退出事件时,该页面ID对应的页面事件结束。同时,同一页面事件下属的基础事件包括从进入页面到退出页面之间的各个基础事件。
在本实施例中,移动设备上目标应用的各类数据处理需求会对应多个不同的机器学习任务,每个机器学习任务对应触发事件序列,为了便于高效管理机器学习任务的触发,可以采用树结构对移动设备上目标应用的各个机器学习任务及其对应的触发事件序列进行组织管理。为了便于理解和区分,将基于目标应用的各个机器学习任务及其对应的触发事件序列构建出的树结构作为任务树。该任务树包括根节点、事件节点和叶子节点,从根节点到叶子节点的路径上经过一个或多个事件节点。一个任务树只有一个根节点,事件节点和叶子节点的数量可以是一个或多个。任务树中任意一条“根节点-若干个事件节点-叶子节点”组成的路径唯一对应一个触发条件或触发事件序列,每个触发条件对应路径上的每个事件节点关联该触发条件中的一个触发事件,事件节点的节点标识包括触发事件的标识信息;根节点的节点标识用于标记触发条件的开始,根节点可以认为是触发条件对应的开始节点;叶子节点的节点标识用于标记触发条件的结束,叶子节点可以认为是触发条件对应的结束节点,叶子节点上关联存储满足触发条件的机器学习任务,叶子节点上关联的机器学习任务可以是一个或多个。进一步的,针对存在一个或多个相同的触发事件的不同触发条件,从根节点到子树根节点的路径上的事件节点为不同触发条件的共有的事件节点。在一可选实施例中,任务树可以采用字典树、二叉树和哈夫曼树,但不限于此。
实际应用中,随着时间推移,因数据处理需求发生改变可能需要更新已有机器学习任务的触发条件,或者,出现新的数据处理需求需要为目标应用部署新的机器学习任务。于是,进一步可选的,支持对已经构建出的目标应用的任务树进行更新。针对已有机器学习任务的触发条件发生更新时,根据更新后的触发条件更新任务树。针对新的机器学习任务被部署给目标应用时,获取新的机器学习任务对应的触发事件序列,作为待匹配的触发事件序列,并将待匹配的触发事件序列中的触发事件按序与任务树上各事件节点对应的触发事件进行匹配;若匹配到与待匹配的触发事件序列中的触发事件按序对应的目标路径,将新的机器学习任务与目标路径对应的叶子节点进行关联;若未匹配到与待匹配的触发事件序列中的触发事件按序对应的目标路径,以最后一个匹配成功的事件节点为子树的根节点,为待匹配的触发事件序列中未匹配中的触发事件构建子树,并将新的机器学习任务与子树的叶子节点进行关联。
具体而言,在将待匹配的触发事件序列中的触发事件按序与任务树上的各事件节点对应的触发事件进行匹配之前, 在待匹配的触发事件序列的首部和尾部分别添加起始标记和结束标记,起始标记用于对应任务树的根节点,结束标记用于对应任务树上的叶子节点,位于起始标记和结束标记之间的触发事件用于对应任务树上的事件节点。
针对已添加起始标记和结束标记的待匹配的触发事件序列,可以采用诸如深度优先搜索(Depth First Search,DFS)或者广度优先搜索((Breadth First Search,BFS)等图形搜索算法对任务树进行搜索,以识别任务树是否存在与待匹配的触发事件序列中的触发事件按序对应的目标路径,该目标路径是指从根节点到叶子节点经过的若干个事件节点形成的路径。值得注意的是,在搜索任务树时,从任务树的根节点出发,依次遍历任务树上各条路径上的事件节点,以确定是否存在与待匹配的触发事件序列中的触发事件按序对应的目标路径。若存在目标路径,则说明新的机器学习任务的触发条件与已经部署的机器学习任务的触发条件相同,针对这种情况无需在任务树上添加新的子树。若不存在目标路径,则说明新的机器学习任务与已经部署的机器学习任务的触发条件不同,针对这种情况需要在任务树上添加新的子树。子树的根节点是任务树上最后一个与待匹配的触发事件序列中触发事件匹配成功的事件节点,将待匹配的触发事件序列位于最后一个与任务树匹配成功的触发事件之后的触发事件依次作为子树的一个事件节点对应的触发事件,并为子树添加叶子节点,叶子节点关联新的机器学习任务,至此完成子树的创建。
在本实施例中,在目标应用的运行过程中,可采集用户使用目标应用过程中的用户行为数据,并分析用户行为数据以确定是否发生基础事件和/或页面事件等当前目标事件。在一可选实现方式中,响应用户在目标应用运行过程中发起的交互操作,获取交互操作产生的基础事件,将基础事件添加至基础事件流中,并将基础事件作为当前目标事件,基础事件为预设事件类型中的一类事件;和/或,判断基础事件是否为页面进入事件;若基础事件为页面进入事件,则根据基础事件的标识和基础事件所属页面的标识构建页面事件,并将页面事件作为当前目标事件。其中,预设事件类型根据实际需求设置,例如为页面进入事件、页面退出事件、页面滚动事件、点击事件、曝光事件中一种或多种。
在本实施例中,在目标应用运行过程中发生目标事件时,获取用于当前目标事件的候选事件节点,候选事件节点包括第一类事件节点和第二类事件节点,第一类事件节点为根节点的下一级事件节点,第二类事件节点为上一目标事件在任务树匹配到的事件节点的下一级事件节点。其中,第一类事件节点不能为空,是必须要有的候选事件节点,第二类事件节点的数量可以为0。在一可选实施例中,可以采用静态节点列表存储第一类事件节点和采用动态节点列表存储第二类事件节点,于是,可以获取静态节点列表和动态节点列表以实现获取用于当前目标事件的候选事件节点。
在本实施例中,获取到候选事件节点之后,将当前目标事件与候选事件节点对应的触发事件进行匹配,以获取触发事件与当前目标事件匹配的至少一个候选事件节点作为目标事件节点。在候选事件节点来源于静态节点列表或者动态节点列表时,则在将当前目标事件与候选事件节点对应的触发事件进行匹配时,可以依次遍历静态节点列表和动态节点列表中的各事件节点;将当前遍历到的事件节点对应的触发事件与当前目标事件进行匹配,若两者匹配,则将当前遍历到的事件节点作为当前目标事件匹配到的目标事件节点。
在本实施例中,目标事件节点的数量可以为一个或多个。每当匹配到一个目标事件节点,对于该目标事件节点的每个下一级节点,判断该下一级节点是否为叶子节点;若该下一级节点为叶子节点,则根据从根节点到该叶子节点经过的事件节点匹配到的目标事件的信息,触发计算容器执行叶子节点关联的至少一个机器学习任务;若该下一级节点为事件节点,则将该事件节点添加至动态缓存中,在遍历完静态节点列表和动态节点列表中的所有事件节点之后,将动态缓存中的事件节点赋值给动态节点列表,并清空动态缓存。
关于计算容器的介绍和其工作原理如下:
在本实施例中,计算容器是跨平台、且支持多端部署、端云一致部署的物理计算引擎,该计算容器可以基于张量计算引擎实现,可选地,张量计算引擎可以是但不限于MNN引擎,其中,MNN引擎是一个轻量级的深度学习端侧推理引擎,旨在解决深度神经网络模型在端侧推理运行问题,包含深度神经网络模型的优化、转换和推理,具有高通用性和高性能的特点,支持多种训练框架的模型,常用深度学习算子,多种系统,以及卷积计算方式计算优化等。其中,MNN引擎的后端(Backends)开发者可以手动编写多份代码适配各个平台硬件来实现跨平台特性,对于机器学习任务开发者在使用时仅需编写一份机器学习任务的代码即可在计算容器支持的各移动设备、云侧服务器上跨平台执行。在本申请实施例中,该计算容器可以屏蔽各种移动设备之间以及移动设备与云侧设备之间的硬件差异,既可以部署在各种移动设备上,也可以部署在云侧设备上。本实施例并不限定计算容器的具体实现结构,可选的,本实施例提供的支持端云一致部署的计算容器,其自上而下包括机器学习任务所依赖的用于动态编程语言的虚拟机(或者称为动态编程语言解释器)、机器学习库和张量计算引擎,并根据触发事件序列,基于虚拟机、机器学习库和张量计算引擎执行机器学习任务;其中,机器学习任务是采用动态编程语言基于机器学习库中的库函数编写的,机器学习库是基于张量计算引擎提供的模型算子构建的,张量计算引擎提供的模型算子对应多种后端(backends)适配层,用于适配多种硬件资源,以使该张量计算引擎所属计算容器支持跨平台部署。其中,张量计算引擎具有几何计算、半自动搜索等功能,后端适配层是使张量计算引擎适配不同硬件资源的指令集架构的软件层,可选地,可适配的硬件平台指令集架构包括但不限于但不限于:各版本的ARM指令集架构、OpenCL、Vulkan、Metal、X86 AVX、CUDA等。计算容器依赖于其所在云侧设备或移动设备的操作系统和硬件资源进行运行。
进一步可选地,机器学习任务是采用Python语言编写的,相应地,上述虚拟机是用于Python语言的虚拟机,但不限于此。机器学习任务也可以采用JavaScript、Ruby等语言编写,相应地,上述虚拟机是用于JavaScript、Ruby语言的虚拟机。本实施例中的虚拟机实际上是一种用于动态编程语言的解释器。
进一步可选地,本实施例的机器学习任务至少包括模型算法任务,即需要机器学习模型完成的任务,基于此,本申请实施例提供的计算容器执行机器学习任务的过程可以是:在触发事件序列到达时,执行上述动态编程语言解释器,以将机器学习任务解释为多条机器指令,多条机器指令包括与机器学习任务中的模型算法任务对应的第一机器指令;依次执行多条机器指令,在执行到第一机器指令时,调用目标库函数中的第一库函数并执行第一库函数,第一库函数是第一机器指令调用的库函数,用以实现机器学习任务中的模型算法任务;以及在第一库函数涉及张量计算的情况下,调用张量计算引擎,在预先为所述模型算法任务适配出的目标硬件资源上,执行与第一库函数对应的目标模型算子以完成张量计算,其中,目标模型算子是张量计算引擎提供的模型算子中与第一库函数对应的模型算子。
进一步可选地,本实施例的机器学习任务还包括与模型算法任务适配的前处理和/或后处理任务,则上述多条机器指令还包括与机器学习任务中的前处理和/或后处理任务对应的第二机器指令。基于此,计算容器执行机器学习任务的过程还包括:在执行到第二机器指令时,调用动态编程语言解释器提供的第二库函数并执行第二库函数,以完成前处理和/或后处理任务,第二库函数是第二机器指令调用的库函数,用以实现机器学习任务中的前处理和/或后处理任务。
进一步可选地,本申请实施例提供的计算容器还用于对外提供基于静态或动态编程语言实现的标准API集合,该标准API集合中的API可通过动态编程语言进行调用,标准API集合包括动态编程语言解释器自带的第一类API和机器学习库透过动态编程语言解释器提供的第二类API,以供编写机器学习任务;其中,第一类API用于实现机器学习任务中的前处理逻辑和/或后处理逻辑,第二类API用于实现机器学习任务中的模型算法。换句话说,机器学习任务可以使用第一类API实现前处理和/或后处理任务,并使用第二类API实现模型算法任务。基于此,计算容器执行机器学习任务的过程包括:在触发事件序列到达时,执行动态编程语言解释器,以将机器学习任务解释为多条机器指令;在依次执行多条机器指令的过程中,在执行到与机器学习任务使用的第一类API对应的第二机器指令时,可调用上述动态编程语言解释器提供的第二库函数对触发事件序列进行前处理和/或对模型计算产生的结果数据进行后处理,以及在执行到与机器学习任务使用的第二类API对应的第一机器指令时,调用上述机器学习库中的第一库函数对前处理产生的结果数据进行模型计算;进一步,在第一库函数涉及张量计算的情况下,调用张量计算引擎,在预先为所述模型算法任务适配出的目标硬件资源上,执行与所述第一库函数对应的目标模型算子以完成张量计算,并在完成模型算法任务之后向上返回模型算法任务产生的结果数据。在一可选实施例中,张量计算引擎为MNN引擎,相应地,机器学习库包括以下至少一种:基于MNN引擎构建的用于模型推理的机器学习库、用于模型训练的机器学习库、用于视觉计算的机器学习库和用于矩阵运算的机器学习库。
进一步可选地,预先为所述模型算法任务适配出目标硬件资源,包括:在所述模型算法任务执行之前,根据所述模型算法任务涉及的模型算子及其输入张量形状,采用半自动搜索算法,预先从多种后端适配层对应的硬件资源中为所述模型算法任务适配出目标硬件资源。
其中,根据所述模型算法任务涉及的模型算子及其输入张量形状,采用半自动搜索算法,预先从多种后端适配层对应的硬件资源中为所述模型算法任务适配出目标硬件资源,包括:根据所述模型算法任务涉及的模型算子及其输入张量形状,计算所述模型算法任务在每种后端适配层对应硬件资源上执行时的性能参数;根据所述模型算法任务在每种后端适配层对应硬件资源上执行时的性能参数,选择性能参数符合要求的硬件资源作为与所述模型算法任务适配目标硬件资源。
更进一步,根据所述模型算法任务涉及的模型算子及其输入张量形状,计算所述模型算法任务在每种后端适配层对应硬件资源上执行时的性能参数,包括:针对每种后端适配层,在该后端适配层对应的硬件资源上分别执行所述模型算法任务涉及的每个模型算子对应的各种实现算法,以得到每个模型算子在采用各种实现算法时的损失性能分数;将所述模型算法任务涉及的每个模型算子在采用各种实现算法时的损失性能分数中的最小损失性能分数之和,作为所述模型算法任务在所述后端适配层上的性能参数。其中,每个模型算子对应至少一种实现算法,该模型算子在采用不同实现算法时对应的执行性能不同,而且同一模型算子在采用同一实现算法,但是在不通过硬件资源上执行时,对应的执行性能也不同。在本申请实施例中,通过性能损失分数来表征执行性能,性能损失分数越小,执行性能越好。在本申请实施例中,张量计算引擎提供的模型算子包括原子算子、形变算子和组合算子。其中,原子算子是指不能拆分或拆分后性能变差的模型算子,例如包括但不限于:单目算子(Unary、上面已举例);双目算子(Binary)如加减乘除;归约算子(Reduce)(如取极值、求和、平均等)将输入张量在某个方向归约,使其维数降低一维的操作;光栅算子(Raster),用于完成数据在内存中的区域映射(或称为搬运),可通过对其进行自定义设置等效地实现不同的形变效果。形变算子的数量很多,但是对于只进行内存映射而没有计算的算子,可以通过一个光栅算子Raster来实现。光栅算子Raster通过存储输入张量到输出张量的内存映射信息,来实现各种形变算子。而映射关系通过存储内存的偏移(offset),行跨度(stride),大小(size)信息,在光栅算子Raster中通过固定的循环结构来存取数据即可。光栅算子Raster使用区域(Region)来存储变换信息。形变算子例如包括但不限于转置、切片、串联和排列等。复合算子可以分解为原子算子和,例如,复合算子例如包括但不限于:卷积操作、反卷机操作、池化操作、内积操作等操作符。形变算子和组合算子是由原子算子组合或拼装而成的。几何计算负责把形变算子和组合算子拆解/转换为原子算子。它转换形变算子的原理是:先基于算子输入的形状计算算子输出的形状,再基于输入输出的形状和形变规则,计算出一系列线性内存搬运区域,按这些区域去搬运内存,等效于原始的形变算子实现。对于复合算子,可将形变部分提取出来,同样地计算内存搬运的区域,其他的可分解为原子算子。
在一种应用场景中,目标应用为购物类APP,机器学习任务为用于向用户进行个性化商品推荐的商品推荐模型。在云侧资源上,预先训练出与每个用户适配的商品推荐模型,并经过压缩和转换得到用于端侧的商品推荐模型,采用上述实施例提供的评测方法对商品推荐模型进行性能评测,并在通过评测的情况下,将商品推荐模型部署到用户使用的购物类APP中,与此同时,该购物类APP包括上述实施例提供的数据流处理框架和计算容器,随着用户在购物类APP上的浏览、点击、查看商品详情、查看商品评论以及加购物车等各种操作,数据流处理框架采集并生成各种基础事件,当商品推荐模型对应的触发事件序列产生时,例如每当用户点击进入新页面时,触发计算容器执行商品推荐模型;计算容器加载该商品推荐模型并采用上述实施例提供的方法运行该商品推荐模型,最终输出推荐给用户的目标商品,并由购物类APP将推荐的目标商品展示在相关页面上,以供用户查看和选购。
在另一种应用场景中,目标应用为直播类APP,机器学习任务为对直播内容进行打标的打标处理模型。在云侧资源上,预先训练出打标处理模型,并经过压缩和转换得到用于端侧的打标处理模型,采用上述实施例提供的评测方法对打标处理模型进行性能评测,并在通过评测的情况下,将打标处理模型部署到主播使用的直播类APP中,与此同时,该直播类APP包括上述实施例提供的数据流处理框架和计算容器,随着直播过程的进程,不断生成直播内容,该直播内容包括直播画面和直播语音,数据流处理框架不断对直播过程中的事件进行处理,生成打标处理模型的触发事件序列,例如每当主播发生停顿事件时,触发计算容器执行打标处理模型;计算容器会加载该打标处理模型并采用上述实施例提供的方法运行该打标处理模型,最终在直播内容中的关键内容上添加标记,并输出带有标记信息的直播内容,以供直播服务端对带有标记信息的直播内容做进一步处理。打标内容可以是一些隐私信息,重要信息或者特定商品信息等。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤101至步骤104的执行主体可以为设备A;又比如,步骤101、102和103的执行主体可以为设备A,步骤104的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图5为本申请实施例提供的一种面向移动端运行算法模型的模拟评测装置的结构示意图。如图5所示,该装置可以包括:
获取模块51,用于响应模型评测请求,获取待评测模型及其对应的多种设备评测环境的描述信息,待评测模型是指对原始机器学习模型进行压缩和转换得到的机器学习模型;
确定模块54,根据多种设备评测环境的描述信息,确定待模拟的第一类设备评测环境和基于真机设备的第二类设备评测环境;
构建模块52,用于在目标云侧资源上模拟与第一类设备评测环境对应的云评测环境,并在目标真机设备提供的硬件运行环境中部署软件运行环境,得到第二类设备评测环境,云评测环境与其对应的第一类设备评测环境包括相同的硬件运行环境和软件运行环境。
联合评测模块53,用于根据第二类设备评测环境和云评测环境对待评测模型进行联合评测,以得到待评测模型的性能评测结果。
进一步可选的,每种设备评测环境的描述信息包括硬件描述信息和软件描述信息,则确定模块54具体用于:根据多种设备评测环境的硬件描述信息和/或软件描述信息,结合设定的数量比例,选择至少两种设备评测环境作为待模拟的第一类设备评测环境,并将其余设备评测环境作为基于真机设备的第二类设备环境信息。
进一步可选的,确定模块54用于:在每种设备评测环境的软件描述信息相同的情况下,根据多种设备评测环境的硬件描述信息,确定多种设备评测环境要求的硬件运行环境的类型和资源占用量;根据多种设备评测环境要求的硬件运行环境的资源类型和资源占用量,结合设定的数量比例,选择至少两种设备评测环境作为待模拟的第一类设备评测环境。
构建模块52在目标云侧资源上模拟与第一类设备评测环境对应的云评测环境时,具体用于:根据第一类设备评测环境的硬件描述信息,从云侧资源中选择硬件运行环境与第一类设备评测环境要求的硬件运行环境相同的云侧资源作为目标云侧资源;根据第一类设备评测环境的软件描述信息,在目标云侧资源上构建第一类设备评测环境要求的软件运行环境,以得到第一类设备评测环境对应的云评测环境。
进一步可选的,构建模块52根据第一类设备评测环境的软件描述信息,在目标云侧资源上构建第一类设备评测环境要求的软件运行环境,以得到第一类设备评测环境对应的云评测环境时,具体用于:根据第一类设备评测环境的软件描述信息,获取第一类设备评测环境要求的操作系统以及与待评测模型适配的端侧机器学习推理引擎;根据第一类设备评测环境要求的操作系统,采用虚拟化技术在目标云侧资源上构建目标容器,在目标容器中部署端侧机器学习推理引擎,以得到第一类设备评测环境对应的云评测环境。
进一步可选的,构建模块52根据第一类设备评测环境要求的操作系统,采用虚拟化技术在目标云侧资源上构建目标容器时,具体用于:若第一类设备评测环境要求的操作系统与其对应目标云侧资源的操作系统相同,则在目标云侧资源上构建依赖宿主操作系统的第一容器作为目标容器;若第一类设备评测环境要求的操作系统与其对应目标云侧资源的操作系统不相同,则在目标云侧资源上构建自带操作系统的第二容器作为目标容器,第二容器自带的操作系统与第一类设备评测环境要求的操作系统相同。
进一步可选的,第一类设备评测环境要求的端侧机器学习推理引擎相同,且为MNN引擎。
进一步可选的,构建模块52在目标真机设备提供的硬件运行环境中部署软件运行环境,得到第二类设备评测环境时,具体用于:根据第二类设备评测环境的描述信息,确定可提供第二类设备评测环境要求的硬件运行环境的真机设备;根据真机设备的多维度属性信息,将真机设备划分为多类,从每类真机设备中选择部分真机设备作为目标真机设备。
进一步可选的,联合评测模块53在根据第二类设备评测环境和云评测环境对待评测模型进行联合评测时,具体用于:根据待评测模型对应的评测任务标识,从评测数据管理端获取与待评测模型适配的目标评测数据;根据目标评测数据,分别在第二类设备评测环境和云评测环境中运行待评测模型,得到与性能评测指标项适配的真机评测结果和模拟评测结果;按照性能评测指标项,对真机评测结果和模拟评测结果进行联合分析,以得到待评测模型的性能评测结果。
进一步可选的,还包括处理模块,用于采用适用于云侧的机器学习框架进行模型训练,得到原始机器学习模型;根据适用于端侧的机器学习框架,对原始机器学习模型进行压缩和转换,得到待评测模型。
进一步可选的,联合评测模块53还用于:在待评测模型的性能评测结果表示评测通过的情况下,将待评测模型部署到运行有目标应用的真机设备上,目标应用是指需要使用待评测模型的应用。相应地,真机设备还用于:根据目标应用运行过程中产生的目标事件的信息,生成待评测模型的触发事件序列;根据触发事件序列,触发部署在真机设备上的计算容器执行待评测模型。
图5的面向移动端运行算法模型的模拟评测装置可以执行图1示实施例的面向移动端运行算法模型的模拟评测方法,其实现原理和技术效果不再赘述。对于上述实施例中的图5装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6为本申请实施例提供的一种计算机设备的结构示意图。如图6所示,该装置包括:存储器61和处理器62。
存储器61,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算机设备上的操作。这些数据的示例包括用于在计算机设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器61可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器62,与存储器61耦合,用于执行存储器61中的计算机程序,以用于:响应模型评测请求,获取待评测模型及其对应的多种设备评测环境的描述信息,待评测模型是指对原始机器学习模型进行压缩和转换得到的机器学习模型根据多种设备评测环境的描述信息,确定待模拟的第一类设备评测环境和基于真机设备的第二类设备评测环境;在目标云侧资源上模拟与第一类设备评测环境对应的云评测环境,并在目标真机设备提供的硬件运行环境中部署软件运行环境,得到第二类设备评测环境,云评测环境与其对应的第一类设备评测环境包括相同的硬件运行环境和软件运行环境;根据第二类设备评测环境和云评测环境对待评测模型进行联合评测,以得到待评测模型的性能评测结果。
进一步可选的,每种设备评测环境的描述信息包括硬件描述信息和软件描述信息,则处理器62根据确定待模拟的第一类设备评测环境和基于真机设备的第二类设备评测环境时,具体用于:根据多种设备评测环境的硬件描述信息和/或软件描述信息,结合设定的数量比例,选择至少两种设备评测环境作为待模拟的第一类设备评测环境,并将其余设备评测环境作为基于真机设备的第二类设备环境信息。
进一步可选地,处理器62选择至少两种设备评测环境作为待模拟的第一类设备评测环境时,具体用于:在每种设备评测环境的软件描述信息相同的情况下,根据多种设备评测环境的硬件描述信息,确定多种设备评测环境要求的硬件运行环境的类型和资源占用量;根据多种设备评测环境要求的硬件运行环境的资源类型和资源占用量,结合设定的数量比例,选择至少两种设备评测环境作为待模拟的第一类设备评测环境。
进一步可选的,每种设备评测环境的描述信息包括硬件描述信息和软件描述信息,则处理器62在目标云侧资源上模拟与第一类设备评测环境对应的云评测环境时,具体用于:根据第一类设备评测环境的硬件描述信息,从云侧资源中选择硬件运行环境与第一类设备评测环境要求的硬件运行环境相同的云侧资源作为目标云侧资源;根据第一类设备评测环境的软件描述信息,在目标云侧资源上构建第一类设备评测环境要求的软件运行环境,以得到第一类设备评测环境对应的云评测环境。
进一步可选的,处理器62得到第一类设备评测环境对应的云评测环境时,具体用于:根据第一类设备评测环境的软件描述信息,获取第一类设备评测环境要求的操作系统以及与待评测模型适配的端侧机器学习推理引擎;根据第一类设备评测环境要求的操作系统,采用虚拟化技术在目标云侧资源上构建目标容器,在目标容器中部署端侧机器学习推理引擎,以得到第一类设备评测环境对应的云评测环境。
进一步可选的,处理器62采用虚拟化技术在目标云侧资源上构建目标容器时,具体用于:若第一类设备评测环境要求的操作系统与其对应目标云侧资源的操作系统相同,则在目标云侧资源上构建依赖宿主操作系统的第一容器作为目标容器;若第一类设备评测环境要求的操作系统与其对应目标云侧资源的操作系统不相同,则在目标云侧资源上构建自带操作系统的第二容器作为目标容器,第二容器自带的操作系统与第一类设备评测环境要求的操作系统相同。
进一步可选的,处理器62在得到第二类设备评测环境之前,还用于:根据第二类设备评测环境的描述信息,确定可提供第二类设备评测环境中的硬件运行环境的真机设备;根据真机设备的多维度属性信息,将真机设备划分为多类,从每类真机设备中选择部分真机设备作为目标真机设备。
进一步可选的,处理器62在根据第二类设备评测环境和云评测环境对待评测模型进行联合评测时,具体用于:根据待评测模型对应的评测任务标识,从评测数据管理端获取与待评测模型适配的目标评测数据;根据目标评测数据,分别在第二类设备评测环境和云评测环境中运行待评测模型,得到与性能评测指标项适配的真机评测结果和模拟评测结果;按照性能评测指标项,对真机评测结果和模拟评测结果进行联合分析,以得到待评测模型的性能评测结果。
进一步可选的,处理器62,还用于采用适用于云侧的机器学习框架进行模型训练,得到原始机器学习模型;根据适用于端侧的机器学习框架,对原始机器学习模型进行压缩和转换,得到待评测模型。
进一步可选的,处理器62,还用于在待评测模型的性能评测结果表示评测通过的情况下,将待评测模型部署到运行有目标应用的真机设备上,目标应用是指需要使用待评测模型的应用。相应地,真机设备还用于:根据目标应用运行过程中产生的目标事件的信息,生成待评测模型的触发事件序列;根据触发事件序列,触发部署在真机设备上的计算容器执行待评测模型。
进一步,如图6所示,该计算机设备还包括:通信组件63、显示器64、电源组件65、音频组件66等其它组件。图6中仅示意性给出部分组件,并不意味着计算机设备只包括图6所示组件。另外,图6中虚线框内的组件为可选组件,而非必选组件,具体可视排产设备的产品形态而定。本实施例的计算机设备可以实现为台式电脑、笔记本电脑、智能手机或IOT设备等终端设备,也可以是常规服务器、云服务器或服务器阵列等服务端设备。若本实施例的计算机设备实现为台式电脑、笔记本电脑、智能手机等终端设备,可以包含图6中虚线框内的组件;若本实施例的计算机设备实现为常规服务器、云服务器或服务器阵列等服务端设备,则可以不包含图6中虚线框内的组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中的各步骤。
相应地,本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被处理器执行时,致使处理器能够实现上述方法实施例中的各步骤。
上述通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
上述电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (13)
1.一种面向移动端运行算法模型的模拟评测方法,其特征在于,包括:
响应模型评测请求,获取待评测模型及其对应的多种设备评测环境的描述信息,所述待评测模型是指对原始机器学习模型进行压缩和转换得到的机器学习模型;
根据所述多种设备评测环境的描述信息,确定待模拟的第一类设备评测环境和基于真机设备的第二类设备评测环境;
在目标云侧资源上模拟与所述第一类设备评测环境对应的云评测环境,并在目标真机设备提供的硬件运行环境中部署软件运行环境,得到第二类设备评测环境,所述云评测环境与其对应的第一类设备评测环境包括相同的硬件运行环境和软件运行环境;
根据所述第二类设备评测环境和所述云评测环境对所述待评测模型进行联合评测,以得到所述待评测模型的性能评测结果。
2.根据权利要求1所述的方法,其特征在于,每种设备评测环境的描述信息包括硬件描述信息和软件描述信息,则根据所述多种设备评测环境的描述信息,确定待模拟的第一类设备评测环境和基于真机设备的第二类设备评测环境,包括:
根据所述多种设备评测环境的硬件描述信息和/或软件描述信息,结合设定的数量比例,选择至少两种设备评测环境作为待模拟的第一类设备评测环境,并将其余设备评测环境作为基于真机设备的第二类设备环境信息。
3.根据权利要求2所述的方法,其特征在于,根据所述多种设备评测环境的硬件描述信息和/或软件描述信息,结合设定的数量比例,选择至少两种设备评测环境作为待模拟的第一类设备评测环境,包括:
在每种设备评测环境的软件描述信息相同的情况下,根据所述多种设备评测环境的硬件描述信息,确定所述多种设备评测环境要求的硬件运行环境的类型和资源占用量;
根据所述多种设备评测环境要求的硬件运行环境的资源类型和资源占用量,结合设定的数量比例,选择至少两种设备评测环境作为待模拟的第一类设备评测环境。
4.根据权利要求1所述的方法,其特征在于,所述第一类设备评测环境的描述信息包括硬件描述信息和软件描述信息,则在目标云侧资源上模拟与所述第一类设备评测环境对应的云评测环境,包括:
根据所述第一类设备评测环境的硬件描述信息,从云侧资源中选择硬件运行环境与所述第一类设备评测环境要求的硬件运行环境相同的云侧资源作为目标云侧资源;
根据所述第一类设备评测环境的软件描述信息,在所述目标云侧资源上构建所述第一类设备评测环境要求的软件运行环境,以得到所述第一类设备评测环境对应的云评测环境。
5.根据权利要求4所述的方法,其特征在于,根据所述第一类设备评测环境的软件描述信息,在所述目标云侧资源上构建所述第一类设备评测环境要求的软件运行环境,以得到所述第一类设备评测环境对应的云评测环境,包括:
根据所述第一类设备评测环境的软件描述信息,获取所述第一类设备评测环境要求的操作系统以及与所述待评测模型适配的端侧机器学习推理引擎;
根据所述第一类设备评测环境要求的操作系统,采用虚拟化技术在所述目标云侧资源上构建目标容器,在所述目标容器中部署所述端侧机器学习推理引擎,以得到所述第一类设备评测环境对应的云评测环境。
6.根据权利要求5所述的方法,其特征在于,根据所述第一类设备评测环境要求的操作系统,采用虚拟化技术在所述目标云侧资源上构建目标容器,包括:
若所述第一类设备评测环境要求的操作系统与其对应目标云侧资源的操作系统相同,则在所述目标云侧资源上构建依赖宿主操作系统的第一容器作为所述目标容器;
若所述第一类设备评测环境要求的操作系统与其对应目标云侧资源的操作系统不相同,则在所述目标云侧资源上构建自带操作系统的第二容器作为所述目标容器,所述第二容器自带的操作系统与所述第一类设备评测环境要求的操作系统相同。
7.根据权利要求1所述的方法,其特征在于,在目标真机设备提供的硬件运行环境中部署软件运行环境,得到第二类设备评测环境之前,还包括:
根据所述第二类设备评测环境的描述信息,确定可提供所述第二类设备评测环境要求的硬件运行环境的真机设备;
根据所述真机设备的多维度属性信息,将所述真机设备划分为多类,从每类真机设备中选择部分真机设备作为目标真机设备。
8.根据权利要求1所述的方法,其特征在于,根据所述第二类设备评测环境和所述云评测环境对所述待评测模型进行联合评测,以得到所述待评测模型的性能评测结果,包括:
根据所述待评测模型对应的评测任务标识,从评测数据管理端获取与所述待评测模型适配的目标评测数据;
根据所述目标评测数据,分别在所述第二类设备评测环境和所述云评测环境中运行所述待评测模型,得到与性能评测指标项适配的真机评测结果和模拟评测结果;
按照性能评测指标项,对所述真机评测结果和模拟评测结果进行联合分析,以得到所述待评测模型的性能评测结果。
9.根据权利要求1-8任一项所述的方法,其特征在于,还包括:
采用适用于云侧的机器学习框架进行模型训练,得到原始机器学习模型;
根据适用于端侧的机器学习框架,对所述原始机器学习模型进行压缩和转换,得到待评测模型。
10.根据权利要求1-8任一项所述的方法,其特征在于,还包括:
在所述待评测模型的性能评测结果表示评测通过的情况下,将所述待评测模型部署到运行有目标应用的真机设备上;以及
根据所述目标应用运行过程中产生的目标事件的信息,生成所述待评测模型的触发事件序列;
根据所述触发事件序列,触发部署在所述真机设备上的计算容器执行所述待评测模型。
11.一种面向移动端运行算法模型的模拟评测装置,其特征在于,包括:
获取模块,用于响应模型评测请求,获取待评测模型及其对应的多种设备评测环境的描述信息,所述待评测模型是指对原始机器学习模型进行压缩和转换得到的机器学习模型;
确定模块,用于根据所述多种设备评测环境的描述信息,确定待模拟的第一类设备评测环境和基于真机设备的第二类设备评测环境;
构建模块,用于在目标云侧资源上模拟与所述第一类设备评测环境对应的云评测环境,并在目标真机设备提供的硬件运行环境中部署软件运行环境,得到第二类设备评测环境,所述云评测环境与其对应的第一类设备评测环境包括相同的硬件运行环境和软件运行环境;
联合评测模块,用于根据所述第二类设备评测环境和所述云评测环境对所述待评测模型进行联合评测,以得到所述待评测模型的性能评测结果。
12.一种计算机设备,其特征在于,包括:存储器和处理器;所述存储器,用于存储计算机程序,所述处理器与所述存储器耦合,用于执行所述计算机程序,以用于实现权利要求1-10任一项所述方法中的步骤。
13.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求1-10任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210126304.7A CN114168446B (zh) | 2022-02-10 | 2022-02-10 | 一种面向移动端运行算法模型的模拟评测方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210126304.7A CN114168446B (zh) | 2022-02-10 | 2022-02-10 | 一种面向移动端运行算法模型的模拟评测方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114168446A true CN114168446A (zh) | 2022-03-11 |
CN114168446B CN114168446B (zh) | 2022-07-22 |
Family
ID=80489773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210126304.7A Active CN114168446B (zh) | 2022-02-10 | 2022-02-10 | 一种面向移动端运行算法模型的模拟评测方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168446B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361150A (zh) * | 2023-02-22 | 2023-06-30 | 广州汽车集团股份有限公司 | 一种在整车模拟环境中进行车辆测试的方法、装置及系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180267833A1 (en) * | 2017-03-16 | 2018-09-20 | Quanta Computer Inc. | Management systems of cloud resources and management methods thereof |
CN109146081A (zh) * | 2017-06-27 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 一种用于机器学习平台中快速创建模型项目的方法及装置 |
US20190146810A1 (en) * | 2017-11-13 | 2019-05-16 | International Business Machines Corporation | Automated deployment and performance evaluation of a virtualized-computing environment |
CN110705684A (zh) * | 2019-08-22 | 2020-01-17 | 中国科学院计算技术研究所 | 基于端云协同的环境自适应学习方法及系统 |
CN111712795A (zh) * | 2018-05-23 | 2020-09-25 | 西门子股份公司 | 用于评估应用部署的方法、设备、计算机程序产品和可读介质 |
CN112699016A (zh) * | 2021-01-04 | 2021-04-23 | 鹏城实验室 | 云平台性能评估方法、装置、设备及计算机可读存储介质 |
WO2021077814A1 (zh) * | 2019-10-23 | 2021-04-29 | 支付宝(杭州)信息技术有限公司 | 一种由用户终端执行的推送模型优化方法和装置 |
CN112990481A (zh) * | 2021-03-12 | 2021-06-18 | 北京航空航天大学 | 一种基于区块链的机器学习模型自动化评测方法 |
US20210256422A1 (en) * | 2020-02-19 | 2021-08-19 | Google Llc | Predicting Machine-Learned Model Performance from the Parameter Values of the Model |
CN113704082A (zh) * | 2021-02-26 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 模型评测方法、装置、电子设备及存储介质 |
-
2022
- 2022-02-10 CN CN202210126304.7A patent/CN114168446B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180267833A1 (en) * | 2017-03-16 | 2018-09-20 | Quanta Computer Inc. | Management systems of cloud resources and management methods thereof |
CN109146081A (zh) * | 2017-06-27 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 一种用于机器学习平台中快速创建模型项目的方法及装置 |
US20190146810A1 (en) * | 2017-11-13 | 2019-05-16 | International Business Machines Corporation | Automated deployment and performance evaluation of a virtualized-computing environment |
CN111712795A (zh) * | 2018-05-23 | 2020-09-25 | 西门子股份公司 | 用于评估应用部署的方法、设备、计算机程序产品和可读介质 |
US20210248056A1 (en) * | 2018-05-23 | 2021-08-12 | Siemens Aktiengesellschaft | Method for evaluating application deployment, apparatus, computer program product, and readable medium |
CN110705684A (zh) * | 2019-08-22 | 2020-01-17 | 中国科学院计算技术研究所 | 基于端云协同的环境自适应学习方法及系统 |
WO2021077814A1 (zh) * | 2019-10-23 | 2021-04-29 | 支付宝(杭州)信息技术有限公司 | 一种由用户终端执行的推送模型优化方法和装置 |
US20210256422A1 (en) * | 2020-02-19 | 2021-08-19 | Google Llc | Predicting Machine-Learned Model Performance from the Parameter Values of the Model |
CN112699016A (zh) * | 2021-01-04 | 2021-04-23 | 鹏城实验室 | 云平台性能评估方法、装置、设备及计算机可读存储介质 |
CN113704082A (zh) * | 2021-02-26 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 模型评测方法、装置、电子设备及存储介质 |
CN112990481A (zh) * | 2021-03-12 | 2021-06-18 | 北京航空航天大学 | 一种基于区块链的机器学习模型自动化评测方法 |
Non-Patent Citations (3)
Title |
---|
HONGTAO LV: "Data-Free Evaluation of User Contributions in Federated Learning", 《2021 19TH INTERNATIONAL SYMPOSIUM ON MODELING AND OPTIMIZATION IN MOBILE, AD HOC, AND WIRELESS NETWORKS (WIOPT)》 * |
WU-JIU SUN: "Inferring Relationship Semantics in Social Networks with Dual-View Features Semi-Supervised Learning", 《2019 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS (ISCAS)》 * |
杨婷婷等: "移动端AI芯片能力评测工具研究", 《广东通信技术》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116361150A (zh) * | 2023-02-22 | 2023-06-30 | 广州汽车集团股份有限公司 | 一种在整车模拟环境中进行车辆测试的方法、装置及系统 |
CN116361150B (zh) * | 2023-02-22 | 2024-03-01 | 广州汽车集团股份有限公司 | 一种在整车模拟环境中进行车辆测试的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114168446B (zh) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109165249B (zh) | 数据处理模型构建方法、装置、服务器和用户端 | |
KR102103902B1 (ko) | 컴포넌트 기반의 머신러닝 자동화 예측 장치 및 방법 | |
CN113011282A (zh) | 图数据处理方法、装置、电子设备及计算机存储介质 | |
CN110442737A (zh) | 基于图数据库的数字孪生方法及系统 | |
CN112036577B (zh) | 基于数据形式的应用机器学习的方法、装置和电子设备 | |
CN110942086A (zh) | 数据预测优化方法、装置、设备及可读存储介质 | |
WO2022088082A1 (zh) | 基于缺陷检测的任务处理方法、装置及设备及存储介质 | |
CN110188210A (zh) | 一种基于图正则化与模态独立的跨模态数据检索方法及系统 | |
CN114168446B (zh) | 一种面向移动端运行算法模型的模拟评测方法及设备 | |
WO2023160060A1 (zh) | 一种模型优化方法、装置、电子设备、计算机可读存储介质及计算机程序产品 | |
CN116502807A (zh) | 基于科技知识图谱的产业链分析应用方法和装置 | |
US20240095529A1 (en) | Neural Network Optimization Method and Apparatus | |
CN116738081B (zh) | 一种前端组件绑定方法、装置及存储介质 | |
CN112784273A (zh) | 一种sql风险识别方法、装置及设备 | |
WO2024051146A1 (en) | Methods, systems, and computer-readable media for recommending downstream operator | |
CN112541556A (zh) | 模型构建优化方法、设备、介质及计算机程序产品 | |
CN114172908B (zh) | 一种端云协同处理方法及设备 | |
US11681511B2 (en) | Systems and methods for building and deploying machine learning applications | |
US20230140828A1 (en) | Machine Learning Methods And Systems For Cataloging And Making Recommendations Based On Domain-Specific Knowledge | |
CN114168601A (zh) | 一种面向移动端的数据流处理方法及设备 | |
CN116501365B (zh) | 基于算法平台的资源调用方法、装置及设备 | |
CN111459917B (zh) | 知识库管理方法、装置及处理设备 | |
KR102476425B1 (ko) | 생산성 및 수익성 제고를 위한 효율화 서비스 제공 시스템 | |
US20240086188A1 (en) | Automatic navigation between reference architecture and code repository | |
WO2024055920A1 (en) | Automatic adjustment of constraints in task solution generation |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |