CN112035401A - 模型数据处理方法、装置、电子设备及可读介质 - Google Patents
模型数据处理方法、装置、电子设备及可读介质 Download PDFInfo
- Publication number
- CN112035401A CN112035401A CN201910477477.1A CN201910477477A CN112035401A CN 112035401 A CN112035401 A CN 112035401A CN 201910477477 A CN201910477477 A CN 201910477477A CN 112035401 A CN112035401 A CN 112035401A
- Authority
- CN
- China
- Prior art keywords
- model
- processed
- parameters
- floating point
- point type
- 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
- 238000003672 processing method Methods 0.000 title abstract description 25
- 238000007667 floating Methods 0.000 claims abstract description 84
- 238000000034 method Methods 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims abstract description 44
- 238000013507 mapping Methods 0.000 claims description 37
- 238000003860 storage Methods 0.000 claims description 22
- 238000005516 engineering process Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 18
- 238000012549 training Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 13
- 238000013473 artificial intelligence Methods 0.000 description 12
- 238000007906 compression Methods 0.000 description 11
- 230000006835 compression Effects 0.000 description 10
- 238000001514 detection method Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012821 model calculation Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000007493 shaping process Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 238000009776 industrial production Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Databases & Information Systems (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供一种模型数据处理方法、装置、电子设备及可读介质,该方法包括:获取待处理模型,其中,所述待处理模型包括多个浮点型参数、模型结构;对所述多个浮点型参数进行压缩处理以生成参数文件集,并将所述参数文件集与所述模型结构下发至客户端。本公开的模型数据处理方法、装置、电子设备及可读介质,能够降低模型下发的成本、提高模型下发概率,并保证模型运算的精度与稳定性。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种模型数据处理方法、装置、电子设备及计算机可读介质。
背景技术
现有技术中,人工智能能力一般放在服务端,客户端提供对应的样本,由服务端用预先训练好的模型来进行对应的预测运算,并将运算结果回传客户端进行展示。
然而,现有的人工智能方案具有如下缺点:
(1)受到网络性能的干扰,在弱网情况下体验将会降级;
(2)复杂样本其容量较大,在服务端并发处理这类数据时将带来较大风险;
(3)客户端的人工智能能力尚未挖掘,一定程度上造成资源浪费;
(4)即使在非弱网条件下,服务端的并发能力仍有限,对部分业务进行限流或按照一定的比例降级。
因此,需要一种新的模型数据处理方法、装置、电子设备及计算机可读介质。
在所述背景技术部分公开的上述信息仅用于加强对本公开的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本公开提供一种模型数据处理方法、装置、电子设备及计算机可读介质,能够降低模型下发的成本、提高模型下发概率,并保证模型运算的精度与稳定性。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的第一方面,提出一种模型数据处理方法,该方法包括:获取待处理模型,其中,所述待处理模型包括多个浮点型参数、模型结构;对所述多个浮点型参数进行压缩处理以生成参数文件集,并将所述参数文件集与所述模型结构下发至客户端。;
在本公开的一种示例性实施例中,对所述多个浮点型参数进行压缩处理以生成参数文件集包括:对所述多个浮点型参数进行线性映射生成多个整型参数,并将其整合为参数文件集。
在本公开的一种示例性实施例中,对所述多个浮点型参数进行线性映射生成多个整型参数包括:获取所述多个浮点型参数的最大值与最小值;以及基于所述最大值与所述最小值将每一浮点型参数映射为整型参数,以生成多个整型参数。
在本公开的一种示例性实施例中,对所述多个浮点型参数进行压缩处理以生成参数文件集包括:对所述多个浮点型参数进行分段线性映射,以生成多个整型参数。
在本公开的一种示例性实施例中,对所述多个浮点型参数进行分段线性映射,以生成多个整型参数包括:将所述多个浮点型参数分为多个浮点型参数组;获取每一浮点型参数组中的最大值与最小值;以及基于每一浮点型参数组中的所述最大值与所述最小值将每一浮点型参数映射为整型参数,以生成多个整型参数。
在本公开的一种示例性实施例中,将所述参数文件集与所述模型结构下发至客户端还包括:将所述参数文件集、所述模型结构以及标签集下发至客户端。
根据本公开实施例的第二方面,提出一种模型数据处理方法,该方法包括:通过客户端接收待处理模型的参数文件集与模型结构;对所述参数文件集进行解压处理,以获得多个浮点型参数;以及根据所述模型结构与所述多个浮点型参数搭建所述待处理模型,以通过所述待处理模型进行运算。在本公开的一种示例性实施例中,对所述参数文件集进行解压处理,以获得所述多个浮点型参数包括:通过线性映射的逆映射将所述多个整型参数转换为所述待处理模型的所述多个浮点型参数。
在本公开的一种示例性实施例中,根据所述模型结构与所述多个浮点型参数搭建所述待处理模型包括:根据所述模型结构确定所述待处理模型的多个算子;以及根据所述多个算子与所述多个浮点型参数搭建所述待处理模型。
在本公开的一种示例性实施例中,据所述模型结构与所述多个浮点型参数搭建所述待处理模型包括:基于mmap内存映射文件技术,根据所述模型结构与所述多个浮点型参数搭建所述待处理模型。
在本公开的一种示例性实施例中,通过所述待处理模型进行运算包括:获取所述待处理模型的运算数据;以及将所述运算数据转化为所述待处理模型的可识别格式,以输入所述客户端的所述待处理模型进行运算。
在本公开的一种示例性实施例中,还包括:在所述客户端接收所述待处理模型失败或所述待处理模型的运算结果错误时,将所述运算数据发送至服务端以完成运算。
根据本公开实施例的第三方面,提出一种模型数据处理装置,该装置包括:服务端,用于获取待处理模型,其中,所述待处理模型包括多个浮点型参数、模型结构;对所述多个浮点型参数进行压缩处理以生成参数文件集,并将所述参数文件集与所述模型结构下发至客户端;以及客户端,用于对接收到的所述参数文件集进行解压处理,以获得所述多个浮点型参数;根据所述模型结构与所述多个浮点型参数搭建所述待处理模型,以通过所述待处理模型进行运算。
根据本公开实施例的第四方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项所述的模型数据处理方法。
根据本公开实施例的第五方面,提出一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上述任一项所述的模型数据处理方法。
根据本公开的模型数据处理方法、装置、电子设备及计算机可读介质,能够降低模型下发的成本、提高模型下发概率,并保证模型运算的精度与稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种模型数据处理方法及装置的系统框图。
图2是根据一示例性实施例示出的一种模型数据处理方法的流程图。
图3是根据一示例性实施例示出的一种模型数据处理方法的流程图。
图4是根据一示例性实施例示出的一种模型数据处理方法的流程图。
图5是根据一示例性实施例示出的一种模型数据处理方法的流程图。
图6是根据一示例性实施例示出的一种模型数据处理装置的框图。
图7是根据另一示例性实施例示出的一种模型数据处理装置的框图。
图8是根据一示例性实施例示出的一种电子设备的框图。
图9是根据一示例性实施例示出一种计算机可读存储介质示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图仅为本发明的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和步骤,也不是必须按所描述的顺序执行。例如,有的步骤还可以分解,而有的步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
下面结合附图对本发明示例实施方式进行详细说明。
图1是根据一示例性实施例示出的一种模型数据处理方法及装置的系统框图。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所进行操作的模型数据处理系统提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的模型数据处理请求等数据进行分析等处理,并将处理结果(例如参数文件集、模型结构--仅为示例)反馈给终端设备。
服务器105可例如获取待处理模型,其中,所述待处理模型包括多个浮点型参数、模型结构;服务器105可例如对所述多个浮点型参数进行压缩处理以生成参数文件集,并将所述参数文件集与所述模型结构下发至客户端;终端设备101、102、103可例如所述客户端对接收到的所述参数文件集进行解压处理,以获得所述多个浮点型参数。终端设备101、102、103可例如所述客户端根据所述模型结构与所述多个浮点型参数搭建所述待处理模型,以通过所述待处理模型进行运算。
服务器105可以是一个实体的服务器,还可例如为多个服务器组成,服务器105中的一部分可例如作为本公开中的模型数据处理任务提交系统,用于获取将要执行模型数据处理命令的任务;以及服务器105中的一部分还可例如作为本公开中的模型数据处理系统,用于获取待处理模型,其中,所述待处理模型包括多个浮点型参数、模型结构;对所述多个浮点型参数进行压缩处理以生成参数文件集,并将所述参数文件集与所述模型结构下发至客户端
需要说明的是,本公开实施例所提供的模型数据处理的方法可以由服务器105执行,相应地,模型数据处理的装置可以设置于服务器105中。而提供给用户用于提交模型数据处理任务与获取模型数据处理结果的请求端一般位于终端设备101、102、103中。
根据本公开的模型数据处理方法及装置,能够降低模型下发的成本、提高模型下发概率,并保证模型运算的精度与稳定性。
图2是根据一示例性实施例示出的一种模型数据处理方法的流程图。模型数据处理方法20至少包括步骤S202至S208。
如图2所示,在步骤S202中,获取待处理模型,其中,所述待处理模型包括多个浮点型参数、模型结构。待处理模型可为人工智能运算模型,例如但不限于为神经网络模型、向量机模型等。待处理模型将要下发至客户端,并用于实现离线模型运算的功能。
在步骤S204中,对所述多个浮点型参数进行压缩处理以生成参数文件集,并将所述参数文件集与所述模型结构下发至客户端。例如,训练好的待处理模型中,其参数通常是具有小数部分的浮点型参数。一个浮点型参数存在存储时至少需要32字节的内存空间,将消耗大量的内存空间。通过对浮点型的多个参数进行压缩处理,以便于将待处理模型进行下发。
在一个实施例中,可将对待处理模型的所述多个浮点型参数进行线性映射,以生成多个整型参数,并将其整合为参数文件集。其中,线性映射是从一个向量空间V到另一个向量空间W的映射,并且保持加法运算和数量乘法运算。在本实施例中,根据多个参数构建向量空间并将其映射至另一向量空间,以将其映射至整型参数的向量空间,从而降低其存储空间。
在一个实施例中,可获取所述多个浮点型参数的最大值与最小值;以及基于最大值与最小值将每一浮点型参数映射为整型参数,以生成多个整型参数。例如,首先获取浮点型的多个参数的最大值imax与最小值imin,为将浮点型的多个参数映射为8位的整型参数,对每一参数ij通过式(1)将其映射为整型参数i′j:
通过上式可将浮点型参数转化为无符号的8比特的整型参数。
在一个实施例中,可对所述多个浮点型参数进行分段线性映射,以生成多个整型参数。在对参数进行线性映射时,实际的模型参数未必完全符合其映射规律。在通过上一实施例对多个参数进行压缩时,将降低参数还原的精度。本实施例的方法通过将现行拟合优化为分段现行拟合,可以在一定程度上抵消部分精度的降低。
在一个实施例中,将所述多个浮点型参数分为多个浮点型参数组;获取每一浮点型参数组中的最大值与最小值;以及基于每一浮点型参数组中的最大值与最小值将每一浮点型参数映射为整型参数,以生成多个整型参数。其中,通过在多个参数组中单独进行参数压缩,能够抵消部分精度的降低。
在一个实施例中,将所述参数文件集、所述模型结构以及标签集下发至客户端。其中,待处理模型中不仅包含多个浮点型参数,同时包含模型结构,将模型结构例如前向推理图等整合在第二模型数据中,并将其下发至客户端。当待处理模型的应用场景需要分类时,可为待处理模型配置标签集,以通过待处理模型对输入数据进行分类以获取输入数据的标签。
在一个实施例中,在将第二模型数据下发至客户端时,由于模型压缩将导致参数的精度下降,不可避免地会影响模型训练结果的准确性。在此情况下,在下发至客户端之前加入校验过程,以评估模型参数压缩的影响,其具体的做法是对上述压缩进行还原,然后在服务端进行样本检测,观察样本训练结果与原模型训练结果的差异。
图3是根据一示例性实施例示出的一种模型数据处理方法的流程图。如图3所示,模型数据处理方法30至少包括步骤S302至S306。
在步骤S302中,通过客户端接收待处理模型的参数文件集与模型结构。
在步骤S304中,对所述参数文件集进行解压处理,以获得所述多个浮点型参数。其中,参数文件集中包含多个浮点型参数经过压缩后的对应数值。通过对其进行解压处理以获取原本待处理模型中的多个浮点型参数。
可通过模型解释系统对模型结构进行处理,以实现模型要求的所有算子。其中,可构建一套模型算法的解释系统,即包含与模型要求的所有算子以及与待处理模型对应的数据结构。例如,当客户端系统为IOS8、IOS9的操作系统时,采用tensorflow框架;当客户端为IOS10时,基于MetalPerformanceShader封装各个算子;当客户端为IOS11+时,采用Core ML框架;当客户端为安卓系统时,可采用tensorflew框架。此外,对特定的机型可基于其自身平台进行对应的补充和优化。例如,在华为机器上采用HIAI能力运行模型;在ios系统上基于Metal运行模型,可提升本申请的模型数据处理方法在该设备上的运行效率。
在一个实施例中,可通过线性映射的逆映射将多个整型参数转换为待处理模型的多个浮点型参数。其中,在S204的压缩过程中,通过线性映射的方法将多个浮点型参数映射为整型参数。在本实施例中,通过对应线性映射的逆映射可将多个压缩后的整型参数解压为浮点型参数,以还原多个浮点型参数。
在步骤S306中,根据所述模型结构与所述多个浮点型参数搭建所述待处理模型,以通过所述待处理模型进行运算。其中,在S206中还原了多个浮点型参数后,根据多个浮点型参数与模型结构搭建待处理模型,以实现客户端无障碍下载待处理模型。
在一个实施例中,可根据模型结构确定待处理模型的多个算子;以及根据多个算子与多个参数搭建待处理模型。
在一个实施例中,可基于mmap内存映射文件技术,所述客户端根据所述模型结构与所述多个浮点型参数搭建所述待处理模型。其中,mmap内存映射文件技术用于将一个文件或者其他对象映射进内存。该技术以指针的方式读写内容,可使数据传递过程不涉及内核。
在一个实施例中,可获取待处理模型的运算数据;以及将运算数据转化为待处理模型的可识别格式,以输入客户端的待处理模型进行运算。其中,客户端在获取运算数据时,可封装一层标准协议以方便将运算数据转化为待处理模型能够识别的格式。
在一个实施例中,还包括:在所述客户端接收待处理模型失败或待处理模型的运算结果错误时,将运算数据发送至服务端以完成运算。在客户端中接收待处理模型失败,或模型失败结果异常时,可降级将运算数据上传至服务端,由服务端完成运算任务,以保证运算结果的稳定输出,减少运算故障。
本公开的模型数据处理方法可例如应用于拍照购的场景中。相关技术中,用户通过客户端拍摄某一物品的照片,客户端将该照片发送至服务器A,服务器A通过图片检测模型对该图片进行检测,扣取获得物品图片,并将其返回至客户端,客户端再将该物品图片发送至服务器B,服务器B通过识别模型对该物品进行识别获得该物品的标签,并在商品库查找返回该标签下的商品链接至客户端,客户端接收到商品链接后对其进行后续操作,例如在客户端进行展示。
本公开的模型数据处理方法应用在拍照购时,可将图片检测模型进行压缩并下发至客户端,客户端拍摄获得照片后,在客户端进行图片检测运算以获得扣取后的物品图片;客户端可将扣取后的物品图片发送至服务器B,以通过服务器B中的识别模型进行后续操作。在另一实施例中,还可将识别模型也压缩并下发至客户端,以将拍照购的全部运算过程下发至客户端,本公开对模型数据处理方法的具体应用对象并不作特殊限定。又例如,拍照购的应用场景中,客户端可不用拍摄物品的照片,直接通过获取物品的视频数据,以根据多帧画面进行图片检测与识别。本公开的模型数据处理方法能够实现移动端的AI能力,减轻服务端的运算压力,无需耗费客户端与服务端通讯时产生的流量与传输时间,提高运算效率。
根据本公开的模型数据处理方法,通过对待处理模型进行剪裁,下发至客户端,以实现客户端离线的模型运算能力,能够降低模型下发的成本、提高模型下发概率,并保证模型运算的精度与稳定性。
图4是根据一示例性实施例示出的一种模型数据处理方法的流程图。模型数据处理方法40至少包括步骤S402至S406。
如图4所示,在步骤S402中,将所述多个浮点型参数分为多个浮点型参数组。例如原参数集为ε1,ε2,……,εn,将其分组为:
{ε1,ε2,……εi}
{εi+1,εi+2,……εi+k}
……
{εj,εj+1,……εn}
其中,分组组数依赖于模型还原的效果,当前组数下,模型还原的效果达到了预期的目标即可。
在步骤S404中,获取每一浮点型参数组中的最大值与最小值。
在步骤S406中,基于每一浮点型参数组中的最大值与最小值将每一浮点型参数映射为整型参数,以生成多个整型参数。在每一组中的线性映射方法可见公式(1),此处不再赘述。
图5是根据一示例性实施例示出的一种模型数据处理方法的流程图。模型数据处理方法50至少包括步骤S502至S506。
在步骤S502中,根据模型结构确定待处理模型的多个算子。其中,对于客户端无法支持的算子,需要服务端进行对应的调整,采用其他算子来实现。
在步骤S504中,根据多个算子与多个参数搭建待处理模型。例如,服务端可对待处理模型的模型结构进行抽取。又例如,在安卓平台可基于TensorFlow来实现。TensorFlow中有用于不同类型模型转化的工具。例如,在iOS8、iOS9采用tensorflow框架,在iOS10上基于MetalPerformanceShader来封装各个算子,在iOS11+采用Core ML框架。在安卓平台上既可以采用tensorflow来运行模型,特定的机型可以基于自身的平台进行对应的补充和优化,如可以在华为平台的客户端采用HIAI能力运行模型。
根据本公开的模型数据处理方法,在模型下发过程中对模型进行剪裁,大幅压缩模型大小,能够降低模型下发到客户端的成本。
根据本公开的模型数据处理方法,客户端构建的模型运算系统有很好的通用性,用户只需要按照约定的格式进行下发模型参数、网络结构等,就可以自动完成模型的搭建,降低了客户端实现人工智能能力的使用门槛。
根据本公开的模型数据处理方法,采用mmap内存映射的技术(iOS上还可以采用accelerate加速技术)极大的提升了模型还原的效率。
根据本公开的模型数据处理方法,针对不同平台的特性的选择不同的优化方法(如iOS上基于Metal运行模型,安卓的华为手机采用HiAI框架),能够最大化的提高当前平台的用户体验。
应清楚地理解,本公开描述了如何形成和使用特定示例,但本公开的原理不限于这些示例的任何细节。相反,基于本公开公开的内容的教导,这些原理能够应用于许多其它实施例。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本公开提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图6是根据一示例性实施例示出的一种模型数据处理装置的框图。参照图6,模型数据处理装置60至少包括:服务端602、客户端604。
在模型数据处理装置60中,服务端602用于获取待处理模型,其中,所述待处理模型包括多个浮点型参数、模型结构;对所述多个浮点型参数进行压缩处理以生成参数文件集,并将所述参数文件集与所述模型结构下发至客户端。
在一个实施例中,服务端602用于对所述多个浮点型参数进行线性映射生成多个整型参数,并将其整合为参数文件集。
在一个实施例中,服务端602用于获取所述多个浮点型参数的最大值与最小值;以及基于最大值与最小值将每一浮点型参数映射为整型参数,以生成多个整型参数。
在一个实施例中,服务端602用于对所述多个浮点型参数进行分段线性映射,以生成多个整型参数。
在一个实施例中,服务端602用于将所述多个浮点型参数分为多个浮点型参数组;获取每一浮点型参数组中的最大值与最小值;以及基于每一浮点型参数组中的最大值与最小值将每一浮点型参数映射为整型参数,以生成多个整型参数。
在一个实施例中,服务端602用于将所述参数文件集、所述模型结构以及标签集下发至客户端。
客户端604用于对接收到的所述参数文件集进行解压处理,以获得所述多个浮点型参数;根据所述模型结构与所述多个浮点型参数搭建所述待处理模型,以通过所述待处理模型进行运算。
在一个实施例中,客户端604用于通过线性映射的逆映射将多个整型参数转换为待处理模型的多个浮点型参数。
在一个实施例中,客户端604用于根据模型结构确定待处理模型的多个算子;以及根据多个算子与多个浮点型参数搭建待处理模型。
在一个实施例中,客户端604用于基于mmap内存映射文件技术,根据所述模型结构与所述多个浮点型参数搭建所述待处理模型。
在一个实施例中,客户端604用于获取待处理模型的运算数据;以及将运算数据转化为待处理模型的可识别格式,以输入客户端的待处理模型进行运算。
在一个实施例中,客户端604还用于在待处理模型下发失败或待处理模型的运算结果错误时,将运算数据发送至服务端以完成运算。
根据本公开的模型数据处理装置,通过对待处理模型进行剪裁,下发至客户端,以实现客户端离线的模型运算能力。能够降低模型下发的成本、提高模型下发概率,并保证模型运算的精度与稳定性。
图7是根据另一示例性实施例示出的一种模型数据处理装置的框图。图7示出的模型数据处理装置70描述了人工智能模型在下发时的结构,其至少包括服务端702、客户端704。
服务端702用于模型的训练与下发。
在模型的训练过程中,主要包括:(1)新模型的训练,包括模型网络结构选择,模型搭建,模型训练过程中的调整,训练样本收集,训练结果优化等。最终获取与业务需求匹配的人工智能模型;(2)已有模型的转化,如业务已经从其他渠道获取到了可用的神经网络模型,这里需要做模型的转化,以方便客户端使用。比如iOS平台,本身并不具备运行caffe和MXNet训练的模型,但是可以运行Core ML的模型,这里后台需要将caffe和MXNet的模型转化为Core ML的模型,Apple提供了对应的工具包可以解决这一问题。在本示例实施例中,在iOS10上采用了基于MetalPerfanceShader框架搭建的神经网络运行系统,这一系统只需要神经网络的网络结构以及各层kernel的参数即可。可在服务端702自定义模型结构抽取工具对已有神经网络的网络结构进行抽取。而在安卓平台,本实施例可基于TensorFlow来实现,TensorFlow中包含有将不同类型模型进行转化的工具。通过上述方式,可进行统一集成,以实现自动化部署完成模型下发。
模型在下发时,首先对其进行压缩,原始训练的模型大小较大,一般在好几百M,这样的模型无法在工业生产中进行网络下发。模型的压缩包括两个方面:(一)模型参数高精度到低精度的转换,一般情况下,模型训练结果的参数为浮点小数,一个浮点小数的表示最少需要32字节,本方案是把浮点小数映射为255以内的整数,这样模型的每个参数只需要8字节。这种表示会让模型的大小减小到原生模型的1/4,方便后台下发。(二)模型压缩效果检验,因为模型压缩本质上会导致参数的精度下降,不可避免的会影响模型训练的结果的准确性。在此情况下,在服务端702中加入校验能力,评估模型参数压缩的影响,其具体的做法是对上述压缩进行还原,然后在服务端702进行样本检测,观察样本训练结果与原模型训练结果的差异。
客户端704用于接收并搭建人工智能模型,其主要用于:(1)人工智能模型的搭建。人工智能模型的本质是多个算子按照模型结构整合在一起的实体。通过人工智能算法的解释系统实现该模型结构要求的所有算子(对于客户端704无法支持的算子,需要服务端702进行对应的调整,采用其他算子来实现),并实现与模型结构对应的数据结构表达。(2)模型的复原。下发到客户端704的模型中的参数均为被压缩为8字节的整形数据,以减小服务端702下发模型的大小,提高下发概率。模型下发到客户端704后,需进行还原,即将下发到客户端704的整形数据按裁剪的逆规则转化为浮点型参数。其中,服务端702在裁剪过程,需在剪裁后的文件中保存原参数文件内的最大值和最小值。客户端704将参数集还原后,再利用服务端704下发的模型结构和可预测的标签集,整理构建成一个备用的人工智能模型。本发明在模型的复原的过程采用了mmap的内存映射技术,在iOS上还可以结合accelerate框架进行加速,很好的提升了复原效率。(3)训练数据的收集,模型最终使用样本数据进行训练,以获取训练结果。便于输入数据,在客户端704封装一层标准的协议,以将业务提供的训练数据转化为模型可以识别的格式。例如当前模型只支持文字,则可将输入的音频先进行语音识别处理成文字,以供模型使用。
图8是根据一示例性实施例示出的一种电子设备的框图。
下面参照图8来描述根据本公开的这种实施方式的电子设备200。图8显示的电子设备200仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备200以通用计算设备的形式表现。电子设备200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同系统组件(包括存储单元220和处理单元210)的总线230、显示单元240等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元210执行,使得所述处理单元210执行本说明书上述电子处方流转处理方法部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元210可以执行如图2,图3,图4,图5中所示的步骤。
所述存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(ROM)2203。
所述存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备200也可以与一个或多个外部设备300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述方法。
图9示意性示出本公开示例性实施例中一种计算机可读存储介质示意图。
参考图9所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品400,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:获取待处理模型,其中,所述待处理模型包括多个浮点型参数、模型结构;对所述多个浮点型参数进行压缩处理以生成参数文件集,并将所述参数文件集与所述模型结构下发至客户端;所述客户端对接收到的所述参数文件集进行解压处理,以获得所述多个浮点型参数;以及所述客户端根据所述模型结构与所述多个浮点型参数搭建所述待处理模型,以通过所述待处理模型进行运算。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施例的方法。
以上具体地示出和描述了本公开的示例性实施例。应可理解的是,本公开不限于这里描述的详细结构、设置方式或实现方法;相反,本公开意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (15)
1.一种模型数据处理方法,其特征在于,包括:
获取待处理模型,其中,所述待处理模型包括多个浮点型参数、模型结构;
对所述多个浮点型参数进行压缩处理以生成参数文件集,并将所述参数文件集与所述模型结构下发至客户端。
2.如权利要求1所述的方法,其特征在于,对所述多个浮点型参数进行压缩处理以生成参数文件集包括:
对所述多个浮点型参数进行线性映射生成多个整型参数,并将其整合为参数文件集。
3.如权利要求2所述的方法,其特征在于,对所述多个浮点型参数进行线性映射生成多个整型参数包括:
获取所述多个浮点型参数的最大值与最小值;以及
基于所述最大值与所述最小值将每一浮点型参数映射为整型参数,以生成多个整型参数。
4.如权利要求1所述的方法,其特征在于,对所述多个浮点型参数进行压缩处理以生成参数文件集包括:
对所述多个浮点型参数进行分段线性映射,以生成多个整型参数。
5.如权利要求4所述的方法,其特征在于,对所述多个浮点型参数进行分段线性映射,以生成多个整型参数包括:
将所述多个浮点型参数分为多个浮点型参数组;
获取每一浮点型参数组中的最大值与最小值;以及
基于每一浮点型参数组中的所述最大值与所述最小值将每一浮点型参数映射为整型参数,以生成多个整型参数。
6.如权利要求1所述的方法,其特征在于,将所述参数文件集与所述模型结构下发至客户端还包括:
将所述参数文件集、所述模型结构以及标签集下发至客户端。
7.一种模型数据处理方法,其特征在于,包括:
通过客户端接收待处理模型的参数文件集与模型结构;
对所述参数文件集进行解压处理,以获得多个浮点型参数;以及
根据所述模型结构与所述多个浮点型参数搭建所述待处理模型,以通过所述待处理模型进行运算。
8.如权利要求7所述的方法,其特征在于,对所述参数文件集进行解压处理,以获得所述多个浮点型参数包括:
通过线性映射的逆映射将所述多个整型参数转换为所述待处理模型的所述多个浮点型参数。
9.如权利要求7所述的方法,其特征在于,根据所述模型结构与所述多个浮点型参数搭建所述待处理模型包括:
根据所述模型结构确定所述待处理模型的多个算子;以及
根据所述多个算子与所述多个浮点型参数搭建所述待处理模型。
10.如权利要求7所述的方法,其特征在于,根据所述模型结构与所述多个浮点型参数搭建所述待处理模型包括:
基于mmap内存映射文件技术,根据所述模型结构与所述多个浮点型参数搭建所述待处理模型。
11.如权利要求7所述的方法,其特征在于,通过所述待处理模型进行运算包括:
获取所述待处理模型的运算数据;以及
将所述运算数据转化为所述待处理模型的可识别格式,以输入所述客户端的所述待处理模型进行运算。
12.如权利要求7所述的方法,其特征在于,还包括:
在所述客户端接收所述待处理模型失败或所述待处理模型的运算结果错误时,将所述运算数据发送至服务端以完成运算。
13.一种模型数据处理装置,其特征在于,包括:
服务端,用于获取待处理模型,其中,所述待处理模型包括多个浮点型参数、模型结构;对所述多个浮点型参数进行压缩处理以生成参数文件集,并将所述参数文件集与所述模型结构下发至客户端;以及
客户端,用于对接收到的所述参数文件集进行解压处理,以获得所述多个浮点型参数;根据所述模型结构与所述多个浮点型参数搭建所述待处理模型,以通过所述待处理模型进行运算。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;以及
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-12中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910477477.1A CN112035401A (zh) | 2019-06-03 | 2019-06-03 | 模型数据处理方法、装置、电子设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910477477.1A CN112035401A (zh) | 2019-06-03 | 2019-06-03 | 模型数据处理方法、装置、电子设备及可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112035401A true CN112035401A (zh) | 2020-12-04 |
Family
ID=73576171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910477477.1A Pending CN112035401A (zh) | 2019-06-03 | 2019-06-03 | 模型数据处理方法、装置、电子设备及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035401A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463706A (zh) * | 2020-12-07 | 2021-03-09 | 上海电气集团股份有限公司 | 一种数据发送、接收方法及通信终端 |
CN112819153A (zh) * | 2020-12-31 | 2021-05-18 | 杭州海康威视数字技术股份有限公司 | 一种模型转化方法及装置 |
CN114116051A (zh) * | 2021-11-17 | 2022-03-01 | 招联消费金融有限公司 | 基于神经网络模型的处理方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108053034A (zh) * | 2018-01-02 | 2018-05-18 | 武汉斗鱼网络科技有限公司 | 模型参数处理方法、装置、电子设备及存储介质 |
WO2018107414A1 (zh) * | 2016-12-15 | 2018-06-21 | 上海寒武纪信息科技有限公司 | 压缩/解压缩神经网络模型的装置、设备和方法 |
CN108667850A (zh) * | 2018-05-21 | 2018-10-16 | 济南浪潮高新科技投资发展有限公司 | 一种人工智能服务系统及其实现人工智能服务的方法 |
CN108932124A (zh) * | 2018-06-26 | 2018-12-04 | Oppo广东移动通信有限公司 | 神经网络模型压缩方法、装置、终端设备及存储介质 |
-
2019
- 2019-06-03 CN CN201910477477.1A patent/CN112035401A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018107414A1 (zh) * | 2016-12-15 | 2018-06-21 | 上海寒武纪信息科技有限公司 | 压缩/解压缩神经网络模型的装置、设备和方法 |
CN108053034A (zh) * | 2018-01-02 | 2018-05-18 | 武汉斗鱼网络科技有限公司 | 模型参数处理方法、装置、电子设备及存储介质 |
CN108667850A (zh) * | 2018-05-21 | 2018-10-16 | 济南浪潮高新科技投资发展有限公司 | 一种人工智能服务系统及其实现人工智能服务的方法 |
CN108932124A (zh) * | 2018-06-26 | 2018-12-04 | Oppo广东移动通信有限公司 | 神经网络模型压缩方法、装置、终端设备及存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463706A (zh) * | 2020-12-07 | 2021-03-09 | 上海电气集团股份有限公司 | 一种数据发送、接收方法及通信终端 |
CN112463706B (zh) * | 2020-12-07 | 2024-05-31 | 上海电气集团股份有限公司 | 一种数据发送、接收方法及通信终端 |
CN112819153A (zh) * | 2020-12-31 | 2021-05-18 | 杭州海康威视数字技术股份有限公司 | 一种模型转化方法及装置 |
CN112819153B (zh) * | 2020-12-31 | 2023-02-07 | 杭州海康威视数字技术股份有限公司 | 一种模型转化方法及装置 |
CN114116051A (zh) * | 2021-11-17 | 2022-03-01 | 招联消费金融有限公司 | 基于神经网络模型的处理方法、装置、设备和存储介质 |
CN114116051B (zh) * | 2021-11-17 | 2024-03-22 | 招联消费金融股份有限公司 | 基于神经网络模型的处理方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035401A (zh) | 模型数据处理方法、装置、电子设备及可读介质 | |
CN107315729B (zh) | 用于图表的数据处理方法、介质、装置和计算设备 | |
JP2021103506A (ja) | 情報を生成するための方法及び装置 | |
CN111694926A (zh) | 基于场景动态配置的交互处理方法、装置、计算机设备 | |
US11581903B2 (en) | Data compression method and apparatus, computer-readable storage medium, and electronic device | |
CN110705235A (zh) | 业务办理的信息录入方法、装置、存储介质及电子设备 | |
CN111708673A (zh) | 一种日志数据压缩方法、装置、设备和存储介质 | |
CN113657471A (zh) | 多分类梯度提升树的构建方法、装置及电子设备 | |
CN113656124A (zh) | 登录页面的生成方法及其装置 | |
CN111046010A (zh) | 日志储存方法、装置、系统、电子设备和计算机可读介质 | |
CN110505289B (zh) | 文件下载方法及装置、计算机可读介质、无线通信设备 | |
CN109684207B (zh) | 操作序列封装的方法、装置、电子设备及存储介质 | |
CN113010542A (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN116860941A (zh) | 问答方法、装置、电子设备及存储介质 | |
CN113157911A (zh) | 一种服务验证方法和装置 | |
CN107562461B (zh) | 特征计算系统及方法、存储介质和电子设备 | |
CN113590447B (zh) | 埋点处理方法和装置 | |
CN115330540A (zh) | 一种处理交易数据的方法和装置 | |
CN110795424B (zh) | 特征工程变量数据请求处理方法、装置及电子设备 | |
CN114429211A (zh) | 用于生成信息的方法、装置、设备、介质和产品 | |
CN114218166A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
US11797277B2 (en) | Neural network model conversion method server, and storage medium | |
CN113919310A (zh) | 短信内容确定方法、装置、电子设备及存储介质 | |
CN114064025A (zh) | 训练流水线模型的生成方法、装置、设备以及存储介质 | |
CN110134843B (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 |