模型训练方法、系统、电子设备及存储介质与流程

文档序号:29414667发布日期:2022-03-26 12:45阅读:73来源:国知局
模型训练方法、系统、电子设备及存储介质与流程

1.本技术实施例涉及计算机技术领域,特别涉及一种模型训练方法、系统、电子设备及存储介质。


背景技术:

2.机器学习和深度学习是当前人工智能领域最热门的研究方向。在机器学习中,机器学习任务80%的时间都用在数据处理设备处理模型输入所需要的数据和特征加工上,而且需要多次加工不同且大量的特征,经过多次尝试才能得到有效的特征,每次尝试都需要等待长时间,导致数据处理设备的处理速度与模型训练设备的训练速度不匹配;而深度学习任务需要大量数据支撑,在训练时,通常会把数据以一定的大小的数据分组,经过一定的数据增强操作之后,才进行基于小批次的数据集mini-batch的梯度下降训练;深度学习的模型训练设备资源昂贵而稀缺,但速度快,而数据处理设备相对便宜,但速度相对慢,也会使数据处理设备的处理速度跟不上模型训练设备的训练速度;而机器学习和深度学习中的数据处理设备和模型训练设备的速度不匹配,导致模型训练设备的利用率低,从而降低了机器学习模型或深度学习模型的训练速度。


技术实现要素:

3.本技术实施例的目的在于提供一种模型训练方法、系统、电子设备及存储介质,使得数据的处理速度与模型训练的处理速度相匹配,从而提高模型训练的速度。
4.为解决上述技术问题,本技术的实施例提供了一种模型训练方法,其特征在于,应用在模型训练系统的主处理器中,所述模型训练系统还包括处理器集群和数据库;包括:将原始数据集拆分为多个第一数据子集,并为各所述第一数据子集分配数据标识;将各所述数据标识和各所述第一数据子集存入所述数据库的第一表结构中;以供所述处理器集群中的各处理器从所述第一表结构中获取各所述第一数据子集和各所述数据标识,对各所述第一数据子集进行处理生成各第二数据子集,并根据各所述数据标识将各所述第二数据子集存入所述数据库的第二表结构中;从所述第二表结构中获取各所述第二数据子集,并基于各所述第二数据子集进行模型训练。
5.本技术的实施例还提供了一种模型训练系统,其特征在于,所述系统包括:主处理器、处理器集群和数据库;其中,所述主处理器,用于将原始数据集拆分为多个第一数据子集,并为各所述第一数据子集分配数据标识,将各所述数据标识和各所述第一数据子集存入所述数据库的第一表结构中;所述处理器集群中的各处理器,用于从所述第一表结构中获取各所述第一数据子集和各所述数据标识,对各所述第一数据子集进行处理生成各第二数据子集,并根据各所述数据标识将各所述第二数据子集存入所述数据库的第二表结构中;所述主处理器,还用于从所述第二表结构中获取各所述第二数据子集,并基于各所述第二数据子集进行模型训练。
6.本技术的实施例还提供了一种电子设备,包括:至少一个处理器;以及,与所述至
少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述模型训练方法。
7.本技术的实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述模型训练方法。
8.本技术实施例中,在模型训练系统的主处理器中,将原始数据集拆分为多个第一数据子集,并为各第一数据子集分配数据标识;将各数据标识和各第一数据子集存入数据库的第一表结构中;以供处理器集群中的各处理器从第一表结构中获取各第一数据子集和各数据标识,对各第一数据子集进行处理生成各第二数据子集,并根据各数据标识将各第二数据子集存入数据库的第二表结构中;从第二表结构中获取各第二数据子集,并基于各所述第二数据子集进行模型训练。通过将数据拆分成多个小的数据子集,并分发到多个处理器中进行处理,再基于处理之后的数据进行模型训练,使得本技术可以提高数据集的处理速度,减少模型训练的等待时长,保证数据的处理速度与模型训练的处理速度相匹配,从而提高模型训练的速度,解决了现有技术中由于数据处理设备和模型训练设备的速度不匹配导致模型训练设备的利用率低和模型训练速度低的技术问题。
附图说明
9.一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。
10.图1是本技术实施例提供的模型训练方法的流程图;
11.图1a是本技术实施例提供的数据库中第一表结构和第二表结构的结构示意图;
12.图2是本技术实施例提供的模型训练方法的流程图;
13.图3是本技术实施例提供的模型训练方法的流程图;
14.图4是本技术实施例提供的模型训练方法的流程图;
15.图5是本技术实施例提供的模型训练系统的结构示意图;
16.图6是本技术实施例提供的模型训练系统的结构示意图;
17.图7是本技术实施例提供的电子设备的结构示意图。
具体实施方式
18.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本技术各实施例中,为了使读者更好地理解本技术而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本技术所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本技术的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
19.本技术的实施例涉及一种模型训练方法,应用在模型训练系统的主处理器中,模型训练系统还包括处理器集群和数据库,如图1所示,具体包括以下步骤。
20.步骤101,将原始数据集拆分为多个第一数据子集,并为各第一数据子集分配数据标识。
21.在一示例实施中,当需要进行训练的模型为机器学习模型时,模型训练系统中的主处理器为中央处理器(central processing unit,简称cpu);而当需要进行训练的模型为深度学习模型时,模型训练系统中的主处理器为中央处理器cpu或图形处理器(graphics processing unit,简称gpu);而无论需要进行训练的模型为机器学习模型还是深度学习模型,模型训练系统中的处理器集群由各中央处理器cpu组成。
22.在一示例实施中,当主处理器获取到原始数据集之后,并不会对原始数据集进行相关的数据处理工作,而是根据深度学习或机器学习的特性和需求将原始数据集拆分成多个第一数据子集,并为每一个第一数据子集都分配唯一的数据标识,本技术并不对原始数据集中的各原始数据的具体形式进行限制。
23.在一示例实施中,主处理器所获取的原始数据集中存储的是各原始数据的数据存储地址,而此时的模型训练系统中还包含一个存储模块,该存储模块的作用在于存储各原始数据。
24.步骤102,将各数据标识和各第一数据子集存入数据库的第一表结构中;以供处理器集群中的各处理器从第一表结构中获取各第一数据子集和各数据标识,对各第一数据子集进行处理生成各第二数据子集,并根据各数据标识将各第二数据子集存入数据库的第二表结构中。
25.在一示例实施中,无论需要进行训练的模型为机器学习模型还是深度学习模型,模型训练系统中的数据库是一个共享数据库,主处理器和处理器集群中的各处理器均可以访问该数据库,在数据库中存入数据或从数据库中获取数据;数据库可以是远程字典服务(remote dictionary server,简称redis)数据库、rabbitmq、apache rocketmq、apache activemq、zeromq、metamq、mysql、mongodb、elastic search、click house和presto等多种类型。
26.在一示例实施中,数据库作为模型训练系统中的重要中间介质,可以为了提高存入和取出数据库的效率,可以在模型训练系统中部署多个数据库在后台进行,加快主处理器和处理器集群中的各处理器进行数据的插入和获取。
27.在一示例实施中,主处理器在将原始数据集拆分成多个第一数据子集之后,将各第一数据子集和各第一数据子集对应的数据标识一同存入如图1a所示的数据库的第一表结构中,以供处理器集群中的各处理器从第一表结构中获取到第一数据子集和第一数据子集的数据标识,各处理器在分别对获取到的第一数据子集进行数据处理,生成第二数据子集,并根据第一数据子集与数据标识的对应关系和第一数据子集与第二数据子集的对应关系将第二数据子集和第二数据子集对应的数据标识存入如图1a所示的数据库的第二表结构中,也可以直接根据各数据标识将第二数据子集存入如图1a所示的数据库的第二表结构中。
28.在一示例实施中,当原始数据集中存储的是各原始数据的数据存储地址时,从原始数据集中拆分出的各第一数据子集中存储的也是数据存储地址,各处理器在获取到第一数据子集之后,根据所获取的第一数据子集中的数据存储地址从存储模块中获取到相对应的原始数据,在对所获取到的原始数据进行处理;各处理器可以将处理好的原始数据存入数据库中,再根据数据标识和处理好的原始数据的数据存储地址形成第二数据子集,放入第二表结构中。
29.在一示例实施中,主处理器将各第一数据子集和各数据标识均存入数据库的第一表结构之后,可以向处理器集群发送一个启动指令,处理器集群接收到该启动指令之后,便指示处理器集群中的各处理器开启后台程序,从数据库的第一表结构中获取第一数据子集和数据标识,并对所获取的第一数据子集进行处理。
30.在一示例实施中,主处理器也可以不需要向处理器集群发送启动指令,此时,处理器集群在模型训练系统启动时,便指示理器集群中的各处理器开启后台程序,各处理器每间隔预设时间便主动访问数据库的第一表结构,而当处理器本次访问数据库的第一表结构,从第一表结构中获取到了第一数据子集和数据标识时,便对所获取的第一数据子集进行处理;而当处理器本次访问数据库的第一表结构,并未从第一表结构中获取到了第一数据子集和数据标识时,则继续等待下一个时间间隔再次访问数据库的第一表结构。
31.在一示例实施中,由于进行模型训练的样式不同,会导致各处理器对第一数据子集的处理方法也不相同;如:当需要进行训练的模型为机器学习模型时,各处理器对第一数据子集中的各原始数据进行特征加工处理;当需要进行训练的模型为深度学习模型时,各处理器对第一数据子集中的各原始数据进行数据增强操作或数据预处理操作等,具体的对第一数据子集的处理方法会根据机器学习模型或深度学习模型的要求产生一定的变化。
32.步骤103,从第二表结构中获取各第二数据子集,并基于各第二数据子集进行模型训练。
33.在一示例实施中,各处理器将第二数据子集和数据标识存入数据库中的第二表结构中后,主处理器可以从第二表结构中获取各第二数据子集,并基于所获取的各第二数据子集进行模型训练。
34.在一示例实施中,当需要进行训练的模型为机器学习模型时,主处理器需要从第二表结构中获取到全部数据标识对应的第二数据子集,并将所有的第二数据子集进行汇总之后,再基于汇总后的数据集进行机器学习模型的训练;而当需要进行训练的模型为深度学习模型时,主处理器从第二表结构中获取到一个第二数据子集,便将所获取到的第二数据子集加入到主处理器的缓存队列中,之后再基于缓存队列中的第二数据子集进行深度学习模型的训练。
35.本技术实施例中,在模型训练系统的主处理器中,将原始数据集拆分为多个第一数据子集,并为各第一数据子集分配数据标识;将各数据标识和各第一数据子集存入数据库的第一表结构中;以供处理器集群中的各处理器从第一表结构中获取各第一数据子集和各数据标识,对各第一数据子集进行处理生成各第二数据子集,并根据各数据标识将各第二数据子集存入数据库的第二表结构中;从第二表结构中获取各第二数据子集,并基于各第二数据子集进行模型训练。通过将数据拆分成多个小的数据子集,并分发到多个处理器中进行处理,再基于处理之后的数据进行模型训练,使得本技术可以提高数据集的处理速度,减少模型训练的等待时长,保证数据的处理速度与模型训练的处理速度相匹配,从而提高模型训练的速度,解决了现有技术中由于数据处理设备和模型训练设备的速度不匹配导致模型训练速度低的技术问题。
36.本技术的实施例涉及一种模型训练方法,应用在模型训练系统的主处理器中,模型训练系统还包括处理器集群和数据库,如图2所示,具体包括以下步骤。
37.步骤201,根据各预设特征要求将原始数据集拆分为各第一数据子集,并根据各特
征要求为各第一数据子集分配各数据标识。
38.在一示例实施中,当需要进行训练的模型为机器学习模型时,由于机器学习模型的原始数据集中的各原始数据所依赖的特征要求不相同,而不同的特征要求所采用的数据处理方法存在差异,因此,可以根据各原始数据所依赖的特征要求将原始数据集拆分成多个第一数据子集,且每个第一数据子集都数据标识用于区分该第一数据子集属于哪一个特征要求,在给各第一数据子集分配数据标识需要根据该第一数据子集依赖的特征要求进行分配。
39.步骤202,将各数据标识和各第一数据子集存入数据库的第一表结构中;以供处理器集群中的各处理器从第一表结构中获取各第一数据子集和各数据标识,对各第一数据子集进行处理生成各第二数据子集,并根据各数据标识将各第二数据子集存入数据库的第二表结构中。
40.在一示例实施中,本步骤与本技术实施例的步骤102大致相同,此处不一一赘述。
41.步骤203,轮询各数据标识,检测各数据标识是否存在于第二表结构中。
42.在一示例实施中,主处理器再将各第一数据子集和各数据标识存入数据库中之后,可以开始轮询各数据标识,每轮询到一个数据标识,便检测该数据标识是否存在于数据库的第二表结构中,当监测到该数据标识存在于数据库的第二表结构中时,说明该数据标识对应的第一数据子集已经经过处理器进行处理,生成了第二数据子集,此时对该数据标识进行标记,并不再对该数据标识进行轮询;而当监测到该数据标识不存在于数据库的第二表结构中时,说明该数据标识对应的第一数据子集还未经过处理器处理,需要等待处理,该数据标识继续等待下一次轮询。
43.步骤204,当各数据标识均存在于第二表结构中时,从第二表结构中获取各第二数据子集。
44.在一示例实施中,而当第二表结构中已经包含全部各数据标识时,从第二表结构中获取到全部的第二数据子集。
45.步骤205,将各第二数据子集汇总成训练数据集,并基于训练数据集进行模型训练。
46.在一示例实施中,由于机器学习模型训练的原始数据集中的各原始数据之间存在一定的关联性,因此,模型训练不能够单独的基于某一个或某几个第二数据子集进行,需要对全部的第二数据子集进行汇总,将全部的第二数据子集汇总成一个训练数据集,再基于该训练数据集进行机器学习模型的训练。
47.本技术实施例,在其他实施例的基础之上还可以根据机器学习模型训练的特性,将原始数据按照特征要求进行拆分,使得每个第一数据子集中的数据是有关联性的,从而使得各处理器能够更好的对各第一数据子集中的数据进行处理,能够提高耗时的特征加工过程,提高训练速度。
48.本技术的实施例涉及一种模型训练方法,应用在模型训练系统的主处理器中,模型训练系统还包括处理器集群和数据库,如图3所示,具体包括以下步骤。
49.步骤301,根据预设的批次数将原始数据集拆分为各第一数据子集,并根据各批次为各第一数据子集分配各数据标识。
50.在一示例实施中,当需要进行训练的模型为深度学习模型时,由于深度学习模型
的原始数据集中的各原始数据之间是相互独立存在的,此时可以根据预设的批次数将原始数据集拆分成多个第一数据子集(如预设批次数为10,所拆分的第一数据子集也为10个),且每个第一数据子集的数据标识用于区分该第一数据子集属于哪一个批次,在给各第一数据子集分配数据标识需要根据该第一数据子集的批次进行分配。
51.步骤302,将各数据标识和各第一数据子集存入数据库的第一表结构中;以供处理器集群中的各处理器从第一表结构中获取各第一数据子集和各数据标识,对各第一数据子集进行处理生成各第二数据子集,并根据各数据标识将各第二数据子集存入数据库的第二表结构中。
52.在一示例实施中,本步骤与本技术实施例的步骤102大致相同,此处不一一赘述。
53.步骤303,轮询各数据标识,检测本次轮询的数据标识是否存在于第二表结构中。
54.在一示例实施中,主处理器再将各第一数据子集和各数据标识存入数据库中之后,可以开始轮询各数据标识,每轮询到一个数据标识,便检测该数据标识是否存在于数据库的第二表结构中。
55.步骤304,当本次轮询的数据标识存在于第二表结构中时,从第二表结构中获取与本次轮询的数据标识对应的第二数据子集。
56.在一示例实施中,当监测到该数据标识存在于数据库的第二表结构中时,说明该数据标识对应的第一数据子集已经经过处理器进行处理,生成了第二数据子集,此时获取该数据标识对应的第二数据子集,并不再对该数据标识进行轮询;而当监测到该数据标识不存在于数据库的第二表结构中时,说明该数据标识对应的第一数据子集还未经过处理器处理,需要等待处理,该数据标识继续等待下一次轮询。
57.步骤305,将与本次轮询的数据标识对应的第二数据子集加入缓存队列中,并基于缓存队列中的各第二数据子集进行模型训练。
58.在一示例实施中,再获取到本次轮询的数据标识对应的第二数据子集之后,并不是直接对该第二数据子集进行训练,而是将该第二数据子集加入到缓存队列中,进行模型训练时,不断轮询该缓存队列,从缓存队列中取出第二数据子集进行每个批次的训练,直到设定的迭代次数完成。
59.本技术实施例,在其他实施例的基础之上还可以将原始数据集分成不同的第一数据子集,不同的第一数据子集分发到多台处理器中进行独立的数据增强操作,同时处理好的第一数据子集马上加入缓存队列中,模型训练不断的从缓存队列中取出处理好的第一数据子集进行训练,从而减少主处理器进行模型训练等待处理器进行数据处理的时间,提高模型训练速度。
60.本技术的实施例涉及一种模型训练方法,应用在模型训练系统的主处理器中,模型训练系统还包括处理器集群和数据库,如图4所示,具体包括以下步骤。
61.步骤401,将原始数据集拆分为多个第一数据子集,并为各第一数据子集分配数据标识。
62.在一示例实施中,本步骤与本技术实施例的步骤101大致相同,此处不一一赘述。
63.步骤402,对各第一数据子集进行序列化处理,生成各序列化第一数据子集;
64.在一示例实施中,采用二进制(pickle)方式对各第一数据子集进行序列化处理,生成各序列化第一数据子集。
65.步骤403,将各数据标识和各序列化第一数据子集存入数据库的第一表结构中;以供处理器集群中的各处理器从第一表结构中获取各序列化第一数据子集和各数据标识,对各序列化第一数据子集进行处理生成各第二数据子集,并根据各数据标识将各第二数据子集存入数据库的第二表结构中。
66.在一示例实施中,本步骤与本技术实施例的步骤102大致相同,此处不一一赘述。
67.在一示例实施中,由于数据库的第一表结构中存储的是各序列化第一数据子集,各处理器在获取到各序列化第一数据子集之后,需要先对各序列化第一数据子集进行反序列化操作,将其还原为各第一数据子集之后在进行数据处理操作,生成各第二数据子集,在将各第二数据子集存入到数据库的第二表结构之前,同样也需要先对各第二数据子集进行序列化处理,生成各序列化第二数据子集,再根据各数据标识将各序列化第二数据子集存入数据库的第二表结构中。
68.步骤404,从第二表结构中获取各第二数据子集,并基于各第二数据子集进行模型训练。
69.在一示例实施中,本步骤与本技术实施例的步骤103大致相同,此处不一一赘述。
70.本技术实施例,在其他实施例的基础之上还可以对各第一数据子集进行序列化处理,是得各第一数据子集能够更好的进行数据的传输或存储。
71.上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
72.本技术的实施例涉及一种模型训练系统,其特征在于,下面对本实施例的模型训练系统的细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本例的必须,图5是本实施例的模型训练系统的示意图,包括:主处理器501、处理器集群502和数据库503。
73.其中,主处理器501,用于将原始数据集拆分为多个第一数据子集,并为各第一数据子集分配数据标识,将各数据标识和各第一数据子集存入数据库503的第一表结构中。
74.处理器集群502中的各处理器,用于从第一表结构中获取各第一数据子集和各数据标识,对各第一数据子集进行处理生成各第二数据子集,并根据各数据标识将各第二数据子集存入数据库503的第二表结构中。
75.主处理器501,还用于从第二表结构中获取各第二数据子集,并基于各第二数据子集进行模型训练。
76.在一示例实施中,如图6所示,当原始数据集由各原始数据的数据存储地址组成时,模型训练系统还包括用于存储各原始数据的存储模块601。处理器集群502中的各处理器,还用于根据所获取的第一数据子集中的各数据存储地址从存储模块中获取与各数据存储地址对应的各原始数据。
77.不难发现,本实施例为与上述方法实施例对应的系统实施例,本实施例可以与上述方法实施例互相配合实施。上述实施例中提到的相关技术细节和技术效果在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述实施例中。
78.本技术实施例涉及一种电子设备,如图7所示,包括:至少一个处理器701;以及,与所述至少一个处理器701通信连接的存储器702;其中,所述存储器702存储有可被所述至少一个处理器701执行的指令,所述指令被所述至少一个处理器701执行,以使所述至少一个处理器701能够执行上述各实施例中的模型训练方法。
79.其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
80.处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
81.本技术实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
82.即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
83.本领域的普通技术人员可以理解,上述各实施例是实现本技术的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1