发明内容
本发明的目的在于提供一种恶意文件检测模型的训练系统、方法、设备、介质及平台,以提高恶意文件检测模型的训练速度及训练效果。
为实现上述目的,本发明提供的一种恶意文件检测模型的分布式训练系统,所述分布式训练系统包括:
调度器、分布式集群及整合单元,所述分布式集群包括若干个工作单元;
所述调度器用于按照恶意文件检测模型的训练过程,依次接收多个训练子阶段任务;其中,每个训练子阶段任务对应恶意文件检测模型训练的一子阶段;
所述调度器用于每接收到一训练子阶段任务,在分布式集群中确定用于执行所述训练子阶段任务的目标工作单元,并向每个目标工作单元分发所述训练子阶段任务;其中,至少有两个目标工作单元分别位于不同的服务器;
所述目标工作单元用于接收所述调度器分发的所述训练子阶段任务,并根据所述训练子阶段任务执行对应的处理操作;
所述整合单元用于接收各个目标工作单元执行完训练子阶段任务之后的结果,并将各个结果进行整合,以便于目标工作单元在执行后续训练子阶段任务时使用,或者通过整合得到训练后的最终恶意文件检测模型。
其中,所述训练子阶段任务包括:恶意样本文件下载与特征提取任务;
相应地,所述目标工作单元具体用于:从原始恶意样本文件库中下载对应的原始恶意样本文件,并从所述原始恶意样本文件中提取样本特征;其中,不同目标工作单元下载的原始恶意样本文件不同。
其中,所述训练子阶段任务包括:特征筛选任务;
相应地,所述目标工作单元具体用于:对所述样本特征进行去重,并对去重后的样本特征进行初步筛选得到初步筛选特征;
相应地,所述整合单元具体用于:接收各个目标工作单元分别发送的初步筛选特征,并对所有初步筛选特征进行去重后,再进行整体特征筛选得到最终特征。
其中,所述训练子阶段任务包括:向量降维任务;
相应地,所述目标工作单元具体用于:从所述整合单元中获取对应的待处理最终特征进行向量降维得到目标特征;其中,不同目标工作单元获取的待处理最终特征不同。
其中,所述目标工作单元具体用于:
从所述整合单元中获取对应的待处理最终特征,确定初始降维方式,并将确定的所述初始降维方式发送至所述整合单元;其中,不同目标工作单元获取的待处理最终特征不同;
从所述整合单元确定最终降维方式,以对待处理最终特征进行降维;
相应地,所述整合单元还用于:从各目标工作单元接收初始降维方式,以确定最终降维方式。
其中,所述训练子阶段任务包括:恶意文件检测模型训练任务;
相应地,所述目标工作单元具体用于:根据所述目标特征对初始模型进行训练得到对应的计算结果;其中,不同目标工作单元用来训练初始模型的目标特征不同;
相应地,所述整合单元具体用于:根据每个目标工作单元的计算结果生成最终恶意文件检测模型。
其中,所述目标工作单元具体用于:根据所述训练子阶段任务执行对应的处理操作时,通过延迟执行机制对已使用数据进行资源清理。
其中,所述目标工作单元具体用于:根据所述训练子阶段任务执行对应的处理操作时,根据执行所述训练子阶段任务的每个指令的资源需求对各指令进行组合,以便通过并行方式执行各指令。
为实现上述目的,本发明进一步提供一种恶意文件检测模型的分布式训练方法,包括:
调度器按照恶意文件检测模型的训练过程,依次接收多个训练子阶段任务;其中,每个训练子阶段任务对应恶意文件检测模型训练的一子阶段;
所述调度器每接收到一训练子阶段任务,在分布式集群中确定用于执行所述训练子阶段任务的目标工作单元,并向每个目标工作单元分发所述训练子阶段任务,以使得目标工作单元根据接收的训练子阶段任务执行对应处理操作;其中,所述分布式集群包括若干个工作单元,且至少有两个目标工作单元分别位于不同的服务器;
整合单元接收各个目标工作单元执行完训练子阶段任务之后的结果,并将各个结果进行整合,以便于目标工作单元在执行后续训练子阶段任务时使用,或者通过整合得到训练后的最终恶意文件检测模型。
为实现上述目的,本发明进一步提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述恶意文件检测模型的分布式训练方法的步骤。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述恶意文件检测模型的分布式训练方法的步骤。
为实现上述目的,本发明进一步提供一种云计算平台,包括分布式训练软件模块,所述分布式训练软件模块用于实现上述恶意文件检测模型的分布式训练方法的步骤。
通过以上方案可知,本发明实施例提供了一种恶意文件检测模型的分布式训练系统;在本方案中,调度器按照恶意文件检测模型训练的过程依次接收多个训练子阶段任务,并向执行该任务的目标工作单元下发,以便目标工作单元根据该任务执行对应的处理操作;整合单元将各个目标工作单元的执行结果进行整合,以便于目标工作单元在执行后续训练子阶段任务时使用,或者通过整合得到训练后的最终恶意文件检测模型。可见,本方案通过分布式训练系统对恶意文件检测模型进行训练的方式,可让分布式集群中部署在不同服务器的各目标工作单元并行处理各任务,从而提升模型的训练速度;该分布式训练方式还可根据样本总量的增加扩展工作单元的数量,从而在同等时间内能使用更多的样本对模型进行训练,进而提高模型训练效果;此外,本方案还限定了对训练过程划分多个子阶段,针对某些子阶段也采用分布式集群来实现,这使得执行某些训练子阶段任务的各目标工作单元也有机会被重新分配,调度器可以在某些训练子阶段任务完成之后,根据分布式集群的工作状态重新对执行后续训练子阶段任务的各目标工作单元进行重新分配,从而保证执行某些训练子阶段任务的目标工作单元都是性能较优的工作单元,以保证有足够可用资源能够在训练中使用,进而保证恶意样本文件的足够数量,以得到效果较优的恶意文件检测模型。本发明还公开了一种恶意文件检测模型的分布式训练方法、设备、介质及云计算平台,同样能实现上述技术效果。
具体实施方式
目前的恶意文件检测模型训练方式因为单服务器运行方式,会随着样本量及单服务器硬件资源的限制,出现训练速度慢及训练效果差等问题。以恶意文件检测模型为例,由于其采用单机版训练流程,具有训练迭代速度慢及参与训练的样本量数量受限等问题。为了解决该问题,本发明实施例提出了一种恶意文件检测模型的分布式训练系统、方法、设备、介质及云计算平台;本方案通过对整体训练流程的重构以及引入分布式文件系统,实现了模型在多服务器上的并行训练及集群数量的按需扩展,从而实现了样本数的按需增加,显著的提升了恶意文件检测模型训练迭代速度及训练效果。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,为本发明实施例提供的一种恶意文件检测模型的分布式训练系统结构示意图,该分布式训练系统包括:
调度器11、分布式集群12及整合单元13,该分布式集群12包括若干个工作单元;
调度器11用于按照恶意文件检测模型的训练过程,依次接收多个训练子阶段任务;其中,每个训练子阶段任务对应恶意文件检测模型训练的一子阶段;
调度器11用于每接收到一训练子阶段任务,在分布式集群12中确定用于执行训练子阶段任务的目标工作单元,并向每个目标工作单元分发训练子阶段任务;其中,至少有两个目标工作单元分别位于不同的服务器;
目标工作单元用于接收调度器11分发的训练子阶段任务,并根据训练子阶段任务执行对应的处理操作;
整合单元13用于接收各个目标工作单元执行完训练子阶段任务之后的结果,并将各个结果进行整合,以便于目标工作单元在执行后续训练子阶段任务时使用,或者通过整合得到训练后的最终恶意文件检测模型。
在本实施例中,首先基于分布式架构对软硬件结构进行了适配,在软件方便,本方案根据程序功能及硬件特性对恶意文件检测模型进行合理划分,将模型的整个训练流程划分为多个部分,并将划分为多个部分的训练过程分别部署在分布式集群12的工作单元中。在一种实施方式中,对恶意文件检测模型的整个流程进行划分时,可具体划分为:恶意样本文件下载与特征提取、特征筛选、向量降维、恶意文件检测模型训练这四部分;需要说明的是,在此仅以划分为上述四个部分为例对本方案进行说明,在实际应用时,可根据模型的训练流程及实际需求进行划分。在硬件方面,可根据实际需求在多个服务器上部署工作单元,且每个服务器上部署的工作单元的数量在此并不具体限定,但是为了保证模型的训练速度及训练效果,可选择每个工作单元分别部署在不同服务器中。
本方案中的分布式训练系统采用集中管理的分布式动态任务调度程序,主要包括调度器11、分布式集群12、及整合单元13,调度器11按照模型训练的过程,依次接收多个训练子阶段任务(可从控制台接收训练子阶段任务,其中,整合单元13可集成在控制台),该训练子阶段任务可以是用户通过控制台(可以以客户端形式呈现)下发的任务,也可以是用户在客户端设定好后,客户端按照恶意文件检测模型训练的过程自动下发的,在此并不具体限定。该训练子阶段任务的内容与模型所划分的多个步骤有关,在一种实施方式中,上述恶意文件检测模型可划分为:恶意样本文件下载与特征提取任务、特征筛选、向量降维、模型训练这四部分为例,调度器11依次接收的多个训练子阶段任务分别为:恶意样本文件下载与特征提取任务、特征筛选任务、特征筛选任务、恶意文件检测模型训练任务。也就是说,调度器11所接受的训练子阶段任务,是按照处理流程依次下发的,如:恶意文件检测模型的处理流程为:先执行恶意样本文件下载与特征提取任务获得样本特征,再执行特征筛选任务筛选出最终特征,然后执行向量降维任务得到用于模型训练的目标特征,然后基于目标特征执行恶意文件检测模型训练任务,生成训练后的恶意文件检测模型。因此本方案在下发训练子阶段任务时,需要按照该处理流程先下发恶意样本文件下载与特征提取任务,恶意样本文件下载与特征提取任务执行结束后再下发特征筛选任务,特征筛选任务执行结束后再下发特征筛选任务,特征筛选任务执行结束后再下发恶意文件检测模型训练任务,为了方便说明,本方案将当前下发给调度器11的每个任务称为训练子阶段任务;并且,用户还可基于客户端对分布式集群12进行配置,如:设置工作单元的数量、资源使用限制等等,在此并不具体限定。
调度器11接收到每个训练子阶段任务后,需要协调分布在多个服务器中的工作单元执行对应的操作;并且,调度器11具有异步和事件驱动特性,能够同时响应来自多个客户端的计算请求,并跟踪多个工作程序的进度,从而避免进程阻塞,实现程序的高效运行。具体来说,调度器11调度工作单元执行训练子阶段任务时,首先需要确定执行训练子阶段任务的工作单元,在本方案中,将执行训练子阶段任务的工作单元作为目标工作单元;并且,调度器11还需要向不同目标工作单元下发对应的训练子阶段任务,例如:训练子阶段任务为恶意样本文件下载与特征提取任务,且执行该任务的工作单元为:工作单元1~工作单元10,则调度器11需要向工作单元1下发的训练子阶段任务为:下载样本1与特征提取任务,调度器11需要向工作单元2下发的训练子阶段任务为:下载样本2与特征提取任务,依次类推,通过该方式,便可让这10个工作单元同时下载对应的样本,提高任务的处理速度。
本方案中的目标工作单元用于执行下发的每个任务,且每个目标工作单元中均部署了执行每个任务的程序模块,如:模型为恶意文件检测模型,则每个工作单元中均部署了恶意样本文件下载与特征提取、特征筛选、向量降维、模型训练这四个程序模块,因此每个目标工作单元在接收到训练子阶段任务后,通过对应的程序模块执行不同的任务。如:训练子阶段任务为下载样本1与特征提取任务,则需要通过目标工作单元中恶意样本文件下载与特征提取程序模块执行该任务。并且,不同目标工作单元之间是互相独立的,可以通过并行方式执行各个训练子阶段任务,进而提高任务的处理速度。并且,在本方案中,执行不同任务的目标工作单元的数量并不是固定的,在任务执行前和任务执行过程中均可动态调整,例如:由于系统需要处理的样本数据量较多,此时便可在任务开始执行前增加工作单元的数量;或者,在任务执行过程中,发现服务器的资源使用率过高或任务执行速度过慢,此时可动态增加目标工作单元的数量,以便提高任务执行速度;当然,本方案对目标工作单元的调整方式不仅仅包括增加,还包括减少,如:需要处理的样本数据量比较少时,此时可视情况减少目标工作节点的数量。本领域技术人员容易理解,分布式意味着多台服务器,因此,目标工作节点应分布在多台服务器上,以保证训练过程中的资源供给,保证训练速度的同时,能够提供更高数量的样本,以保证模型训练效果。
需要说明的是,由于本方案是通过多个目标工作单元并行执行同一任务,因此本方案为了让各个目标工作单元可共享任务执行结果,进而提高训练效果,设置了整合单元13,该整合单元用于在将目标工作单元的执行结果进行整合,以便目标工作单元在执行后续训练子阶段任务时使用,或者通过对执行结果的整合得到训练后的最终恶意文件检测模型。并且,该整合单元13可以是分布式集群12中的一个工作单元,也可以是独立于分布式集群12中的一个处理单元,在此并不具体限定;并且,整合单元13并不需要在目标工作单元执行完每个训练子阶段任务后均执行对应的整合操作,可以在部分训练子阶段任务执行后进行整合,在部分训练子阶段任务执行后不整合,具体整合方式可在训练之前自定义设置,在此并不具体限定。例如:在执行完恶意样本文件下载与特征提取任务后,可不进行整合;而在执行完特征筛选任务后,各目标工作单元的任务执行结果为特征筛选后的初步筛选特征,此时整合单元13可获取各目标工作单元的初步筛选特征进行整合,得到最终特征,此处整合所起到的作用为:去除重复特征、从整体上再对特征进行筛选,使得不同类型的特征保持预定比例,保持样本特征的多样化。
需要说明的是,本实施例中的整合单元对执行结果进行整合所起到的作用,需要根据当前执行的任务进行确定,若当前执行的任务并非是最后一个恶意文件检测模型训练任务,则整合单元对各目标工作单元的执行结果进行整合是为了让目标工作单元在执行后续训练子阶段任务时使用,若当前执行的任务为最后一个恶意文件检测模型训练任务,则整合单元对各目标工作单元的执行结果进行整合是为了得到训练后的最终恶意文件检测模型;如:针对恶意文件检测模型需要下发如下任务:恶意样本文件下载与特征提取任务、特征筛选任务、向量降维任务、恶意文件检测模型训练任务,其中向量降维任务和恶意文件检测模型训练任务在执行后均需要整合,则各目标工作单元执行完向量降维任务后进行整合,是为了得到目标特征以便在执行恶意文件检测模型训练任务时使用,在各目标工作单元执行完恶意文件检测模型训练任务后进行整合,是为了得到训练后的最终恶意文件检测模型。
综上可见,本方案将恶意文件检测模型的程序模块进行划分,并引入合适的硬件资源及分布式文件系统构建集群,同时按需采用合适的分布式框架及并行机制,可实现整个流程的并行执行以及工作单元的无感知扩容。也即:这种通过分布式训练系统对恶意文件检测模型进行训练的方式,可以让分布式集群12中的各工作单元并行处理各个任务,从而提升恶意文件检测模型的训练速度;并且,这种分布式训练方式可根据样本总量的增加扩展工作单元的数量,从而在同等时间内能使用更多的样本对模型进行训练,进而提高恶意文件检测模型训练效果,此外,本方案还限定了对训练过程划分多个子阶段,针对某些子阶段均采用分布式集群来实现,这使得执行某些训练子阶段任务的各目标工作单元都有机会被重新分配,调度器可以在某些个训练子阶段任务完成之后,根据分布式集群的工作状态重新对执行后续训练子阶段任务的各目标工作单元进行重新分配,从而保证执行某些训练子阶段任务的目标工作单元都是性能较优的工作单元,以保证有足够可用资源能够在训练中使用,进而保证恶意样本文件的足够数量,以得到效果较优的恶意文件检测模型。
基于上述实施例,在本实施例中,对各个目标工作单元执行不同任务的过程具体说明。
一、若训练子阶段任务为恶意样本文件下载与特征提取任务,则目标工作单元具体用于:从原始恶意样本文件库中下载对应的原始恶意样本文件,并从原始恶意样本文件中提取样本特征;其中,不同目标工作单元下载的原始恶意样本文件不同。
在本方案中,所有原始恶意样本文件均存储在原始恶意样本文件库中,为了提高数据下载效率,本方案需要通过分布式的下载方式将所需要的所有原始恶意样本文件均下载至本地硬盘中,以便进行后续操作。此处的分布式的下载方式是指:通过不同目标工作单元下载不同部分的原始恶意样本文件,各个目标工作单元之间通过并行的方式下载对应的原始恶意样本文件。该原始恶意样本文件为原始文件,如exe文件、doc文件或者pdf文件等等。并且,各个目标工作单元在特征提取之前,首先需要通过分析人员分析不同类别的病毒样本,通过专业知识筛选找到具有区分性质的特征,形成特征提取规则,各个目标工作单元根据该特征提取规则对原始恶意样本文件进行特征提取,生成样本特征。
二、若训练子阶段任务为特征筛选任务,则目标工作单元具体用于:对样本特征进行去重,并对去重后的样本特征进行初步筛选得到初步筛选特征;整合单元具体用于接收各个目标工作单元分别发送的初步筛选特征,并对所有初步筛选特征进行去重后,再进行整体特征筛选得到最终特征。
在本方案中,通过上述特征提取过程得到的样本特征非常多,但是这些样本特征并非全部都是有利于模型训练,因此本方案还需要对样本特征进行特征筛选,特征筛选是指:使用机器学习的特征筛选方法从所有样本特征中查找出重要的特征;目标工作单元在对样本特征筛选之前,需要通过分析人员根据专家知识或者特征筛选方法找出的筛选方案,该筛选方案中记载了显著字符串特征,以便通过筛选方案中的显著字符串特征对样本特征进行特征筛选,因此,本方案中的特征筛选也可以称为显著字符串统计。并且,本方案在特征筛选时,主要通过双层过滤+哈希表的机制来解决分布式平台小节点的限制。双层过滤是指:通过每个目标工作节点对部分样本特征进行初步筛选得到初步筛选特征后,再通过整合单元在所有初步筛选特征的基础上全局筛选过滤一遍,通过该方式,可将整体的特征筛选工作量均分至不同阶段,提高特征提取速度,保证程序在集群中高速运行;哈希表是指:在初步筛选或者整体筛选之前,先对特征计算哈希值后进行排序,由于相同特征生成的哈希值相同,因此本方案可通过计算哈希值的方式对样本特征去重,从而减少存储特征所占用的内存空间,解决资源不足的问题。
三、若训练子阶段任务为向量降维任务,则目标工作单元具体用于:从整合单元中获取对应的待处理最终特征进行向量降维得到目标特征;其中,不同目标工作单元获取的待处理最终特征不同。
具体来说,每个目标工作节点获取待处理最终特征后,会通过机器学习算法将特征转换为数值,该数值的维度非常高,因此本方案通过机器学习算法对该数值进行降维得到目标特征。在本方案中,为了将特征降维算法适配分布式环境,采取模型融合中Averaging(平均)的思想进行分布式的特征降维学习。具体来说,在执行向量降维任务时,需要通过降维模型确定部分待处理最终特征的降维方式,然后再将所有降维方式进行整合得到最终的降维方式,通过最终的降维方式对所有待处理最终特征进行降维。
需要说明的是,本方案执行向量降维任务的目标工作单元数量与执行其他任务的工作单元数量可以不同,如:设置每个服务器中的1个工作单元执行降维任务,那么每个服务器中执行该降维任务的目标工作单元,首先需要获取对应的待处理最终特征,然后根据待处理最终特征确定对应的初始降维方式,针对每个目标工作单元对应的初始降维方式,还需要进行整合得到最终降维方式(可通过整合单元对所有初始降维方式执行整合操作),并将最终降维方式发送给每个目标工作单元,让每个目标工作单元根据最终降维方式对待处理最终特征执行降维操作(最终降维方式用于确定具体对特征中的哪个维度进行降维)。其中,每个目标工作单元确定的初始降维方式中包括每个维度的重要性值,但是该初始降维方式只能代表目标工作单元所处理的部分最终特征的降维方式,因此本方案为了提高降维效果,还需要整合所有服务器的初始降维方式得到最终降维方式,最终降维方式的获取方式可以为:对每种初始降维方式的每个维度的重要性值求和平均获得。
如:特征中具有10个维度,且共有3种初始降维方式,则针对第一个维度来说,初始降维方式1的第一个维度的重要性值为0.8,初始降维方式2的第一个维度的重要性值为0.7,初始降维方式3的第一个维度的重要性值为0.5,则对这三个初始降维方式的第一个维度的重要性值求和平均后的值为:(0.8+0.7+0.5)/3=0.66,因此,0.66即为最终降维方式中第一个维度的重要性值,以此类推,即可根据每种初始降维方式的每个维度的重要性值计算得到最终降维方式中每个维度的重要性值。通过最终降维方式对特征执行降维操作时,可将重要性值低于预定阈值的维度作为需要降维的维度,如:最终降维方式中共有10个维度,第3个维度和第7个维度的重要性值小于预定阈值,则将第3个维度和第7个维度的数据删除,从而实现对特征的降维。通过该方式,使得本方案在对特征筛选后的最终特征进行向量降维时,可通过不同的目标工作单元对部分最终特征进行处理,通过该方式可以保证多个目标工作单元均能参与运算,并产出优于单机版本的降维特征矩阵,为模型准确度的提升做出坚实保障,整合单元对各初始降维方式的统一整合,可以使得最终得到的训练模型准确度更高。
四、若训练子阶段任务为恶意文件检测模型训练任务,则目标工作单元具体用于:根据目标特征对初始模型进行训练得到对应的计算结果;其中,不同目标工作单元用来训练初始模型的目标特征不同;该整合单元具体用于根据每个目标工作单元的计算结果生成最终恶意文件检测模型。
具体来说,由于所有目标工作单元降维后得到的目标特征的数量非常多,且执行降维操作的工作单元与执行恶意文件检测模型训练任务的工作单元的数量有可能不同,因此本方案可以将所有降维后的目标特征重新均匀分配至执行恶意文件检测模型训练任务的多个工作单元中,以便每个工作单元根据本工作单元的目标特征执行对应的恶意文件检测模型训练任务。在训练时,每个目标工作单元利用部分目标特征执行参数寻优方案得到每个目标工作单元的计算结果,该计算结果包括:在参数寻址空间中选取的用于分裂的特征、合适的深度、叶节点数目、运行轮数、停止条件等;然后通过整合单元将所有目标工作单元的计算结果进行整合生成具有最优参数的恶意文件检测模型(比如对各个目标工作单元反馈的参数进行平均,或取最大值等)。例如:每个目标工作单元输出的计算结果包括:模型在训练过程的每个步骤需要基于哪些特征进行分裂,然后将各个目标工作单元输出的所有特征进行汇总,从中筛选出重要的特征作为模型后续分裂所要基于的特征。进一步,通过上述过程得到训练后的恶意文件检测模型后,即可对待检测文件进行病毒检测,将待检测文件执行上述特征提取、特征筛选、向量降维后,通过恶意文件检测模型对文件进行分类。
基于上述实施例,在本实施例中,目标工作单元根据训练子阶段任务执行对应的处理操作时,通过延迟执行机制对已使用数据进行资源清理。
具体来说,由于恶意文件检测模型数据量巨大(千万样本的字符串总体数目可达1000亿,节选后全量特征矩阵1000w*25w*4B=10TB),因此本方案需要合理利用有限的内存、硬盘空间。为了保证在固定硬件资源下运行尽可能多的样本,也即:最大程度上节省硬件资源,本方案在任务处理过程中合理设计了延迟执行机制,通过该延迟执行机制可确保数据在使用前计算,使用后立即销毁,避免数据对内存的不必要占用,同时在多数情况下可以避免缓存污染,从而带来程序并行效果的提升,进而提高模型训练效率。
参见图2,为本发明实施例提供的树结构示意图。通过图2可以看出,多个加法(add)操作需要执行。假设标有数字的6个数据块将于同一服务器计算,如果采用非延迟计算,服务器中需要在内存中保存6个数据块所包含的数据,直至运算函数完成(当然用户也可以采用手动操作将变量向工作单元分配、运算中释放变量、回收内存操作,但程序复杂度将显著增强)。而在本方案中,可合理设计延迟执行机制,整体流程分为两层计算(矩形点代表数据,非叶子圆形点代表操作),当需要计算最上方数据块时,程序发起对3和6的计算请求,那么本方案在读取1和2完成数据块3的计算后,立刻释放内存中的1和2数据块,在读取4和5完成数据块6的计算后,立刻释放内存中的4和5数据块,且所有内存请求均在工作单元端完成,不需要占用客户端与调度器内存,极大的减小了内存的压力。在恶意样本文件下载与特征提取、特征筛选、向量降维、模型训练的过程中,均可在不同计算过程合理设置延迟执行机制,如:各目标工作单元在样本下载后,对提取完特征的原始恶意样本文件执行删除操作,在特征筛选之后对筛选前的样本特征执行删除操作等等。本方案通过在任务执行过程中设置延迟执行机制对已使用数据进行资源清理,可将程序对内存使用量的需求降低5倍以上,有利于程序性能的提升。
基于上述实施例,在本实施例中,目标工作单元根据训练子阶段任务执行对应的处理操作时,根据执行训练子阶段任务的每个指令的资源需求对各指令进行组合,以便通过并行方式执行各指令。
具体来说,在现代处理器中,指令的执行分为读指令(Fetch)、解析指令(Decode)、执行指令(Execute)、写指令(Writeback)4个部分,在硬件中有对应的流水线(pipeline)完成上述流程,参见图3,为本发明实施例公开的流水线原理示意图。假设每个环节均需要3个周期,如果某一时刻只有一条指令进入CPU(central processing unit,中央处理器),完整的执行完毕需要12个周期。但如果同时进入10条指令且互相之间无依赖性,则只需要12+9=21个时钟周期,而非12*10=120周期。因此,合理的排布指令顺序,使其互相之间无依赖性(主要包括数据依赖性,锁的影响),可以极大的提升程序执行速度,从而提高模型训练效率。以上是CPU微处理器结构,CPU核间、内存与硬盘之间的协作也与上述思想类似。
因此在本方案中,针对每个步骤对CPU等各类资源的需求,将不同需求的程序模块进行了合理的组合,尽可能保证在每一时刻pipeline得到充分的利用。比如模型训练环节,根据计算特性合理的设置开启/关闭hyperthreading(超线程)机制,设置并行thread(线程)的个数,如:若各指令对资源需求单一,则关闭hyperthreading机制以减少额外的调度开销,若各指令对资源需求多样,则开启hyperthreading机制实现pipeline间最优并行;在样本下载解析环节,通过调节每个工作单元内的多线程个数,多线程同时发出多个I/O请求,通过该方式,可将耗时的I/O请求通过pipeline并行执行,节省数据下载时间;并且,本方案还将受到python进程锁影响的环节与其他不受影响(可以开启多线程)的环节合理拆分,保证程序以最大并行度执行,通过上述调度策略,可保证并行程序执行效率符合预期。
综上可以看出,目前主流基于机器学习的恶意文件检测模型为基于单机训练,但是随着病毒库样本量的增加及单服务器硬件资源限制,恶意文件检测模型无法承载日益增长的计算任务,在模型训练速度和处理的样本量总数上均受到较大限制,进而导致学习模型的检测效果与迭代速度,无法满足需求。因此本方案通过分布式训练方法对恶意文件检测模型进行训练的方式,可以让分布式集群中的各工作单元并行处理各个任务,从而提升模型的训练速度;并且,这种分布式训练方式可根据样本总量的增加扩展工作单元的数量,从而在同等时间内能使用更多的样本对模型进行训练,提高模型支撑的样本总量及检出率。
通过本申请所限定的技术方案,可以达到非常好的技术效果(即:较为优异的检出率以及较低的误报率),具体可参见如下表1和表2。其中下表的分布式模型1和分布式模型2均为采用本申请所限定的技术方案,但在训练过程中会有些许参数不同,比如训练样本集大小不同、训练轮数以及模型大小等。友商产品为参与比较的其他厂商的产品(此处对友商名称进行脱敏处理)。
表1 检出率比较
测试时间 |
分布式模型1 |
分布式模型2 |
友商1产品 |
友商2产品 |
T1 |
92.98% |
95.56% |
90.20% |
84.81% |
T2 |
94.84% |
97.09% |
94.28% |
91.95% |
T3 |
95.07% |
96.94% |
90.11% |
|
T4 |
88.33% |
93.49% |
91.30% |
91.97% |
T5 |
76.19% |
86.25% |
60.64% |
|
表2 误报率比较
测试时间 |
分布式模型1 |
分布式模型2 |
友商1产品 |
友商2产品 |
T1 |
0.01% |
0.01% |
0.02% |
0.17% |
T2 |
0.02% |
0.03% |
0.03% |
0.17% |
T3 |
0.01% |
0.02% |
0.01% |
|
T4 |
0.01% |
0.02% |
0.03% |
0.17% |
T5 |
0.01% |
0.02% |
0.16% |
|
从上表1和标2中可以看出,本申请所呈现的分布式模型1和分布式模型2的检出率以及误报率从整体上,效果均优于友商1以及友商2,具备很好的恶意文件检测效果。
下面对本发明实施例提供的分布式训练方法、设备、介质及云计算平台进行介绍,下文描述的分布式训练方法、设备、介质及云计算平台与上文描述的分布式训练装置可以相互参照。
参见图4,本发明实施例提供的一种恶意文件检测模型的分布式训练方法流程示意图,该方法具体包括:
S101、调度器按照恶意文件检测模型的训练过程,依次接收多个训练子阶段任务;其中,每个训练子阶段任务对应恶意文件检测模型训练的一子阶段;
S102、调度器每接收到一训练子阶段任务,在分布式集群中确定用于执行训练子阶段任务的目标工作单元,并向每个目标工作单元分发训练子阶段任务,以使得目标工作单元根据接收的训练子阶段任务执行对应处理操作;其中,分布式集群包括若干个工作单元,且至少有两个目标工作单元分别位于不同的服务器;
S103、整合单元接收各个目标工作单元执行完训练子阶段任务之后的结果,并将各个结果进行整合,以便于目标工作单元在执行后续训练子阶段任务时使用,或者通过整合得到训练后的最终恶意文件检测模型。
在本发明另一实施例中,若训练子阶段任务为恶意样本文件下载与特征提取任务,则根据训练子阶段任务执行对应的处理操作的过程具体包括:从原始恶意样本文件库中下载对应的原始恶意样本文件,并从所述原始恶意样本文件中提取样本特征;其中,不同目标工作单元下载的原始恶意样本文件不同。
在本发明另一实施例中,若训练子阶段任务为特征筛选任务,则根据训练子阶段任务执行对应的处理操作的过程具体包括:对所述样本特征进行去重,并对去重后的样本特征进行初步筛选得到初步筛选特征;将所述初步筛选特征发送至整合单元,以便所述整合单元根据每个目标工作单元发送的初步筛选特征进行去重后,再进行整体特征筛选得到最终特征。
在本发明另一实施例中,若所述训练子阶段任务为向量降维任务,则根据训练子阶段任务执行对应的处理操作的过程具体包括:从所述整合单元中获取对应的待处理最终特征进行向量降维得到目标特征;其中,不同目标工作单元获取的待处理最终特征不同。
在本发明另一实施例中,从所述整合单元中获取对应的待处理最终特征进行向量降维得到目标特征的过程具体包括:
从所述整合单元中获取对应的待处理最终特征,确定初始降维方式,并将确定的所述初始降维方式发送至整合单元,以便整合单元根据各目标工作单元发送的初始降维方式确定最终降维方式;其中,不同目标工作单元获取的待处理最终特征不同;
从所述整合单元确定最终降维方式,以对待处理最终特征进行降维。
在本发明另一实施例中,若所述训练子阶段任务为恶意文件检测模型训练任务,则根据训练子阶段任务执行对应的处理操作的过程具体包括:根据所述目标特征对初始模型进行训练得到对应的计算结果,以便整合单元根据每个目标工作单元的计算结果生成最终恶意文件检测模型;其中,不同目标工作单元用来训练初始模型的目标特征不同。
在本发明另一实施例中,根据训练子阶段任务执行对应的处理操作时,通过延迟执行机制对已使用数据进行资源清理。
在本发明另一实施例中,根据训练子阶段任务执行对应的处理操作时,根据执行所述训练子阶段任务的每个指令的资源需求,对各指令进行组合,以便通过并行方式执行各指令。
参见图5,为本发明实施例公开的一种电子设备结构示意图,包括:
存储器21,用于存储计算机程序;
处理器22,用于执行所述计算机程序时实现上述方法实施例所述的恶意文件检测模型的分布式训练方法的步骤。
在本实施例中,该设备可以终端设备及服务器设备,且该设备的数量可根据实际情况进行设定,在此并不具体限定。
该设备可以包括存储器21、处理器22和总线23。
其中,存储器21包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序,该存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器22在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,为网关设备提供计算和控制能力,执行所述存储器21中保存的计算机程序时,可以实现前述任一实施例公开的执行分布式训练方法的步骤。
该总线23可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,设备还可以包括网络接口24,网络接口24可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。
图5仅示出了具有组件21-24的设备,本领域技术人员可以理解的是,图5示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还公开一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法实施例所述的恶意文件检测模型的分布式训练方法的步骤。
其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory ,ROM)、随机存取存储器(Random Access Memory ,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例还公开一种云计算平台,该云计算平台包括分布式训练软件模块,该分布式训练软件模块用于实现上述方法实施例所述的恶意文件检测模型的分布式训练方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。