1.本技术涉及计算机技术领域,尤其涉及一种训练数据分类模型的方法、装置、设备及存储介质。
背景技术:2.随着科技的不断发展,越来越多的设备可以通过已训练的数据分类模型,来提供数据分类服务,数据分类服务可以用于确定数据的所属类别等。
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.控制所述计算节点接收来自所述多个存储节点的多个验证数据,并采用所述待验证数据分类模型,分别确定所述多个验证数据各自的预测分类;
58.控制所述计算节点,在确定获得的预测分类与相应的分类标签之间的误差满足预设误差条件时,将所述待验证数据分类模型作为所述目标数据分类模型。
59.第三方面,提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面所述的方法。
60.第四方面,提供一种计算机设备,包括:
61.存储器,用于存储程序指令;
62.处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如第一方面所述的方法。
63.第五方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面所述的方法。
64.本技术实施例中,将分布式数据空间与数据分类模型相结合,直接在分布式数据空间包含的多个存储节点上,对待训练数据分类模型进行训练,不需要计算节点向存储节点获取训练数据,以及存储节点向计算节点发送训练数据的过程,提高了训练待训练数据分类模型的效率。
65.进一步的,多个存储节点中每个存储节点训练一个待训练数据分类模型,计算节点再对多个存储节点训练出的已训练数据分类模型进行模型融合,获得目标数据分类模型。多个存储节点可以实现多轮并行训练,进一步提高了训练待训练数据分类模型的效率。
附图说明
66.图1为本技术实施例提供的训练数据分类模型的方法的一种应用场景;
67.图2为本技术实施例提供的训练数据分类模型的方法的一种流程示意图;
68.图3为本技术实施例提供的训练数据分类模型的方法的一种交互示意图一;
69.图4为本技术实施例提供的训练数据分类模型的方法的一种交互示意图二;
70.图5为本技术实施例提供的训练数据分类模型的方法的一种原理示意图一;
71.图6为本技术实施例提供的训练数据分类模型的方法的一种原理示意图二;
72.图7为本技术实施例提供的训练数据分类模型的方法的一种原理示意图三;
73.图8为本技术实施例提供的训练数据分类模型的装置的一种结构示意图一;
74.图9为本技术实施例提供的训练数据分类模型的装置的一种结构示意图二。
具体实施方式
75.为了使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
76.应当说明的是,本技术实施例中,涉及到获取训练数据等相关的数据,当本技术以上实施例运用到具体产品或技术中时,每次获取数据需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
77.下面对本技术实施例提供的训练数据分类模型的方法的应用领域进行简单介绍。
78.随着科技的不断发展,越来越多的设备可以通过已训练的数据分类模型,来提供数据分类服务,数据分类服务可以用于确定数据的所属类别等。
79.相关技术中,获得已训练的数据分类模型的方法,通常是设备先在本地搭建待训练的数据分类模型,再向存储单元发送数据获取请求,由存储单元基于数据获取请求向设备返回各个训练数据。设备基于获得的各个训练数据,在本地对数据分类模型进行多轮迭
代训练之后,可以获得已训练的数据分类模型。从而,在获得已训练的数据分类模型时,设备可以从存储单元中读取出各个存储数据,采用数据分类模型依次对存储数据进行数据分类。
80.例如,大数据时代的到来,使得设备越来越依存于高性能的服务与海量的存储空间,同时,越来越多的设备需要数据库既包含传统的交易功能,还包括分析过程,使得越来越多的设备使用混合数据库(hybrid transactional/analytical processing,htap),由于混合数据库同时支持事务处理与分析处理,集群规模与机器规格通常要求较高,因此传统的数据库架构已无法满足训练数据分类模型的要求,将大数据开发与分布式混合数据库进行结合也逐渐成为一种趋势。
81.然而,设备需要向存储单元发送数据获取请求,并等待存储单元响应该数据获取请求之后,才可以获得各个训练数据,使得获取训练数据的过程较为复杂,从而造成训练数据分类模型的效率较低的问题。
82.例如,一些利用了混合数据库的分布式特性将数据进行分布式存储的方案中,仅减轻单一机器的存储与查询压力,从训练数据分类模型的角度上,仍然存在训练效率较低的问题。
83.可见,相关技术中,训练数据分类模型的效率较低。
84.为了解决训练数据分类模型的效率较低的问题,本技术提出一种数据分类模型的方法。该方法基于接收的数据选取指令,分别控制多个存储节点,从存储的各个备选数据中,选取多个备选数据作为多个训练数据。分别控制多个存储节点,基于多个训练数据,对相应的待训练数据分类模型进行多轮迭代训练,获得多个已训练数据分类模型。控制计算节点从多个存储节点获取多个已训练数据分类模型,并对多个已训练数据分类模型进行模型融合,获得目标数据分类模型。
85.本技术实施例中,将分布式数据空间与数据分类模型相结合,直接在分布式数据空间包含的多个存储节点上,对待训练数据分类模型进行训练,不需要计算节点向存储节点获取训练数据,以及存储节点向计算节点发送训练数据的过程,提高了训练待训练数据分类模型的效率。
86.进一步的,多个存储节点中每个存储节点训练一个待训练数据分类模型,计算节点再对多个存储节点训练出的已训练数据分类模型进行模型融合,获得目标数据分类模型。多个存储节点可以实现多轮并行训练,进一步提高了训练待训练数据分类模型的效率。
87.下面对本技术提供的训练数据分类模型的方法的应用场景进行说明。
88.请参考图1,为本技术提供的训练数据分类模型的方法的一种应用场景示意图。该应用场景中包括客户端101和服务端102。客户端101和服务端102之间可以通信。通信方式可以是采用有线通信技术进行通信,例如,通过连接网线或串口线进行通信;也可以是采用无线通信技术进行通信,例如,通过蓝牙或无线保真(wireless fidelity,wifi)等技术进行通信,具体不做限制。
89.客户端101泛指可以向服务端102发送指令的设备,例如,终端设备、终端设备可以访问的第三方应用程序或终端设备可以访问的网页等。终端设备包括但不限于手机、电脑、智能交通设备、智能电器等。服务端102泛指可以训练并使用数据分类模型的设备,例如,终端设备或服务器等。服务器包括但不限于云服务器、本地服务器或关联的第三方服务器等。
客户端101和服务端102均可以采用云计算,以减少本地计算资源的占用;同样也可以采用云存储,以减少本地存储资源的占用。
90.作为一种实施例,客户端101和服务端102可以是同一个设备,例如,本技术实施例可以仅通过客户端101实现,也可以仅通过服务端102实现等,具体不做限制。本技术实施例中,以客户端101和服务端102分别为不同的设备为例进行介绍。
91.下面基于图1,以服务端102为服务器为例,对本技术实施例提供的训练数据分类模型的方法进行具体介绍。该方法应用于分布式数据空间,分布式数据空间包括计算节点和多个存储节点,计算节点用于处理数据,存储节点用于存储数据。
92.请参考图2,为本技术实施例提供的训练数据分类模型的方法的一种流程示意图。
93.s201,基于接收的数据选取指令,分别控制多个存储节点,从存储的各个备选数据中,选取多个备选数据作为多个训练数据。
94.客户端可以向服务器发送数据选取指令,服务器接收客户端发送的数据选取指令,从而可以基于接收的数据选取指令,分别控制多个存储节点,从存储的各个备选数据中,选取多个备选数据作为多个训练数据。数据选取指令可以是sql语句,用于从多少存储节点中选取多个训练数据。
95.多个存储节点上存储了各个备选数据,一个存储节点上存储的一个备选数据,可以在其他存储节点上相应的存储该一个备选数据的备份数据,备份数据可以作为其他存储节点上存储的备选数据,从而可以避免备选数据丢失,或某一存储节点上存在读取延时等情况时造成的备选数据长时间无法读取的情况等。
96.从存储的各个备选数据中,选取多个备选数据作为多个训练数据,可以是从各个备选数据中,选取一个存储节点上存储的多个备选数据作为多个训练数据;也可以从各个备选数据中,选取多个存储节点上存储的多个备选数据作为多个训练数据等,具体不做限制。
97.作为一种实施例,在获取多个训练数据之前,客户端可以向服务器发送创建模型指令,服务器接收来自客户端的创建模型指令。创建模型指令可以用于指示创建某一模型结构的待训练数据分类模型,例如,服务器中存储了多种模型结构的待训练数据分类模型,不同模型结构的待训练数据分类模型具有不同的模型名称,从而客户端可以通过创建模型指令,指示服务器创建某一模型名称的待训练数据分类模型。又例如,创建模型指令可以携带待训练数据分类模型的模型结构,从而服务器可以通过创建模型指令,建立相应模型结构的待训练数据分类模型。
98.服务器接收来自客户端的创建模型指令时,建立客户端与计算节点之间的通信连接,从而客户端可以与服务区进行数据交互。
99.创建模型指令还可以携带初始模型参数,服务器可以基于初始模型参数,按照创建模型指令指示的模型结构,在计算节点上搭建待训练数据分类模型。服务器还可以基于初始模型参数,按照默认的模型结构,在计算节点上搭建待训练数据分类模型等,具体不做限制。
100.例如,客户端可以与服务器包含的计算节点建立通信连接,客户端可以通过sql接口,向计算节点发送sql语句,即发送创建模型指令。如sql语句为,create model name with
‘
type’=
‘
nlp’,
‘
t1’=
‘
v1’,
‘
t2’=
‘
v2’。该sql语句用于创建一个名为“name”的数据
分类模型的模型结构,同时,初始化该数据分类模型的初始模型参数,即初始模型参数“t1”的取值设为“v1”,初始模型参数“t2”的取值设为“v2”。
101.服务器可以将数据分类模型的模型结构和初始模型参数,存入分布式数据空间中,用于存储模型相关数据的子控件中,例如,分布式数据空间为混合数据库时,可以将数据分类模型的名称和初始模型参数,存储在混合数据库中的model-federated-learning库中,在model-federated-learning库中创建一个名为“name”的表,设置名为“t1”和“t2”的两个字段,并分别赋予相应的取值。
102.服务器可以继续通过sql接口,向计算节点发送sql语句,由计算节点将sql语句转发给多个存储节点,用于控制多个存储节点,从存储的各个备选数据中,选取多个备选数据作为多个训练数据。例如,sql语句为,train model name with
‘
select a’。该sql语句可以作为数据选取指令,也可以同时作为模型训练指令,用于指示多个存储节点选取数据a,对名为“name”的模型进行训练。
103.在获得待训练数据分类模型之后,服务器可以控制计算节点,将待训练数据分类模型下发至多个存储节点,由多个存储节点来对待训练数据分类模型进行训练,不需要计算节点与存储节点之间传输训练数据,减少不必要的网络交互。计算节点可以通过并行计算接口,将待训练数据分类模型下发至多个存储节点,由于待训练数据分类模型的模型结构和初始模型参数已经存储在了分布式数据空间中,因此,计算节点可以通过并行计算接口,将模型的名称发送至多个存储节点即可,不需要传输额外的数据,减少网络交互。
104.作为一种实施例,控制计算节点,将待训练数据分类模型下发至多个存储节点的过程可以是在待训练数据分类模型创建好之后,可以先控制计算节点,将待训练数据分类模型存入缓存中。在确定计算节点接收来自客户端的模型训练指令时,控制计算节点向多个存储节点转发模型训练指令。从而,多个存储节点在接收到模型训练指令时,可以从缓存中读取待训练数据分类模型,达到分别控制多个存储节点在接收到模型训练指令时,从缓存中读取待训练数据分类模型的目的。从而,计算节点不需要在获得待训练数据分类模型时,就实时下发给存储节点,而是可以先存储在缓存中,在存储节点需要使用待训练数据分类模型时,再从缓存中获取,提高了训练灵活性。
105.s202,分别控制多个存储节点,基于多个训练数据,对相应的待训练数据分类模型进行多轮迭代训练,获得多个已训练数据分类模型。
106.在选出多个训练数据之后,服务器可以分别控制多个存储节点,基于多个训练数据,对相应的待训练数据分类模型进行多轮迭代训练,获得多个已训练数据分类模型。每个存储节点对应一个待训练数据分类模型,使得多个存储节点可以进行多轮并行训练,提高了训练效率。
107.下面以一轮迭代训练的过程为例,每轮迭代训练的过程类似,在此不再赘述。
108.在一轮迭代训练过程中,服务器可以分别控制多个存储节点基于一个训练数据,对相应的待训练数据分类模型进行一轮迭代训练,获得相应的训练损失,并统计相应的训练时长。每个存储节点对应一个待训练数据分类模型,每个待训练数据分类模型对应一个训练损失和一个训练时长。服务器可以在存储节点开始基于一个训练数据,对待训练数据分类模型进行训练时,开始计时,在获得训练损失时,结束计时。
109.服务器可以分别控制多个存储节点,确定获得的训练损失是否满足相应的训练目
标,确定获得的训练损失不满足相应的训练目标时,调整相应的待训练数据分类模型的模型参数,并进入下一轮迭代训练。
110.如果在确定统计的训练时长超过相应的预设时长时,还没有获得相应的训练损失,那么可以不再获取相应的训练损失,直接调整相应的待训练数据分类模型的模型参数,并进入下一轮迭代训练,避免在一轮训练过程耗时较长,或在一轮训练过程中出现训练异常等问题,而导致整个多轮迭代训练过程无法推进的情况。
111.确定获得的训练损失满足相应的训练目标时,获得多个已训练数据分类模型。服务器可以没控制一个存储节点确定获得的训练损失满足相应的训练目标时,获得一个已训练数据分类模型,直到所有存储节点均获得相应的已训练数据分类模型为止。
112.例如,各个存储节点先在本机存储的各个备选数据中,根据sql语句的指示选择训练数据,再基于训练数据对sql语句指示的初始模型参数下的待训练数据分类模型进行多轮迭代训练,通过多轮迭代训练后每个存储节点可以得到该存储节点训练出的训练模型参数,即获得训练模型参数下的已训练数据分类模型。
113.每一轮迭代训练设置有时间限制,即预设时长,计算节点不能无限等待存储节点的训练结果,那么存储节点结束本次本轮迭代训练的标志除了训练损失收敛以外,还有所使用的训练时间已经超过计算节点所设置的预设时长。存储节点在使用本机存储的训练数据训练完毕,获得训练模型参数下的已训练数据分类模型。
114.s203,控制计算节点从多个存储节点获取多个已训练数据分类模型,并对多个已训练数据分类模型进行模型融合,获得目标数据分类模型。
115.在多个存储节点均获得已训练数据分类模型之后,服务器可以控制计算节点从多个存储节点获取多个已训练数据分类模型,并对多个已训练数据分类模型进行模型融合,获得目标数据分类模型。由于每个存储节点对待训练数据分类模型的训练效果不同,因此得到的已训练数据分类模型也各不相同。服务器可以控制计算节点对多个已训练数据分类模型进行模型融合,获得统一的目标数据分类模型。
116.作为一种实施例,如果客户端通过创建模型指令指示了数据分类模型的模型结构,那么服务器在控制计算节点,从多个存储节点获取多个已训练数据分类模型时,可以控制计算节点,从多个存储节点获取多个已训练数据分类模型的训练模型参数,对获得的各训练模型参数进行加权融合,获得综合模型参数。从而服务器可以控制计算节点,基于综合模型参数和创建模型指令指示的模型结构,搭建目标数据分类模型。
117.作为一种实施例,在基于综合模型参数,获得目标数据分类模型时,服务器可以先控制计算节点,基于综合模型参数和已训练数据分类模型的模型结构,搭建待验证数据分类模型。分别控制多个存储节点,从存储的各个备选数据中,选取多个备选数据分别作为多个验证数据,其中,验证数据具有关联的分类标签。控制计算节点接收来自多个存储节点的多个验证数据,并采用待验证数据分类模型,分别确定多个验证数据各自的预测分类。控制计算节点,在确定获得的预测分类与相应的分类标签之间的误差满足预设误差条件时,将待验证数据分类模型作为目标数据分类模型。在对多个已训练数据分类模型进行模型融合之后,可以对融合后的模型进行精度验证,在精度达到要求时,获得目标数据分类模型,在精度没有达到要求时,继续对多个已训练数据分类模型进行多轮迭代训练,直到模型融合后的模型的精度达到要求为止,避免训练出的多个已训练数据分类模型在模型融合后的分
类效果不好的情况。
118.例如,获得训练模型参数下的已训练数据分类模型之后,存储节点可以将该训练模型参数发送给计算节点。计算节点在收到存储节点发送的训练模型参数之后,可以使用fedavg算法对各个存储节点发送的训练模型参数进行融合,并使用存储在分布式数据空间,如分布式混合数据库中的数据对模型进行精度验证。当精度未达到要求时,开启下一轮的联邦学习训练。当精度满足要求时,将得到的全局模型写入混合数据库,并返回训练结果给用户。
119.计算节点可以看做为master节点,多个存储节点可以分别看做slave节点。master节点负责下发训练模型指令,以及融合训练模型参数获得目标数据分类模型,master节点还可以判断是否到达全局收敛的状态以结束本次学习。slave节点则负责使用初始模型数据进行模型训练,同时反馈迭代训练后的训练模型参数。
120.作为一种实施例,在获得目标数据分类模型之后,计算节点可以使用目标数据分类模型提供数据分类服务。接收来自客户端的数据查询检索指令之后,根据查询检索指令包含的关键词和检索范围,计算节点可以从各存储节点中获取符合检索范围的备选数据,再采用目标数据分类模型,从符合检索范围的备选数据筛选包含关键词的目标数据。
121.例如,计算节点在获得综合模型参数之后,可以通过内置函数apply来使用目标数据分类模型。客户端通过sql接口向计算节点发送sql语句,sql语句为,select*from image where apply(
‘
image-model’=
‘
car’。该sql语句用于采用名为
‘
image-model’的目标数据分类模型,在表image中,查找包含关键词
‘
car’的目标数据。
122.本技术实施例中,相较于已有的众多大数据与混合数据库结合的方案,将大数据的模型训练引入混合数据库集群中,充分发挥混合数据库集群的高性能与分布式存储的优势。混合数据库为了同时支持事务查询与分析查询,通常所使用的集群规模较大且机器规格较高,提供了将大数据进行分布式存储并进行模型训练的基础。通过将数据样本分布到多个节点上,达到在多个节点上进行分布式训练的目的,然后由单一节点进行参数的汇总,并获得一个最终的模型。
123.进一步的,本技术实施例中,设计相应的选取训练数据,以及训练模型的sql接口,使得用户可以通过sql语句的形式更为方便与直接地使用混合数据库完成大数据开发。
124.本技术实施例中,可以满足大数据的海量存储要求,并通过多副本的节点间数据调度方案实现高可用,充分利用混合数据库的分布式特性与高性能优势。用户可以通过sql接口,以及内置函数,对模型进行训练和使用,降低用户的学习成本,更为方便且直接地操作基于混合数据库的联邦学习大数据系统,有利于产品的推广实施。
125.请参考图3,为训练待训练数据分类模型时,客户端、计算节点和存储节点之间的一种交互示意图,以一个存储节点为例进行介绍。
126.s301,客户端向服务器中的分布式数据空间包含的计算节点发送创建模型指令,创建模型指令中携带有模型结构的名称和初始模型参数。计算节点接收客户端发送的创建模型指令,获得模型结构的名称和初始模型参数。
127.s302,计算节点基于创建模型指令,以相应名称的模型结构和初始模型参数搭建待训练数据分类模型。
128.s303,计算节点将待训练数据分类模型发送至存储节点,计算节点可以先存储待
训练数据分类模型的模型结构的名称和初始训练参数,再将待训练数据分类模型的模型结构的名称和初始训练参数发送至存储节点,存储节点接收计算节点发送的待训练数据分类模型的模型结构的名称和初始训练参数,蝴蝶待训练数据分类模型。
129.s304,客户端向该计算节点发送数据选取指令,数据选取指令可以用于指示选取存储节点上的多个备选数据作为多个训练数据。计算节点接收客户端发送的数据选取指令,并将数据选取指令转发至存储节点。存储节点接收计算节点转发的数据选取指令。
130.s305,存储节点基于数据选取指令,选取多个备选数据作为多个训练数据。
131.s306,存储节点基于多个训练数据,对相应的待训练数据分类模型进行多轮迭代训练,获得已训练数据分类模型。
132.s307,存储节点在获得已训练数据分类模型之后,将已训练数据分类模型发送至计算节点。存储节点可以仅将已训练数据分类模型的训练模型参数发送至计算节点。计算节点接收存储节点发送的已训练数据分类模型,即训练模型参数。
133.s308,计算节点在获得各个存储节点发送的已训练数据分类模型之后,对获得的多个已训练数据分类模型进行模型融合,获得目标数据分类模型。计算节点在获得各个存储节点发送的训练模型参数之后,可以对获得的各个训练模型参数进行加权融合,获得综合模型参数,基于综合模型参数和待训练数据分类模型的模型结构,获得目标数据分类模型。
134.请参考图4,为使用待训练数据分类模型时,客户端、计算节点和存储节点之间的一种交互示意图,以一个存储节点为例进行介绍。
135.s401,客户端向服务器中的分布式数据空间包含的计算节点发送数据检索指令,数据检索指令用于在各个存储节点上存储的备选数据中,查找目标数据。数据检索指令可以包含目标数据分类模型、检索范围和关键信息。
136.s402,计算节点基于数据检索指令,从多个存储节点中获取在检索范围内的备选数据。存储节点向计算节点发送本机存储的在检索范围内的备选数据。
137.s403,计算节点采用目标数据分类模型,查找目标数据。计算节点采用目标数据分类模型,在检索范围内的备选数据中,查找包含关键信息的目标数据。
138.下面对本技术实施例提供的训练数据分类模型,以及使用训练出的目标数据分类模型的方法进行示例介绍。请参考图5,为一种结构示意图。客户端可以与服务器之间进行数据交互,服务器可以通过负载均衡的方式选取多个计算节点中的至少一个计算节点进行数据处理。计算节点是无状态节点,不用于存储数据,当增加计算节点时能够获得线性的性能提升。
139.该至少一个计算节点可以与存储节点集群进行数据交互,存储节点为了同时支持事务型查询与分析型查询,分为行存节点与列存节点,数据在经过分片后会以多个副本的形式存储到多个存储节点上,达到高可用与并行查询到目的。数据分片的方案满足了大数据开发海量存储的需要,同时可以通过并行查询的方式提高查询效率。
140.行存节点的存储方式与传统的数据库存储方式一致,以行为单位在存储介质中存储用户数据。而列存节点则将一行中的各个字段进行拆分,按每个字段即一列来存储数据。传统的事务型查询需要读取完整的数据,此时就可以通过行存节点进行分布式的查询。分析型事务查询通常只需要读取一行数据中的某些字段,这个时候就可以通过列存节点按列
读取减少磁盘的开销,进而减少查询时间。对于具体是选择行存节点还是列存节点进行读取,会由计算节点根据用户所输入的sql语句进行选择。同时提供行存与列存对大数据开发来说,可以更方便地进行数据的读取与分析。
141.请参考图6,除了计算节点和存储节点以外,还可以包括管理节点,管理节点的作用是协调各个存储节点上的副本,当某个存储节点出现热点数据时,管理节点需要及时将该副本分散到其他多个存储节点上,避免对混合数据库造成压力。此外,管理节点上存储了所有副本的存放信息,当计算节点中缓存的副本存放信息过期时需要向管理节点进行请求。
142.请参考图7,为本技术实施例提供的训练数据分类模型,以及使用训练出的目标数据分类模型的方法一种原理示意图。
143.客户端响应于用户触发的第一输入操作,向服务器中的计算节点发送创建模型指令,第一输入操作用于输入sql语句,该sql语句为“create model name with
‘
type’=
‘
gan’,
‘
k1’=
‘
v1’,
‘
k2’=
‘
v2’。该sql语句用于在计算节点上创建一个名为
‘
name’,类型为
‘
gan’的待训练数据分类模型的模型结构,待训练数据分类模型的模型参数为
‘
k1’=
‘
v1’,
‘
k2’=
‘
v2’。
144.响应于用户触发的第二输入操作,向计算节点发送数据选取指令,第二输入操作用于输入sql语句,该sql语句为“train model name with
‘
select a
’”
。该sql语句可以用于控制计算节点向多个存储节点下发待训练数据分类模型,还可以用于在存储节点上选取多个训练数据。
145.各个存储节点获得待训练数据分类模型,并选取出多个训练数据之后,开启第一轮迭代训练。各个存储节点对存储的数据按照用户的选择语句进行处理并进行迭代训练,收敛或超时后将训练得到的训练模型参数返回给发起分布式训练的计算节点。计算节点使用fedavg算法对各个存储节点返回的训练模型参数进行融合获得综合模型参数,并判断所获得的综合模型参数下的数据分类模型是否到达收敛目标,没有到达的时候开启下一轮的迭代训练,到达全局收敛后则结束迭代训练,获得目标数据分类模型。
146.在获得目标数据分类模型之后,响应于用户触发的第三输入操作,向计算节点发送数据检索指令,计算节点通过内置函数“apply”使用目标数据分类模型。第三输入操作可以是输入sql语句的操作,该sql语句为“select*from xxx where apply(
‘
name’,yyy.img)=
‘
zzz
’”
。sql语句用于使用名为
‘
name’的目标数据分类模型,在表xxx中,查找包含图像yyy.img的目标数据。
147.基于同一发明构思,本技术实施例提供一种训练数据分类模型的装置,能够实现前述的训练数据分类模型的方法对应的功能。请参考图6,该装置包括获取模块801和处理模块802,其中:
148.获取模块801:用于基于接收的数据选取指令,分别控制多个存储节点,从存储的各个备选数据中,选取多个备选数据作为多个训练数据;
149.处理模块802:用于分别控制多个存储节点,基于多个训练数据,对相应的待训练数据分类模型进行多轮迭代训练,获得多个已训练数据分类模型;
150.处理模块802还用于:控制计算节点从多个存储节点获取多个已训练数据分类模型,并对多个已训练数据分类模型进行模型融合,获得目标数据分类模型。
151.在一种可能的实施例中,处理模块802还用于:
152.在分别控制多个存储节点,从存储的各个备选数据中,选取多个备选数据作为多个训练数据之前,接收来自客户端的创建模型指令时,建立客户端与计算节点之间的通信连接,其中,创建模型指令携带初始模型参数;
153.基于初始模型参数,在计算节点上搭建待训练数据分类模型;
154.控制计算节点,将待训练数据分类模型下发至多个存储节点。
155.在一种可能的实施例中,处理模块802具体用于:
156.控制计算节点,将待训练数据分类模型存入缓存中;
157.接收来自客户端的模型训练指令,并控制计算节点向多个存储节点转发模型训练指令;
158.分别控制多个存储节点在接收到模型训练指令时,从缓存中读取待训练数据分类模型。
159.在一种可能的实施例中,处理模块802具体用于:
160.在每轮迭代训练的过程中,执行以下操作:
161.分别控制多个存储节点基于一个训练数据,对相应的待训练数据分类模型进行一轮迭代训练,获得相应的训练损失,并统计相应的训练时长;
162.分别控制多个存储节点,确定获得的训练损失不满足相应的训练目标时,或确定统计的训练时长超过相应的预设时长时,进入下一轮迭代训练;
163.分别控制多个存储节点,确定获得的训练损失满足相应的训练目标时,获得多个已训练数据分类模型。
164.在一种可能的实施例中,处理模块802具体用于:
165.控制计算节点,从多个存储节点获取多个已训练数据分类模型;
166.控制计算节点,对获得的各已训练数据分类模型的训练模型参数进行加权融合,获得综合模型参数;
167.控制计算节点,基于综合模型参数和已训练数据分类模型的模型结构,搭建目标数据分类模型。
168.在一种可能的实施例中,处理模块802具体用于:
169.控制计算节点,基于综合模型参数和已训练数据分类模型的模型结构,搭建待验证数据分类模型;
170.分别控制多个存储节点,从存储的各个备选数据中,选取多个备选数据分别作为验证数据,其中,验证数据具有关联的分类标签;
171.控制计算节点接收来自多个存储节点的多个验证数据,并采用待验证数据分类模型,分别确定多个验证数据各自的预测分类;
172.控制计算节点,在确定获得的预测分类与相应的分类标签之间的误差满足预设误差条件时,将待验证数据分类模型作为目标数据分类模型。
173.请参照图9,上述训练数据分类模型的装置可以运行在计算机设备900上,数据存储程序的当前版本和历史版本以及数据存储程序对应的应用软件可以安装在计算机设备900上,该计算机设备900包括处理器980以及存储器920。在一些实施例中,该计算机设备900可以包括显示单元940,显示单元940包括显示面板941,用于显示由用户交互操作界面
等。
174.在一种可能的实施例中,可以采用液晶显示器(liquid crystal display,lcd)或有机发光二极管oled(organic light-emitting diode)等形式来配置显示面板941。
175.处理器980用于读取计算机程序,然后执行计算机程序定义的方法,例如处理器980读取数据存储程序或文件等,从而在该计算机设备900上运行数据存储程序,在显示单元940上显示对应的界面。处理器980可以包括一个或多个通用处理器,还可包括一个或多个dsp(digital signal processor,数字信号处理器),用于执行相关操作,以实现本技术实施例所提供的技术方案。
176.存储器920一般包括内存和外存,内存可以为随机存储器(ram),只读存储器(rom),以及高速缓存(cache)等。外存可以为硬盘、光盘、usb盘、软盘或磁带机等。存储器920用于存储计算机程序和其他数据,该计算机程序包括各客户端对应的应用程序等,其他数据可包括操作系统或应用程序被运行后产生的数据,该数据包括系统数据(例如操作系统的配置参数)和用户数据。本技术实施例中程序指令存储在存储器920中,处理器980执行存储器920中的程序指令,实现前文图论述的任意的一种方法。
177.上述显示单元940用于接收输入的数字信息、字符信息或接触式触摸操作/非接触式手势,以及产生与计算机设备900的用户设置以及功能控制有关的信号输入等。具体地,本技术实施例中,该显示单元940可以包括显示面板941。显示面板941例如触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在显示面板941上或在显示面板941的操作),并根据预先设定的程式驱动相应的连接装置。
178.在一种可能的实施例中,显示面板941可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测玩家的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器980,并能接收处理器980发来的命令并加以执行。
179.其中,显示面板941可以采用电阻式、电容式、红外线以及表面声波等多种类型实现。除了显示单元940,在一些实施例中,计算机设备900还可以包括输入单元930,输入单元930可以包括图像输入设备931和其他输入设备932,其中其他输入设备可以但不限于包括物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
180.除以上之外,计算机设备900还可以包括用于给其他模块供电的电源990、音频电路960、近场通信模块970和rf电路910。计算机设备900还可以包括一个或多个传感器950,例如加速度传感器、光传感器、压力传感器等。音频电路960具体包括扬声器961和麦克风962等,例如计算机设备900可以通过麦克风962采集用户的声音,进行相应的操作等。
181.作为一种实施例,处理器980的数量可以是一个或多个,处理器980和存储器920可以是耦合设置,也可以是相对独立设置。
182.作为一种实施例,图9中的处理器980可以用于实现如图8中的获取模块801和处理模块802的功能。
183.作为一种实施例,图9中的处理器980可以用于实现前文论述的服务器或终端设备对应的功能。
184.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过
程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
185.或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,例如,通过计算机程序产品体现,该计算机程序产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
186.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
187.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
技术特征:1.一种训练数据分类模型的方法,其特征在于,应用于分布式数据空间,所述分布式数据空间包括计算节点和多个存储节点,所述计算节点用于处理数据,所述存储节点用于存储数据,包括:基于接收的数据选取指令,分别控制所述多个存储节点,从存储的各个备选数据中,选取多个备选数据作为多个训练数据;分别控制所述多个存储节点,基于所述多个训练数据,对相应的待训练数据分类模型进行多轮迭代训练,获得多个已训练数据分类模型;控制所述计算节点从所述多个存储节点获取所述多个已训练数据分类模型,并对所述多个已训练数据分类模型进行模型融合,获得目标数据分类模型。2.根据权利要求1所述的方法,其特征在于,在分别控制所述多个存储节点,从存储的各个备选数据中,选取多个备选数据作为多个训练数据之前,还包括:接收来自客户端的创建模型指令时,建立所述客户端与所述计算节点之间的通信连接,其中,所述创建模型指令携带初始模型参数;基于所述初始模型参数,在所述计算节点上搭建待训练数据分类模型;控制所述计算节点,将所述待训练数据分类模型下发至所述多个存储节点。3.根据权利要求2所述的方法,其特征在于,控制所述计算节点,将所述待训练数据分类模型下发至所述多个存储节点,包括:控制所述计算节点,将所述待训练数据分类模型存入缓存中;接收来自所述客户端的模型训练指令,并控制所述计算节点向所述多个存储节点转发所述模型训练指令;分别控制所述多个存储节点在接收到所述模型训练指令时,从缓存中读取所述待训练数据分类模型。4.根据权利要求1所述的方法,其特征在于,分别控制所述多个存储节点,基于选取的多个训练数据,对相应的待训练数据分类模型进行多轮迭代训练,获得多个已训练数据分类模型,包括:在每轮迭代训练的过程中,执行以下操作:分别控制所述多个存储节点基于一个训练数据,对相应的待训练数据分类模型进行一轮迭代训练,获得相应的训练损失,并统计相应的训练时长;分别控制所述多个存储节点,确定获得的训练损失不满足相应的训练目标时,或确定统计的训练时长超过相应的预设时长时,进入下一轮迭代训练;分别控制所述多个存储节点,确定获得的训练损失满足相应的训练目标时,获得多个已训练数据分类模型。5.根据权利要求1所述的方法,其特征在于,控制所述计算节点从所述多个存储节点获取所述多个已训练数据分类模型,并对所述多个已训练数据分类模型进行模型融合,获得目标数据分类模型,包括:控制所述计算节点,从所述多个存储节点获取所述多个已训练数据分类模型;控制所述计算节点,对获得的各已训练数据分类模型的训练模型参数进行加权融合,获得综合模型参数;控制所述计算节点,基于所述综合模型参数和所述已训练数据分类模型的模型结构,
搭建所述目标数据分类模型。6.根据权利要求5所述的方法,其特征在于,控制所述计算节点,基于所述综合模型参数和所述已训练数据分类模型的模型结构,搭建所述目标数据分类模型,包括:控制所述计算节点,基于所述综合模型参数和所述已训练数据分类模型的模型结构,搭建待验证数据分类模型;分别控制所述多个存储节点,从存储的各个备选数据中,选取多个备选数据分别作为多个验证数据,其中,所述验证数据具有关联的分类标签;控制所述计算节点接收来自所述多个存储节点的所述多个验证数据,并采用所述待验证数据分类模型,分别确定所述多个验证数据各自的预测分类;控制所述计算节点,在确定获得的预测分类与相应的分类标签之间的误差满足预设误差条件时,将所述待验证数据分类模型作为所述目标数据分类模型。7.一种训练数据分类模型的装置,其特征在于,应用于分布式数据空间,所述分布式数据空间包括计算节点和多个存储节点,所述计算节点用于处理数据,所述存储节点用于存储数据,包括:获取模块:用于基于接收的数据选取指令,分别控制所述多个存储节点,从存储的各个备选数据中,选取多个备选数据作为多个训练数据;处理模块:用于分别控制所述多个存储节点,基于所述多个训练数据,对相应的待训练数据分类模型进行多轮迭代训练,获得多个已训练数据分类模型;所述处理模块还用于:控制所述计算节点从所述多个存储节点获取所述多个已训练数据分类模型,并对所述多个已训练数据分类模型进行模型融合,获得目标数据分类模型。8.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1~6中任一项所述的方法。9.一种计算机设备,其特征在于,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如权利要求1~6中任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1~6中任一项所述的方法。
技术总结本申请提供一种训练数据分类模型的方法、装置、设备及存储介质,可以应用于人工智能领域或大数据领域等,用于训练数据分类模型的效率较低的问题。该方法包括:基于接收的数据选取指令,分别控制所述多个存储节点,从存储的各个备选数据中,选取多个备选数据作为多个训练数据;分别控制所述多个存储节点,基于所述多个训练数据,对相应的待训练数据分类模型进行多轮迭代训练,获得多个已训练数据分类模型;控制所述计算节点从所述多个存储节点获取所述多个已训练数据分类模型,并对所述多个已训练数据分类模型进行模型融合,获得目标数据分类模型。分类模型。分类模型。
技术研发人员:陈羽飞 温文鎏 李振达 姬永飞 邓祺 吕图 杨傲 谢黎颖 尹志华 李铭昊
受保护的技术使用者:天翼云科技有限公司
技术研发日:2022.07.15
技术公布日:2022/11/1