CN114266306A - 基于机器学习模型实现数据分类的方法及装置、电子设备 - Google Patents
基于机器学习模型实现数据分类的方法及装置、电子设备 Download PDFInfo
- Publication number
- CN114266306A CN114266306A CN202111567466.6A CN202111567466A CN114266306A CN 114266306 A CN114266306 A CN 114266306A CN 202111567466 A CN202111567466 A CN 202111567466A CN 114266306 A CN114266306 A CN 114266306A
- Authority
- CN
- China
- Prior art keywords
- inference
- machine learning
- learning model
- random access
- characteristic parameters
- 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
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000010801 machine learning Methods 0.000 title claims abstract description 67
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000007637 random forest analysis Methods 0.000 claims description 53
- 238000003066 decision tree Methods 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 14
- 238000012512 characterization method Methods 0.000 claims 1
- 230000001133 acceleration Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开关于一种基于机器学习模型实现数据分类的方法及装置、电子设备,该方法通过现场可编程逻辑门阵列器件实现,包括:获取待输入至机器学习模型的特征参量,其中,机器学习模型用于通过推理对特征参量进行分类,机器学习模型被分割成多级推理单元,多级推理单元存储在现场可编程逻辑门阵列器件的随机存取存储器,每级推理单元包括机器学习模型的节点信息;根据多级推理单元,将特征参量在随机存取存储器上进行多级缓存,其中,特征参量进行缓存的级数与推理单元的个数相同,其中,每级缓存的特征参量相同;依次利用多级推理单元中的各级推理单元从随机存取存储器上获取与推理单元对应的特征参量,并对特征参量进行推理处理。
Description
技术领域
本公开涉及机器学习领域,尤其涉及一种基于机器学模型实现数据分类的方法及装置、电子设备。
背景技术
相关技术中,随机森林算法是机器学习诸多算法中的一种,由于其可解释性强、高度灵活的、有极好的准确率、能够有效地运行在大数据集上等多个特点,而拥有广泛的应用前景。随机森林由决策树组成,而决策树采用树形结构,使用层层推理来实现最终的分类。
目前一般的技术方案主要是通过现场可编程逻辑门阵列(Field ProgrammableGate Array,FPGA)代替中央处理器(Central Processing Unit,CPU)进行随机森林模型的实现,对于CPU来说,对于层级较多或者模型较大的随机森林,由于计算延时和线程资源的约束,CPU直接进行随机森林模型计算的吞吐和延时都不够理想。FPGA作为一种可编程逻辑器件,可以通过编程实现某些特定功能,具备高效率、易用、可编程等特点,所以基于FPGA代替CPU进行随机森林推理的加速是比较常见的一种手段,而目前常见的FPGA加速随机森林推理方案都是基于多级推理来实现的。
对于上述方法,当输入随机森林模型的特征参量的维度比较大时,会导致随机森林模型的推理性能下降的问题。
发明内容
本公开提供一种基于机器学习模型实现数据分类的方法及装置,以至少解决相关技术中当输入随机森林模型的特征参量的维度比较大时,会导致随机森林模型的推理性能下降的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种基于机器学习模型实现数据分类的方法,该方法通过现场可编程逻辑门阵列器件实现,包括:获取待输入至机器学习模型的特征参量,其中,机器学习模型用于通过推理对特征参量进行分类,机器学习模型被分割成多级推理单元,多级推理单元存储在现场可编程逻辑门阵列器件的随机存取存储器,每级推理单元包括机器学习模型的节点信息;根据多级推理单元,将特征参量在随机存取存储器上进行多级缓存,其中,特征参量进行缓存的级数与推理单元的个数相同,其中,每级缓存的特征参量相同;依次利用多级推理单元中的各级推理单元从随机存取存储器上获取与推理单元对应的特征参量,并对特征参量进行推理处理。
可选地,每级推理单元包括多个线程,其中,多个线程用于并行对特征参量进行分类处理。
可选地,依次利用多级推理单元中的各级推理单元从随机存取存储器上获取与推理单元对应的特征参量,并对特征参量进行推理处理,包括:分别利用多个线程中的每个线程执行以下流程:从随机存取存储器读取当前线程所在的推理单元对应的机器学习模型的节点信息,得到在进行推理处理过程中需要进行比较运算的特征号和对应的阈值;从当前推理单元对应的层级缓存中获取进行推理处理对应的特征参量,其中,获取特征参量包括:特征请求和特征返回;利用获取的特征参量与阈值按照特征号进行比较运算。
可选地,每个线程执行流程的周期包括多个时钟周期,其中,时钟周期为现场可编程逻辑门阵列器件的时钟周期。
可选地,上述方法还包括:分别控制每个线程在周期的不同时钟周期内执行特征请求的步骤,以及分别控制每个线程在周期的不同时钟周期内执行特征返回的步骤,其中,同一个线程执行特征请求的步骤和执行特征返回的步骤的时钟周期不同。
可选地,将特征参量在随机存取存储器上进行多级缓存,包括:分别利用两片随机存取存储器在每级缓存中缓存特征参量,其中,两片随机存取存储器包括第一随机存取存储器和第二随机存取存储器,在推理单元从对应层级缓存的第一随机存取存储器中获取特征参量的情况下,该层级缓存的第二随机存取存储器接收并缓存新的推理请求的特征参量。
可选地,机器学习模型为随机森林模型,机器学习模型的节点信息包括组成随机森林模型的决策树节点层数;每个推理单元包括的各个线程获取的随机森林模型的决策树节点层数在预设范围内。
根据本公开实施例的第二方面,提供一种基于机器学习模型实现数据分类的装置,包括:获取模块,被配置为执行获取待输入至机器学习模型的特征参量,其中,机器学习模型用于通过推理对特征参量进行分类,机器学习模型被分割成多级推理单元,多级推理单元存储在现场可编程逻辑门阵列器件的随机存取存储器,每级推理单元包括机器学习模型的节点信息;存储模块,被配置为执行根据多级推理单元,将特征参量在随机存取存储器上进行多级缓存,其中,其中,每级缓存的特征参量相同;处理模块,被配置为执行依次利用多级推理单元中的各级推理单元从随机存取存储器上获取与推理单元对应的特征参量,并对特征参量进行推理处理。
可选地,每级推理单元包括多个线程,其中,多个线程用于并行对特征参量进行分类处理。
可选地,处理模块,被配置为执行分别利用多个线程中的每个线程执行以下流程:从随机存取存储器读取当前线程所在的推理单元对应的机器学习模型的节点信息,得到在进行推理处理过程中需要进行比较运算的特征号和对应的阈值;从当前推理单元对应的层级缓存中获取进行推理处理对应的特征参量,其中,获取特征参量包括:特征请求和特征返回;利用获取的特征参量与阈值按照特征号进行比较运算。
可选地,每个线程执行流程的周期包括多个时钟周期,其中,时钟周期为现场可编程逻辑门阵列器件的时钟周期。
可选地,上述方装置还包括:控制模块,被配置为执行分别控制每个线程在周期的不同时钟周期内执行特征请求的步骤,以及分别控制每个线程在周期的不同时钟周期内执行特征返回的步骤,其中,同一个线程执行特征请求的步骤和执行特征返回的步骤的时钟周期不同。
可选地,存储模块,被配置为执行分别利用两片随机存取存储器在每级缓存中缓存特征参量,其中,两片随机存取存储器包括第一随机存取存储器和第二随机存取存储器,在推理单元从对应层级缓存的第一随机存取存储器中获取特征参量的情况下,该层级缓存的第二随机存取存储器接收并缓存新的推理请求的特征参量。
可选地,机器学习模型为随机森林模型,机器学习模型的节点信息包括组成随机森林模型的决策树节点层数;每个推理单元包括的各个线程获取的随机森林模型的决策树节点层数在预设范围内。
根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现如以上的基于机器学习模型实现数据分类的方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行以上的基于机器学习模型实现数据分类的方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时以上的基于机器学习模型实现数据分类的方法。
本公开的实施例提供的技术方案至少带来以下有益效果:采用FPGA上更为充裕的随机存取存储器(Random Access Memory,RAM)对特征参量进行多级缓存,并采用一种特殊的阶梯式多路加速方法,解决资源瓶颈的同时,进一步提升了FPGA对随机森林算法的推理性能,不仅可以满足一些对推理性能要求高的场景,同时还可以实现一些输入特征维度比较大的模型的推理加速。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是现有的利用FPGA实现随机森林加速方法的示意图;
图2是利用图1所示方法实现随机森林加速方法的一种推理数据流示意图;
图3是根据一示例性实施例示出的一种基于机器学习模型实现数据分类的方法的结构框图;
图4是根据一示例性实施例示出的一种基于机器学习模型实现数据分类的方法的流程图;
图5是根据一示例性实施例示出的一种利用FPGA实现随机森林加速方法的示意图;
图6是根据一示例性实施例示出的一种每个线程所在流水线的推理数据流的示意图;
图7是根据一示例性实施例示出的一种阶梯式多路加速方法的流程图;
图8是根据一示例性实施例示出的一种特征参量多级缓存模块特征请求数据流的示意图;
图9是根据一示例性实施例示出的一种特征参量多级缓存模块特征返回数据流的示意图;
图10是根据一示例性实施例示出的一种基于机器学习模型实现数据分类的装置的结构框图;
图11是根据一示例性实施例示出的一种电子设备的结构框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是现有的利用FPGA实现随机森林加速方法的示意图,如图1所示,FPGA实现时需要将随机森林分割成N个推理单元来实现推理的流水线,每级推理单元中存储的是模型的节点信息,在追求推理性能的基础上,为了实现各推理单元的流水计算,同样需要将输入端的特征参量进行N级缓存,从而实现推理和特征参量的一致性。目前现有方案中,比较典型的一种实现是将推理单元中的模型节点信息存储在FPGA的随机存取存储器(RandomAccess Memory,RAM)中,而特征参量的多级缓存往往由FPGA的寄存器(register)来实现。
图2是利用图1所示方法实现随机森林加速方法的一种推理数据流示意图,如图2所示,“读模型”步骤时推理单元从存储在RAM的模型中读取当前推理的节点信息,获得需要进行比较运算的特征号和相应的阈值,“获取特征”步骤是从特征参量多级缓存模块获取相应的特征,“比较运算”是将获取的特征与阈值进行相应的比较运算,得到下一个待计算的节点信息地址或者叶子结点。
在该方案中,所有推理单元中推理性能最低的单元决定了整个流水线的性能。可以看出,一般来说完成一个节点的推理操作需要3个FPGA时钟,对于一个随机森林,在其决策树数量和深度不变的情况下,可以对推理单元中的模型信息进行均衡分配,并尽可能的增大流水线级数,或者降低每级流水线的推理规模来实现最优性能,但是当流水线级数增大时,对应的特征参量的缓存也要相应的增大,当特征参量的维度比较小时,增大流水线级数是可行的,但当特征参量的维度越大,在特征参量多级缓存部分消耗的资源就越大,在FPGA片上资源有限的情况下,一个特征参量维度较大的模型,往往会受到资源的制约而无法实现较多级的流水线,从而达不到比较好的加速效果。
针对目前的技术现状,本申请提出一种全新的设计方案:采用FPGA上更为充裕的RAM对特征参量进行多级缓存,采用一种特殊的阶梯式多路加速方法,解决资源瓶颈的同时,从而进一步提升推理性能。下面对本申请提出的方案进行详细说明:
图3是根据一示例性实施例示出的一种基于机器学习模型实现数据分类的方法的结构框图,如图3所示,CPU通过PCIe端口将随机森林模型下载到FPGA中,FPGA板卡上的网口接收网络端的报文,解析提取其中的计算相关的特征参量,并根据特征参量和已经更新的随机森林模型进行推理,完成推理后将推理结果通过网口发送出去。
在本申请的一个可选的实施例中,图3所示实施例选用的FPGA是Intel的Stratix10GX FPGA加速卡D5005,有229Mbit embedded memory。
图4是根据一示例性实施例示出的一种基于机器学习模型实现数据分类的方法的流程图,如图4所示,该方法包括以下步骤:
在步骤S41中,获取待输入至机器学习模型的特征参量,其中,机器学习模型用于通过推理对特征参量进行分类,机器学习模型被分割成多级推理单元,多级推理单元存储在现场可编程逻辑门阵列器件的随机存取存储器,每级推理单元包括机器学习模型的节点信息;
需要说明的是,步骤S41中的机器学习模型包括随机森林模型。
参见图1,在执行步骤S41时,将随机森林模型分割成N级推理单元来实现推理的流水线,每级推理单元中存储的是模型的节点信息。
需要说明的是,模型的节点信息包括在推理过程中,需要进行比较运算的特征号和相应的阈值。
在步骤S42中,根据多级推理单元,将特征参量在随机存取存储器上进行多级缓存,其中,每级缓存的特征参量相同;
在该方案中,随机森林模型和特征参量均存储在FPGA的RAM上,随机森林的模型存储是模型中的节点信息。
为了实现各推理单元的流水计算,同样需要将输入端的特征参量进行N级缓存,从而实现推理和特征参量的一致性。如图1所示,特征参量缓存的级数与将随机森林模型分割得到的推理单元的级数是相同的。
在步骤S43中,依次利用多级推理单元中的各级推理单元从随机存取存储器上获取与推理单元对应的特征参量,并对特征参量进行推理处理。
通过上述方法,采用FPGA上更为充裕的RAM对特征参量进行多级缓存,解决资源瓶颈的同时,进一步提升了FPGA对随机森林算法的推理性能,不仅可以满足一些对推理性能要求高的场景,同时还可以实现一些输入特征维度比较大的模型的推理加速。
根据本申请的一个可选的实施例,每级推理单元包括多个线程,其中,多个线程用于并行对特征参量进行分类处理。
图5是根据一示例性实施例示出的一种利用FPGA实现随机森林加速方法的示意图,图5所示的方法和图1所示的现有方法的区别在于,每一个推理单元中包含多个线程(thread)可以进行并行计算。
根据本申请的一个可选的实施例,执行步骤S43依次利用多级推理单元中的各级推理单元从随机存取存储器上获取与推理单元对应的特征参量,并对特征参量进行推理处理,通过以下方法实现:分别利用多个线程中的每个线程执行以下流程:从随机存取存储器读取当前线程所在的推理单元对应的机器学习模型的节点信息,得到在进行推理处理过程中需要进行比较运算的特征号和对应的阈值;从当前推理单元对应的层级缓存中获取进行推理处理对应的特征参量,其中,获取特征参量包括:特征请求和特征返回;利用获取的特征参量与阈值按照特征号进行比较运算。
以每个推理单元含有4个thread为例,每个thread所在流水线的推理数据流如图6所示,该方案推理数据流和图2所示的方案基本一致,只是对于每一个节点的推理操作需要4个FPGA时钟,因为获取特征过程中因为使用RAM的同时还要配合该方案的阶梯式多路加速方法,占用了两个FPGA时钟周期,分别执行“特征请求”和“特征返回”两个步骤。
在本申请的一些可选的实施例中,每个线程执行流程的周期包括多个时钟周期,其中,时钟周期为现场可编程逻辑门阵列器件的时钟周期。
根据本申请的一个可选的实施例,上述方法还包括:分别控制每个线程在周期的不同时钟周期内执行特征请求的步骤,以及分别控制每个线程在周期的不同时钟周期内执行特征返回的步骤,其中,同一个线程执行特征请求的步骤和执行特征返回的步骤的时钟周期不同。
在图2所示的现有方案中,可以看出特征参量多级缓存模块在“读模型”和“比较运算”阶段处于空闲状态,通过对thread进行阶梯式启动可以使特征参量多级缓存模块处于“满载”状态。
图7是根据一示例性实施例示出的一种阶梯式多路加速方法的流程图,4个thread在推理中访问的特征参量多级缓存模块是公用的,同时推理的数据流是按FPGA时钟周期阶梯式启动的。可以看出,虽然每个thread的单节点推理周期使用4个FPGA时钟,但是通过对4个thread进行阶梯式推理数据流,可以对特征参量多级缓存模块进行分时访问,从而充分利用多级缓存模块进行尽可能多的节点推理。当然如果在thread的推理过程中出现了叶子节点,该thread会在下一个“读模型”阶段,将叶子节点输出,传递给计算模块,用于累加等投票规则运算。阶梯式多路加速方法决定了每个thread的叶子节点输出一定是错位的,不会产生“竞争”。
图8是根据一示例性实施例示出的一种特征参量多级缓存模块特征请求数据流的示意图,图9是根据一示例性实施例示出的一种特征参量多级缓存模块特征返回数据流的示意图,由图8和图9可以看出,每个FPGA时钟周期,该模块都被4个线程循环访问,每个周期把特征循环返回给4个线程。也就是说特征参量多级缓存模块在“满载”工作。
本申请提出的上述台阶式的多路加速方法,在通过FPGA加速随机森林算法的同时,还可以极大的节约FPGA的使用资源,解决输入维度过高导致推理性能下降的问题。
在本申请的另一些可选的实施例中,将特征参量在随机存取存储器上进行多级缓存,包括:分别利用两片随机存取存储器在每级缓存中缓存特征参量,其中,两片随机存取存储器包括第一随机存取存储器和第二随机存取存储器,在推理单元从对应层级缓存的第一随机存取存储器中获取特征参量的情况下,该层级缓存的第二随机存取存储器接收并缓存新的推理请求的特征参量。
将特征参量存储在RAM上,并且在每级流水线使用两片RAM进行乒乓存储,当一片RAM服务于推理单元的特征参量获取时,另一片RAM用于接收新的推理请求的特征参量,可以实现保证特征参量的接收不影响推理的性能的技术效果。
在本申请的另一些可选的实施例中,机器学习模型为随机森林模型,机器学习模型的节点信息包括组成随机森林模型的决策树节点层数;每个推理单元包括的各个线程获取的随机森林模型的决策树节点层数在预设范围内。
在该方案中,在每级流水线中4个thread公用1个特征参量多级缓存模块,每个thread中存储的决策树节点总层数Li决定了该thread的推理效率为Li*4,在4个thread中决策树节点总层数最大的thread是整个流水线的推理瓶颈。在该方案中,CPU在将模型更新到FPGA上时,应尽量保证该模型在每个流水线的每个thread中的决策树节点层数保证平衡的状态,这样可以达到最优性能。
从该方案和现有方案的推理数据流可以看出,对应完全同样的模型,假定两个方案使用同样级数的流水线Kn,则现有方案每层需要计算的决策树层数是模型总层数Lsum/Kn,而每个节点层的推理时间是3个FPGA时钟,则最终的推理性能约为:
Through_now=Freq/(3*Lsum/Kn)
假定新方案的决策树节点层数基本实现平衡放置,则新方案的推理性能约为:
Through_new=Freq/(Lsum/Kn)
可以看出在片上资源都充足的情况下,如果实现同样的流水线级数,则新方案的推理性能是现有方案性能的3倍。
当输入特征维度较大,由于现有技术方案将输入的特征参量存储在register中,并且对于每级流水线都要对特征参量进行缓存,现有方案在实现过程中受限于register资源限制几乎无法进行多级流水线的设计,而该方案由于将特征参量存储在RAM中,由于RAM的资源使用相对更为充裕些,可以在资源合理使用的范围内,实现一定数量的流水线进行推理加速。
在该方案中,随机森林模型和特征参量存储在FPGA的RAM上,FPGA时钟是250MHz,对500棵深度为3的决策树进行模型加载,模型的输入维度分别是500、1000、5000、10000的单精度浮点型数据。并且开辟了多级流水线加载该模型,在每个流水线中有4个thread。表1是该方案在各模型下的资源使用和推理性能(不考虑网络输入带宽)。
表1FPGA在不同维度下的资源使用和推理性能
由表1可以看出,对于不同的特征输入维度,都可以实现一个较多的流水线级数,从而实现较好的推理性能。
图10是根据一示例性实施例示出的一种基于机器学习模型实现数据分类的装置的结构框图,参照图10,该装置包括获取模块101,存储模块102和处理模块103。
该获取模块101被配置为执行获取待输入至机器学习模型的特征参量,其中,机器学习模型用于通过推理对特征参量进行分类,机器学习模型被分割成多级推理单元,多级推理单元存储在现场可编程逻辑门阵列器件的随机存取存储器,每级推理单元包括机器学习模型的节点信息。
参见图1,将随机森林模型分割成N级推理单元来实现推理的流水线,每级推理单元中存储的是模型的节点信息。
在本申请实施例提供的方案中,随机森林模型和特征参量均存储在FPGA的RAM上,随机森林的模型存储是模型中的节点信息。
该存储模块102被配置为执行根据多级推理单元,将特征参量在随机存取存储器上进行多级缓存,其中,特征参量进行缓存的级数与推理单元的个数相同,其中,每级缓存的特征参量相同。
为了实现各推理单元的流水计算,同样需要将输入端的特征参量进行N级缓存,从而实现推理和特征参量的一致性。如图1所示,特征参量缓存的级数与将随机森林模型分割得到的推理单元的级数是相同的。
该处理模块103被配置为执行依次利用多级推理单元中的各级推理单元从随机存取存储器上获取与推理单元对应的特征参量,并对特征参量进行推理处理。
通过上述装置,采用FPGA上更为充裕的RAM对特征参量进行多级缓存,解决资源瓶颈的同时,进一步提升了FPGA对随机森林算法的推理性能,不仅可以满足一些对推理性能要求高的场景,同时还可以实现一些输入特征维度比较大的模型的推理加速。
根据本申请的一个可选的实施例,每级推理单元包括多个线程,其中,多个线程用于并行对特征参量进行分类处理。
图5是根据一示例性实施例示出的一种利用FPGA实现随机森林加速方法的示意图,图5所示的方法和图1所示的现有方法的区别在于,每一个推理单元中包含多个线程(thread)可以进行并行计算。
根据本申请的另一个可选的实施例,处理模块103,被配置为执行分别利用多个线程中的每个线程执行以下流程:从随机存取存储器读取当前线程所在的推理单元对应的机器学习模型的节点信息,得到在进行推理处理过程中需要进行比较运算的特征号和对应的阈值;从当前推理单元对应的层级缓存中获取进行推理处理对应的特征参量,其中,获取特征参量包括:特征请求和特征返回;利用获取的特征参量与阈值按照特征号进行比较运算。
以每个推理单元含有4个thread为例,每个thread所在流水线的推理数据流如图6所示,该方案推理数据流和图2所示的方案基本一致,只是对于每一个节点的推理操作需要4个FPGA时钟,因为获取特征过程中因为使用RAM的同时还要配合该方案的阶梯式多路加速方法,占用了两个FPGA时钟周期,分别执行“特征请求”和“特征返回”两个步骤。
在本申请的一些可选的实施例中,每个线程执行流程的周期包括多个时钟周期,其中,时钟周期为现场可编程逻辑门阵列器件的时钟周期。
在本申请的另一些可选的实施例中,上述方装置还包括:控制模块,被配置为执行分别控制每个线程在周期的不同时钟周期内执行特征请求的步骤,以及分别控制每个线程在周期的不同时钟周期内执行特征返回的步骤,其中,同一个线程执行特征请求的步骤和执行特征返回的步骤的时钟周期不同。
在图2所示的现有方案中,可以看出特征参量多级缓存模块在“读模型”和“比较运算”阶段处于空闲状态,通过对thread进行阶梯式启动可以使特征参量多级缓存模块处于“满载”状态。
图7是根据一示例性实施例示出的一种阶梯式多路加速方法的流程图,4个thread在推理中访问的特征参量多级缓存模块是公用的,同时推理的数据流是按FPGA时钟周期阶梯式启动的。可以看出,虽然每个thread的单节点推理周期使用4个FPGA时钟,但是通过对4个thread进行阶梯式推理数据流,可以对特征参量多级缓存模块进行分时访问,从而充分利用多级缓存模块进行尽可能多的节点推理。当然如果在thread的推理过程中出现了叶子节点,该thread会在下一个“读模型”阶段,将叶子节点输出,传递给计算模块,用于累加等投票规则运算。阶梯式多路加速方法决定了每个thread的叶子节点输出一定是错位的,不会产生“竞争”。
图8是根据一示例性实施例示出的一种特征参量多级缓存模块特征请求数据流的示意图,图9是根据一示例性实施例示出的一种特征参量多级缓存模块特征返回数据流的示意图,由图8和图9可以看出,每个FPGA时钟周期,该模块都被4个线程循环访问,每个周期把特征循环返回给4个线程。也就是说特征参量多级缓存模块在“满载”工作。
本申请提出的上述台阶式的多路加速方法,在通过FPGA加速随机森林算法的同时,还可以极大的节约FPGA的使用资源,解决输入维度过高导致推理性能下降的问题。
在一个可选的实施例中,存储模块102,被配置为执行分别利用两片随机存取存储器在每级缓存中缓存特征参量,其中,两片随机存取存储器包括第一随机存取存储器和第二随机存取存储器,在推理单元从对应层级缓存的第一随机存取存储器中获取特征参量的情况下,该层级缓存的第二随机存取存储器接收并缓存新的推理请求的特征参量。
将特征参量存储在RAM上,并且在每级流水线使用两片RAM进行乒乓存储,当一片RAM服务于推理单元的特征参量获取时,另一片RAM用于接收新的推理请求的特征参量,可以实现保证特征参量的接收不影响推理的性能的技术效果。
根据本申请的一个可选的实施例,机器学习模型为随机森林模型,机器学习模型的节点信息包括组成随机森林模型的决策树节点层数;每个推理单元包括的各个线程获取的随机森林模型的决策树节点层数在预设范围内。
在该方案中,在每级流水线中4个thread公用1个特征参量多级缓存模块,每个thread中存储的决策树节点总层数Li决定了该thread的推理效率为Li*4,在4个thread中决策树节点总层数最大的thread是整个流水线的推理瓶颈。在该方案中,CPU在将模型更新到FPGA上时,应尽量保证该模型在每个流水线的每个thread中的决策树节点层数保证平衡的状态,这样可以达到最优性能。
从该方案和现有方案的推理数据流可以看出,对应完全同样的模型,假定两个方案使用同样级数的流水线Kn,则现有方案每层需要计算的决策树层数是模型总层数Lsum/Kn,而每个节点层的推理时间是3个FPGA时钟,则最终的推理性能约为:
Through_now=Freq/(3*Lsum/Kn)
假定新方案的决策树节点层数基本实现平衡放置,则新方案的推理性能约为:
Through_new=Freq/(Lsum/Kn)
可以看出在片上资源都充足的情况下,如果实现同样的流水线级数,则新方案的推理性能是现有方案性能的3倍。
当输入特征维度较大,由于现有技术方案将输入的特征参量存储在register中,并且对于每级流水线都要对特征参量进行缓存,现有方案在实现过程中受限于register资源限制几乎无法进行多级流水线的设计,而该方案由于将特征参量存储在RAM中,由于RAM的资源使用相对更为充裕些,可以在资源合理使用的范围内,实现一定数量的流水线进行推理加速。
在该方案中,随机森林模型和特征参量存储在FPGA的RAM上,FPGA时钟是250MHz,对500棵深度为3的决策树进行模型加载,模型的输入维度分别是500、1000、5000、10000的单精度浮点型数据。并且开辟了多级流水线加载该模型,在每个流水线中有4个thread。由表1可以看出,对于不同的特征输入维度,都可以实现一个较多的流水线级数,从而实现较好的推理性能。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图11是根据一示例性实施例示出的一种电子设备的结构框图。参照图11,电子设备可以是一种终端1100,比如,该终端1100可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
终端1100可以包括以下一个或多个组件:处理组件1102,存储器1104,电力组件1106,多媒体组件1108,音频组件1110,输入/输出(I/O)的接口1112,传感器组件1114,以及通信组件1116。
处理组件1102通常控制终端1100的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1102可以包括一个或多个处理器1120来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1102可以包括一个或多个模块,便于处理组件1102和其他组件之间的交互。例如,处理组件1102可以包括多媒体模块,以方便多媒体组件1108和处理组件1102之间的交互。
存储器1104被配置为存储各种类型的数据以支持在设备1100的操作。这些数据的示例包括用于在终端1100上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1104可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1106为终端1100的各种组件提供电力。电源组件1106可以包括电源管理系统,一个或多个电源,及其他与为终端1100生成、管理和分配电力相关联的组件。
多媒体组件1108包括在所述终端1100和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1108包括一个前置摄像头和/或后置摄像头。当设备1100处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件1110被配置为输出和/或输入音频信号。例如,音频组1110包括一个麦克风(MIC),当终端1100处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1104或经由通信组件1116发送。在一些实施例中,音频组件1110还包括一个扬声器,用于输出音频信号。
I/O接口1112为处理组件1102和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1114包括一个或多个传感器,用于为终端1100提供各个方面的状态评估。例如,传感器组件1114可以检测到设备1100的打开/关闭状态,组件的相对定位,例如所述组件为终端1100的显示器和小键盘,传感器组件1114还可以检测终端1100或终端1100一个组件的位置改变,用户与终端1100接触的存在或不存在,终端1100方位或加速/减速和终端1100的温度变化。传感器组件1114可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1114还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1114还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1116被配置为便于终端1100和其他设备之间有线或无线方式的通信。终端1100可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件1116经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1116还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,终端1100可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器1104,上述指令可由电子设备的处理器1120执行以完成上述方法。计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时以上的基于机器学习模型实现数据分类的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种基于机器学习模型实现数据分类的方法,其特征在于,该方法通过现场可编程逻辑门阵列器件实现,包括:
获取待输入至机器学习模型的特征参量,其中,所述机器学习模型用于通过推理对所述特征参量进行分类,所述机器学习模型被分割成多级推理单元,所述多级推理单元存储在所述现场可编程逻辑门阵列器件的随机存取存储器,每级所述推理单元包括所述机器学习模型的节点信息;
根据所述多级推理单元,将所述特征参量在所述随机存取存储器上进行多级缓存,其中,每级缓存的所述特征参量相同;
依次利用所述多级推理单元中的各级推理单元从所述随机存取存储器上获取与所述推理单元对应的所述特征参量,并对所述特征参量进行推理处理。
2.根据权利要求1所述的方法,其特征在于,每级所述推理单元包括多个线程,其中,所述多个线程用于并行对所述特征参量进行分类处理。
3.根据权利要求2所述的方法,其特征在于,依次利用所述多级推理单元中的各级推理单元从所述随机存取存储器上获取与所述推理单元对应的所述特征参量,并对所述特征参量进行推理处理,包括:
分别利用所述多个线程中的每个线程执行以下流程:
从所述随机存取存储器读取当前线程所在的所述推理单元对应的所述机器学习模型的节点信息,得到在进行推理处理过程中需要进行比较运算的特征号和对应的阈值;
从当前推理单元对应的层级缓存中获取进行所述推理处理对应的特征参量,其中,获取所述特征参量包括:特征请求和特征返回;
利用获取的所述特征参量与所述阈值按照所述特征号进行比较运算。
4.根据权利要求3所述的方法,其特征在于,每个线程执行所述流程的周期包括多个时钟周期,其中,所述时钟周期为所述现场可编程逻辑门阵列器件的时钟周期。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
分别控制所述每个线程在所述周期的不同时钟周期内执行所述特征请求的步骤,以及分别控制所述每个线程在所述周期的不同时钟周期内执行所述特征返回的步骤,其中,同一个线程执行所述特征请求的步骤和执行所述特征返回的步骤的时钟周期不同。
6.根据权利要求1所述的方法,其特征在于,将所述特征参量在所述随机存取存储器上进行多级缓存,包括:
分别利用两片所述随机存取存储器在每级缓存中缓存所述特征参量,其中,两片所述随机存取存储器包括第一随机存取存储器和第二随机存取存储器,在所述推理单元从对应层级缓存的所述第一随机存取存储器中获取所述特征参量的情况下,所述层级缓存的第二随机存取存储器接收并缓存新的推理请求的特征参量。
7.根据权利要求2所述的方法,其特征在于,
所述机器学习模型为随机森林模型,所述机器学习模型的节点信息包括组成所述随机森林模型的决策树节点层数;
每个所述推理单元包括的各个线程获取的所述随机森林模型的决策树节点层数在预设范围内。
8.一种基于机器学习模型实现数据分类的装置,其特征在于,包括:
获取模块,被配置为执行获取待输入至机器学习模型的特征参量,其中,所述机器学习模型用于通过推理对所述特征参量进行分类,所述机器学习模型被分割成多级推理单元,所述多级推理单元存储在现场可编程逻辑门阵列器件的随机存取存储器,每级所述推理单元包括所述机器学习模型的节点信息;
存储模块,被配置为执行根据所述多级推理单元,将所述特征参量在所述随机存取存储器上进行多级缓存,其中,每级缓存的所述特征参量相同;
处理模块,被配置为执行依次利用所述多级推理单元中的各级推理单元从所述随机存取存储器上获取与所述推理单元对应的所述特征参量,并对所述特征参量进行推理处理。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的基于机器学习模型实现数据分类的方法。
10.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至7中任一项所述的基于机器学习模型实现数据分类的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111567466.6A CN114266306A (zh) | 2021-12-20 | 2021-12-20 | 基于机器学习模型实现数据分类的方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111567466.6A CN114266306A (zh) | 2021-12-20 | 2021-12-20 | 基于机器学习模型实现数据分类的方法及装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114266306A true CN114266306A (zh) | 2022-04-01 |
Family
ID=80828398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111567466.6A Pending CN114266306A (zh) | 2021-12-20 | 2021-12-20 | 基于机器学习模型实现数据分类的方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114266306A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115374944A (zh) * | 2022-10-26 | 2022-11-22 | 小米汽车科技有限公司 | 模型推理方法、装置、电子设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066239A (zh) * | 2017-03-01 | 2017-08-18 | 智擎信息系统(上海)有限公司 | 一种实现卷积神经网络前向计算的硬件结构 |
CN108805283A (zh) * | 2017-05-05 | 2018-11-13 | 英特尔公司 | 在机器学习中对神经网络的拓扑的高效学习和使用 |
JP2019160252A (ja) * | 2018-03-16 | 2019-09-19 | 株式会社リコー | 学習識別装置および学習識別方法 |
JP2019160256A (ja) * | 2018-03-16 | 2019-09-19 | 株式会社リコー | 学習識別装置および学習識別方法 |
US20190287023A1 (en) * | 2018-03-16 | 2019-09-19 | Ryosuke Kasahara | Learning classification device and learning classification method |
CN111224892A (zh) * | 2019-12-26 | 2020-06-02 | 中国人民解放军国防科技大学 | 一种基于fpga随机森林模型的流量分类方法及系统 |
CN113572703A (zh) * | 2021-07-21 | 2021-10-29 | 东南大学 | 一种基于fpga的在线流量业务分类方法 |
-
2021
- 2021-12-20 CN CN202111567466.6A patent/CN114266306A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066239A (zh) * | 2017-03-01 | 2017-08-18 | 智擎信息系统(上海)有限公司 | 一种实现卷积神经网络前向计算的硬件结构 |
CN108805283A (zh) * | 2017-05-05 | 2018-11-13 | 英特尔公司 | 在机器学习中对神经网络的拓扑的高效学习和使用 |
JP2019160252A (ja) * | 2018-03-16 | 2019-09-19 | 株式会社リコー | 学習識別装置および学習識別方法 |
JP2019160256A (ja) * | 2018-03-16 | 2019-09-19 | 株式会社リコー | 学習識別装置および学習識別方法 |
US20190287023A1 (en) * | 2018-03-16 | 2019-09-19 | Ryosuke Kasahara | Learning classification device and learning classification method |
CN110276367A (zh) * | 2018-03-16 | 2019-09-24 | 株式会社理光 | 学习分类装置和学习分类方法 |
CN111224892A (zh) * | 2019-12-26 | 2020-06-02 | 中国人民解放军国防科技大学 | 一种基于fpga随机森林模型的流量分类方法及系统 |
CN113572703A (zh) * | 2021-07-21 | 2021-10-29 | 东南大学 | 一种基于fpga的在线流量业务分类方法 |
Non-Patent Citations (2)
Title |
---|
MOHAMMED ELNAWAWY等: "FPGA-Based Network Traffic Classification Using Machine Learning", IEEE, vol. 08, 25 September 2020 (2020-09-25) * |
王超;王腾;马翔;周学海;: "基于FPGA的机器学习硬件加速研究进展", 计算机学报, no. 06, 15 June 2020 (2020-06-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115374944A (zh) * | 2022-10-26 | 2022-11-22 | 小米汽车科技有限公司 | 模型推理方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110493538A (zh) | 图像处理方法、装置、存储介质及电子设备 | |
CN108924420A (zh) | 图像拍摄方法、装置、介质、电子设备及模型训练方法 | |
CN109120862A (zh) | 高动态范围图像获取方法、装置及移动终端 | |
CN112230781B (zh) | 字符推荐方法、装置及存储介质 | |
CN111240817A (zh) | 资源调度方法、资源调度装置及存储介质 | |
CN116048933B (zh) | 一种流畅度检测方法 | |
CN110851787B (zh) | 合并指令处理方法、装置、电子设备和存储介质 | |
CN114595785B (zh) | 模型训练方法、装置、电子设备及存储介质 | |
CN112286683A (zh) | 一种分片下载方法、装置及介质 | |
CN114266306A (zh) | 基于机器学习模型实现数据分类的方法及装置、电子设备 | |
CN109685802B (zh) | 一种低延迟的视频分割实时预览方法 | |
CN114428589A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN110856196B (zh) | Wlan服务优化方法、终端设备和存储介质 | |
CN111694768B (zh) | 运算方法、装置及相关产品 | |
CN108345434B (zh) | 数据写入方法、装置、计算机设备及可读存储介质 | |
CN111259675B (zh) | 基于神经网络计算的方法和装置 | |
CN110909886B (zh) | 一种机器学习网络运行方法、装置及介质 | |
CN115499577A (zh) | 一种图像处理方法及终端设备 | |
US20210117199A1 (en) | Method, device and storage medium for processing overhead of memory access | |
CN112990208B (zh) | 一种文本识别方法及装置 | |
CN110046035B (zh) | 系统切换方法、装置及电子设备 | |
CN108154092B (zh) | 人脸特征预测方法及装置 | |
CN113722080A (zh) | 内存优化方法、装置及计算机存储介质 | |
CN115303218B (zh) | 语音指令处理方法、设备及存储介质 | |
CN110990357A (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 |