CN116629375A - 模型处理方法以及系统 - Google Patents
模型处理方法以及系统 Download PDFInfo
- Publication number
- CN116629375A CN116629375A CN202310454325.6A CN202310454325A CN116629375A CN 116629375 A CN116629375 A CN 116629375A CN 202310454325 A CN202310454325 A CN 202310454325A CN 116629375 A CN116629375 A CN 116629375A
- Authority
- CN
- China
- Prior art keywords
- weight
- zero value
- storage unit
- information storage
- machine learning
- 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 claims abstract description 43
- 239000011159 matrix material Substances 0.000 claims abstract description 179
- 238000003860 storage Methods 0.000 claims abstract description 179
- 238000010801 machine learning Methods 0.000 claims abstract description 121
- 238000012545 processing Methods 0.000 claims abstract description 60
- 238000004364 calculation method Methods 0.000 claims abstract description 58
- 238000000034 method Methods 0.000 claims description 44
- 230000008707 rearrangement Effects 0.000 claims description 29
- 238000013138 pruning Methods 0.000 claims description 20
- 238000013500 data storage Methods 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000005520 cutting process Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 210000002569 neuron Anatomy 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001788 irregular Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供模型处理方法以及系统,其中所述模型处理系统包括客户端和服务端;客户端,被配置为向服务端发送模型处理请求,其中,模型处理请求携带待处理数据;服务端,被配置为从权重信息存储单元中获取机器学习模型的非零值权重;从权重信息存储单元对应的位置信息存储单元中获取非零值权重在机器学习模型的权重矩阵中的位置信息;利用非零值权重和非零值权重在权重矩阵中的位置信息,对待处理数据进行卷积计算。由于权重信息存储单元只需要存储非零值权重,提高了数据存储效率,节省了数据存储空间,并且,模型在卷积计算时,只需要根据非零值权重对待处理数据进行卷积计算,在保持计算精度的基础上,减少了模型推理时间。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种模型处理系统方法。本说明书一个或者多个实施例同时涉及模型处理方法,模型处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序。
背景技术
随着计算机技术的发展,深度学习在计算机视觉、语音识别和自然语言处理等领域的应用不断扩大,人工智能领域对高性能计算能力的需求也随之增加。如何提高深度学习模型的性能逐渐成为研究重点。
目前,可以通过非结构化裁剪的方式进行模型性能优化和模型推理加速:通过将模型中不重要的参数裁剪掉,减小模型体积和执行推理任务所需要的运算次数,从而达到提高计算性能的目的。然而,非结构化裁剪过程中被裁剪掉的参数无法直接被删减,仍然存在模型权重中,以无效计算的角色占据着模型推理时的计算资源。因此,亟需一种高效的模型处理方案。
发明内容
有鉴于此,本说明书实施例提供了一种模型处理系统。本说明书一个或者多个实施例同时涉及模型处理方法,模型处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种模型处理系统,包括客户端和服务端;客户端,被配置为向服务端发送模型处理请求,其中,模型处理请求携带待处理数据;服务端,被配置为从权重信息存储单元中获取机器学习模型的非零值权重;从权重信息存储单元对应的位置信息存储单元中获取非零值权重在机器学习模型的权重矩阵中的位置信息;利用非零值权重和非零值权重在权重矩阵中的位置信息,对待处理数据进行卷积计算。
根据本说明书实施例的第二方面,提供了一种模型处理方法,包括:确定机器学习模型的权重矩阵,其中,权重矩阵中包括非零值权重和零值权重;获取权重矩阵中的非零值权重和非零值权重在权重矩阵中的位置信息;将非零值权重存储至权重信息存储单元,并将非零值权重的位置信息存储至对应的位置信息存储单元。
根据本说明书实施例的第三方面,提供了一种模型处理方法,包括:获取机器学习模型的非零值权重和非零值权重在机器学习模型的权重矩阵中的位置信息;利用非零值权重和非零值权重在权重矩阵中的位置信息,对输入机器学习模型的待处理数据进行卷积计算。
根据本说明书实施例的第四方面,提供了一种模型处理装置,包括:确定模块,被配置为确定机器学习模型的权重矩阵,其中,权重矩阵中包括非零值权重和零值权重;第一获取模块,被配置为获取权重矩阵中的非零值权重和非零值权重在权重矩阵中的位置信息;存储模块,被配置为将非零值权重存储至权重信息存储单元,并将非零值权重的位置信息存储至对应的位置信息存储单元。
根据本说明书实施例的第五方面,提供了一种模型处理装置,包括:第二获取模块,被配置为获取机器学习模型的非零值权重和非零值权重在机器学习模型的权重矩阵中的位置信息;计算模块,被配置为利用非零值权重和非零值权重在权重矩阵中的位置信息,对输入机器学习模型的待处理数据进行卷积计算。
根据本说明书实施例的第六方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述第二方面或者第三方面所提供方法的步骤。
根据本说明书实施例的第七方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述第二方面或者第三方面所提供方法的步骤。
根据本说明书实施例的第八方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述第二方面或者第三方面所提供方法的步骤。
本说明书一个实施例提供的模型处理系统,包括客户端和服务端;客户端,被配置为向服务端发送模型处理请求,其中,模型处理请求携带待处理数据;服务端,被配置为从权重信息存储单元中获取机器学习模型的非零值权重;从权重信息存储单元对应的位置信息存储单元中获取非零值权重在机器学习模型的权重矩阵中的位置信息;利用非零值权重和非零值权重在权重矩阵中的位置信息,对待处理数据进行卷积计算。由于权重信息存储单元无需存储机器学习模型中的零值权重,只需要存储非零值权重,从而提高了数据存储效率,节省了数据存储空间,并且,在卷积计算时,只需要根据非零值权重对待处理数据进行卷积计算,在保持计算精度的基础上,减少了模型推理时间。
附图说明
图1是本说明书一个实施例提供的一种模型处理系统的架构图;
图2是本说明书一个实施例提供的另一种模型处理系统的架构图;
图3是本说明书一个实施例提供的一种模型处理方法的流程图;
图4是本说明书一个实施例提供的一种模型处理方法的处理过程示意图;
图5是本说明书一个实施例提供的另一种模型处理方法的流程图;
图6是本说明书一个实施例提供的另一种模型处理方法的处理过程示意图;
图7是本说明书一个实施例提供的一种模型处理方法的处理过程流程图;
图8是本说明书一个实施例提供的一种模型处理方法的处理效果示意图;
图9是本说明书一个实施例提供的一种模型处理装置的结构示意图;
图10是本说明书一个实施例提供的另一种模型处理装置的结构示意图;
图11是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
此外,需要说明的是,本说明书一个或多个实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
稀疏矩阵:稀疏矩阵是指绝大多数元素都是0的矩阵。如果一个矩阵的非零元素数量远小于该矩阵元素总数的一定比例(如1%),则该矩阵可以被认为是一个稀疏矩阵。稀疏矩阵在很多领域都有广泛的应用,比如图像处理、网络分析、数据挖掘和科学计算等领域。由于其大部分元素为0,因此本说明书实施例提供的方法提供了存储和处理稀疏矩阵的方案,从而针对其稀疏性进行优化,提高效率和降低存储成本。
卷积计算:卷积计算也称为卷积运算、卷积操作,在深度学习中,卷积计算是一种常用的神经网络层,用于从输入数据中提取特征。卷积层通常由一系列的卷积核组成,每个卷积核都是一个小的权重矩阵。卷积计算可以看作是对输入数据和卷积核之间的一种加权操作(矩阵元素级乘法和累加),这种加权操作可以理解为对输入数据进行特征提取的过程。
卷积核:在深度学习中,卷积核也称为滤波器,卷积核是卷积层中的一组可学习参数,用于从输入数据中提取特征。卷积核是一个小的权重矩阵,通常为正方形或矩形,其大小和具体形状可以根据实际需求指定。
ResNet:深度残差网络(ResidualNetwork),主要由卷积层、池化层、残差块和全连接层组成,通常用于视觉类的分类任务中。
模型压缩是提供性能优化和模型推理加速能力的一种重要技术手段。简单来说,模型压缩是在尽量保持模型精度的前提下,通过将不重要的参数裁剪掉,减小模型体积和执行推理任务所需要的运算次数,从而达到提高计算性能的目的。其中,常见的裁剪方式有结构化裁剪和非结构化裁剪。
结构化裁剪有着规则的裁剪模式,后端框架以及硬件通常可以比较容易地适配裁剪后的模型,将参数的减少直接转化为性能的提升。不过,也正因为结构化裁剪的剪枝操作比较粗粒度,采用这种裁剪方法往往会带来较大的精度损失,较难在加速效果和精度保持上取得令人满意的平衡。
其中,非结构化裁剪以深度学习模型中卷积核切片(也称为卷积切片)甚至单一参数为最小对象进行剪枝操作,细粒度的稀疏化(也称为裁剪)能力使得非结构化裁剪在相似裁剪量下可以取得比结构化裁剪更好的精度。但是,由于后端框架中传统的数据结构并不支持以高度不规则的形式存储卷积权重,因此被非结构化方法裁剪掉的大量无用参数虽然冗余,但是却无法直接被删减,仍只能以“0”的形式存在于模型权重中,以无效计算的角色占据着模型推理时的计算资源,导致非结构化裁剪带来的理论参数量减少无法显式地直接被转换为模型推理性能的提升。
目前,常见的模型压缩方案主要面向图形处理器(GPU,graphicsprocessingunit)。面向图形处理器的方案对于稀疏矩阵的稀疏模式有着严格的要求,需要每4个连续矩阵元素中恰好有2个元素为0,并不能泛化地支持实际场景中卷积里高度不规律的稀疏矩阵乘法运算,难以对其进行加速。其他方案同样要求输入数据有着相对规则的稀疏模式,对于稀疏模式的要求比较严苛。因此,目前这些方案无法适用于核心处理器(CPU,CentralProcessing Unit)上的稀疏矩阵运算。
为了解决非结构化裁剪在理论精度保持效果好,但是难以落地转化为推理速度优势的痛点,本说明书实施例提供了一种模型处理方案,提高带有非结构化稀疏权重卷积算子的模型性能,从权重存储和卷积计算两个维度,在核心处理器上对非结构化裁剪后模型中的稀疏卷积计算提供了良好的适配,实现了非结构化裁剪到模型性能提升的高效落地转化。
在本说明书中,提供了一种模型处理系统,本说明书同时涉及模型处理方法,模型处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了本说明书一个实施例提供的一种模型处理系统的架构图,模型处理系统可以包括客户端100和服务端200;
客户端100,用于向服务端200发送模型处理请求,其中,模型处理请求携带待处理数据;
服务端200,用于从权重信息存储单元202中获取机器学习模型的非零值权重;从位置信息存储单元204中获取非零值权重在机器学习模型的权重矩阵中的位置信息;利用非零值权重和非零值权重在权重矩阵中的位置信息,对待处理数据进行卷积计算。
应用本说明书实施例的方案,由于权重信息存储单元无需存储机器学习模型中的零值权重,只需要存储非零值权重,从而提高了数据存储效率,节省了数据存储空间,并且,在卷积计算时,只需要根据非零值权重对待处理数据进行卷积计算,在保持计算精度的基础上,减少了模型推理时间。
参见图2,图2示出了本说明书一个实施例提供的另一种模型处理系统的架构图,模型处理系统可以包括多个客户端100以及服务端200。多个客户端100之间通过服务端200可以建立通信连接,在模型处理场景中,服务端200即用来在多个客户端100之间提供模型处理服务,多个客户端100可以分别作为发送端或接收端,通过服务端200实现通信。
用户通过客户端100可与服务端200进行交互以接收其它客户端100发送的数据,或将数据发送至其它客户端100等。在模型处理场景中,可以是用户通过客户端100向服务端200发布数据流,服务端200根据该数据流进行模型处理,并将处理结果推送至其他建立通信的客户端中。
其中,客户端100与服务端200之间通过网络建立连接。网络为客户端100与服务端200之间提供了通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。客户端100所传输的数据可能需要经过编码、转码、压缩等处理之后才发布至服务端200。
客户端100可以为浏览器、APP(Application,应用程序)、或网页应用如H5(HyperText MarkupLanguage5,超文本标记语言第5版)应用、或轻应用(也被称为小程序,一种轻量级应用程序)或云应用等,客户端100可以基于服务端200提供的相应服务的软件开发工具包(SDK,SoftwareDevelopmentKit),如基于实时通信(RTC,RealTimeCommunication)SDK开发获得等。客户端100可以部署在电子设备中,需要依赖设备运行或者设备中的某些APP而运行等。电子设备例如可以具有显示屏并支持信息浏览等,如可以是个人移动终端如手机、平板电脑、个人计算机等。在电子设备中通常还可以配置各种其它类应用,例如人机对话类应用、模型训练类应用、文本处理类应用、网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
服务端200可以包括提供各种服务的服务器,例如为多个客户端提供通信服务的服务器,又如为客户端上使用的模型提供支持的用于后台训练的服务器,又如对客户端发送的数据进行处理的服务器等。需要说明的是,服务端200可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。服务器也可以是云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,ContentDeliveryNetwork)以及大数据和人工智能平台等基础云计算服务的云服务器,或者是带人工智能技术的智能云计算服务器或智能云主机。
值得说明的是,本说明书实施例中提供的模型处理方法一般由服务端执行,但是,在本说明书的其它实施例中,客户端也可以与服务端具有相似的功能,从而执行本说明书实施例所提供的模型处理方法。在其它实施例中,本说明书实施例所提供的模型处理方法还可以是由客户端与服务端共同执行。
参见图3,图3示出了本说明书一个实施例提供的一种模型处理方法的流程图,具体包括以下步骤:
步骤302:确定机器学习模型的权重矩阵,其中,权重矩阵中包括非零值权重和零值权重。
本说明书一个或多个实施例中,可以确定机器学习模型的权重矩阵,对权重矩阵中包括的非零值权重和零值权重进行处理,从而对模型进行优化并提升模型的推理速度。
具体地,机器学习模型可以理解为经过训练的程序,可以在新数据中发现模式并进行预测。这些模型表示为一个数学函数,它以输入数据的形式接收请求,对输入数据进行预测,然后提供输出作为响应。机器学习模型的权重矩阵可以称为稀疏矩阵,权重矩阵中包括非零值权重和零值权重,零值权重可以看作冗余的无用参数,非零值权重可以看作有效参数。
实际应用中,确定机器学习模型的权重矩阵的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。
本说明书一种可选的实施例中,可以从其他数据获取设备或者数据库中读取预先利用非结构化剪枝处理获得的权重矩阵。
本说明书另一种可能的实现方式中,可以对机器学习模型的多个权重进行非结构化剪枝,获得机器学习模型的权重矩阵,也即,上述确定机器学习模型的权重矩阵,可以包括以下步骤:
获取机器学习模型的多个权重;
对多个权重进行非结构化剪枝,获得机器学习模型的权重矩阵。
具体地,深度学习网络中神经元之间的连接强度由权重表示,权重的大小表示可能性的大小。深度学习中,通过反向传播求导更新模型的权重,可以得到一个泛化能力比较强的模型。通过训练得到的权重搭配各种神经网络的算子,可以实现检测、分类、识别的任务。非结构化剪枝也可以称为非结构化裁剪、神经元剪枝,用于裁剪机器学习模型初始权重矩阵中的神经元节点。
获取机器学习模型的多个权重的方式包括多种,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。本说明书一种可能的实现方式中,可以从其他数据获取设备或者数据库中读取机器学习模型的多个权重。本说明书另一种可能的实现方式中,可以接收用户发送的机器学习模型的多个权重。
需要说明的是,对机器学习模型的多个权重进行结构化剪枝,被裁剪掉的无用参数无法直接被删减,以“0”的形式存在于权重矩阵中。
应用本说明书实施例的方案,获取机器学习模型的多个权重;对多个权重进行非结构化剪枝,获得机器学习模型的权重矩阵,实现了准确获得稀疏矩阵,为后续机器处理做准备。
实际应用中,对多个权重进行非结构化剪枝,获得机器学习模型的权重矩阵的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。本说明书一种可能的实现方式中,可以将一组低于预设阈值的权重替换为零(gradientmagnitudepruning)。本说明书另一种可能的实现方式中,可以通过迭代修剪的方式(synapticflowpruning),使用全局评分方案并修剪一组权重,直到全局评分降至评分阈值以下。
本说明书一种可选的实施例中,上述对多个权重进行非结构化剪枝,获得机器学习模型的权重矩阵,可以包括以下步骤:
根据机器学习模型的多个权重构建初始权重矩阵;
将初始权重矩阵中,与待删减权重属于同一行和同一列的权重调整为零值权重,获得机器学习模型的权重矩阵。
具体地,初始权重矩阵是指非结构化剪裁之前的权重矩阵。初始权重矩阵中包括多个权重参数。待删减权重是指初始权重矩阵中的无用参数。
实际应用中,根据机器学习模型的多个权重构建初始权重矩阵时,可以根据机器学习模型中输入层、权重和输出层构建初始权重矩阵,其中,输入层可以称为因素,权重可以称为影响因子,输出层可以称为结果。初始权重矩阵的每行对应一个因素。每行的数值是作用于某个因素的所有权重。权重矩阵的每列对应一个结果,每列的数字是影响某个结果的全部权重。
需要说明的是,在进行非结构剪枝之前,可以确定初始权重矩阵中的待删减权重。确定待删减权重的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。本说明书一种可能的实现方式中,可以获取预设阈值,将小于预设阈值的权重作为待删减权重。本说明书另一种可能的实现方式中,可以根据神经元节点的重要程度确定待删减权重。具体地,计算神经元对应行和列的权重的平方和的根,根据计算值对神经元节点进行排序,获得排序结果,根据排序结果确定待删减权重。
需要说明的是,非结构化剪枝过程中,在去掉初始权重矩阵中某个神经元节点时,和神经元相连接的突触也要去除,相当于同时去除权重矩阵中的某一行和列,也即,将初始权重矩阵中,对待删减权重属于同一行和同一列的权重进行格式转换,将待删减权重调整为零值权重。
应用本说明书实施例的方案,根据机器学习模型的多个权重构建初始权重矩阵;将初始权重矩阵中,与待删减权重属于同一行和同一列的权重调整为零值权重,获得机器学习模型的权重矩阵,保证权重矩阵的准确性。
步骤304:获取权重矩阵中的非零值权重和非零值权重在权重矩阵中的位置信息。
本说明书一个或多个实施例中,确定机器学习模型的权重矩阵之后,进一步地,可以获取权重矩阵中的非零值权重和各非零值权重在权重矩阵中的位置信息。
具体地,非零值权重在权重矩阵中的位置信息包括非零值权重对应的卷积切片的偏移量、非零值权重对应的卷积切片的位置重排信息、非零值权重对应的卷积切片对应的输入通道标识、非零值权重对应的卷积切片的切片数量。
实际应用中,获取权重矩阵中的非零值权重和非零值权重和非零值权重在权重矩阵中的位置信息的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。本说明书一种可能的实现方式中,可以从读取机器学习模型权重矩阵的数据获取设备或者数据库中直接读取非零值权重在权重矩阵中的位置信息。本说明书另一种可能的实现方式中,可以分析非结构化剪枝过程,确定非零值权重在权重矩阵中的位置信息。
本说明书一种可选的实施例中,上述获取权重矩阵中的非零值权重和非零值权重在权重矩阵中的位置信息,可以包括以下步骤:
识别权重矩阵中的各权重,确定权重矩阵中的非零值权重;
针对任一非零值权重,将该非零值权重对应的卷积切片的偏移量、输入通道标识、位置重排信息和切片数量作为该非零值权重在权重矩阵中的位置信息。
需要说明的是,获取权重矩阵中的非零值权重时,可以遍历权重矩阵,筛选除零值权重之外的非零值权重。卷积切片为非结构化剪枝的剪枝单位,可以是n*n的矩阵。输入通道标识可以是输入通道的编号,还可以是输入通道的数量等等。通过卷积切片的位置重排信息可以将计算输出累积到正确的输出通道。输入通道数取决于数据类型,以输入数据为图片为例,若图片是RGB(RedGreenBlue)类型的,则输入通道数为3;若图片是灰色的,则输入通道数为1。卷积完成后,输出通道数取决于过滤器的数量。
应用本说明书实施例的方案,识别权重矩阵中的各权重,确定权重矩阵中的非零值权重;针对任一非零值权重,将该非零值权重对应的卷积切片的偏移量、输入通道标识、位置重排信息和切片数量作为该非零值权重在权重矩阵中的位置信息,准确表达各非零值权重的位置信息,在减少数据存储量的同时,保证权重信息的准确性。
步骤306:将非零值权重存储至权重信息存储单元,并将非零值权重的位置信息存储至对应的位置信息存储单元。
本说明书一个或多个实施例中,确定机器学习模型的权重矩阵,获取权重矩阵中的非零值权重和非零值权重在权重矩阵中的位置信息之后,进一步地,可以将非零值权重存储至权重信息存储单元,并将非零值权重的位置信息存储至对应的位置信息存储单元。
需要说明的是,将非零值权重的位置信息存储至对应的位置信息存储单元时,若位置信息存储单元的数量是一,则可以直接存储位置信息,各位置信息携带对应的非零值权重标签。若位置信息存储单元的数量有多个,则可以根据位置信息存储单元的数量分类存储位置信息。
具体地,权重信息存储单元是一维权重数组中的数组元素,位置信息存储单元是一维位置数组中的数组元素,存储的信息属于同一非零值权重的数组元素之间具有对应关系。
示例性地,假设一维权重数组为[ABCD],一维位置数组为[abcd],数组元素a是数组元素A的位置信息,数组元素b是数组元素B的位置信息,数组元素c是数组元素C的位置信息,数组元素d是数组元素D的位置信息,则数组元素a与数组元素A之间具有对应关系,数组元素b与数组元素B之间具有对应关系,数组元素c与数组元素C之间具有对应关系,数组元素d与数组元素D之间具有对应关系。
本说明书一种可选的实施例中,上述位置信息存储单元包括偏移信息存储单元、重排信息存储单元、通道信息存储单元和步幅信息存储单元中的至少一种;
偏移信息存储单元,用于存储非零值权重对应的卷积切片的偏移量;
重排信息存储单元,用于存储非零值权重对应的卷积切片的位置重排信息;
通道信息存储单元,用于存储非零值权重对应的卷积切片对应的输入通道标识;
步幅信息存储单元,用于存储非零值权重对应的卷积切片的切片数量。
参见图4,图4示出了本说明书一个实施例提供的一种模型处理方法的处理过程示意图。基于模型压缩框架中的非结构化裁剪功能和交替方向乘子法(ADMM,AlternatingDirection MethodofMultipliers),经过迭代训练可以将机器学习模型中大部分权重信息尽可能向每个3*3权重矩阵卷积切片的4个元素集中,经过多轮训练后,将每个内核中较小的5个权重元素设置为0,即得到了裁剪过的内核(Prunedkernels)。然而此时要裁剪的权重并未真正删除,只是把相应位置替换为了0。进一步地,通过稀疏卷积存储格式转换之后,可以真正删除了这些0,只存储有效非零值权重。
具体地,对上述裁剪过程进行稀疏卷积存储格式转换,即可确定本方案提供的权重层级(Weightlevel)的权重信息存储单元(Weightarray)以及根据不同的划分层级划分得到的位置存储单元。具体地,位置存储单元包括卷积核层级(Filterlevel)的位置信息存储单元和内核层级(Kernellevel)的位置信息存储单元。卷积核层级的位置信息存储单元包括偏移信息存储单元(Offsetarray)和重排信息存储单元(Reorderarray),内核层级的位置信息存储单元包括通道信息存储单元(Indexarray)和步幅信息存储单元(Stridearray)。
如图4所示,假设偏移信息存储单元为[02469],表示0号卷积切片的偏移量为0,1号卷积切片的偏移量为2,3号卷积切片的偏移量为4,4号卷积切片的偏移量为6,5号卷积切片的偏移量为9。假设重排信息存储单元为[01329],表示2号卷积切片和3号卷积切片已经交换位置,2号卷积切片和3号卷积切片的计算结果也被映射到相应的输出通道。假设通道信息存储单元为[312013123],则表示1号卷积切片对应输入通道3,2号卷积切片对应输入通道1,依此类推。假设步幅信息存储单元为[012012002003],则0号卷积切片的步幅信息为0、1、2,表示0号卷积切片有1个模式1的切片(1=1-0),1个模式2的切片(1=2-1)。
以ResNet-34模型为例,将非结构化裁剪后的模型中,所有卷积层权重都替换为非结构化卷积权重稀疏存储格式之后,可以将模型参数量降低为3.4M,大大减轻了模型的存储开销,实现了存储空间上的降本。
应用本说明书实施例的方案,由于权重信息存储单元无需存储机器学习模型中的零值权重,只需要存储非零值权重,从而提高了数据存储效率,节省了数据存储空间,并且,在卷积计算时,只需要根据非零值权重对待处理数据进行卷积计算,在保持计算精度的基础上,减少了模型推理时间。
本说明书实施例中,通过上述模型处理方法,可以高效处理输入机器学习模型的待处理数据。具体地,模型处理方法可以应用于不同任务,包括但不限于数据分类、数据识别、信息抽取等任务,还可以应用于不同场景,包括但不限于电商场景、遥感图像处理场景、金融场景等等,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。
参见图5,图5示出了本说明书一个实施例提供的另一种模型处理方法的流程图,具体包括以下步骤:
步骤502:获取机器学习模型的非零值权重和非零值权重在机器学习模型的权重矩阵中的位置信息。
本说明书一个或多个实施例中,为了减小模型的浮点计算次数,从而达到计算提速的效果,可以获取机器学习模型的非零值权重和非零值权重在机器学习模型的权重矩阵中的位置信息,从而对输入机器学习模型的待处理数据进行处理。
实际应用中,获取机器学习模型的非零值权重和非零值权重在机器学习模型的权重矩阵中的位置信息的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。
本说明书一种可能的实现方式中,可以获取机器学习模型的多个权重;对多个权重进行非结构化剪枝,获得机器学习模型的权重矩阵。识别权重矩阵中的各权重,确定权重矩阵中的非零值权重;针对任一非零值权重,将该非零值权重对应的卷积切片的偏移量、输入通道标识、位置重排信息和切片数量作为该非零值权重在权重矩阵中的位置信息。
需要说明的是,上述方法的具体实现方式与上述图3所提供的模型处理方法的实现方式相同,本说明书实施例便不再进行赘述。
本说明书另一种可能的实现方式中,可以直接从预先存储机器学习模型非零值权重的权重信息存储单元和预先存储非零值权重在机器学习模型的权重矩阵中的位置信息的位置信息存储单元中,获取机器学习模型的非零值权重和非零值权重在机器学习模型的权重矩阵中的位置信息,也即,上述获取机器学习模型的非零值权重和非零值权重在机器学习模型的权重矩阵中的位置信息,可以包括以下步骤:
从权重信息存储单元中获取机器学习模型的非零值权重;
从权重信息存储单元对应的位置信息存储单元中获取非零值权重在机器学习模型的权重矩阵中的位置信息。
需要说明的是,权重信息存储单元中存储的非零值权重、位置信息存储单元中存储的非零值权重的位置信息可以通过上述图3所提供的模型处理方法的存储,本说明书实施例便不再进行赘述。
实际应用中,权重信息存储单元和位置信息存储单元中可以存储一个机器学习模型的非零值权重和非零值权重的位置信息,还可以存储多个机器学习模型各自的非零值权重和非零值权重的位置信息。在权重信息存储单元中存储多个机器学习模型各自的非零值权重和非零值权重的位置信息的情况下,可以根据机器学习模型的模型标识,从权重信息存储单元和位置信息存储单元中获取模型标识对应的非零值权重和非零值权重的位置信息。
值得说明的是,位置信息存储单元包括偏移信息存储单元、重排信息存储单元、通道信息存储单元和步幅信息存储单元中的至少一种;上述从权重信息存储单元对应的位置信息存储单元中获取非零值权重在机器学习模型的权重矩阵中的位置信息,包括以下方式中的至少一种:
从偏移信息存储单元中获取非零值权重对应的卷积切片的偏移量;
从重排信息存储单元中获取非零值权重对应的卷积切片的位置重排信息;
从通道信息存储单元中获取非零值权重对应的卷积切片对应的输入通道;
从步幅信息存储单元中获取非零值权重对应的卷积切片的切片数量。
应用本说明书实施例的方案,从权重信息存储单元中获取机器学习模型的非零值权重;从权重信息存储单元对应的位置信息存储单元中获取非零值权重在机器学习模型的权重矩阵中的位置信息,提高了获得非零值权重和非零值权重的位置信息的效率。
步骤504:利用非零值权重和非零值权重在权重矩阵中的位置信息,对输入机器学习模型的待处理数据进行卷积计算。
本说明书一个或多个实施例中,获取机器学习模型的非零值权重和非零值权重在机器学习模型的权重矩阵中的位置信息之后,进一步地,可以利用非零值权重和非零值权重在权重矩阵中的位置信息,对输入机器学习模型的待处理数据进行卷积计算。
具体地,待处理数据可以是不同形式的数据,包括但不限于待处理文本、待处理图像、待处理音频等等。待处理数据还可以是不同场景的数据,包括但不限于遥感图像、情感描述文本等等,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。
应用本说明书实施例的方案,获取机器学习模型的非零值权重和非零值权重在机器学习模型的权重矩阵中的位置信息;利用非零值权重和非零值权重在权重矩阵中的位置信息,对输入机器学习模型的待处理数据进行卷积计算。由于存储的模型参数里显著下降,从而降低了参数占用的存储空间,大大减轻了模型的存储开销,实现了存储空间上的降本。
实际应用中,利用非零值权重和非零值权重在权重矩阵中的位置信息,对输入机器学习模型的待处理数据进行卷积计算的方式有多种,具体根据实际情况进行选择,本说明书实施例对此不作任何限定。
本说明书一种可能的实现方式中,可以利用非零值权重和非零值权重在权重矩阵中的位置信息构建目标权重矩阵,利用目标权重矩阵对输入机器学习模型的待处理数据进行卷积计算。
本说明书另一种可能的实现方式中,可以跳过零值权重对应的卷积乘法,只做非零值权重的相关运算,也即,上述利用非零值权重和非零值权重在权重矩阵中的位置信息,对输入机器学习模型的待处理数据进行卷积计算,可以包括以下步骤:
根据非零值权重在权重矩阵中的位置信息,从待处理数据中确定各非零值权重对应的数据位置;
根据各非零值权重和各非零值权重对应的数据位置,对输入机器学习模型的待处理数据进行卷积计算。
需要说明的是,根据非零值权重在权重矩阵中的位置信息,从待处理数据中确定各非零值权重对应的数据位置时,可以组合非零值权重对应的卷积切片的偏移量、卷积切片的位置重排信息、卷积切片对应的输入通道以及卷积切片的切片数量。对于每个非零权重值,可以在标准卷积计算中确定需要与之相乘的待处理数据中元素的数据位置,以及非零权重值和待处理数据中元素相乘结果的输出位置。
进一步地,根据各非零值权重和各非零值权重对应的数据位置,对输入机器学习模型的待处理数据进行卷积计算时,可以将各个非零权重值与对应的待处理数据相乘并累加后,放置在与标准卷积计算等价的位置即可完成卷积计算。
应用本说明书实施例的方案,在卷积计算时,只需要根据非零值权重对待处理数据进行卷积计算,从而跳过“0乘法”,只做有效非零值权重的运算,可以显著地减小模型的浮点计算次数,从而达到计算提速的效果。
参见图6,图6示出了本说明书一个实施例提供的另一种模型处理方法的处理过程示意图,待处理数据为如图6所示6*6*3的01矩阵,输出矩阵为如图6所示的4*4的矩阵。以确定输出矩阵中位置A的值为例,获取权重信息存储单元中存储的非零值权重为“1111”,根据非零值权重在权重矩阵中的位置信息,从待处理数据中确定各非零值权重对应的数据位置如图6所示,因此,根据各非零值权重和各非零值权重对应的数据位置,计算A=1*1+1*1+1*1+1*1。由此可见,本方案中,确定位置A的值时,仅需要进行4次乘法,从而跳过“0乘法”,只做有效非零值权重的运算,可以显著地减小模型的浮点计算次数,从而达到计算提速的效果。
实际应用中,完成一次完整模型的推理任务往往包含着数以万计甚至数以十万计的如上述位置A对应的操作单元,如此累积起来,应用本说明书实施例的方案,可以节省非常可观的乘与累加运算次数,大大减少模型推理所需要的时间。
参见图7,图7示出了本说明书一个实施例提供的一种模型处理方法的处理过程流程图,具体包括以下步骤:
步骤702:确定机器学习模型的权重矩阵,其中,权重矩阵中包括非零值权重和零值权重。
步骤704:识别权重矩阵中的各权重,确定权重矩阵中的非零值权重。
步骤706:针对任一非零值权重,将该非零值权重对应的卷积切片的偏移量、输入通道标识、位置重排信息和切片数量作为该非零值权重在权重矩阵中的位置信息。
步骤708:将非零值权重存储至权重信息存储单元,并将非零值权重的位置信息存储至对应的位置信息存储单元,其中,位置信息存储单元包括偏移信息存储单元、重排信息存储单元、通道信息存储单元和步幅信息存储单元中的至少一种。
步骤710:从权重信息存储单元中获取机器学习模型的非零值权重,从权重信息存储单元对应的位置信息存储单元中获取非零值权重在机器学习模型的权重矩阵中的位置信息。
步骤712:根据非零值权重在权重矩阵中的位置信息,从待处理数据中确定各非零值权重对应的数据位置。
步骤714:根据各非零值权重和各非零值权重对应的数据位置,对输入机器学习模型的待处理数据进行卷积计算。
需要说明的是,步骤702至步骤714的具体实现方式与上述图3和图4所提供的模型处理方法相同,本说明书实施例便不再进行赘述。
应用本说明书实施例的方案,本说明书实施例提供的模型处理方案,从数据结构、计算方法两个维度重构了传统卷积算子的计算方法,在核心处理器上对非结构化裁剪后模型中的稀疏卷积计算提供了良好的适配,在保持模型精度的基础上提高了模型在实际应用(如硬件资源比较有限的边缘服务器、终端设备部署场景)中的推理速度,实现了非结构化裁剪理论优势到模型实际性能提升的高效落地转化,其中,边缘服务器、终端设备指的是离数据源或应用场景最近的一侧,比如传感器、物联网设备、移动设备等平台。在这一类平台上,往往有低功耗和相对小量级的处理器(如核心处理器),通常会使用轻量级模型和算法,以便在资源受限的设备上进行高效的计算。
本说明书一个或多个实施例中,从数据格式的维度,提出了一种对于非结构化稀疏矩阵来说更高效、更节省空间的非结构化卷积权重稀疏存储格式(pat_weight)。从执行运算的维度,在非结构化卷积权重稀疏存储格式可以实现跳过已被裁剪的、冗余的计算的基础上,还提出了一种可以更好适配非结构化稀疏矩阵的非结构化稀疏卷积高性能算子(pat_conv),在保持与原有卷积计算结果一致的基础上,大大地简化了运算步骤。通过结合上述数据存储格式和运算执行方法,在保持模型精度的同时,大大减小了模型体积,更充分地释放了非结构化裁剪方法带来的终端模型推理性能收益。对于非结构化卷积权重稀疏存储格式和非结构化稀疏卷积高性能算子,在下面的实施例中逐一进行详细说明。
非结构化卷积权重稀疏存储格式:
针对非结构化裁剪之后稀疏权重矩阵特点,本说明书实施例把权重存储模式,从传统的多维规则矩阵替换为了五个一维数组。在这五个一维数组中,一个用来存储且只存储裁剪后的非零值权重,删除、摒弃了对计算并无用的零值权重;另外四个一维数组组合起来共同用来高效地存储各非零值权重所对应的原先在权重矩阵中的位置,从而在后续执行运算时,可以无损地重建标准卷积计算。
非结构化稀疏卷积高性能算子:
基于非结构化卷积权重稀疏存储格式,本说明书实施例提出了非结构化稀疏卷积高性能算子。借助非结构化卷积权重稀疏存储格式紧凑的存储格式,非结构化稀疏卷积高性能算子得以简便地跳过和0相关的乘法,跳过“0乘法”之后只做有效值的运算,可以显著地减小模型的浮点计算次数,从而达到计算提速的效果。
需要说明的是,本说明书实施例提供的模型处理方案,可以基于内部使用场景与流程需要高度定制,并与上游软件侧模型裁剪算法相互协同,具有明显更好地对实际项目场景中模型的适配灵活性,不但可以保持更好的模型精度,而且可以最大限度地把前置模型压缩流程中的参数裁剪量转化为实际的推理性能提升,在模型精度和推理速度之间保持了良好的平衡。
参见图8,图8示出了本说明书一个实施例提供的一种模型处理方法的处理效果示意图。以硬件资源比较有限的单线程场景为例,采用本说明书实施例提出的非结构化稀疏卷积高性能算子,可以极大地提升卷积计算比较密集的机器学习模型的推理性能。以ResNet-34模型为例:
如图8左侧的直方图所示,在服务器级别的核心处理器上,在单线程场景中(线程数为1),非结构化稀疏卷积算子使得ResNet-34模型的单次推理时间为73.1ms,在不对模型精度产生二次影响的前提下,获得了非常可观的性能收益。
如图8右侧的直方图所示,即使是在硬件资源比较充分、传统卷积算子并行能力占优势的多线程场景中(线程数为24),非结构化稀疏卷积算子使得ResNet-34模型的单次推理时间为27.9ms。
本说明书实施例提出的模型处理方案,补足了在核心处理器这一类边缘服务器中人工智能落地场景中更常见的计算硬件上,对高度不规律的非结构化稀疏矩阵运算的高性能实现的空白。从数据上来说,本说明书实施例提出的方案不仅可以无损地适配非结构化裁剪方法优化过的模型,在实际应用场景,尤其是硬件资源比较有限的边缘服务器、终端设备部署场景,速度显著提高。在验证机器学习模型定制化裁剪方案落地可行性的同时,为进一步在模型性能优化领域打造软硬协同的研发桥梁、构建对硬件专有加速的能力奠定了重要的技术基础。
与上述方法实施例相对应,本说明书还提供了模型处理装置实施例,图9示出了本说明书一个实施例提供的一种模型处理装置的结构示意图。如图9所示,该装置包括:
确定模块902,被配置为确定机器学习模型的权重矩阵,其中,权重矩阵中包括非零值权重和零值权重;
第一获取模块904,被配置为获取权重矩阵中的非零值权重和非零值权重在权重矩阵中的位置信息;
存储模块906,被配置为将非零值权重存储至权重信息存储单元,并将非零值权重的位置信息存储至对应的位置信息存储单元。
可选地,第一获取模块904,进一步被配置为识别权重矩阵中的各权重,确定权重矩阵中的非零值权重;针对任一非零值权重,将该非零值权重对应的卷积切片的偏移量、输入通道标识、位置重排信息和切片数量作为该非零值权重在权重矩阵中的位置信息。
可选地,位置信息存储单元包括偏移信息存储单元、重排信息存储单元、通道信息存储单元和步幅信息存储单元中的至少一种;偏移信息存储单元,用于存储非零值权重对应的卷积切片的偏移量;重排信息存储单元,用于存储非零值权重对应的卷积切片的位置重排信息;通道信息存储单元,用于存储非零值权重对应的卷积切片对应的输入通道标识;步幅信息存储单元,用于存储非零值权重对应的卷积切片的切片数量。
可选地,确定模块902,进一步被配置为获取机器学习模型的多个权重;对多个权重进行非结构化剪枝,获得机器学习模型的权重矩阵。
可选地,权重信息存储单元是一维权重数组中的数组元素,位置信息存储单元是一维位置数组中的数组元素,存储的信息属于同一非零值权重的数组元素之间具有对应关系。
应用本说明书实施例的方案,确定机器学习模型的权重矩阵,其中,权重矩阵中包括非零值权重和零值权重;获取权重矩阵中的非零值权重和非零值权重在权重矩阵中的位置信息;将非零值权重存储至权重信息存储单元,并将非零值权重的位置信息存储至对应的位置信息存储单元。由于权重信息存储单元无需存储机器学习模型中的零值权重,只需要存储非零值权重,从而提高了数据存储效率,节省了数据存储空间。
上述为本实施例的一种模型处理装置的示意性方案。需要说明的是,该模型处理装置的技术方案与上述图3所示的模型处理方法的技术方案属于同一构思,模型处理装置的技术方案未详细描述的细节内容,均可以参见上述模型处理方法的技术方案的描述。
与上述方法实施例相对应,本说明书还提供了模型处理装置实施例,图10示出了本说明书一个实施例提供的另一种模型处理装置的结构示意图。如图10所示,该装置包括:
第二获取模块1002,被配置为获取机器学习模型的非零值权重和非零值权重在机器学习模型的权重矩阵中的位置信息;
计算模块1004,被配置为利用非零值权重和非零值权重在权重矩阵中的位置信息,对输入机器学习模型的待处理数据进行卷积计算。
可选地,计算模块1004,进一步被配置为根据非零值权重在权重矩阵中的位置信息,从待处理数据中确定各非零值权重对应的数据位置;根据各非零值权重和各非零值权重对应的数据位置,对输入机器学习模型的待处理数据进行卷积计算。
可选地,第二获取模块1002,进一步被配置为从权重信息存储单元中获取机器学习模型的非零值权重;从权重信息存储单元对应的位置信息存储单元中获取非零值权重在机器学习模型的权重矩阵中的位置信息。
可选地,位置信息存储单元包括偏移信息存储单元、重排信息存储单元、通道信息存储单元和步幅信息存储单元中的至少一种;第二获取模块1002,进一步被配置为实现以下方式中的至少一种:从偏移信息存储单元中获取非零值权重对应的卷积切片的偏移量;从重排信息存储单元中获取非零值权重对应的卷积切片的位置重排信息;从通道信息存储单元中获取非零值权重对应的卷积切片对应的输入通道;从步幅信息存储单元中获取非零值权重对应的卷积切片的切片数量。
应用本说明书实施例的方案,获取机器学习模型的非零值权重和非零值权重在机器学习模型的权重矩阵中的位置信息;利用非零值权重和非零值权重在权重矩阵中的位置信息,对输入机器学习模型的待处理数据进行卷积计算。在卷积计算时,只需要根据非零值权重对待处理数据进行卷积计算,在保持计算精度的基础上,减少了模型推理时间。
上述为本实施例的一种模型处理装置的示意性方案。需要说明的是,该模型处理装置的技术方案与上述图4所示的模型处理方法的技术方案属于同一构思,模型处理装置的技术方案未详细描述的细节内容,均可以参见上述模型处理方法的技术方案的描述。
图11示出了本说明书一个实施例提供的一种计算设备的结构框图。该计算设备1100的部件包括但不限于存储器1110和处理器1120。处理器1120与存储器1110通过总线1130相连接,数据库1150用于保存数据。
计算设备1100还包括接入设备1140,接入设备1140使得计算设备1100能够经由一个或多个网络1160通信。这些网络的示例包括公用交换电话网(PSTN,PublicSwitchedTelephoneNetwork)、局域网(LAN,LocalAreaNetwork)、广域网(WAN,WideAreaNetwork)、个域网(PAN,PersonalAreaNetwork)或诸如因特网的通信网络的组合。接入设备1140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterfaceCard))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocalAreaNetworks)无线接口、全球微波互联接入(Wi-MAX,WorldInteroperabilityforMicrowaveAccess)接口、以太网接口、通用串行总线(USB,UniversalSerialBus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,NearFieldCommunication)接口,等等。
在本说明书的一个实施例中,计算设备1100的上述部件以及图11中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图11所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备1100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(PC,PersonalComputer)的静止计算设备。计算设备1100还可以是移动式或静止式的服务器。
其中,处理器1120用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述模型处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的模型处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述模型处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述模型处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的模型处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述模型处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述模型处理方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的模型处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述模型处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、电载波信号、电信信号以及软件分发介质等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (12)
1.一种模型处理系统,包括客户端和服务端;
所述客户端,被配置为向所述服务端发送模型处理请求,其中,所述模型处理请求携带待处理数据;
所述服务端,被配置为从权重信息存储单元中获取机器学习模型的非零值权重;从权重信息存储单元对应的位置信息存储单元中获取所述非零值权重在所述机器学习模型的权重矩阵中的位置信息;利用所述非零值权重和所述非零值权重在所述权重矩阵中的位置信息,对所述待处理数据进行卷积计算。
2.一种模型处理方法,包括:
确定机器学习模型的权重矩阵,其中,所述权重矩阵中包括非零值权重和零值权重;
获取所述权重矩阵中的非零值权重和所述非零值权重在所述权重矩阵中的位置信息;
将所述非零值权重存储至权重信息存储单元,并将所述非零值权重的位置信息存储至对应的位置信息存储单元。
3.根据权利要求2所述的方法,所述获取所述权重矩阵中的非零值权重和所述非零值权重在所述权重矩阵中的位置信息,包括:
识别所述权重矩阵中的各权重,确定所述权重矩阵中的非零值权重;
针对任一非零值权重,将该非零值权重对应的卷积切片的偏移量、输入通道标识、位置重排信息和切片数量作为该非零值权重在所述权重矩阵中的位置信息。
4.根据权利要求2所述的方法,所述位置信息存储单元包括偏移信息存储单元、重排信息存储单元、通道信息存储单元和步幅信息存储单元中的至少一种;
所述偏移信息存储单元,用于存储非零值权重对应的卷积切片的偏移量;
所述重排信息存储单元,用于存储非零值权重对应的卷积切片的位置重排信息;
所述通道信息存储单元,用于存储非零值权重对应的卷积切片对应的输入通道标识;
所述步幅信息存储单元,用于存储非零值权重对应的卷积切片的切片数量。
5.根据权利要求2所述的方法,所述确定机器学习模型的权重矩阵,包括:
获取机器学习模型的多个权重;
对所述多个权重进行非结构化剪枝,获得所述机器学习模型的权重矩阵。
6.根据权利要求2所述的方法,所述权重信息存储单元是一维权重数组中的数组元素,所述位置信息存储单元是一维位置数组中的数组元素,存储的信息属于同一非零值权重的数组元素之间具有对应关系。
7.一种模型处理方法,包括:
获取机器学习模型的非零值权重和所述非零值权重在所述机器学习模型的权重矩阵中的位置信息;
利用所述非零值权重和所述非零值权重在所述权重矩阵中的位置信息,对输入所述机器学习模型的待处理数据进行卷积计算。
8.根据权利要求7所述的方法,所述利用所述非零值权重和所述非零值权重在所述权重矩阵中的位置信息,对输入所述机器学习模型的待处理数据进行卷积计算,包括:
根据所述非零值权重在所述权重矩阵中的位置信息,从所述待处理数据中确定各非零值权重对应的数据位置;
根据所述各非零值权重和所述各非零值权重对应的数据位置,对输入所述机器学习模型的待处理数据进行卷积计算。
9.根据权利要求7所述的方法,所述获取机器学习模型的非零值权重和所述非零值权重在所述机器学习模型的权重矩阵中的位置信息,包括:
从权重信息存储单元中获取机器学习模型的非零值权重;
从所述权重信息存储单元对应的位置信息存储单元中获取所述非零值权重在所述机器学习模型的权重矩阵中的位置信息。
10.根据权利要求9所述的方法,所述位置信息存储单元包括偏移信息存储单元、重排信息存储单元、通道信息存储单元和步幅信息存储单元中的至少一种;
所述从权重信息存储单元对应的位置信息存储单元中获取所述非零值权重在所述机器学习模型的权重矩阵中的位置信息,包括以下方式中的至少一种:
从所述偏移信息存储单元中获取非零值权重对应的卷积切片的偏移量;
从所述重排信息存储单元中获取非零值权重对应的卷积切片的位置重排信息;
从所述通道信息存储单元中获取非零值权重对应的卷积切片对应的输入通道;
从所述步幅信息存储单元中获取非零值权重对应的卷积切片的切片数量。
11.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求2至6任意一项或者权利要求7至10任意一项所述方法的步骤。
12.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求2至6任意一项或者权利要求7至10任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310454325.6A CN116629375A (zh) | 2023-04-23 | 2023-04-23 | 模型处理方法以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310454325.6A CN116629375A (zh) | 2023-04-23 | 2023-04-23 | 模型处理方法以及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116629375A true CN116629375A (zh) | 2023-08-22 |
Family
ID=87601637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310454325.6A Pending CN116629375A (zh) | 2023-04-23 | 2023-04-23 | 模型处理方法以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116629375A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118012468A (zh) * | 2024-04-08 | 2024-05-10 | 浙江深象智能科技有限公司 | 模型处理方法、系统及设备 |
-
2023
- 2023-04-23 CN CN202310454325.6A patent/CN116629375A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118012468A (zh) * | 2024-04-08 | 2024-05-10 | 浙江深象智能科技有限公司 | 模型处理方法、系统及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11074289B2 (en) | Multi-modal visual search pipeline for web scale images | |
WO2023134086A1 (zh) | 卷积神经网络模型剪枝方法和装置、电子设备、存储介质 | |
CN110830807B (zh) | 图像压缩方法、装置及存储介质 | |
CN111382868A (zh) | 神经网络结构搜索方法和神经网络结构搜索装置 | |
CN108229986B (zh) | 信息点击预测中的特征构建方法、信息投放方法和装置 | |
CN110941698B (zh) | 一种基于bert下卷积神经网络的服务发现方法 | |
CN114418030B (zh) | 图像分类方法、图像分类模型的训练方法及装置 | |
WO2022161387A1 (zh) | 一种神经网络的训练方法及相关设备 | |
WO2023231794A1 (zh) | 一种神经网络参数量化方法和装置 | |
CN111797992A (zh) | 一种机器学习优化方法以及装置 | |
CN116629375A (zh) | 模型处理方法以及系统 | |
CN111242183A (zh) | 基于注意力机制的图像识别分类方法及装置 | |
CN116363457B (zh) | 任务处理、图像分类、任务处理模型的数据处理方法 | |
CN111832358A (zh) | 一种点云语义解析方法和装置 | |
CN117708648A (zh) | 分类器训练方法、数据分类方法、装置、设备和存储介质 | |
CN117574915A (zh) | 基于多方数据源的公共数据平台及其数据分析方法 | |
CN111191065A (zh) | 一种同源图像确定方法及装置 | |
CN112532251A (zh) | 一种数据处理的方法及设备 | |
CN114417251A (zh) | 一种基于哈希码的检索方法、装置、设备及存储介质 | |
CN114648679A (zh) | 神经网络训练、目标检测的方法及装置、设备及存储介质 | |
CN113705291A (zh) | 视频处理网络的训练方法、装置、设备及可读存储介质 | |
CN110929118A (zh) | 网络数据处理方法、设备、装置、介质 | |
CN111459990A (zh) | 对象处理方法、系统及计算机可读存储介质和计算机设备 | |
CN116680434B (zh) | 基于人工智能的图像检索方法、装置、设备及存储介质 | |
CN117058498B (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 |