一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据包的识别方法及装置与流程

2022-04-09 02:10:59 来源:中国专利 TAG:


1.本技术涉及人工智能领域,尤其涉及数据包的识别方法及装置。


背景技术:

2.随着互联网的高速发展,互联网应用(application,app)也越来越多,例如,随着互联网的高速发展,互联网应用(application,app)也越来越多,例如,和等等。这些应用在运行时会生成数据包,不同应用生成的数据包对网络的需求有可能不同。为了实现对不同应用生成的数据包进行差异化管理,首先需要识别每个数据包是哪个应用生成的。
3.目前,能够通过深度学习的方法识别数据包。例如,数据包的识别装置能够通过如下方法识别已存在的应用生成的数据包:数据包的识别装置会获取大量被标注过的数据包,该数据包为已存在的应用生成的数据包;数据包的识别装置会识别每个数据包的特征信息,例如,数据包对应的应用的关键字;数据包的识别装置会根据识别出的每个数据包的特征信息反复训练模型,并通过训练好的模型识别新接收到的已存在的应用生成的数据包。
4.在互联网的发展过程中,除了已存在的应用之外,还会出现新增应用。在这种情况下,上述数据包的识别装置无法识别新增应用生成的数据包。因此,数据包的识别装置会再次基于大量被标注过的数据包进行模型训练,使得训练后的模型能够识别出已存在的应用生成的数据包和新增应用生成的数据包。这一过程不仅计算量大,而且训练时间长。另外,若新增应用频繁出现,则数据包的识别装置就需要频繁地执行上述过程,数据开销与计算开销较大。


技术实现要素:

5.本技术提供数据包的识别方法及装置,可以在出现新增应用的情况下,基于被标注过的新增应用生成的数据包进行模型训练,计算量小,并且训练时间短。
6.为达到上述目的,本技术的实施例采用如下技术方案:
7.第一方面,本技术实施例提供一种数据包的识别方法,该方法包括:第一设备获取第一目标模型,第一目标模型用于提取第一数据包的第一特征信息,确定第一数据包对应的第一应用集合中的第一应用;在满足触发条件的情况下,第一设备获取第二目标模型,第二目标模型用于提取第二数据包的第二特征信息,确定第二数据包对应的第二应用集合中的第二应用,第一应用集合中的第一应用与第二应用集合中的第二应用不同;第一设备获取第三数据包,根据第一目标模型和第二目标模型,确定第三数据包对应的第一应用或第二应用。
8.上述第一方面提供的方法,在使用第一目标模型后出现新增应用(新增应用即为第二应用集合中的应用)的情况下,第一设备不需要根据被标注过的第一应用的数据包和第二应用的数据包进行模型训练,得到一个既能够识别第一应用集合中的应用的数据包,又能够识别第二应用集合中的应用的数据包的模型。而第一设备可以根据被标注过的第二
应用的数据包进行模型训练,以得到第二目标模型,后续,根据第一目标模型和第二目标模型识别第一应用集合中的应用的数据包,或第二应用集合中的应用的数据包。因为被标注过的第二应用的数据包的数量要远远小于被标注过的第一应用的数据包和第二应用的数据包的数量,所以第一方面提供的方法中,第一设备的计算量小,而且训练时间短。另外,在第一方面提供的方法中,在出现新增应用的情况下,第一设备采用的是被标注过的第二应用的数据包进行模型训练,因此可以释放被标注过的第一应用的数据包,降低了数据存储的成本。
9.一种可能的实现方式,第一设备获取第二目标模型,包括:第一设备接收来自服务器的第一初始模型的信息和第二应用集合包含的第二应用的列表,第一初始模型是根据第二应用集合中应用的个数确定的,第二应用的列表用于指示第二应用集合中的第二应用与第一初始模型的输出端的对应关系;第一设备根据第一设备获得的已标注的第二应用的数据包训练第一初始模型,以得到第一中间模型;第一设备向服务器发送第一中间模型的信息;第一设备接收来自服务器的第二目标模型的信息,第二目标模型的信息是将来自多个第一设备的中间模型的信息进行聚合得到的;第一设备根据第二目标模型的信息和第一初始模型得到第二目标模型。基于上述方法,参与模型训练的设备,例如第一设备,可以接收来自服务器的第一初始模型的信息和第二应用集合包含的第二应用的列表,根据已标注的第二应用的数据包训练第一初始模型,得到第一中间模型,并向服务器发送第一中间模型的信息,以便服务器将来自多个第一设备的中间模型的信息进行聚合,得到第二目标模型的信息。后续,第一设备可以接收来自服务器的第二目标模型的信息,并根据第二目标模型的信息和第一初始模型,得到第二目标模型。一方面,参与模型训练的设备都可以得到最终能够识别第二应用集合中应用的数据包的模型。另一方面,上述方法中,服务器不需要进行模型训练,而是将模型训练的过程下放给参与模型训练的设备,每个参与模型训练的设备在训练模型时使用的已标注数据包的数量也小于服务器训练模型时使用的已标注数据包的数量,对于这些设备来说,计算量也不大,还可以节约模型训练的时间。
10.一种可能的实现方式,第一设备获取第二目标模型,还包括:第一设备获取第二应用的数据包;第一设备向服务器发送第二应用的数据包;第一设备接收来自服务器的已标注的第二应用的数据包。基于上述方法,第一设备可以将第二应用的数据包发送给服务器,方便服务器对该数据包进行标注。
11.一种可能的实现方式,触发条件为第二应用集合中应用的个数大于或等于第一阈值;或者,触发条件为第二应用集合中应用的数据包的个数大于或等于第二阈值;或者,触发条件为第二应用集合中应用的个数大于或等于第一阈值,并且第二应用集合中应用的数据包的数量大于或等于第二阈值。基于上述方法,在新增应用的数量达到第一阈值的情况下,或者,在不能识别的数据包的个数大于第二阈值的情况下,或者,在新增应用的数量达到第一阈值,并且不能识别的数据包的个数大于第二阈值的情况下,可以触发第一设备获取第二目标模型。如此,一方面可以避免第一设备频繁获取第二目标模型,导致第一设备的计算开销过大。另一方面可以避免第一设备长时间不获取第二目标模型,导致产生大量的未识别的数据包,影响业务的使用。
12.一种可能的实现方式,第一设备根据第一目标模型和第二目标模型,确定第三数据包对应的第一应用或第二应用,包括:第一设备根据第一目标模型,获取第三数据包的第
一输出熵,第一输出熵用于指示第三数据包对应的应用为第一目标模型预测的应用的概率;第一设备根据第二目标模型,获取第三数据包的第二输出熵,第二输出熵用于指示第三数据包对应的应用为第二目标模型预测的应用的概率;第一设备将第一输出熵和第二输出熵中,数值低的输出熵对应的目标模型预测的应用确定为第三数据包对应的应用。基于上述方法,第一设备可以根据第一输出熵和第二输出熵确定第三数据包对应的应用,从而实现了将第一目标模型和第二目标模型结合起来识别应用。如此,在出现新增应用的情况下,第一设备不需要根据被标注过的第一应用的数据包和第二应用的数据包进行模型训练,得到一个既能够识别第一应用集合中的应用的数据包,又能够识别第二应用集合中的应用的数据包的模型。
13.一种可能的实现方式,该方法还包括:第一设备获取第二初始模型,第二初始模型是根据第一应用集合中应用的个数与第二应用集合中应用的个数确定的;第一设备根据第一目标模型和第二目标模型对第一设备获得的数据包的标注结果,训练第二初始模型以得到第三目标模型,第三目标模型用于提取第三特征信息,并根据第三特征信息确定第三特征信息对应的数据包对应的应用,第三特征信息包括第三特征信息对应的数据包的特征信息,第三特征信息对应的数据包为第一应用集合中应用的数据包,或第二应用集合中应用的数据包。基于上述方法,第一设备可以获取第二初始模型,并根据第一目标模型和第二目标模型对第一设备获得的数据包的标注结果,训练第二初始模型以得到第三目标模型。后续,第一设备即可根据第三目标模型识别数据包,可以节约第一设备识别数据包的时间。另外,第一设备通过对模型的不断压缩,可以使得模型尺寸稳定,有利于模型在片上系统部署。
14.一种可能的实现方式,该方法还包括:第一设备根据获取第一目标模型时使用的已标注的数据包,和/或,获取第二目标模型时使用的已标注的数据包,训练第三目标模型,得到训练后的第三目标模型。基于上述方法,第一设备可以根据获取第一目标模型时使用的已标注的数据包,和/或,获取第二目标模型时使用的已标注的数据包,训练第三目标模型,使得训练后的第三目标模型的精度更高,识别数据包更准确。
15.一种可能的实现方式,该方法还包括:第一设备接收来自服务器的指示信息,该指示信息用于指示第一设备重新训练用于识别所述第一应用的数据包和所述第二应用的数据包的第四目标模型。基于上述方法,服务器可以指示第一设备重新训练模型,使得训练后的模型可以识别第一应用集合中应用的数据包和第二应用集合中应用的数据包。
16.第二方面,本技术实施例提供一种数据包的识别方法,该方法包括:服务器获取第一目标模型的信息,第一目标模型用于提取第一数据包的第一特征信息,确定第一数据包对应的第一应用集合中的第一应用;服务器向第一设备发送第一目标模型的信息;在满足触发条件的情况下,服务器获取第二目标模型的信息,第二目标模型用于提取第二数据包的第二特征信息,确定第二数据包对应的第二应用集合中的第二应用,第一应用集合中的第一应用与第二应用集合中的第二应用不同;服务器向第一设备发送第二目标模型的信息。
17.上述第二方面提供的方法,一方面,服务器不需要进行模型训练,而是将模型训练的过程下放给参与模型训练的设备(第一设备和第二设备),服务器将来自多个设备的中间模型的信息进行聚合即可,降低了服务器的计算开销。另一方面,在使用第一目标模型后出
现新增应用的情况下,第一设备不需要根据被标注过的第一应用的数据包和第二应用的数据包进行模型训练,得到一个既能够识别第一应用集合中的应用的数据包,又能够识别第二应用集合中的应用的数据包的模型。第一设备是根据被标注过的第二应用的数据包进行模型训练,得到第二目标模型,后续,根据第一目标模型和第二目标模型识别第一应用集合中的应用的数据包,或第二应用集合中的应用的数据包。而被标注过的第二应用的数据包的数量要远远小于被标注过的第一应用的数据包和第二应用的数据包的数量,所以第一设备的计算量小,而且训练时间短。另外,在上述第二方面提供的方法中,在出现新增应用的情况下,第一设备采用的是被标注过的第二应用的数据包进行模型训练,因此可以释放被标注过的第一应用的数据包,降低了数据存储的成本。
18.一种可能的实现方式,服务器获取第二目标模型的信息,包括:服务器向第一设备发送第一初始模型的信息和第二应用集合包含的第二应用的列表,第一初始模型是根据第二应用集合中应用的个数确定的,第二应用的列表用于指示第二应用集合中的第二应用与第一初始模型的输出端的对应关系;服务器接收来自第一设备的第一中间模型的信息,第一中间模型是第一设备根据第一设备获得的已标注的第二应用的数据包对第一初始模型进行训练得到的;服务器向第二设备发送第一初始模型的信息和第二应用的列表;服务器接收来自第二设备的第二中间模型的信息,第二中间模型是第二设备根据第二设备获得的已标注的第二应用的数据包对第一初始模型进行训练得到的;服务器将第一中间模型的信息和第二中间模型的信息聚合,以得到第二目标模型的信息。基于上述方法,服务器可以向参与模型训练的设备,例如第一设备,发送第一初始模型的信息和第二应用的列表,以便第一设备根据已标注的第二应用的数据包训练第一初始模型,得到第一中间模型,并向服务器发送第一中间模型的信息。服务器接收到来自多个设备的中间模型的信息后,将该多个中间模型的信息进行聚合,得到第二目标模型的信息,并向第一设备发送第二目标模型的信息,以便第一设备根据第二目标模型的信息和第一初始模型,得到第二目标模型。一方面,参与模型训练的设备都可以得到最终能够识别第二应用集合中应用的数据包的模型。另一方面,上述方法中,服务器不需要进行模型训练,而是将模型训练的过程下放给参与模型训练的设备,每个参与模型训练的设备在训练模型时使用的已标注数据包的数量也小于服务器训练模型时使用的已标注数据包的数量,对于这些设备来说,计算量也不大,还可以节约模型训练的时间。
19.一种可能的实现方式,服务器获取第二目标模型的信息,还包括:服务器接收来自第一设备的第二应用的数据包;服务器根据第二应用的数据包,获取已标注的第二应用的数据包;服务器向第一设备发送已标注的第二应用的数据包。基于上述方法,服务器可以接收来自第一设备的第二应用的数据包,并对该数据包进行标注,以便第一设备根据标注后的数据包进行模型训练。
20.一种可能的实现方式,触发条件为第二应用集合中应用的个数大于或等于第一阈值;或者,触发条件为第二应用集合中应用的数据包的个数大于或等于第二阈值;或者,触发条件为第二应用集合中应用的个数大于或等于第一阈值,并且第二应用集合中应用的数据包的数量大于或等于第二阈值。基于上述方法,在新增应用的数量达到第一阈值的情况下,或者,在不能识别的数据包的个数大于第二阈值的情况下,或者,在新增应用的数量达到第一阈值,并且不能识别的数据包的个数大于第二阈值的情况下,可以触发服务器获取
第二目标模型的信息。如此,一方面可以避免服务器频繁获取第二目标模型的信息,导致服务器的计算开销过大。另一方面可以避免服务器长时间不获取第二目标模型的信息,导致产生大量的未识别的数据包,影响业务的使用。
21.一种可能的实现方式,该方法还包括:若第一目标模型和第二目标模型识别数据包的正确率小于或等于第三阈值,服务器向第一设备发送指示信息,指示信息用于指示第一设备重新训练用于识别所述第一应用的数据包和所述第二应用的数据包的第四目标模型。基于上述方法,在第一目标模型和第二目标模型识别数据包的正确率小于或等于第三阈值的情况下,服务器可以指示第一设备重新训练模型,使得训练后的模型可以识别第一应用的数据包和第二应用的数据包。
22.第三方面,本技术实施例提供一种数据包的识别装置,可以实现上述第一方面、或第一方面任一种可能的实现方式中的方法。该装置包括用于执行上述方法的相应的单元或部件。该装置包括的单元可以通过软件和/或硬件方式实现。该装置例如可以为第一设备、或者为可支持第一设备实现上述方法的芯片、芯片系统、或处理器等。
23.第四方面,本技术实施例提供一种数据包的识别装置,可以实现上述第二方面、或第二方面任一种可能的实现方式中的方法。该装置包括用于执行上述方法的相应的单元或部件。该装置包括的单元可以通过软件和/或硬件方式实现。该装置例如可以为服务器、或者为可支持服务器实现上述方法的芯片、芯片系统、或处理器等。
24.第五方面,本技术实施例提供一种数据包的识别装置,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该装置实现上述第一方面、或第一方面任一种可能的实现方式中所述的方法。
25.第六方面,本技术实施例提供一种数据包的识别装置,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该装置实现上述第二方面、或第二方面任一种可能的实现方式中所述的方法。
26.第七方面,本技术实施例提供一种数据包的识别装置,该装置用于实现上述第一方面、或第一方面任一种可能的实现方式中所述的方法。
27.第八方面,本技术实施例提供一种数据包的识别装置,该装置用于实现上述第二方面、或第二方面任一种可能的实现方式中所述的方法。
28.第九方面,本技术实施例提供一种计算机可读介质,其上存储有计算机程序或指令,所述计算机程序或指令被执行时使得计算机执行上述第一方面、或第一方面任一种可能的实现方式中所述的方法。
29.第十方面,本技术实施例提供一种计算机可读介质,其上存储有计算机程序或指令,所述计算机程序或指令被执行时使得计算机执行上述第二方面、或第二方面任一种可能的实现方式中所述的方法。
30.第十一方面,本技术实施例提供一种计算机程序产品,其包括计算机程序代码,所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面、或第一方面任一种可能的实现方式中所述的方法。
31.第十二方面,本技术实施例提供一种计算机程序产品,其包括计算机程序代码,所述计算机程序代码在计算机上运行时,使得计算机执行上述第二方面、或第二方面任一种可能的实现方式中所述的方法。
32.第十三方面,本技术实施例提供一种芯片,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片实现上述第一方面、或第一方面任一种可能的实现方式中所述的方法。
33.第十四方面,本技术实施例提供一种芯片,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片实现上述第二方面、或第二方面任一种可能的实现方式中所述的方法。
34.第十五方面,本技术实施例提供一种数据包的识别系统。该系统包括上述第三方面所述的装置和/或上述第四方面所述的装置,或者该系统包括上述第五方面所述的装置和/或上述第六方面所述的装置,或者该系统包括上述第七方面所述的装置和/或上述第八方面所述的装置。
35.可以理解的,上述提供的任一种数据包的识别装置、芯片、计算机可读介质、计算机程序产品或数据包的识别系统等均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
36.第十六方面,本技术实施例提供一种数据包的识别方法,该方法包括:获取第一目标模型,第一目标模型用于提取第一数据包的第一特征信息,确定第一数据包对应的第一应用集合中的第一应用;在满足触发条件的情况下,获取第二目标模型,第二目标模型用于提取第二数据包的第二特征信息,确定第二数据包对应的第二应用集合中的第二应用,第一应用集合中的第一应用与第二应用集合中的第二应用不同;获取第三数据包,根据第一目标模型和第二目标模型,确定第三数据包对应的第一应用或第二应用。
37.上述第十六方面提供的方法,在使用第一目标模型后出现新增应用(新增应用即为第二应用集合中的应用)的情况下,第一装置不需要根据被标注过的第一应用的数据包和第二应用的数据包进行模型训练,得到一个既能够识别第一应用集合中的应用的数据包,又能够识别第二应用集合中的应用的数据包的模型。而第一装置可以根据被标注过的第二应用的数据包进行模型训练,以得到第二目标模型,后续,根据第一目标模型和第二目标模型识别第一应用集合中的应用的数据包,或第二应用集合中的应用的数据包。因为被标注过的第二应用应用的数据包的数量要远远小于被标注过的第一应用的数据包和第二应用的数据包的数量,所以第十六方面提供的方法中,第一装置的计算量小,而且训练时间短。另外,在第十六方面提供的方法中,在出现新增应用的情况下,第一装置采用的是被标注过的第二应用的数据包进行模型训练,因此可以释放被标注过的第一应用的数据包,降低了数据存储的成本。
38.一种可能的实现方式,获取第二目标模型,包括:获取已标注的第二应用的数据包;获取第一初始模型和第二应用集合包含的第二应用的列表,第一初始模型是根据第二应用集合中应用的个数确定的,第二应用的列表用于指示第二应用集合中的第二应用与第一初始模型的输出端的对应关系;根据已标注的第二应用的数据包,训练第一初始模型,以得到第二目标模型。基于上述方法,第一装置可以根据已标注的第二应用的数据包,对第一初始模型进行训练,得到第二目标模型,以便第一装置后续根据第一目标模型和第二目标模型确定第三数据包对应的应用。
39.一种可能的实现方式,触发条件为第二应用集合中应用的个数大于或等于第一阈值;或者,触发条件为第二应用集合中应用的数据包的个数大于或等于第二阈值;或者,触
发条件为第二应用集合中应用的个数大于或等于第一阈值,并且第二应用集合中应用的数据包的数量大于或等于第二阈值。基于上述方法,在新增应用的数量达到第一阈值的情况下,或者,在不能识别的数据包的个数大于第二阈值的情况下,或者,在新增应用的数量达到第一阈值,并且不能识别的数据包的个数大于第二阈值的情况下,可以触发第一装置获取第二目标模型。如此,一方面可以避免第一装置频繁获取第二目标模型,导致第一装置的计算开销过大。另一方面可以避免第一装置长时间不获取第二目标模型,导致产生大量的未识别的数据包,影响业务的使用。
40.一种可能的实现方式,根据第一目标模型和第二目标模型,确定第三数据包对应的第一应用或第二应用,包括:根据第一目标模型,获取第三数据包的第一输出熵,第一输出熵用于指示第三数据包对应的应用为第一目标模型预测的应用的概率;根据第二目标模型,获取第三数据包的第二输出熵,第二输出熵用于指示第三数据包对应的应用为第二目标模型预测的应用的概率;将第一输出熵和第二输出熵中,数值低的输出熵对应的目标模型预测的应用确定为第三数据包对应的应用。基于上述方法,第一装置可以根据第一输出熵和第二输出熵确定第三数据包对应的应用,从而实现了将第一目标模型和第二目标模型结合起来识别应用。如此,在出现新增应用的情况下,第一装置不需要根据被标注过的第一应用的数据包和第二应用的数据包进行模型训练,得到一个既能够识别第一应用集合中的应用的数据包,又能够识别第二应用集合中的应用的数据包的模型。
41.一种可能的实现方式,该方法还包括:获取第二初始模型,第二初始模型是根据第一应用集合中应用的个数与第二应用集合中应用的个数确定的;根据第一目标模型和第二目标模型对第一装置获得的数据包的标注结果,训练第二初始模型以得到第三目标模型,第三目标模型用于提取第三特征信息,并根据第三特征信息确定第三特征信息对应的数据包对应的应用,第三特征信息包括第三特征信息对应的数据包的特征信息,第三特征信息对应的数据包为第一应用集合中应用的数据包,或第二应用集合中应用的数据包。基于上述方法,第一装置可以获取第二初始模型,并根据第一目标模型和第二目标模型对第一装置获得的数据包的标注结果,训练第二初始模型以得到第三目标模型。后续,第一装置即可根据第三目标模型识别数据包,可以节约第一装置识别数据包的时间。另外,第一装置通过对模型的不断压缩,可以使得模型尺寸稳定,有利于模型在片上系统部署。
42.一种可能的实现方式,该方法还包括:根据获取第一目标模型时使用的已标注的数据包,和/或,获取第二目标模型时使用的已标注的数据包,训练第三目标模型,得到训练后的第三目标模型。基于上述方法,第一装置可以根据获取第一目标模型时使用的已标注的数据包,和/或,获取第二目标模型时使用的已标注的数据包,训练第三目标模型,使得训练后的第三目标模型的精度更高,识别数据包更准确。
43.一种可能的实现方式,该方法还包括:若第一目标模型和第二目标模型识别数据包的正确率小于或等于第三阈值,重新训练用于识别第一应用的数据包和第二应用的数据包的第四目标模型。基于上述方法,在第一目标模型和第二目标模型识别数据包的正确率小于或等于第三阈值的情况下,第一装置可以重新训练模型,使得训练后的模型可以识别第一应用集合中应用的数据包和第二应用集合中应用的数据包。
44.第十七方面,本技术实施例提供一种数据包的识别装置,该装置包括:获取模块和确定模块;获取模块,用于获取第一目标模型,第一目标模型用于提取第一数据包的第一特
征信息,确定第一数据包对应的第一应用集合中的第一应用;获取模块,还用于在满足触发条件的情况下,获取第二目标模型,第二目标模型用于提取第二数据包的第二特征信息,确定第二数据包对应的第二应用集合中的第二应用,第一应用集合中的第一应用与第二应用集合中的第二应用不同;确定模块,用于获取第三数据包,根据第一目标模型和第二目标模型,确定第三数据包对应的第一应用或第二应用。
45.一种可能的实现方式,获取模块,具体用于获取已标注的第二应用的数据包;获取模块,还具体用于获取第一初始模型和第二应用集合包含的第二应用的列表,第一初始模型是根据第二应用集合中应用的个数确定的,第二应用的列表用于指示第二应用集合中的第二应用与第一初始模型的输出端的对应关系;获取模块,还具体用于根据已标注的第二应用的数据包,训练第一初始模型,以得到第二目标模型。
46.一种可能的实现方式,触发条件为第二应用集合中应用的个数大于或等于第一阈值;或者,触发条件为第二应用集合中应用的数据包的个数大于或等于第二阈值;或者,触发条件为第二应用集合中应用的个数大于或等于第一阈值,并且第二应用集合中应用的数据包的数量大于或等于第二阈值。
47.一种可能的实现方式,确定模块,具体用于根据第一目标模型,获取第三数据包的第一输出熵,第一输出熵用于指示第三数据包对应的应用为第一目标模型预测的应用的概率;确定模块,还具体用于根据第二目标模型,获取第三数据包的第二输出熵,第二输出熵用于指示第三数据包对应的应用为第二目标模型预测的应用的概率;确定模块,还具体用于将第一输出熵和第二输出熵中,数值低的输出熵对应的目标模型预测的应用确定为第三数据包对应的应用。
48.一种可能的实现方式,该装置还包括:训练模块;获取模块,还用于获取第二初始模型,第二初始模型是根据第一应用集合中应用的个数与第二应用集合中应用的个数确定的;训练模块,用于根据第一目标模型和第二目标模型对第一设备获得的数据包的标注结果,训练第二初始模型以得到第三目标模型,第三目标模型用于提取第三特征信息,并根据第三特征信息确定第三特征信息对应的数据包对应的应用,第三特征信息包括第三特征信息对应的数据包的特征信息,第三特征信息对应的数据包为第一应用集合中应用的数据包,或第二应用集合中应用的数据包。
49.一种可能的实现方式,训练模块,还用于根据获取第一目标模型时使用的已标注的数据包,和/或,获取第二目标模型时使用的已标注的数据包,训练第三目标模型,得到训练后的第三目标模型。
50.一种可能的实现方式,获取模块,还用于若第一目标模型和第二目标模型识别数据包的正确率小于或等于第三阈值,重新训练用于识别第一应用的数据包和第二应用的数据包的第四目标模型。
51.第十八方面,本技术实施例提供一种数据包的识别装置,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该装置实现上述第十六方面、或第十六方面任一种可能的实现方式中所述的方法。
52.第十九方面,本技术实施例提供一种数据包的识别装置,该装置用于实现上述第十六方面、或第十六方面任一种可能的实现方式中所述的方法。
53.第二十方面,本技术实施例提供一种计算机可读介质,其上存储有计算机程序或
指令,所述计算机程序或指令被执行时使得计算机执行上述第十六方面、或第十六方面任一种可能的实现方式中所述的方法。
54.第二十一方面,本技术实施例提供一种计算机程序产品,其包括计算机程序代码,所述计算机程序代码在计算机上运行时,使得计算机执行上述第十六方面、或第十六方面任一种可能的实现方式中所述的方法。
55.第二十二方面,本技术实施例提供一种芯片,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片实现上述第十六方面、或第十六方面任一种可能的实现方式中所述的方法。
56.可以理解的,上述提供的任一种数据包的识别装置、芯片、计算机可读介质或计算机程序产品等均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
附图说明
57.图1为本技术实施例提供的数据包的识别系统架构示意图;
58.图2为本技术实施例提供的识别装置的硬件结构示意图;
59.图3为本技术实施例提供的一种数据包的识别方法的流程示意图;
60.图4a为本技术实施例提供的第一目标模型的示意图;
61.图4b为本技术实施例提供的第二目标模型的示意图;
62.图5为本技术实施例提供的另一种数据包的识别方法的流程示意图;
63.图6a为本技术实施例提供的第三初始模型的示意图;
64.图6b为本技术实施例提供的第一初始模型的示意图;
65.图7为本技术实施例提供的另一种数据包的识别方法的流程示意图;
66.图8为本技术实施例提供的另一种数据包的识别方法的流程示意图;
67.图9为本技术实施例提供的另一种数据包的识别方法的流程示意图;
68.图10为本技术实施例提供的另一种数据包的识别方法的流程示意图;
69.图11为本技术实施例提供的另一种数据包的识别方法的流程示意图;
70.图12为本技术实施例提供的另一种数据包的识别方法的流程示意图;
71.图13为本技术实施例提供的另一种数据包的识别方法的流程示意图;
72.图14为本技术实施例提供的一种数据包的识别装置的结构示意图;
73.图15为本技术实施例提供的另一种数据包的识别装置的结构示意图;
74.图16为本技术实施例提供的另一种数据包的识别装置的结构示意图;
75.图17为本技术实施例提供的一种芯片的结构示意图;
76.图18为本技术实施例提供的一种数据包的识别系统的组成示意图。
具体实施方式
77.下面结合附图对本技术实施例的实施方式进行详细描述。
78.本技术实施例提供的方法可以应用于联邦学习场景,也可以应用于非联邦学习场景。其中,联邦学习是指通过联合不同的参与者(也可以称为数据拥有者,或者客户端)进行机器学习的方法。在联邦学习中,参与者并不需要向其它参与者、管理者或协调者(例如,服
务器)暴露自己拥有的数据,因而联邦学习可以很好的保护用户隐私和保障数据安全。而非联邦学习不需要参与者,非联邦学习场景中的设备可以根据该设备获取的数据进行机器学习。下面以联邦学习场景为例,介绍本技术实施例提供的数据包的识别系统。
79.如图1所示,为本技术实施例提供的数据包的识别系统10的架构示意图。图1中,数据包的识别系统10可以包括一个或多个服务器101(仅示出了1个)以及可以与服务器101进行通信的设备102-设备104。图1仅为示意图,并不构成对本技术提供的技术方案的适用场景的限定。
80.在图1中,服务器101可以具备管理者或协调者的功能。也就是说,服务器101可以对一个或多个参与者(例如,设备102、设备103或设备104)进行管理或协调。示例性的,服务器101可以确定需要进行模型训练的设备(以下简称训练设备)。后续,服务器101还可以向每个训练设备发送初始模型的信息,该初始模型的信息用于指示需要训练设备训练的初始模型。服务器101还可以接收来自每个训练设备的中间模型的信息,中间模型的信息用于指示训练设备根据初始模型训练得到的中间模型。后续,服务器101还可以将接收到的中间模型进行聚合得到目标模型的信息,并向每个训练设备发送目标模型的信息,以便每个训练设备根据目标模型的信息得到目标模型,根据目标模型识别数据包。
81.在图1中,设备102、设备103或设备104可以具备参与者的功能。也就是说,设备102、设备103或设备104可以进行机器学习或者模型训练。示例性的,设备102、设备103或设备104可以接收来自服务器101的初始模型的信息,并根据初始模型训练得到中间模型。后续,设备102、设备103或设备104可以向服务器101发送该中间模型的信息,以便服务器101将设备102、设备103和设备104得到的中间模型进行聚合得到目标模型的信息。设备102、设备103或设备104还可以接收来自服务器101的目标模型的信息。如此,设备102、设备103或设备104即可根据目标模型的信息得到目标模型,根据目标模型识别数据包。
82.图1中的服务器101可以为一种能够为参与者提供计算,或应用等服务的设备。例如,图1中的服务器101可以是网络设备、网络云化引擎(network cloud engine,nce)或联邦学习服务器(federated learning server,fls)等。
83.图1中的设备102、设备103或设备104可以为一种能够接收、发送或者生成数据包,并且能够进行机器学习的设备。例如,设备102、设备103或设备104可以为网络设备、终端、光网络设备(optical network terminal,ont)或联邦学习客户端(federated learning client,flc)等。
84.上述网络设备可以是任意一种具有无线收发功能的设备。包括但不限于:长期演进(long term evolution,lte)系统中的演进型基站(nodeb或enb或e-nodeb,evolutional node b),新无线(new radio,nr)系统中的基站(gnodeb或gnb)或收发点(transmission receiving point/transmission reception point,trp),3gpp后续演进的基站,wifi系统中的接入节点,无线中继节点,无线回传节点等。
85.上述终端可以是一种具有无线收发功能的设备。例如,上述终端可以是手机(mobile phone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,vr)终端、增强现实(augmented reality,ar)终端、工业控制(industrial control)中的终端、车载终端、无人驾驶(self driving)中的终端、辅助驾驶中的终端等等。终端有时也可以称为终端设备、用户设备(user equipment,ue)、接入终端、车载终端、工业控制终端、ue
单元、ue站、移动站、移动台、远方站、远程终端、移动设备、ue终端设备、无线通信设备、机器终端、ue代理或ue装置等。终端可以是固定的,也可以是移动的。
86.图1所示的数据包的识别系统10仅用于举例,并非用于限制本技术的技术方案。本领域的技术人员应当明白,在具体实现过程中,数据包的识别系统10还可以包括其他设备,同时也可根据具体需要来确定网络设备和终端的数量,不予限制。
87.可选的,本技术实施例图1中的各设备,例如服务器101、设备102、设备103或设备104,可以是一个装置内的一个功能模块。可以理解的是,该功能模块既可以是硬件设备中的元件,例如,终端或网络设备中的通信芯片或通信部件,也可以是在硬件上运行的软件功能模块,或者是平台(例如,云平台)上实例化的虚拟化功能。
88.例如,图1中的各设备均可以通过图2中的识别装置200来实现。图2所示为可适用于本技术实施例的识别装置的硬件结构示意图。该识别装置200包括至少一个处理器201,通信线路202,存储器203以及至少一个通信接口204。
89.处理器201可以是一个通用中央处理器(central processing unit,cpu),微处理器,特定应用集成电路(application-specific integrated circuit,asic),或一个或多个用于控制本技术方案程序执行的集成电路。
90.通信线路202可包括一通路,在上述组件之间传送信息,例如总线。
91.通信接口204,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网接口,无线接入网接口(radio access network,ran),无线局域网接口(wireless local area networks,wlan)等。
92.存储器203可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路202与处理器相连接。存储器也可以和处理器集成在一起。本技术实施例提供的存储器通常可以具有非易失性。其中,存储器203用于存储执行本技术方案所涉及的计算机执行指令,并由处理器201来控制执行。处理器201用于执行存储器203中存储的计算机执行指令,从而实现本技术实施例提供的方法。
93.可选的,本技术实施例中的计算机执行指令也可以称之为应用程序代码,本技术实施例对此不作具体限定。
94.在具体实现中,作为一种实施例,处理器201可以包括一个或多个cpu,例如图2中的cpu0和cpu1。
95.在具体实现中,作为一种实施例,识别装置200可以包括多个处理器,例如图2中的处理器201和处理器207。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
96.在具体实现中,作为一种实施例,识别装置200还可以包括输出设备205和输入设
备206。输出设备205和处理器201通信,可以以多种方式来显示信息。例如,输出设备205可以是液晶显示器(liquid crystal display,lcd),发光二级管(light emitting diode,led)显示设备,阴极射线管(cathode ray tube,crt)显示设备,或投影仪(projector)等。输入设备206和处理器201通信,可以以多种方式接收用户的输入。例如,输入设备206可以是鼠标、键盘、触摸屏设备或传感设备等。
97.上述的识别装置200可以是一个通用设备或者是一个专用设备。在具体实现中,识别装置200可以是台式机、便携式电脑、网络服务器、掌上电脑(personal digital assistant,pda)、移动手机、平板电脑、无线终端设备、嵌入式设备或有图2中类似结构的设备。本技术实施例不限定识别装置200的类型。
98.下面结合图1和图2分别以联邦学习场景和非联邦学习场景为例,对本技术实施例提供的数据包的识别方法进行具体阐述。
99.需要说明的是,本技术下述实施例中各个设备之间的消息名字或消息中各参数的名字等只是一个示例,具体实现中也可以是其他的名字,本技术实施例对此不作具体限定。
100.需要说明的是,在本技术实施例中,“/”可以表示前后关联的对象是一种“或”的关系,例如,a/b可以表示a或b;“和/或”可以用于描述关联对象存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。
101.为了便于描述本技术实施例的技术方案,在本技术实施例中,可以采用“第一”、“第二”等字样对功能相同或相似的技术特征进行区分。该“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。在本技术实施例中,“示例性的”或者“例如”等词用于表示例子、例证或说明,被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
102.需要说明的是,在本技术实施例中,对于一种技术特征,通过“第一”、“第二”、“第三”、“第四”、“a”、“b”、“c”和“d”等区分该种技术特征中的技术特征,该“第一”、“第二”、“第三”、“第四”、“a”、“b”、“c”和“d”描述的技术特征间无先后顺序或者大小顺序。
103.可以理解的,本技术实施例中同一个步骤或者具有相同功能的步骤或者消息在不同实施例之间可以互相参考借鉴。
104.可以理解的,本技术实施例中,服务器或第一设备可以执行本技术实施例中的部分或全部步骤,这些步骤仅是示例,本技术实施例还可以执行其它步骤或者各种步骤的变形。此外,各个步骤可以按照本技术实施例呈现的不同的顺序来执行,并且有可能并非要执行本技术实施例中的全部步骤。
105.在本技术实施例中,数据包的识别的执行主体的具体结构,本技术实施例并未特别限定,只要可以通过运行记录有本技术实施例的数据包的识别方法的代码的程序,以根据本技术实施例的数据包的识别方法进行通信即可。例如,本技术实施例提供的数据包的识别方法的执行主体可以是服务器,或者为应用于服务器中的部件,例如,芯片,本技术对此不进行限定。或者,本技术实施例提供的数据包的识别方法的执行主体可以是第一设备,或者为应用于第一设备中的部件,例如,芯片,本技术对此不进行限定。下述实施例以数据包的识别方法的执行主体分别为服务器、第一设备为例进行描述。
106.首先,以联邦学习场景为例介绍本技术实施例提供的数据包的识别方法。具体的,可以参考下述图3、图5、图7-图11所示的方法。
107.如图3所示,为本技术实施例提供的一种数据包的识别方法,该方法应用于第一设备。该数据包的识别方法包括步骤301-步骤303。
108.步骤301:第一设备获取第一目标模型。
109.其中,第一设备可以为图1中的设备102、设备103或者设备104。第一设备可以是服务器确定的需要进行模型训练的设备。服务器可以为图1中的服务器101。
110.其中,第一目标模型用于提取第一数据包的第一特征信息,确定第一数据包对应的第一应用集合中的第一应用。第一应用集合包括至少一个第一应用。该至少一个第一应用包括已安装在服务器、第一设备或其他设备上的应用。
111.其中,第一特征信息包括第一数据包的特征信息。例如,第一特征信息包括第一数据包所属应用的关键字。应理解,第一数据包是第一应用集合中的第一应用生成的。
112.示例性的,以第一应用集合包括和数据包1为生成的数据包,数据包2为生成的数据包为例,数据包1对应的第一特征信息包括wechat,数据包2对应的第一特征信息包括alipay。
113.可以理解的,第一应用生成的每个数据包都对应有第一特征信息。同一个应用的数据包对应的第一特征信息可以相同也可以不同。其中,应用的数据包可以理解为应用生成的数据包。
114.一种可能的实现方式,第一目标模型包括第一目标特征提取器和第一目标分类器。其中,第一目标特征提取器用于提取第一数据包的第一特征信息,例如,第一特征信息。第一目标分类器用于确定第一数据包对应的第一应用集合中的第一应用。
115.示例性的,第一目标模型可以如图4a所示。图4a中,第一目标模型401包括第一目标特征提取器402和第一目标分类器403。第一目标特征提取器402的输入为第一目标模型401的输入,第一目标特征提取器402的输出为第一目标分类器403的输入,第一目标分类器403的输出为第一目标模型401的输出。第一目标分类器403有n个输出端口,每个输出端口对应第一应用集合中的一个第一应用。n为第一应用集合中的应用的个数。可以理解的,n个输出端口中,输出值最高的端口对应的应用可以被确定为输入到第一目标模型401的数据包对应的应用。
116.示例性的,以第一应用集合包括和数据包1是生成的数据包,数据包2为生成的数据包为例,若第一目标模型如图4a所示,则n的值为2。假设端口1对应端口2对应则数据包1经过第一目标特征提取器402得到wechat,将wechat输入到第一目标分类器403,可以得到端口1的输出值大于端口2的输出值,即数据包1对应的应用是同理,数据包2经过第一目标特征提取器402得到alipay,将alipay输入到第一目标分类器403,可以得到端口2的输出值大于端口1的输出值,即数据包2对应的应用是
117.一种可能的实现方式,第一设备获取第一目标模型,包括:第一设备接收来自服务器的第三初始模型的信息和第一应用集合包含的第一应用的列表;第一设备根据第一设备获得的已标注的第一应用的数据包训练第三初始模型,得到第三中间模型;第一设备向服
务器发送第三中间模型的信息;第一设备接收来自服务器的第一目标模型的信息;第一设备根据第一模型的信息和第三初始模型,得到第一目标模型。第一设备获取第一目标模型的具体过程将在下述图5所示的方法中进行阐述。
118.一种可能的实现方式,服务器在初始化(例如,服务器第一次开机,或服务器恢复出厂设置)的情况下,第一设备获取第一目标模型。
119.步骤302:在满足触发条件的情况下,第一设备获取第二目标模型。
120.一种可能的实现方式,触发条件为第二应用集合中应用的个数大于或等于第一阈值;或者,触发条件为第二应用集合中应用的数据包的个数大于或等于第二阈值;或者,触发条件为第二应用集合中应用的个数大于或等于第一阈值,并且第二应用集合中应用的数据包的数量大于或等于第二阈值。其中,第一阈值和第二阈值为正整数。
121.其中,第二应用集合包括至少一个第二应用。该至少一个第二应用包括第一设备获取第一目标模型之后,安装在服务器、第一设备或其他设备上的应用。
122.示例性的,以触发条件为第二应用集合中应用的个数大于或等于第一阈值,第一阈值为5为例,若第二应用集合中应用的个数为6,则第一设备获取第二目标模型。若第二应用集合中应用的个数为3,则第一设备不获取第二目标模型。
123.示例性的,以触发条件为第二应用集合中应用的数据包的个数大于或等于第二阈值,第二阈值为30为例,若第二应用集合包括两个应用,第一个应用的数据包的个数和第二个应用的数据包的个数都为20个,则第一设备获取第二目标模型。若第一个应用的数据包的个数为5个,第二应用的数据包的个数为10个,则第一设备不获取第二目标模型。
124.示例性的,以触发条件为第二应用集合中应用的个数大于或等于第一阈值,并且第二应用集合中应用的数据包的数量大于或等于第二阈值,第一阈值为3,第二阈值为50为例,若第二应用集合包括两个应用,第一个应用的数据包的个数和第二个应用的数据包的个数都为30个,则第一设备不获取第二目标模型。若第二应用集合包括4个应用,第一个应用的数据包的个数和第二个应用的数据包的个数都为10个,第三个应用和第四个应用的数据包的个数都为5个,则第一设备不获取第二目标模型。若第二应用集合包括3个应用,第一个应用的数据包的个数、第二个应用的数据包和第三个应用的数据包的个数都为25个,则第一设备获取第二目标模型。
125.可以理解的,在满足触发条件的情况下,服务器向第一设备发送用于指示获取第二目标模型的信息,第一设备接收到来自服务器的用于指示获取第二目标模型的信息,获取第二目标模型。或者,在满足触发条件的情况下,服务器向第一设备发送第一初始模型的信息和第二应用集合包含的第二应用的列表,第一设备接收到来自服务器的第一初始模型的信息和第二应用的列表,获取第二目标模型,其中,第一初始模型的信息和第二应用的列表的介绍可以参考下述图7所示方法中所述。也就是说,在触发条件满足的情况下,服务器会向第一设备发送上述指示信息,或者第一初始模型的信息和第二应用的列表,则第一设备接收到上述信息后,获取第二目标模型。
126.可以理解的,上述触发条件可以是管理员设置的,也可以是服务器根据需要设置的。其中一种情况,服务器监控到触发条件满足,可以指示第一设备获取第二目标模型。其中另一种情况,管理员确定触发第一设备获取第二目标模型的情况下,可以通过服务器指示第一设备获取第二目标模型。应理解,第一设备运行的过程中,管理员或服务器可以根据
需要重新设置触发条件。
127.其中,第二目标模型用于提取第二数据包的第二特征信息,确定第二数据包对应的第二应用集合中的第二应用。其中,第二特征信息包括第二数据包的特征信息。例如,第二特征信息包括第二数据包所属应用的关键字。应理解,第二数据包是第二应用集合中的第二应用生成的。
128.示例性的,以第二应用集合包括和数据包1为生成的数据包,数据包2为生成的数据包为例,数据包1对应的第二特征信息包括iqiyi,数据包2对应的第二特征信息包括tencent。
129.可以理解的,第二应用生成的每个数据包都对应有第二特征信息。同一个应用的数据包对应的第二特征信息可以相同也可以不同。
130.一种可能的实现方式,第二目标模型包括第二目标特征提取器和第二目标分类器。其中,第二目标特征提取器与第一目标特征提取器相同,可以用于提取数据包的特征信息,例如,可以用于提取第二数据包的第二特征信息。第二目标分类器用于确定第二数据包对应的第二应用集合中的第二应用。
131.示例性的,第二目标模型可以如图4b所示。图4b中,第二目标模型404包括第二目标特征提取器405和第二目标分类器406。第二目标特征提取器405的输入为第二目标模型404的输入,第二目标特征提取器405的输出为第二目标分类器406的输入,第二目标分类器406的输出为第二目标模型404的输出。第二目标分类器406有m个输出端口,每个输出端口对应第二应用集合中的一个应用。m为第二应用集合中的应用的个数。可以理解的,m个输出端口中,输出值最高的端口对应的应用可以被确定为输入到第二目标模型404的数据包对应的应用。
132.示例性的,以第二应用集合包括和数据包1是生成的数据包,数据包2为生成的数据包为例,若第二目标模型如图4b所示,则m的值为2。假设端口1对应端口2对应则数据包1经过第二目标特征提取器405得到iqiyi,将iqiyi输入到第二目标分类器406,可以得到端口1的输出值大于端口2的输出值,即数据包1对应的应用是同理,数据包2经过第二目标特征提取器405得到tencent,将tencent输入到第二目标分类器406,可以得到端口2的输出值大于端口1的输出值,即数据包2对应的应用是
133.一种可能的实现方式,第一设备获取第二目标模型,包括:第一设备接收来自服务器的第一初始模型的信息和第二应用集合包含的第二应用的列表;第一设备根据第一设备获得的已标注的第二应用的数据包训练第一初始模型,得到第一中间模型;第一设备向服务器发送第一中间模型的信息;第一设备接收来自服务器的第二目标模型的信息;第一设备根据第二目标模型的信息和第一初始模型,得到第二目标模型。第一设备获取第二目标模型的具体过程将在下述图7所示的方法中进行阐述。
134.可以理解的,每次满足触发条件,第一设备都会获取第二目标模型。也就是说,在步骤303之前,或者,步骤303之后,第一设备可以多次获取第二目标模型。不同的是,每次获取的第二目标模型对应的第二应用集合中的应用不同。第二应用集合包括第一设备上一次获取目标模型之后,安装在服务器、第一设备或其他设备上的应用。
135.示例性的,以步骤301之后,第一设备获取了三次第二目标模型为例,第一次获取到的第二目标模型对应的第二应用集合包括第一设备获取第一目标模型之后,安装在服务器、第一设备或其他设备上的应用。第二次获取到的第二目标模型对应的第二应用集合包括第一设备第一次获取第二目标模型之后,安装在服务器、第一设备或其他设备上的应用。第三次获取到的第二目标模型对应的第二应用集合包括第一设备第二次获取第二目标模型之后,安装在服务器、第一设备或其他设备上的应用。
136.步骤303:第一设备获取第三数据包,根据第一目标模型和第二目标模型,确定第三数据包对应的第一应用或第二应用。
137.一种可能的实现方式,第一设备根据第一目标模型和第二目标模型,确定第三数据包对应的第一应用或第二应用,包括:第一设备根据第一目标模型,获取第三数据包的第一输出熵;第一设备根据第二目标模型,获取第三数据包的第二输出熵;第一设备将第一输出熵和第二输出熵中,数值低的输出熵对应的目标模型预测的应用确定为第三数据包对应的应用。如此,第一设备可以根据第一目标模型和第二目标模型识别出第一应用生成的数据包,或者识别出第二应用生成的数据包。
138.其中,第一输出熵用于指示第三数据包对应的应用为第一目标模型预测的应用的概率。第一输出熵的值越大,第三数据包对应的应用为第一目标模型预测的应用的概率越小;第一输出熵的值越小,第三数据包对应的应用为第一目标模型预测的应用的概率越大。第二输出熵用于指示第三数据包对应的应用为第二目标模型预测的应用的概率。第二输出熵的值越大,第三数据包对应的应用为第二目标模型预测的应用的概率越小;第二输出熵的值越小,第三数据包对应的应用为第二目标模型预测的应用的概率越大。
139.进一步的,第一输出熵满足如下公式:其中,h1(p1)为第一输出熵。n为第一目标分类器的输出端口的个数。p1(i)为输入第一目标模型的数据包对应的应用为第i个端口对应的应用的概率。
140.类似的,第二输出熵满足如下公式:其中,h2(p2)为第二输出熵。m为第二目标分类器的输出端口的个数。p2(i)为输入第二目标模型的数据包对应的应用为第i个端口对应的应用的概率。
141.示例性的,以第一目标模型预测数据包1对应的应用为第二目标模型预测数据包1对应的应用为为例,若第一输出熵的值为20,第二输出熵的值为85,则第一设备确定第三数据包对应的应用为若第一输出熵的值为90,第二输出熵的值为15,则第一设备确定第三数据包对应的应用为
142.可以理解的,在第一设备获取了多次第二目标模型的情况下,第一设备根据第一目标模型和多次获取的第二目标模型,确定第三数据包对应的第一应用或第二应用。
143.进一步的,第一设备根据第一目标模型和多次获取的第二目标模型,确定第三数据包对应的第一应用或第二应用,包括:第一设备根据第一目标模型,获取第三数据包的第一输出熵;第一设备根据多次获取的第二目标模型,获取每个第二目标模型对应的第三数据包的第二输出熵;第一设备将第一输出熵和获取到的第二输出熵中,数值低的输出熵对应的目标模型预测的应用确定为第三数据包对应的应用。
144.一种可能的实现方式,若第一设备接收到来自服务器的指示信息,第一设备重新
训练用于识别第一应用的数据包和第二应用的数据包的第四目标模型。其中,该指示信息用于指示第一设备重新训练用于识别第一应用的数据包和第二应用的数据包的第四目标模型。第四目标模型是根据已标注的第一应用的数据包和已标注的第二应用的数据包训练得到的。第一设备重新训练用于识别第一应用的数据包和第二应用的数据包的第四目标模型的过程可以参考上述步骤301中第一设备获取第一目标模型的过程。也就是说,第一设备接收到该指示信息后,可以重新执行上述步骤301-步骤303。其中,第四目标模型是根据已标注的第一应用的数据包和已标注的第二应用的数据包训练得到的,而第一设备根据第一目标模型和第二目标模型识别数据包时,是根据输出熵推测出的结果。因此,第四目标模型识别数据包的正确率大于,第一设备根据第一目标模型和第二目标模型识别数据包的正确率。
145.可以理解的,上述指示信息可以是管理员触发服务器发送的,也可以是服务器检测到第一设备确定的第三数据包对应的应用的正确率小于或等于第三阈值的情况下,向第一设备发送的。
146.基于图3所示的方法,在使用第一目标模型后出现新增应用(新增应用即为第二应用集合中的应用)的情况下,第一设备不需要根据被标注过的第一应用集合和第二应用集合中的应用的数据包进行模型训练,得到一个既能够识别第一应用集合中的应用的数据包,又能够识别第二应用集合中的应用的数据包的模型。而第一设备可以根据被标注过的第二应用的数据包进行模型训练,得到第二目标模型,后续,根据第一目标模型和第二目标模型识别第一应用集合中的应用的数据包,或第二应用集合中的应用的数据包。因为被标注过的第二应用的数据包的数量要远远小于被标注过的第一应用的数据包和第二应用的数据包的数量,所以图3所示方法中,第一设备的计算量小,而且训练时间短。另外,在图3所示方法中,在出现新增应用的情况下,第一设备采用的是被标注过的第二应用的数据包进行模型训练,因此可以释放被标注过的第一应用的数据包,降低了数据存储的成本。
147.在图3所示方法的一种可能的实现方式中,如图5所示,步骤301可以包括步骤3011-步骤3015。
148.步骤3011:第一设备接收来自服务器的第三初始模型的信息和第一应用的列表。
149.其中,第三初始模型的信息用于指示第三初始模型。第三初始模型是根据第一应用集合中应用的个数确定的。也就是说,第三初始模型是根据第一应用集合中应用的个数得到的初始化的模型。例如,第三初始模型包括第三初始特征提取器和第三初始分类器。第三初始特征提取器经过训练后可以更新为第一目标特征提取器,第三初始分类器经过模型训练后可以更新为第一目标分类器。
150.示例性的,第三初始模型可以如图6a所示。图6a中,第三初始模型601包括第三初始特征提取器602和第三初始分类器603。第三初始特征提取器602的输入为第三初始模型601的输入,第三初始特征提取器602的输出为第三初始分类器603的输入,第三初始分类器603的输出为第三初始模型601的输出。第三初始分类器603有n个输出端口,每个输出端口对应第一应用集合中的一个应用。n为第一应用集合中的应用的个数。
151.一种可能的实现方式,第三初始模型的信息包括第三初始模型的结构信息和第三初始模型的参数信息。其中,第三初始模型的结构信息用于指示第三初始模型的结构,例如,第三初始模型的结构信息用于指示第三初始模型包括第三初始特征提取器和第三初始
分类器。第三初始模型的参数信息用于指示第三初始模型的参数,例如,第三初始特征提取器的参数以及第三初始分类器的参数。第三初始特征提取器的参数以及第三初始分类器的参数的介绍可以参考常规技术中对特征提取器的参数和分类器的参数的解释说明,不予赘述。
152.一种可能的实现方式,第一应用的列表用于指示第一应用集合中的第一应用与第三初始模型的输出端的对应关系。
153.示例性的,以图6a所示的第三初始模型为例,第一应用集合中的第一应用与第三初始模型的输出端的对应关系可以如表1所示。表1中,应用1对应的端口为端口1,应用2对应的端口为端口2,

,应用n-1对应的端口为端口n-1,应用n对应的端口为端口n。
154.表1
155.第一应用集合中的第一应用第三初始模型的输出端应用1端口1应用2端口2
……
应用n-1端口n-1应用n端口n
156.步骤3012:第一设备根据第一设备获得的已标注的第一应用的数据包训练第三初始模型,得到第三中间模型。
157.其中,第一设备获得的已标注的第一应用的数据包可以是人工标注的,也可以是机器标注的。
158.以人工标注为例,该数据包可以是第一设备的管理员标注的,也可以是服务器的管理员标注的。若该数据包为服务器的管理员标注的,第一设备可以获取第一应用的数据包,向服务器发送第一应用的数据包,并接收来自服务器的已标注的第一应用的数据包。其中,第一应用的数据包可以是第一设备接收的,或者,第一设备上的应用生成的。
159.以机器标注为例,该数据包可以是第一设备标注的,也可以是服务器标注的。若该数据包为服务器标注的,第一设备可以获取第一应用的数据包,向服务器发送第一应用的数据包,并接收来自服务器的已标注的第一应用的数据包。
160.一种可能的实现方式,第一设备根据第一设备获得的已标注的第一应用的数据包,采用反向传播的方法更新第三初始模型,得到第三中间模型。进一步的,第一设备采用反向传播的方法更新第三初始模型的过程中使用的损失函数满足如下公式:
161.其中,l表示损失函数,该损失函数可以用于计算第三初始模型的参数的梯度。n为第一设备获得的已标注的第一应用的数据包的数量。m为第一应用集合中应用的数量。y
ic
为指示变量,在第i个数据包的真实类别为c类别的情况下,y
ic
=1,否则y
ic
=0。p
ic
为第i个数据包属于类别c的预测概率。
162.第一设备采用反向传播的方法更新第三初始模型,得到第三中间模型的具体过程,可以参考常规技术中的解释说明,不予赘述。
163.步骤3013:第一设备向服务器发送第三中间模型的信息。
164.其中,第三中间模型的信息包括第三中间模型的参数。示例性的,第三中间模型的参数包括第三初始模型的参数的梯度。
165.步骤3014:第一设备接收来自服务器的第一目标模型的信息。
166.其中,第一目标模型的信息是将来自多个第一设备的中间模型的信息进行聚合得到的。第一目标模型的信息用于指示第一目标模型的参数。示例性的,第一目标模型的参数包括更新后的第三初始模型的参数的梯度。
167.步骤3015:第一设备根据第一目标模型的信息和第三初始模型,得到第一目标模型。
168.一种可能的实现方式,第一设备根据第一目标模型的信息和第三初始模型,得到第一目标模型,包括:第一设备根据第三初始模型的参数和第一目标模型的信息,得到第一目标模型的参数;第一设备将第三初始模型中,第三初始模型的参数替换为第一目标模型的参数,得到第一目标模型。
169.需要说明的是,上述步骤3011-步骤3015是以第一设备进行一次模型训练即得到第一目标模型为例进行介绍的。在实际应用中,第一设备可能进行多次模型训练,才能得到第一目标模型。也就是说,步骤3015中,第一设备根据第一目标模型的信息和第三初始模型,得到的模型可能是一个未完成的第一目标模型,即第一设备得到的模型可能不收敛。后续,第一设备可以根据第一设备获得的已标注的第一应用的数据包训练上述未完成的第一目标模型,将训练得到的梯度发送给服务器,接收来自服务器的聚合后的梯度,并根据聚合后的梯度和上述未完成的第一目标模型,得到一个模型。若该模型收敛,则该模型即为第一目标模型,若该模型不收敛,重复执行上述过程,直至第一设备得到的模型收敛。
170.基于图5所示的方法,参与模型训练的设备,例如第一设备,可以接收来自服务器的第三初始模型的信息和第一应用的列表,根据已标注的第一应用的数据包训练第三初始模型,得到第三中间模型,并向服务器发送第三中间模型的信息,以便服务器将来自多个第一设备的中间模型的信息进行聚合,得到第一目标模型的信息。后续,第一设备可以接收来自服务器的第一目标模型的信息,并根据第一目标模型的信息和第三初始模型,得到第一目标模型。如此,参与模型训练的设备都可以得到最终能够识别第一应用的数据包的模型。另外,图5所示的方法中,服务器不需要进行模型训练,而是将模型训练的过程下放给参与模型训练的设备,每个参与模型训练的设备在训练模型时使用的已标注数据包的数量也小于服务器训练模型时使用的已标注数据包的数量,对于这些设备来说,计算量也不大,还可以节约模型训练的时间。
171.在图3所示方法的一种可能的实现方式中,如图7所示,步骤302可以包括步骤3021-步骤3025。
172.步骤3021:第一设备接收来自服务器的第一初始模型的信息和第二应用的列表。
173.其中,第一初始模型的信息用于指示第一初始模型。第一初始模型是根据第二应用集合中应用的个数确定的。也就是说,第一初始模型是根据第二应用集合中应用的个数得到的初始化的模型。例如,第一初始模型包括第二目标特征提取器和第一初始分类器。其中,第二目标特征提取器即为将第一目标特征提取器复用到第一初始模型中的特征提取器,后续,第一设备可以不用训练特征提取器。第一初始分类器经过模型训练后可以更新为第二目标分类器。
174.可以理解的,第一初始模型也可以不复用第一目标特征提取器,在这种情况下,第一初始模型包括第一初始特征提取器和第一初始分类器。第一初始特征提取器为第一设备获取的初始化的特征提取器。
175.示例性的,第一初始模型可以如图6b所示。图6b中,第一初始模型604包括第二目标特征提取器605和第一初始分类器606。第二目标特征提取器605的输入为第一初始模型604的输入,第二目标特征提取器605的输出为第一初始分类器606的输入,第一初始分类器606的输出为第一初始模型604的输出。第一初始分类器606有m个输出端口,每个输出端口对应第二应用集合中的一个应用。m为第二应用集合中的应用的个数。
176.一种可能的实现方式,第一初始模型的信息包括第一初始模型的结构信息和第一初始模型的参数信息。其中,第一初始模型的结构信息用于指示第一初始模型的结构,例如,第一初始模型的结构信息用于指示第一初始模型包括第二目标特征提取器和第一初始分类器。第一初始模型的参数信息用于指示第一初始模型的参数,例如,第二目标特征提取器的参数以及第一初始分类器的参数。第二目标特征提取器的参数以及第一初始分类器的参数的介绍可以参考常规技术中对特征提取器的参数和分类器的参数的解释说明,不予赘述。
177.一种可能的实现方式,第二应用的列表用于指示第二应用集合中的第二应用与第一初始模型的输出端的对应关系。
178.示例性的,以图6b所示的第一初始模型为例,第二应用集合中的第二应用与第一初始模型的输出端的对应关系可以如表2所示。表2中,应用1对应的端口为端口1,应用2对应的端口为端口2,

,应用m-1对应的端口为端口m-1,应用m对应的端口为端口m。
179.表2
180.第二应用集合中的第二应用第一初始模型的输出端应用1端口1应用2端口2
……
应用m-1端口m-1应用m端口m
181.步骤3022:第一设备根据第一设备获得的已标注的第二应用的数据包训练第一初始模型,得到第一中间模型。
182.其中,第一设备获得的已标注的第二应用的数据包可以是人工标注的,也可以是机器标注的。
183.以人工标注为例,该数据包可以是第一设备的管理员标注的,也可以是服务器的管理员标注的。若该数据包为服务器的管理员标注的,第一设备可以获取第二应用的数据包,向服务器发送第二应用的数据包,并接收来自服务器的已标注的第二应用的数据包。其中,第二应用的数据包可以是第一设备接收的,或者,第一设备上的应用生成的。
184.以机器标注为例,该数据包可以是第一设备标注的,也可以是服务器标注的。若该数据包为服务器标注的,第一设备可以获取第二应用的数据包,向服务器发送第二应用的数据包,并接收来自服务器的已标注的第二应用的数据包。
185.一种可能的实现方式,第一设备根据第一设备获得的已标注的第二应用的数据
包,采用反向传播的方法更新第一初始模型,得到第一中间模型。进一步的,第一设备采用反向传播的方法更新第一初始模型的过程中使用的损失函数满足如下公式:
186.其中,l表示损失函数,该损失函数可以用于计算第一初始分类器的参数。n为第一设备获得的已标注的第二应用的数据包的数量。m为第二应用集合中应用的数量。y
ic
为指示变量,在第i个数据包的真实类别为c类别的情况下,y
ic
=1,否则y
ic
=0。p
ic
为第i个数据包属于类别c的预测概率。
187.第一设备采用反向传播的方法更新第一初始模型,得到第一中间模型的具体过程,可以参考常规技术中的解释说明,不予赘述。
188.步骤3023:第一设备向服务器发送第一中间模型的信息。
189.其中,第一中间模型的信息包括第一中间模型的参数。示例性的,第一中间模型的参数包括第一初始分类器的参数的梯度。
190.步骤3024:第一设备接收来自服务器的第二目标模型的信息。
191.其中,第二目标模型的信息是将来自多个第一设备的中间模型的信息进行聚合得到的。第二目标模型的信息用于指示第二目标模型的参数。示例性的,第二目标模型的参数包括更新后的第一初始分类器的参数的梯度。
192.步骤3025:第一设备根据第二目标模型的信息和第一初始模型,得到第二目标模型。
193.一种可能的实现方式,第一设备根据第二目标模型的信息和第一初始模型,得到第二目标模型,包括:第一设备根据第一初始分类器的参数和第二目标模型的信息,得到第二目标分类器的参数;第一设备将第一初始模型中,第一初始分类器的参数替换为第二目标分类器的参数,得到第二目标模型。
194.需要说明的是,上述步骤3021-步骤3025是以第一设备进行一次模型训练即得到第二目标模型为例进行介绍的。在实际应用中,第一设备可能进行多次模型训练,才能得到第二目标模型。也就是说,步骤3025中,第一设备根据第二目标模型的信息和第一初始模型,得到的模型可能是一个未完成的第二目标模型,即第一设备得到的模型可能不收敛。后续,第一设备可以根据第一设备获得的已标注的第二应用的数据包训练上述未完成的第二目标模型,将训练得到的梯度发送给服务器,接收来自服务器的聚合后的梯度,并根据聚合后的梯度和上述未完成的第二目标模型,得到一个模型。若该模型收敛,则该模型即为第二目标模型,若该模型不收敛,重复执行上述过程,直至第一设备得到的模型收敛。
195.基于图7所示的方法,参与模型训练的设备,例如第一设备,可以接收来自服务器的第一初始模型的信息和第二应用的列表,根据已标注的第二应用的数据包训练第一初始模型,得到第一中间模型,并向服务器发送第一中间模型的信息,以便服务器将来自多个第一设备的中间模型的信息进行聚合,得到第二目标模型的信息。后续,第一设备可以接收来自服务器的第二目标模型的信息,并根据第二目标模型的信息和第一初始模型,得到第二目标模型。一方面,参与模型训练的设备都可以得到最终能够识别第二应用的数据包的模型。另一方面,第一初始模型复用了第一目标特征提取器,因此在训练模型时,不需要训练特征提取器,减少了计算开销。另外,图7所示的方法中,服务器不需要进行模型训练,而是
将模型训练的过程下放给参与模型训练的设备,每个参与模型训练的设备在训练模型时使用的已标注数据包的数量也小于服务器训练模型时使用的已标注数据包的数量,对于这些设备来说,计算量也不大,还可以节约模型训练的时间。
196.可以理解的,在第一设备获取了多次第二目标模型的情况下,第一设备识别第三数据包时,需要获取第一目标模型和多个第二目标模型中,每个目标模型对应的输出熵,再根据获取的多个输出熵确定第三数据包对应的应用,因此,第一设备识别第三数据包的时间可能较长,影响用户体验。在这种情况下,第一设备可以将第一目标模型和多个目标模型压缩为一个目标模型,后续,通过压缩后的目标模型识别第三数据包,可以节约第一设备识别第三数据包的时间。具体的,可以参考图8所示的方法。
197.如图8所示,在图3所示方法的一种可能的实现方式中,图3所示的方法还包括步骤801和步骤802。
198.步骤801:第一设备获取第二初始模型。
199.其中,第二初始模型是根据第一应用集合中应用的个数与第二应用集合中应用的个数确定的。也就是说,第二初始模型是根据第一应用集合中应用的个数与第二应用集合中应用的个数得到的初始化的模型。例如,第二初始模型包括第二初始特征提取器和第二初始分类器。其中,第二初始特征提取器即为将第一目标特征提取器复用到第二初始模型中的特征提取器,后续,第一设备可以不用训练特征提取器。第二初始分类器为第一设备获取的初始化的分类器。
200.可以理解的,第二初始模型也可以不复用第一目标特征提取器,在这种情况下,第二初始模型包括的特征提取器为第一设备获取的初始化的特征提取器。
201.一种可能的实现方式,第二初始模型的输入为第二初始特征提取器的输入,第二初始特征提取器的输出为第二初始分类器的输入,第二初始分类器的输出为第二初始模型的输出。第二初始分类器有q个输出端口,每个输出端口对应第一应用集合中或第二应用集合中的一个应用。q为第一应用集合中应用的个数和第二应用集合中的应用的个数之和。
202.一种可能的实现方式,第一设备根据第一应用集合中应用的个数与第二应用集合中应用的个数,创建第二初始模型。
203.另一种可能的实现方式,第一设备向服务器发送第一信息,并接收来自服务器的第二初始模型的信息。
204.其中,第一信息用于指示第一应用集合中应用的个数与第二应用集合中应用的个数。第二初始模型的信息用于指示第二初始模型。例如,第二初始模型的信息包括第二初始模型的结构信息和第二初始模型的参数信息。其中,第二初始模型的结构信息用于指示第二初始模型包括第二初始特征提取器和第二初始分类器。第二初始模型的参数信息用于指示第二初始模型的参数,例如,第二初始特征提取器的参数以及第二初始分类器的参数。第二初始特征提取器的参数以及第二初始分类器的参数的介绍可以参考常规技术中对特征提取器的参数和分类器的参数的解释说明,不予赘述。
205.一种可能的实现方式,第一设备获取了r次第二目标模型之后,执行步骤801。其中,r为大于0的整数。
206.步骤802:第一设备根据第一目标模型和第二目标模型对第一设备获得的数据包的标注结果,训练第二初始模型以得到第三目标模型。
207.其中,第一目标模型和第二目标模型对第一设备获得的数据包的标注结果可以是第一设备获取第一目标模型和第二目标模型之后,根据第一目标模型和第二目标模型对数据包的识别结果。也就是说,第一设备在得到第三目标模型的过程中,可以使用第一设备在使用第一目标模型和第二目标模型识别数据包的过程中得到的识别结果,训练第二初始模型。如此,第一设备可以不用存储获取第一目标模型和第二模型时使用的已标注的数据包,节省了存储开销。
208.其中,第三目标模型用于提取第三特征信息,并根据第三特征信息确定第三特征信息对应的数据包对应的应用。第三特征信息包括第三特征信息对应的数据包的特征信息。例如,第三特征信息包括第三特征信息对应的数据包所属应用的关键字。应理解,第三特征信息对应的数据包为第一应用集合中应用的数据包,或第二应用集合中应用的数据包。
209.一种可能的实现方式,第三目标模型包括第二初始特征提取器和第三目标分类器。其中,第二初始特征提取器用于提取数据包的特征信息,例如,第三特征信息。第三目标分类器用于确定第三特征信息对应的数据包对应的应用。第三目标分类器是第一设备对第二初始分类器进行训练得到的。
210.需要说明的是,第一设备根据第一目标模型和第二目标模型对第一设备获得的数据包的标注结果,训练第二初始模型以得到第三目标模型的具体过程,可以参考上述步骤3022中第一设备根据第一设备获得的已标注的第二应用的数据包训练第一初始模型,得到第一中间模型的过程,不予赘述。
211.一种可能的实现方式,步骤802之后,第一设备根据第三目标模型识别第一应用的数据包或第二应用的数据包。
212.一种可能的实现方式,步骤802之后,第一设备根据获取第一目标模型时使用的已标注的数据包,和/或,获取第二目标模型时使用的已标注的数据包,训练第三目标模型,得到训练后的第三目标模型。第一设备根据获取第一目标模型时使用的已标注的数据包,和/或,获取第二目标模型时使用的已标注的数据包,训练第三目标模型,得到训练后的第三目标模型的具体过程,可以参考上述步骤3022中第一设备根据第一设备获得的已标注的第二应用的数据包训练第一初始模型,得到第一中间模型的过程,不予赘述。
213.可以理解的,第一目标模型和第二目标模型对第一设备获得的数据包的标注结果有可能有错误,所以第一设备根据获取第一目标模型时使用的已标注的数据包,和/或,获取第二目标模型时使用的已标注的数据包,训练第三目标模型,可以提高模型的精度,使得训练后的第三目标模型的精度更高,识别数据包更准确。
214.基于图8所示的方法,第一设备获取了多次第二目标模型的情况下,可以获取第二初始模型,并根据第一目标模型和第二目标模型对第一设备获得的数据包的标注结果,训练第二初始模型以得到第三目标模型。后续,第一设备即可根据第三目标模型识别数据包,可以节约第一设备识别数据包的时间。另外,第一设备通过对模型的不断压缩,可以使得模型尺寸稳定,有利于模型在片上系统部署。
215.上述图3、图5、图7和图8所示的数据包的识别方法应用于第一设备。下面介绍本技术实施例提供的又一种数据包的识别方法,该方法应用于服务器。
216.如图9所示,为本技术实施例提供的又一种数据包的识别方法,该方法应用于服务
器。该方法包括步骤901-步骤904。
217.步骤901:服务器获取第一目标模型的信息。
218.其中,服务器可以为图1中的服务器101。第一目标模型的信息的介绍可以参考上述步骤3014中所述,第一目标模型的介绍可以参考上述步骤301中所述。
219.一种可能的实现方式,服务器在初始化(例如,服务器第一次开机,或服务器恢复出厂设置)的情况下,获取第一目标模型的信息。
220.一种可能的实现方式,服务器获取第一目标模型的信息包括下述步骤a-步骤e。下述步骤是以服务器确定的需要进行模型训练的设备为第一设备和第二设备为例进行介绍的。服务器确定的需要进行模型训练的设备的数量大于或等于3时,服务器获取第一目标模型的情况可以参考服务器确定的需要进行模型训练的设备为第一设备和第二设备的情况,不予赘述。
221.其中,第一设备和第二设备可以为图1中的设备。例如,若第一设备为图1中的设备102,则第二设备可以为图1中的设备103或设备104。若第一设备为图1中的设备103,则第二设备可以为图1中的设备102或设备104。若第一设备为图1中的设备104,则第二设备可以为图1中的设备102或设备103。
222.步骤a:服务器向第一设备发送第三初始模型的信息和第一应用集合包含的第一应用的列表。
223.其中,第三初始模型的信息和第一应用的列表的介绍可以参考上述步骤3011中所述。
224.步骤b:服务器接收来自第一设备的第三中间模型的信息。
225.其中,第三中间模型的信息的介绍可以参考上述步骤3013中的描述。
226.步骤c:服务器向第二设备发送第三初始模型的信息和第一应用集合包括的第一应用的列表。
227.步骤d:服务接收来自第二设备的第四中间模型的信息。
228.其中,第四中间模型的信息的介绍可以参考上述第三中间模型的信息的描述。
229.步骤e:服务器将第三中间模型的信息和第四中间模型的信息聚合,以得到第一目标模型的信息。
230.一种可能的实现方式,服务器将第三中间模型的信息和第四中间模型的信息进行加权求和,得到第一目标模型的信息。
231.需要说明的是,上述步骤a-步骤e是以第一设备和第二设备进行一次模型训练,服务器即得到第一目标模型的信息为例进行介绍的。在实际应用中,第一设备和第二设备可能进行多次模型训练,服务器才能得到第一目标模型的信息。也就是说,根据步骤e中的第一目标模型的信息,得到的模型可能是一个未完成的第一目标模型,即根据步骤e中的第一目标模型的信息,得到的模型可能不收敛。在这种情况下,服务器可以多次接收来自第一设备和第二设备的中间模型的信息,每次对接收到的中间模型的进行进行聚合,得到聚合后的信息,若根据聚合后的信息得到的模型收敛,则该模型即为第一目标模型,若不收敛,则重复执行上述步骤,直到得到的模型收敛。
232.可以理解的,在步骤a之前,服务器还可以对第一应用的数据包进行标注。或者,服务器可以通过管理员对第一应用的数据包进行标注。例如,服务器接收来自第一设备的第
一应用的数据包;服务器根据第一应用的数据包,获取已标注的第一应用的数据包;服务器向第一设备发送已标注的第一应用的数据包。
233.服务器对第一应用的数据包进行标注的情况下,服务器根据第一应用的数据包,获取已标注的第一应用的数据包,包括:服务器对第一应用的数据包进行标注,得到已标注的第一应用的数据包。
234.服务器通过管理员对第一应用的数据包进行标注的情况下,服务器根据第一应用的数据包,获取已标注的第一应用的数据包,包括:响应于管理员的输入,服务器接收已标注的第一应用的数据包。
235.步骤902:服务器向第一设备发送第一目标模型的信息。
236.步骤903:在满足触发条件的情况下,服务器获取第二目标模型的信息。
237.其中,触发条件的介绍可以参考上述步骤302中所述。第二目标模型的信息的介绍可以参考上述步骤3024中所述。第二目标模型的介绍可以参考上述步骤302中所述。
238.一种可能的实现方式,服务器获取第二目标模型的信息包括下述步骤a-步骤e。下述步骤是以服务器确定的需要进行模型训练的设备为第一设备和第二设备为例进行介绍的。服务器确定的需要进行模型训练的设备的数量大于或等于3时,服务器获取第二目标模型的信息的情况可以参考服务器确定的需要进行模型训练的设备为第一设备和第二设备的情况,不予赘述。
239.步骤a:服务器向第一设备发送第一初始模型的信息和第二应用集合包含的第二应用的列表。
240.其中,第一初始模型的信息和第二应用的列表的介绍可以参考上述步骤3021中所述。
241.步骤b:服务器接收来自第一设备的第一中间模型的信息。
242.其中,第一中间模型的信息的介绍可以参考上述步骤3023中的描述。
243.步骤c:服务器向第二设备发送第一初始模型的信息和第二应用集合包括的第二应用的列表。
244.步骤d:服务接收来自第二设备的第二中间模型的信息。
245.其中,第二中间模型的信息的介绍可以参考上述第一中间模型的信息的描述。
246.步骤e:服务器将第一中间模型的信息和第二中间模型的信息聚合,以得到第二目标模型的信息。
247.一种可能的实现方式,服务器将第一中间模型的信息和第二中间模型的信息进行加权求和,得到第二目标模型的信息。
248.需要说明的是,上述步骤a-步骤e是以第一设备和第二设备进行一次模型训练,服务器即得到第二目标模型的信息为例进行介绍的。在实际应用中,第一设备和第二设备可能进行多次模型训练,服务器才能得到第二目标模型的信息。也就是说,根据步骤e中的第二目标模型的信息,得到的模型可能是一个未完成的第二目标模型,即根据步骤e中的第二目标模型的信息,得到的模型可能不收敛。在这种情况下,服务器可以多次接收来自第一设备和第二设备的中间模型的信息,每次对接收到的中间模型的进行进行聚合,得到聚合后的信息,若根据聚合后的信息得到的模型收敛,则该模型即为第二目标模型,若不收敛,则重复执行上述步骤,直到得到的模型收敛。
249.可以理解的,在步骤a之前,服务器还可以对第二应用的数据包进行标注。或者,服务器可以通过管理员对第二应用的数据包进行标注。例如,服务器接收来自第一设备的第二应用的数据包;服务器根据第二应用的数据包,获取已标注的第二应用的数据包;服务器向第一设备发送已标注的第二应用的数据包。
250.服务器对第二应用的数据包进行标注的情况下,服务器根据第二应用的数据包,获取已标注的第二应用的数据包,包括:服务器对第二应用的数据包进行标注,得到已标注的第二应用的数据包。
251.服务器通过管理员对第二应用的数据包进行标注的情况下,服务器根据第二应用的数据包,获取已标注的第二应用的数据包,包括:响应于管理员的输入,服务器接收已标注的第二应用的数据包。
252.步骤904:服务器向第一设备发送第二目标模型的信息。
253.可以理解的,服务器可以监控第一设备上的模型识别数据包的正确率,若第一设备上的模型识别数据包的正确率小于或等于第三阈值,服务器向第一设备发送指示信息,指示信息用于指示第一设备重新训练用于识别第一应用的数据包和第二应用的数据包的第四目标模型。其中,第四目标模型是根据已标注的第一应用的数据包和已标注的第二应用的数据包训练得到的。而第一设备根据第一目标模型和第二目标模型识别数据包时,是根据输出熵推测出的结果。因此,第四目标模型识别数据包的正确率大于,第一设备根据第一目标模型和第二目标模型识别数据包的正确率。如此,可以提高第一设备识别数据包的正确率。
254.示例性的,若第一目标模型和第二目标模型识别数据包的正确率小于或等于第三阈值,服务器向第一设备发送指示信息。或者,若第三目标模型识别数据包的正确率小于或等于第三阈值,服务器向第一设备发送指示信息。其中,第三目标模型的介绍可以参考上述图8所示方法中所述。
255.基于图9所示的方法,服务器不需要进行模型训练,而是将模型训练的过程下放给参与模型训练的设备(第一设备和第二设备),服务器将来自多个设备的中间模型的信息进行聚合即可,降低了服务器的计算开销。而每个参与模型训练的设备在训练模型时使用的已标注数据包的数量也小于服务器训练模型时使用的已标注数据包的数量,对于这些设备来说,计算量也不大,还可以节约模型训练的时间。
256.上述图3、图5、图7和图8所示的数据包的识别方法应用于第一设备,图9所示的数据包的识别方法应用于服务器。下面以第一设备、第二设备与服务器交互的角度对本技术实施例提供的数据包的识别方法进行介绍。
257.如图10所示,为本技术实施例提供的又一种数据包的识别方法,该数据包的识别方法可以包括步骤1001-步骤1019。
258.步骤1001:服务器向第一设备发送第三初始模型的信息和第一应用集合包含的第一应用的列表。
259.其中,步骤1001的介绍可以参考上述步骤a中所述。
260.对应的,第一设备接收来自服务器的第三初始模型的信息和第一应用集合包含的第一应用的列表。
261.步骤1002:第一设备根据第一设备获得的已标注的第一应用的数据包训练第三初
始模型,得到第三中间模型。
262.步骤1003:第一设备向服务器发送第三中间模型的信息。
263.步骤1002-步骤1003的介绍可以参考上述步骤3012-步骤3013。
264.对应的,服务器接收来自第一设备的第三中间模型的信息。
265.步骤1004:服务器向第二设备发送第三初始模型的信息和第一应用集合包括的第一应用的列表。
266.其中,步骤1004的介绍可以参考上述步骤c中所述。
267.对应的,第二设备接收来自服务器的第三初始模型的信息和第一应用集合包含的第一应用的列表。
268.步骤1005:第二设备根据第二设备获得的已标注的第一应用的数据包训练第三初始模型,得到第四中间模型。
269.步骤1006:第二设备向服务器发送第四中间模型的信息。
270.步骤1005-步骤1006的介绍可以参考上述步骤3012-步骤3013中对应的描述。
271.对应的,服务器接收来自第二设备的第四中间模型的信息。
272.可以理解的,本技术实施例不限制步骤1001-步骤1003,以及步骤1004-步骤1006的执行顺序。例如,本技术实施例可以先执行步骤1001-步骤1003,再执行步骤1004-步骤1006。本技术实施例也可以先执行步骤1004-步骤1006,再执行步骤1001-步骤1003。本技术实施例还可以同时执行步骤1004-步骤1006,以及步骤1001-步骤1003。
273.步骤1007:服务器将第三中间模型的信息和第四中间模型的信息聚合,以得到第一目标模型的信息。
274.步骤1007的介绍可以参考上述步骤e的介绍。
275.步骤1008:服务器向第一设备发送第一目标模型的信息。
276.对应的,第一设备接收来自服务器的第一目标模型的信息。
277.步骤1009:第一设备根据第一目标模型的信息和第三初始模型,得到第一目标模型。
278.步骤1009的介绍可以参考上述步骤3015中所述。
279.步骤1010:服务器向第一设备发送第一初始模型的信息和第二应用集合包含的第二应用的列表。
280.其中,步骤1010的介绍可以参考上述步骤a中所述。
281.对应的,第一设备接收来自服务器的第一初始模型的信息和第二应用集合包含的第二应用的列表。
282.步骤1011:第一设备根据第一设备获得的已标注的第二应用的数据包训练第一初始模型,得到第一中间模型。
283.步骤1012:第一设备向服务器发送第一中间模型的信息。
284.步骤1011-步骤1012的介绍可以参考上述步骤3022-步骤3023。
285.对应的,服务器接收来自第一设备的第一中间模型的信息。
286.步骤1013:服务器向第二设备发送第一初始模型的信息和第二应用集合包括的第二应用的列表。
287.其中,步骤1013的介绍可以参考上述步骤c中所述。
288.对应的,第二设备接收来自服务器的第一初始模型的信息和第二应用集合包含的第二应用的列表。
289.步骤1014:第二设备根据第二设备获得的已标注的第二应用的数据包训练第一初始模型,得到第二中间模型。
290.步骤1015:第二设备向服务器发送第二中间模型的信息。
291.步骤1014-步骤1015的介绍可以参考上述步骤3022-步骤3023中对应的描述。
292.对应的,服务器接收来自第二设备的第二中间模型的信息。
293.可以理解的,本技术实施例不限制步骤1010-步骤1012,以及步骤1013-步骤1015的执行顺序。例如,本技术实施例可以先执行步骤1010-步骤1012,再执行步骤1013-步骤1015。本技术实施例也可以先执行步骤1013-步骤1015,再执行步骤1010-步骤1012。本技术实施例还可以同时执行步骤1013-步骤1015,以及步骤1010-步骤1012。
294.步骤1016:服务器将第一中间模型的信息和第二中间模型的信息聚合,以得到第二目标模型的信息。
295.步骤1016的介绍可以参考上述步骤e的介绍。
296.步骤1017:服务器向第一设备发送第二目标模型的信息。
297.对应的,第一设备接收来自服务器的第二目标模型的信息。
298.步骤1018:第一设备根据第二目标模型的信息和第一初始模型,得到第二目标模型。
299.步骤1018的介绍可以参考上述步骤3025中所述。
300.步骤1019:第一设备获取第三数据包,根据第一目标模型和第二目标模型,确定第三数据包对应的第一应用或第二应用。
301.步骤1019的介绍可以参考上述步骤303中所述。
302.基于图10所示的方法,一方面,服务器不需要进行模型训练,而是将模型训练的过程下放给参与模型训练的设备(第一设备和第二设备),服务器将来自多个设备的中间模型的信息进行聚合即可,降低了服务器的计算开销。另一方面,在使用第一目标模型后出现新增应用(新增应用即为第二应用集合中的应用)的情况下,第一设备不需要根据被标注过的第一应用集合和第二应用集合中的应用的数据包进行模型训练,得到一个既能够识别第一应用集合中的应用的数据包,又能够识别第二应用集合中的应用的数据包的模型。而第一设备可以根据被标注过的第二应用的数据包进行模型训练,得到第二目标模型,后续,根据第一目标模型和第二目标模型识别第一应用集合中的应用的数据包,或第二应用集合中的应用的数据包。而被标注过的第二应用的数据包的数量要远远小于被标注过的第一应用的数据包和第二应用的数据包的数量,所以第一设备的计算量小,而且训练时间短。另外,在图10所示方法中,在出现新增应用的情况下,第一设备采用的是被标注过的第二应用的数据包进行模型训练,因此可以释放被标注过的第一应用的数据包,降低了数据存储的成本。
303.可以理解的,在第一设备获取了多次第二目标模型的情况下,第一设备识别第三数据包时,需要获取第一目标模型和多个第二目标模型中,每个目标模型对应的输出熵,再根据获取的多个输出熵确定第三数据包对应的应用,因此,第一设备识别第三数据包的时间可能较长,影响用户体验。在这种情况下,第一设备可以将第一目标模型和多个目标模型压缩为一个目标模型,后续,通过压缩后的目标模型识别第三数据包,可以节约第一设备识
别第三数据包的时间。具体的,可以参考图11所示的方法。
304.如图11所示,在图10所示方法的一种可能的实现方式中,图10所示的方法还包括步骤1101和步骤1102。
305.步骤1101:第一设备获取第二初始模型。
306.步骤1102:第一设备根据第一目标模型和第二目标模型对第一设备获得的数据包的标注结果,训练第二初始模型以得到第三目标模型。
307.步骤1101和步骤1102的介绍可以参考上述步骤801和802中所述。
308.基于图11所示的方法,第一设备获取了多次第二目标模型的情况下,可以获取第二初始模型,并根据第一目标模型和第二目标模型对第一设备获得的数据包的标注结果,训练第二初始模型以得到第三目标模型。后续,第一设备即可根据第三目标模型识别数据包,可以节约第一设备识别数据包的时间。另外,第一设备通过对模型的不断压缩,可以使得模型尺寸稳定,有利于模型在片上系统部署。
309.上述图3、图5、图7-图11所示的数据包的识别方法是以联邦学习场景为例介绍的。下面以非联邦学习场景为例介绍本技术实施例提供的数据包的识别方法。
310.如图12所示,为本技术实施例提供的又一种数据包的识别方法。该方法包括步骤1201-步骤1203。
311.步骤1201:第一装置获取第一目标模型。
312.其中,第一装置可以为图1中的服务器101、设备102、设备103或者设备104。
313.其中,第一目标模型的介绍可以参考上述步骤301中对应的描述。
314.一种可能的实现方式,第一装置在初始化(例如,第一装置第一次开机,或第一装置恢复出厂设置)的情况下,获取第一目标模型。
315.一种可能的实现方式,第一装置获取第一目标模型包括以下步骤1-步骤3。
316.步骤1:第一装置获取已标注的第一应用集合中第一应用的数据包。
317.其中,第一装置获得的已标注的第一应用集合中第一应用的数据包可以是人工标注的,也可以是机器标注的。
318.步骤2:第一装置获取第三初始模型和第一应用集合包含的第一应用的列表。
319.其中,第三初始模型和第一应用的列表的介绍可以参考上述3011中所述。
320.步骤3:第一装置根据已标注的第一应用的数据包,训练第三初始模型,以得到第一目标模型。
321.其中,步骤3的介绍可以参考上述步骤3012中对应的描述。
322.步骤1202:在满足触发条件的情况下,第一装置获取第二目标模型。
323.其中,触发条件的介绍可以参考上述步骤302中所述。
324.一种可能的实现方式,第一装置获取第二目标模型包括以下步骤4-步骤6。
325.步骤4:第一装置获取已标注的第二应用集合中第二应用的数据包。
326.其中,第一装置获得的已标注的第二应用集合中第二应用的数据包可以是人工标注的,也可以是机器标注的。
327.步骤5:第一装置获取第一初始模型和第二应用集合包含的第二应用的列表。
328.其中,第一初始模型和第二应用的列表的介绍可以参考上述3021中所述。
329.步骤6:第一装置根据已标注的第二应用的数据包,训练第一初始模型,以得到第
二目标模型。
330.其中,步骤6的介绍可以参考上述步骤3022中对应的描述。
331.可以理解的,每次满足触发条件,第一装置都会获取第二目标模型。也就是说,在步骤1203之前,或者,步骤1203之后,第一装置可以多次获取第二目标模型。不同的是,每次获取的第二目标模型对应的第二应用集合中的应用不同。第二应用集合包括第一装置上一次获取目标模型之后,安装在服务器、第一装置或其他设备上的应用。
332.步骤1203:第一装置获取第三数据包,根据第一目标模型和第二目标模型,确定第三数据包对应的第一应用或第二应用。
333.步骤1203的介绍可以参考上述步骤303中所述。
334.基于图12所示的方法,在使用第一目标模型后出现新增应用(新增应用即为第二应用集合中的应用)的情况下,第一装置不需要根据被标注过的第一应用集合和第二应用集合中的应用的数据包进行模型训练,得到一个既能够识别第一应用集合中的应用的数据包,又能够识别第二应用集合中的应用的数据包的模型。而第一装置可以根据被标注过的第二应用的数据包进行模型训练,得到第二目标模型,后续,根据第一目标模型和第二目标模型识别第一应用集合中的应用的数据包,或第二应用集合中的应用的数据包。因为被标注过的第二应用的数据包的数量要远远小于被标注过的第一应用的数据包和第二应用的数据包的数量,所以图12所示方法中,第一装置的计算量小,而且训练时间短。另外,在图12所示方法中,在出现新增应用的情况下,第一装置采用的是被标注过的第二应用的数据包进行模型训练,因此可以释放被标注过的第一应用的数据包,降低了数据存储的成本。
335.可以理解的,在第一装置获取了多次第二目标模型的情况下,第一装置识别第三数据包时,需要获取第一目标模型和多个第二目标模型中,每个目标模型对应的输出熵,再根据获取的多个输出熵确定第三数据包对应的应用,因此,第一装置识别第三数据包的时间可能较长,影响用户体验。在这种情况下,第一装置可以将第一目标模型和多个目标模型压缩为一个目标模型,后续,通过压缩后的目标模型识别第三数据包,可以节约第一装置识别第三数据包的时间。具体的,可以参考图13所示的方法。
336.如图13所示,在图12所示方法的一种可能的实现方式中,图12所示的方法还包括步骤1301和步骤1302。
337.步骤1301:第一装置获取第二初始模型。
338.步骤1302:第一装置根据第一目标模型和第二目标模型对第一装置获得的数据包的标注结果,训练第二初始模型以得到第三目标模型。
339.步骤1301和步骤1302的介绍可以参考上述步骤801和步骤802中所述。
340.基于图13所示的方法,第一装置获取了多次第二目标模型的情况下,可以获取第二初始模型,并根据第一目标模型和第二目标模型对第一装置获得的数据包的标注结果,训练第二初始模型以得到第三目标模型。后续,第一装置即可根据第三目标模型识别数据包,可以节约第一装置识别数据包的时间。另外,第一装置通过对模型的不断压缩,可以使得模型尺寸稳定,有利于模型在片上系统部署。
341.可以理解的是,上述第一设备、服务器或者第一装置等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法操作,本技术能够以硬件或硬件和计算
机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
342.本技术实施例可以根据上述方法示例对第一设备、服务器或者第一装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
343.比如,以采用集成的方式划分各个功能模块的情况下,图14示出了一种数据包的识别装置的结构示意图。该装置可以为第一设备或者第一设备中的芯片或者片上系统,该装置可以用于执行上述实施例中涉及的第一设备的功能。
344.作为一种可能的实现方式,图14所示的装置包括:获取模块1401和确定模块1402。
345.获取模块1401,用于获取第一目标模型。其中,第一目标模型用于提取第一数据包的第一特征信息,确定第一数据包对应的第一应用集合中的第一应用。示例性的,结合图3,获取模块1401用于执行步骤301。
346.获取模块1401,还用于在满足触发条件的情况下,获取第二目标模型。其中,第二目标模型用于提取第二数据包的第二特征信息,确定第二数据包对应的第二应用集合中的第二应用,第一应用集合中的第一应用与第二应用集合中的第二应用不同。示例性的,结合图2,获取模块1401还用于执行步骤302。
347.确定模块1402,还用于获取第三数据包,根据第一目标模型和第二目标模型,确定第三数据包对应的第一应用或第二应用。示例性的,结合图3,确定模块1402用于执行步骤303。
348.一种可能的实现方式,获取模块1401,具体用于接收来自服务器的第一初始模型的信息和第二应用集合包含的第二应用的列表,第一初始模型是根据第二应用集合中应用的个数确定的,第二应用的列表用于指示第二应用集合中的第二应用与第一初始模型的输出端的对应关系;获取模块1401,还具体用于根据装置获得的已标注的第二应用的数据包训练第一初始模型,以得到第一中间模型;获取模块1401,还具体用于向服务器发送第一中间模型的信息;获取模块1401,还具体用于接收来自服务器的第二目标模型的信息,第二目标模型的信息是将来自多个第一设备的中间模型的信息进行聚合得到的;获取模块1401,还具体用于根据第二目标模型的信息和第一初始模型,以得到第二目标模型。
349.一种可能的实现方式,获取模块1401,还具体用于获取第二应用的数据包;获取模块1401,还具体用于向服务器发送第二应用的数据包;获取模块1401,还具体用于接收来自服务器的已标注的第二应用的数据包。
350.一种可能的实现方式,触发条件为第二应用集合中应用的个数大于或等于第一阈值;或者,触发条件为第二应用集合中应用的数据包的个数大于或等于第二阈值;或者,触发条件为第二应用集合中应用的个数大于或等于第一阈值,并且第二应用集合中应用的数据包的数量大于或等于第二阈值。
351.一种可能的实现方式,确定模块1402,具体用于根据第一目标模型,获取第三数据包的第一输出熵,第一输出熵用于指示第三数据包对应的应用为第一目标模型预测的应用
的概率;确定模块1402,还具体用于根据第二目标模型,获取第三数据包的第二输出熵,第二输出熵用于指示第三数据包对应的应用为第二目标模型预测的应用的概率;确定模块1402,还具体用于将第一输出熵和第二输出熵中,数值低的输出熵对应的目标模型预测的应用确定为第三数据包对应的应用。
352.一种可能的实现方式,该装置还包括:训练模块;获取模块1401,还用于获取第二初始模型,第二初始模型是根据第一应用集合中应用的个数与第二应用集合中应用的个数确定的;训练模块,用于根据第一目标模型和第二目标模型对装置获得的数据包的标注结果,训练第二初始模型以得到第三目标模型,第三目标模型用于提取第三特征信息,并根据第三特征信息确定第三特征信息对应的数据包对应的应用,第三特征信息包括第三特征信息对应的数据包的特征信息,第三特征信息对应的数据包为第一应用集合中应用的数据包,或第二应用集合中应用的数据包。
353.一种可能的实现方式,训练模块,还用于根据获取第一目标模型时使用的已标注的数据包,和/或,获取第二目标模型时使用的已标注的数据包,训练第三目标模型,得到训练后的第三目标模型。
354.一种可能的实现方式,装置还包括:接收模块;接收模块,用于接收来自服务器的指示信息,指示信息用于指示装置重新训练用于识别第一应用的数据包和第二应用的数据包的第四目标模型。
355.其中,上述方法实施例涉及的各操作的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
356.在本实施例中,该装置以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定asic,电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到该装置可以采用图2所示的形式。
357.比如,图2中的处理器201可以通过调用存储器203中存储的计算机执行指令,使得该装置执行上述方法实施例中的数据包的识别方法。
358.示例性的,图14中的获取模块1401和确定模块1402的功能/实现过程可以通过图2中的处理器201调用存储器203中存储的计算机执行指令来实现。
359.由于本实施例提供的装置可执行上述的数据包的识别方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
360.比如,以采用集成的方式划分各个功能模块的情况下,图15示出了一种数据包的识别装置的结构示意图。该装置可以为服务器或者服务器中的芯片或者片上系统,该装置可以用于执行上述实施例中涉及的服务器的功能。
361.作为一种可能的实现方式,图15所示的装置包括:获取模块1501和发送模块1502;
362.获取模块1501,用于获取第一目标模型的信息。其中,第一目标模型用于提取第一数据包的第一特征信息,确定第一数据包对应的第一应用集合中的第一应用。示例性的,结合图9,获取模块1501用于执行步骤901。
363.发送模块1502,用于向第一设备发送第一目标模型的信息。示例性的,结合图9,发送模块1502用于执行步骤902。
364.获取模块1501,还用于在满足触发条件的情况下,获取第二目标模型的信息。其
中,第二目标模型用于提取第二数据包的第二特征信息,确定第二数据包对应的第二应用集合中的第二应用,第一应用集合中的第一应用与第二应用集合中的第二应用不同。示例性的,结合图9,获取模块1501还用于执行步骤903。
365.发送模块1502,还用于向第一设备发送第二目标模型的信息。示例性的,结合图9,发送模块1502还用于执行步骤904。
366.一种可能的实现方式,获取模块1501,具体用于向第一设备发送第一初始模型的信息和第二应用集合包含的第二应用的列表,第一初始模型是根据第二应用集合中第二应用的个数确定的,第二应用的列表用于指示第二应用集合中的第二应用与第一初始模型的输出端的对应关系;获取模块1501,还具体用于接收来自第一设备的第一中间模型的信息,第一中间模型是第一设备根据第一设备获得的已标注的第二应用的数据包对第一初始模型进行训练得到的;获取模块1501,还具体用于向第二设备发送第一初始模型的信息和第二应用的列表;获取模块1501,还具体用于接收来自第二设备的第二中间模型的信息,第二中间模型是第二设备根据第二设备获得的已标注的第二应用的数据包对第一初始模型进行训练得到的;获取模块1501,还具体用于将第一中间模型的信息和第二中间模型的信息聚合,以得到第二目标模型的信息。
367.一种可能的实现方式,获取模块1501,还具体用于接收来自第一设备的第二应用的数据包;获取模块1501,还具体用于根据第二应用的数据包,获取已标注的第二应用的数据包;获取模块1501,还具体用于向第一设备发送已标注的第二应用的数据包。
368.一种可能的实现方式,触发条件为第二应用集合中应用的个数大于或等于第一阈值;或者,触发条件为第二应用集合中应用的数据包的个数大于或等于第二阈值;或者,触发条件为第二应用集合中应用的个数大于或等于第一阈值,并且第二应用集合中应用的数据包的数量大于或等于第二阈值。
369.一种可能的实现方式,发送模块1502,还用于若第一目标模型和第二目标模型识别数据包的正确率小于或等于第三阈值,向第一设备发送指示信息,指示信息用于指示第一设备重新训练用于识别第一应用的数据包和第二应用的数据包的第四目标模型。
370.其中,上述方法实施例涉及的各操作的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
371.在本实施例中,该装置以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定asic,电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到该装置可以采用图2所示的形式。
372.比如,图2中的处理器201可以通过调用存储器203中存储的计算机执行指令,使得该装置执行上述方法实施例中的通信方法。
373.示例性的,图15中的获取模块1501和发送模块1502的功能/实现过程可以通过图2中的处理器201调用存储器203中存储的计算机执行指令来实现。或者,图15中的获取模块1501的功能/实现过程可以通过图2中的处理器201调用存储器203中存储的计算机执行指令来实现,图12中的发送模块1502的功能/实现过程可以通过图2中的通信接口204来实现。
374.由于本实施例提供的装置可执行上述的数据包的识别方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
375.比如,以采用集成的方式划分各个功能模块的情况下,图16示出了一种数据包的识别装置的结构示意图。该装置可以为第一装置或者第一装置中的芯片或者片上系统,该装置可以用于执行上述实施例中涉及的第一装置的功能。
376.作为一种可能的实现方式,图16所示的装置包括:获取模块1601和确定模块1602。
377.获取模块1601,用于获取第一目标模型。其中,第一目标模型用于提取第一数据包的第一特征信息,确定第一数据包对应的第一应用集合中的第一应用。示例性的,结合图12,获取模块1601用于执行步骤1201。
378.获取模块1601,还用于在满足触发条件的情况下,获取第二目标模型。其中,第二目标模型用于提取第二数据包的第二特征信息,确定第二数据包对应的第二应用集合中的第二应用,第一应用集合中的第一应用与第二应用集合中的第二应用不同。示例性的,结合图12,获取模块1601还用于执行步骤1202。
379.确定模块1602,用于获取第三数据包,根据第一目标模型和第二目标模型,确定第三数据包对应的第一应用或第二应用。示例性的,结合图12,确定模块1602用于执行步骤1203。
380.一种可能的实现方式,获取模块1601,具体用于获取已标注的第二应用集合中第二应用的数据包;获取模块1601,还具体用于获取第一初始模型和第二应用集合包含的第二应用的列表,第一初始模型是根据第二应用集合中应用的个数确定的,第二应用的列表用于指示第二应用集合中的第二应用与第一初始模型的输出端的对应关系;获取模块1601,还具体用于根据已标注的第二应用的数据包,训练第一初始模型,以得到第二目标模型。
381.一种可能的实现方式,触发条件为第二应用集合中应用的个数大于或等于第一阈值;或者,触发条件为第二应用集合中应用的数据包的个数大于或等于第二阈值;或者,触发条件为第二应用集合中应用的个数大于或等于第一阈值,并且第二应用集合中应用的数据包的数量大于或等于第二阈值。
382.一种可能的实现方式,确定模块1602,具体用于根据第一目标模型,获取第三数据包的第一输出熵,第一输出熵用于指示第三数据包对应的应用为第一目标模型预测的应用的概率;确定模块1602,还具体用于根据第二目标模型,获取第三数据包的第二输出熵,第二输出熵用于指示第三数据包对应的应用为第二目标模型预测的应用的概率;确定模块1602,还具体用于将第一输出熵和第二输出熵中,数值低的输出熵对应的目标模型预测的应用确定为第三数据包对应的应用。
383.一种可能的实现方式,该装置还包括:训练模块;获取模块1601,还用于获取第二初始模型,第二初始模型是根据第一应用集合中应用的个数与第二应用集合中应用的个数确定的;训练模块,用于根据第一目标模型和第二目标模型对第一设备获得的数据包的标注结果,训练第二初始模型以得到第三目标模型,第三目标模型用于提取第三特征信息,并根据第三特征信息确定第三特征信息对应的数据包对应的应用,第三特征信息包括第三特征信息对应的数据包的特征信息,第三特征信息对应的数据包为第一应用集合中应用的数据包,或第二应用集合中应用的数据包。
384.一种可能的实现方式,训练模块,还用于根据获取第一目标模型时使用的已标注的数据包,和/或,获取第二目标模型时使用的已标注的数据包,训练第三目标模型,得到训
练后想第三目标模型。
385.一种可能的实现方式,获取模块1601,还用于若第一目标模型和第二目标模型识别数据包的正确率小于或等于第三阈值,重新训练用于识别第一应用的数据包和第二应用的数据包的第四目标模型。
386.其中,上述方法实施例涉及的各操作的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
387.在本实施例中,该装置以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定asic,电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到该装置可以采用图2所示的形式。
388.比如,图2中的处理器201可以通过调用存储器203中存储的计算机执行指令,使得该装置执行上述方法实施例中的数据包的识别方法。
389.示例性的,图16中的获取模块1601和确定模块1602的功能/实现过程可以通过图2中的处理器201调用存储器203中存储的计算机执行指令来实现。
390.由于本实施例提供的装置可执行上述的数据包的识别方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
391.图17为本技术实施例提供的一种芯片的结构示意图。芯片170包括一个或多个处理器1701以及接口电路1702。可选的,所述芯片170还可以包含总线1703。其中:
392.处理器1701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1701可以是通用处理器、数字通信器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
393.接口电路1702用于数据、指令或者信息的发送或者接收。处理器1701可以利用接口电路1702接收的数据、指令或者其它信息,进行加工,可以将加工完成信息通过接口电路1702发送出去。
394.可选的,芯片170还包括存储器,存储器可以包括只读存储器和随机存取存储器,并向处理器提供操作指令和数据。存储器的一部分还可以包括非易失性随机存取存储器(nvram)。
395.可选的,存储器存储了可执行软件模块或者数据结构,处理器可以通过调用存储器存储的操作指令(该操作指令可存储在操作系统中),执行相应的操作。
396.可选的,芯片170可以使用在本技术实施例涉及的数据包的识别装置(包括第一设备、服务器或第一装置)中。可选的,接口电路1702可用于输出处理器1701的执行结果。关于本技术的一个或多个实施例提供的数据包的识别方法可参考前述各个实施例,这里不再赘述。
397.需要说明的,处理器1701、接口电路1702各自对应的功能既可以通过硬件设计实现,也可以通过软件设计来实现,还可以通过软硬件结合的方式来实现,这里不作限制。
398.图18示出了的一种数据包的识别系统的组成示意图,如图18所示,该数据包的识
别系统180中可以包括:第一设备1801和服务器1802。需要说明的是,图18仅为示例性附图,本技术实施例不限定图18所示数据包的识别系统180包括的设备以及设备的个数。
399.其中,第一设备1801具有上述图14所示数据包的识别装置的功能,用于获取第一目标模型,在满足触发条件的情况下,获取第二目标模型,并获取第三数据包,根据第一目标模型和第二目标模型,确定第三数据包对应的第一应用或第二应用。
400.服务器1802具有上述图15所示数据包的识别装置的功能,可以用于获取第一目标模型的信息,向第一设备1801发送第一目标模型的信息,获取第二目标模型的信息,并向第一设备1802发送第二目标模型的信息。
401.需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到该数据包的识别系统180对应节点的功能描述,在此不再赘述。
402.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
403.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
404.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
405.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
406.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
407.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献