本发明涉计算机应用技术领域,特别是涉及一种模型训练方法、装置、电子设备及存储介质。
背景技术:
在机器学习过程中,通过从不同用户设备中收集大量的数据集和标注数据作为训练数据,并将该训练数据发送给服务端。服务端根据接收到的训练数据,对模型进行训练及测试,得到训练好的模型。
在上述机器学习过程中,由于收集到的训练数据中涉及大量的用户隐私,在将训练数据发送给服务端,以及服务端根据接收到的训练数据对模型进行训练时,训练数据均存在泄露的风险,从而导致用户隐私泄露的风险。
技术实现要素:
本发明实施例的目的在于提供一种模型训练方法、装置、电子设备及存储介质,以降低用户隐私泄露的风险。具体技术方案如下:
本发明实施例提供了一种模型训练方法,应用于服务端,所述方法包括:
确定多个训练设备;
向所述多个训练设备发送训练指令,所述训练指令包括第一模型参数;
接收每一训练设备发送的第二模型参数,所述第二模型参数为所述训练设备基于所述训练指令和训练数据,对预设模型进行训练得到的,所述训练数据是根据所述训练设备中的用户数据确定的;
根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数;
判断包括所述第三模型参数的预设模型是否收敛;
若收敛,则将所述第三模型参数确定为所述预设模型训练完成后的模型参数。
可选的,若包括所述第三模型参数的预设模型未收敛,则将所述第三模型参数作为所述第一模型参数,返回执行所述确定多个训练设备的步骤。
可选的,所述确定多个训练设备的步骤,包括:
接收多个用户设备发送的训练请求,将所述多个用户设备作为多个训练设备。
可选的,在向多个训练设备发送训练指令之后,还包括:
检测是否接收到其他用户设备发送的训练请求;
若接收到其他用户设备发送的训练请求,则判断所述多个训练设备是否正在对所述预设模型进行训练;
若正在对所述预设模型进行训练,则向所述其他用户设备发送包含预设时间的等待指令,以使所述其他用户设备根据所述等待指令,在所述预设时间后重新向所述服务端发送训练请求。
可选的,所述判断包括所述第三模型参数的预设模型是否收敛的步骤,包括:
获取预设的测试数据;
将所述第三模型参数加载到所述预设模型中;
将所述测试数据输入到包括所述第三模型参数的预设模型中,得到输出结果;
确定所述输出结果对应的损失值;
判断所述损失值是否大于损失值阈值;
若是,则确定包括所述第三模型参数的预设模型未收敛;
若否,则确定包括所述第三模型参数的预设模型收敛。
可选的,所述根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数的步骤,包括:
利用联合平均算法,对接收到的多个第二模型参数进行处理,得到第三模型参数;或
确定训练得到每一第二模型参数的时长,作为训练时长;利用联合平均算法,对训练时长不大于第一时间阈值的多个第二模型参数进行处理,得到第三模型参数。
可选的,在根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数之前,还包括:
统计第二时间阈值内接收到的第二模型参数的数量;
判断所述数量是否大于预设数量阈值;
所述根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数的步骤,包括:
若大于所述预设数量阈值,则根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数。
可选的,所述方法还包括:
若不大于所述预设数量阈值,则返回执行所述确定多个训练设备的步骤。
可选的,在将所述第三模型参数确定为所述预设模型训练完成后的模型参数之后,还包括:
接收待更新设备发送的对所述预设模型进行更新的更新请求;
向所述待更新设备发送所述第三模型参数,以使所述待更新设备根据所述第三模型参数更新所述预设模型的模型参数。
本发明实施例还提供了一种模型训练方法,应用于训练设备,所述方法包括:
获取训练数据,所述训练数据是根据所述训练设备中的用户数据确定的;
检测是否接收到服务端发送的训练指令,所述训练指令包括第一模型参数;
若是,则基于所述训练指令和所述训练数据,对预设模型进行训练,得到第二模型参数;
向所述服务端发送所述第二模型参数,以使所述服务端在接收到多个训练设备发送的第二模型参数后,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数,判断包括所述第三模型参数的预设模型是否收敛,若收敛,则将所述第三模型参数确定为所述预设模型训练完成后的模型参数。
可选的,在检测是否接收到服务端发送的训练指令之前,还包括:
向服务端发送训练请求。
可选的,在向服务端发送训练请求之后,还包括:
检测是否接收到所述服务端发送的包括预设时间的等待指令,所述等待指令为所述服务端在接收到所述训练请求,且检测到多个训练设备正在对预设模型进行训练时发送的;
若是,则根据所述等待指令,在所述预设时间后重新向所述服务端发送训练请求。
本发明实施例还提供了一种模型训练装置,应用于服务端,所述装置包括:
第一确定模块,用于确定多个训练设备;
第一发送模块,用于向所述多个训练设备发送训练指令,所述训练指令包括第一模型参数;
第一接收模块,用于接收每一训练设备发送的第二模型参数,所述第二模型参数为所述训练设备基于所述训练指令和训练数据,对预设模型进行训练得到的,所述训练数据是根据所述训练设备中的用户数据确定的;
第二确定模块,用于根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数;
第一判断模块,用于判断包括所述第三模型参数的预设模型是否收敛;
第三确定模块,用于在所述第一判断模块的判断结果为是时,将所述第三模型参数确定为所述预设模型训练完成后的模型参数。
可选的,所述装置还包括:
第一执行模块,用于在所述第一判断模块的判断结果为否时,将所述第三模型参数作为所述第一模型参数,返回执行所述确定多个训练设备的步骤。
可选的,所述第一确定模块,具体用于接收多个用户设备发送的训练请求,将所述多个用户设备作为多个训练设备。
可选的,所述装置还包括:
第一检测模块,用于检测是否接收到其他用户设备发送的训练请求;
第二判断模块,用于在所述第一检测模块的检测结果为是时,判断所述多个训练设备是否正在对所述预设模型进行训练;
第二发送模块,用于在所述第二判断模块的判断结果为是时,向所述其他用户设备发送包含预设时间的等待指令,以使所述其他用户设备根据所述等待指令,在所述预设时间后重新向所述服务端发送训练请求。
可选的,所述第一判断模块,具体用于获取预设的测试数据;将所述第三模型参数加载到所述预设模型中;将所述测试数据输入到包括所述第三模型参数的预设模型中,得到输出结果;确定所述输出结果对应的损失值;判断所述损失值是否大于损失值阈值;若是,则确定包括所述第三模型参数的预设模型未收敛;若否,则确定包括所述第三模型参数的预设模型收敛。
可选的,所述第二确定模块,具体用于利用联合平均算法,对接收到的多个第二模型参数进行处理,得到第三模型参数;或确定训练得到每一第二模型参数的时长,作为训练时长;利用联合平均算法,对训练时长不大于第一时间阈值的多个第二模型参数进行处理,得到第三模型参数。
可选的,所述装置还包括:
统计模块,用于统计第二时间阈值内接收到的第二模型参数的数量;
第三判断模块,用于判断所述数量是否大于预设数量阈值;
所述第二确定模块,具体用于在所述第三判断模块的判断结果为是时,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数。
可选的,所述装置还包括:
第二执行模块,用于在所述第三判断模块的判断结果为否时,返回执行所述确定多个训练设备的步骤。
可选的,所述装置还包括:
第二接收模块,用于接收待更新设备发送的对所述预设模型进行更新的更新请求;
第三发送模块,用于向所述待更新设备发送所述第三模型参数,以使所述待更新设备根据所述第三模型参数更新所述预设模型的模型参数。
本发明实施例还提供了一种模型训练装置,应用于训练设备,所述装置包括:
获取模块,用于获取训练数据,所述训练数据是根据所述训练设备中的用户数据确定的;
第二检测模块,用于检测是否接收到服务端发送的训练指令,所述训练指令包括第一模型参数;
训练模块,用于在所述第二检测模块的检测结果为是时,基于所述训练指令和所述训练数据,对预设模型进行训练,得到第二模型参数;
第四发送模块,用于向所述服务端发送所述第二模型参数,以使所述服务端在接收到多个训练设备发送的第二模型参数后,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数,判断包括所述第三模型参数的预设模型是否收敛,若收敛,则将所述第三模型参数确定为所述预设模型训练完成后的模型参数。
可选的,所述装置还包括:
第五发送模块,用于向服务端发送训练请求。
可选的,所述装置还包括:
第三检测模块,用于检测是否接收到所述服务端发送的包括预设时间的等待指令,所述等待指令为所述服务端在接收到所述训练请求,且检测到多个训练设备正在对预设模型进行训练时发送的;
第六发送模块,用于在所述第三检测模块的检测结果为是时,根据所述等待指令,在所述预设时间后重新向所述服务端发送训练请求。
本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的模型训练方法步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的模型训练方法步骤。
本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的模型训练方法。
本发明实施例有益效果:
本发明实施例提供的一种模型训练方法、装置、电子设备及存储介质,服务端确定多个训练设备,向多个训练设备发送训练指令,该训练指令包括第一模型参数,接收每一训练设备发送的第二模型参数,该第二模型参数为训练设备基于训练指令和训练数据,对预设模型进行训练得到的,该训练数据是根据训练设备中的用户数据确定的,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数,判断包括第三模型参数的预设模型是否收敛,若收敛,则将第三模型参数确定为预设模型训练完成后的模型参数。通过本发明实施例提供的技术方案,由多个训练设备根据服务端发送的模型参数和训练指令,利用训练数据对预设模型进行训练得到模型参数,并将该模型参数发送给服务端。服务端对每一训练设备发送的模型参数进行处理,得到新的模型参数,从而判断包括新的模型参数的预设模型是否收敛,在预设模型收敛时,完成对预设模型的训练,这使得服务端中不会存在每一训练设备中的训练数据,并且服务端与每一训练设备之间传输的数据为模型参数,不是每一训练设备中的训练数据,大大降低了训练数据发生泄露的风险,从而降低了用户隐私泄露的风险。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的模型训练方法的第一种流程示意图;
图2为本发明实施例提供的模型训练方法的第二种流程示意图;
图3为本发明实施例提供的模型训练方法的第三种流程示意图;
图4为本发明实施例提供的模型训练方法的第四种流程示意图;
图5为本发明实施例提供的模型训练方法的第五种流程示意图;
图6为本发明实施例提供的模型训练方法的第六种流程示意图;
图7为本发明实施例提供的模型训练方法的第七种流程示意图;
图8为本发明实施例提供的模型训练装置的第一种结构示意图;
图9为本发明实施例提供的模型训练装置的第二种结构示意图;
图10为本发明实施例提供的电子设备的第一种结构示意图;
图11为本发明实施例提供的电子设备的第二种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,无论是机器学习过程,还是深度学习过程都是从用户设备中收集训练数据,将收集到的训练数据发送给服务端,由服务端根据接收到的训练数据对预设模型进行训练及测试。由于训练数据中存在大量的用户隐私信息,在训练数据的传输以及预设模型的训练过程中,用户隐私均存在泄露的风险。
为了解决现有模型训练过程中,用户隐私存在泄露风险的问题,本发明实施例提供了一种模型训练方法。该方法应用于任一服务器及用户设备。服务端确定多个训练设备,向多个训练设备发送训练指令,该训练指令包括第一模型参数,接收每一训练设备发送的第二模型参数,该第二模型参数为训练设备基于训练指令和训练数据,对预设模型进行训练得到的,该训练数据是根据训练设备中的用户数据确定的,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数,判断包括第三模型参数的预设模型是否收敛,若收敛,则将第三模型参数确定为预设模型训练完成后的模型参数。
通过本发明实施例提供的方法,由多个训练设备根据服务端发送的模型参数和训练指令,利用训练数据对预设模型进行训练得到模型参数,并将该模型参数发送给服务端。服务端对每一训练设备发送的模型参数进行处理,得到新的模型参数,从而判断包括新的模型参数的预设模型是否收敛,在预设模型收敛时,完成对预设模型的训练,这使得服务端中不会存在每一训练设备中的训练数据,并且服务端与每一训练设备之间传输的数据为模型参数,不是每一训练设备中的训练数据,大大降低了训练数据发生泄露的风险,从而降低了用户隐私泄露的风险。
下面通过具体的实施例,对本发明实施例进行说明。
如图1所示,图1为本发明实施例提供的模型训练方法的第一种流程示意图。该方法应用于服务端,具体包括以下步骤。
步骤s101,确定多个训练设备。
在本步骤中,服务端可以从多个用户设备中,确定出多个训练设备。其中,服务器所确定的多个训练设备可以为多个用户设备中的全部设备,也可以为多个用户设备中的部分设备。
以多个训练设备为多个用户设备中的部分设备为例进行说明。
一个实施例中,多个电子设备可以被随机分为多组,每一组中包括相同数量或不同数量的用户设备。每一组存在对应的训练轮次,服务器在将多组用户设备中的一组确定为训练设备后,当该组训练设备对预设模型的次数达到其对应的训练轮次,服务端将会将下一组用户设备确定为训练设备。
例如,现有5组用户设备,服务端在将第一组用户设备确定为训练设备后,若第一组训练设备对应的训练轮次为2轮,则在预设模型在2轮训练后仍未收敛,服务端可以将第二组用户设备确定为训练设备,对预设模型进行训练。
在本发明实施例中,上述训练设备可以为用户使用的手机、电脑等电子设备。另外,训练设备可以满足一定的训练要求。例如,训练设备处于空闲或充电等不影响用户正常使用的状态。再例如,训练设备的内存大于预设内存阈值,如2吉字节(gigabyte,gb)。
一个可选的实施例中,服务端可以接收多个用户设备发送的训练请求,将多个用户设备作为多个训练设备。
一个实施例中,当用户设备满足上述训练要求时,用户设备可以向服务端发送训练请求。服务端在接收到该训练请求后,可以将该发送该训练请求的用户设备确定为训练设备。
用户设备在其处于空闲或充电等状态时,向服务端发送训练请求,从而让服务端将该用户设备确定为训练设备,这使得训练设备对预设模型的训练过程不影响用户的正常使用,并且使得更多的用户设备可以作为训练设备对预设模型进行训练,提高了训练好的预设模型的准确性。
步骤s102,向多个训练设备发送训练指令,该训练指令包括第一模型参数。
在本步骤中,服务端可以向确定的每一训练设备发送包括第一模型参数的训练指令。
一个可选的实施例中,上述训练指令中还可以包括每一训练设备的训练数据量的辅助数据,如每一训练设备所采用的训练数据的数量,以及本轮训练中需要完成的训练次数等。训练设备在接收到该训练指令后,可以确定本轮训练所需的训练数据的数量,以及本轮训练需要完成的训练次数,也就是对预设模型中的模型参数进行调节的次数等。
一个可选的实施例中,上述第一模型参数包括但不限于预设模型中的权值以及偏置量。另外,针对上述第一模型参数根据本轮训练的具体情况,第一模型参数的值也将有所不同。
一个实施例中,若本轮训练是对新建立的预设模型的第一轮训练,则上述第一模型参数可以为服务端对该预设模型进行初始化处理后,得到的模型参数,如预设的模型参数。
另一个实施例中,若本轮训练时对已经被使用或正在被使用的预设模型的第一轮训练,则上述第一模型参数可以为该预设模型的当前模型参数。
再一个实施例中,若本轮训练是多轮训练过程中的某一轮训练,如第4轮训练,则上述第一模型参数为服务端根据上一轮训练过程中,即第3轮训练过程中,每一训练设备向服务端发送的模型参数确定的。关于模型参数的确定方法可参见下文,在此不作具体说明。
步骤s103,接收每一训练设备发送的第二模型参数,该第二模型参数为训练设备基于训练指令和训练数据,对预设模型进行训练得到的,该训练数据是根据训练设备中的用户数据确定的。
在本步骤中,每一训练设备在接收到服务端发送的训练指令后,可以基于接收到的训练指令,将训练指令中的第一模型参数加载到预设模型中,并利用训练数据,对包括第一模型参数的预设模型进行训练得到第二模型参数,将该第二模型参数发送给服务端。服务端接收每一训练设备发送的第二模型参数。关于第二模型参数的确定,在此不作具体说明。
在本发明实施例中,上述预设模型包括但不限于机器学习模型、深度学习模型。根据不同模型的用途,以及用户的需求,可以选择不同的模型作为预设模型。另外,上述训练数据至少包括多个数据集以及每一数据集对应的标注数据。在此,对上述预设模型以及训练参数不作具体限定。
步骤s104,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数。
在本步骤中,在接收到多个训练设备发送的第二模型参数后,服务端可以根据接收到的多个第二模型参数,利用联合平均算法(federatedaveragingalgorithm),得到第三模型参数。
一个实施例中,若上述第二模型参数包括上述预设模型的偏置量和权值,则服务器根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数,该第三模型参数中至少包括预设模型对应的新的偏置量和新的权值。
另一个实施例中,上述第二模型参数除了包括上述预设模型的偏置量和权值外,还可以包括其他参数,例如,预设模型训练时对应的超参数,如学习率等。服务端在利用联合平均算法,根据接收到的多个第二模型参数中的偏置量、权值,确定预设模型对应的新的偏置量和新的权值的同时,还可以对第二模型参数中的超参数进行调节,得到新的超参数,从而得到第三模型参数。
一个可选的实施例中,服务端可以利用联合平均算法,对接收到的多个第二模型参数进行处理,得到第三模型参数。
例如,服务端接收到200个第二模型参数。服务端可以利用联合平均算法对接收到的200个第二模型参数进行处理,得到第三模型参数。
另一个可选的实施例中,服务端可以确定训练得到每一第二模型参数的时长,作为训练时长;利用联合平
均算法,对训练时长不大于第一时间阈值的多个第二模型参数进行处理,得到第三模型参数。
一个可选的实施例中,针对上述每一第二模型参数训练时长,该训练时长可以为服务端向对应训练设备发送训练指令的时间与服务端接收到训练设备发送的第二模型参数的时间之间的时间差。服务端可以统计该训练时长,并将该训练时长与第一时间阈值进行比较,确定训练时长是否大于上述第一时间阈值,进而确定第三模型参数。
另一个可选的实施例中,针对上述每一第二模型参数训练时长,该训练时长可以为每一训练设备基于接收到的训练指令,利用训练数据,对包括服务端发送的模型参数的预设模型进行训练,得到第二模型参数所用的时间。每一训练设备可以统计其对应的训练时长,将统计的训练时长发送给服务端。服务端接收每一训练设备发送的训练时长,并将该训练时长与上述第一时间阈值进行比较,确定训练时长是否大于第一时间阈值,进而确定第三模型参数。
一个可选的实施例中,针对接收到的每一第二模型参数,当服务端确定该第二模型参数的训练时长大于上述第一时间阈值时,服务端可以丢弃该第二模型参数,也就是丢弃训练时长大于第一时间阈值的第二模型参数。
在本发明实施例中,每一训练设备对包括第一模型参数的预设模型进行训练时,由于网络环境等原因可能导致训练过程中断或临时中断,或者训练设备中数据量过大,训练设备主动中断训练过程,从而导致该训练设备无法得到第二模型参数,或者得到的第二模型参数的时间大于上述第一时间阈值。因此,服务端通过判断第二模型参数的训练时长是否大于第一时间阈值,从而丢弃训练时长大于第一时间阈值的第二模型参数,使得保留的第二模型参数更加准确,提高了第二模型参数的准确性,进而提高预设模型训练完成时确定的模型参数的准确性。
步骤s105,判断包括第三模型参数的预设模型是否收敛。若是,则执行步骤s106。
在本步骤中,服务端可以利用预设的测试数据,判断包括上述第三模型参数的预设模型是否收敛。该测试数据可以为服务端中预设的不涉及用户隐私的数据。
一个可选的实施例中,上述步骤s105,判断包括第三模型参数的预设模型是否收敛,可以包括以下步骤。
步骤s1051,获取预设的测试数据。
在本步骤中,服务端可以获取预设的不涉及用户隐私信息的测试数据。该测试数据中可以包括数据集以及标注数据,该标识数据可以用于指示预期结果。
步骤s1052,将第三模型参数加载到预设模型中。
在本步骤中,服务端可以在预设模型中加载上述第三模型参数,也就是将预设模型中的模型参数更新为第三模型参数。
步骤s1053,将测试数据输入到包括第三模型参数的预设模型中,得到输出结果。
在本步骤中,服务器可以将测试数据中的数据集输入到包括第三模型参数的预设模型中,得到输出结果。
步骤s1054,确定输出结果对应的损失值。
在本步骤中,服务端可以根据获取的测试数据中的标注数据,确定输出结果对应的损失值。例如,服务端可以根据上述测试数据中的标注数据与预设模型的输出结果进行比较,确定该输出结果的错误率,并将该错误率作为该输出结果的损失值。在此,对输出结果的损失值的确定方法不作具体限定。
步骤s1055,判断损失值是否大于损失值阈值。若是,则执行步骤s1056。若否,则执行步骤s1057。
在本步骤中,服务端可以将损失值与损失值阈值进行比较,确定损失值是否大于损失阈值。
步骤s1056,确定包括第三模型参数的预设模型未收敛。
在本步骤中,当上述损失值大于损失值阈值时,服务端可以确定包括第三模型参数的预设模型未收敛。
步骤s1057,确定包括第三模型参数的预设模型收敛。
在本步骤中,当上述损失值不大于损失值阈值时,服务端可以确定包括第三模型参数的预设模型收敛。
步骤s106,将第三模型参数确定为预设模型训练完成后的模型参数。
在本步骤中,在确定包括第三模型参数的预设模型收敛时,服务端可以确定已经完成对预设模型的训练。此时,服务端可以将第三模型参数确定为预设模型训练完成后的模型参数。
一个可选的实施例中,在确定包括第三模型参数的预设模型收敛时,服务端可以向每一训练设备发送指示训练完成的通知消息。训练设备在接收该通知消息时,可以确定预设模型已经训练完成。此时,训练设备可以放弃向服务端发送训练请求。
另一个可选的实施例中,在确定包括第三模型参数的预设模型收敛时,服务端可以向用户设备发送对预设模型进行更新的提示消息。用户设备可以该提示消息,确定可以对预设模型进行更新。
一个可选的实施例中,若包括第三模型参数的预设模型未收敛,则将第三模型参数作为第一模型参数,返回执行上述步骤s101。
在本步骤中,当确定包括第三模型参数的预设模型未收敛时,服务端可以确定没有完成对预设模型的训练,仍需要对预设模型进行训练。此时,服务端可以将确定的第三模型参数作为第一模型参数,返回执行上述步骤s101,也就是返回执行确定多个训练设备的步骤。
在本发明实施例中,当确定包括第三模型参数的预设模型未收敛时,将本轮训练得到的模型参数发送给训练设备。训练设备可以根据接收到的模型参数进行新一轮训练,从而得到新的模型参数,直至包括根据联合平均算法确定的模型参数的预设模型收敛,停止对预设模型的训练,提高了训练得到的模型参数的准确性。
一个可选的实施例中,为了提高模型参数在训练设备和服务端之间传输的准确性以及安全性,服务端和训练设备均可以对发送的模型参数进行加密处理,并对接收到的模型参数进行解密处理。例如,服务端在接收到多个训练设备发送的第二模型参数后,可以检测接收到的第二模型参数是否被加密,若是,则对加密的模型参数进行解密处理。在此,对加密处理和解密处理的方法不作具体限定。例如,可以采用不对称加密算法对模型参数进行加密处理。
综上所述,通过本发明实施例提供的方法,由多个训练设备根据服务端发送的模型参数和训练指令,利用训练数据对预设模型进行训练得到模型参数,并将该模型参数发送给服务端。服务端对每一训练设备发送的模型参数进行处理,得到新的模型参数,从而判断包括新的模型参数的预设模型是否收敛,在预设模型收敛时,完成对预设模型的训练,这使得服务端中不会存在每一训练设备中的训练数据,并且服务端与每一训练设备之间传输的数据为模型参数,不是每一训练设备中的训练数据,大大降低了训练数据发生泄露的风险,从而降低了用户隐私泄露的风险。
一个可选的实施例中,根据图1所示的模型训练方法,本发明实施例还提供了一种模型训练方法。如图2所示,图2为本发明实施例提供的模型训练方法的第二种流程示意图。该方法应用于服务端。具体包括以下步骤。
步骤s201,确定多个训练设备。
步骤s202,向多个训练设备发送训练指令,该训练指令包括第一模型参数。
上述步骤s201-步骤s202与上述步骤s101-步骤s102相同。
步骤s203,检测是否接收到其他用户设备发送的训练请求。若是,则执行步骤s204。若否,则执行步骤s206。
在本步骤中,服务端在接收到多个用户设备发送的训练请求,并将发送训练请求的多个用户设备确定为训练设备,向多个训练设备反馈训练指令后,服务端可以检测是否接收到其他用户设备发送的训练请求。
步骤s204,判断多个训练设备是否正在对预设模型进行训练。若是,则执行步骤s205。
在本步骤中,当接收到其他用户设备发送的训练请求时,服务端可以判断上述多个训练设备是否正在对预设模型进行训练,也就是判断多个设备是否完成对预设模型的一轮训练过程。
一个可选的实施例中,服务端可以根据接收到的第二模型参数的数量,确定多个训练设备是否正在对预设模型进行训练。例如,当服务端接收到的第二模型参数的数量大于预设数量阈值时,服务端可以确定多个训练设备不在对预设模型进行训练。当服务端接收到的第二模型参数的数量不大于预设数量阈值时,服务端可以确定多个设备正在对预设模型进行训练。
一个可选的实施例中,当服务端接收到的第二模型参数的数量大于预设数量阈值时,服务端可以向为发送第二模型参数的训练设备发送指示本轮训练结束的通知消息。训练设备在接收到该通知消息时,可以确定本轮训练已经结束,停止对预设模型的训练过程,提高预设模型的训练效率。
步骤s205,向其他用户设备发送包含预设时间的等待指令,以使其他用户设备根据等待指令,在预设时间后重新向服务端发送训练请求。
在本步骤中,在确定多个训练设备正在对预设模型进行训练时,服务端可以向其他用户设备发送包含预设时间的等待指令。其他用户训练设备在接收到该等待指令后,可以根据该等待指令,在预设时间后重新向服务端发送训练请求。
一个可选的实施例中的,当多个训练设备不在对预设模型进行训练时,也就是一轮训练完成后,若接收到其他用户设备发送的训练指令,且确定预设模型未收敛,则服务端可以将发送训练指令的其他用户设备确定为训练设备,并将第三模型参数作为上述第一模型参数,执行上述步骤s202。
步骤s206,接收每一训练设备发送的第二模型参数,该第二模型参数为训练设备基于训练指令和训练数据,对预设模型进行训练得到的,该训练数据是根据训练设备中的用户数据确定的。
步骤s207,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数。
步骤s208,判断包括第三模型参数的预设模型是否收敛。若是,则执行步骤s209。
步骤s209,将第三模型参数确定为预设模型训练完成后的模型参数。
上述步骤s206-步骤s209与上述步骤s103-步骤s106相同。
一个可选的实施例中,当多个训练设备不在对上述预设模型进行训练,且确定包括第三模型参数的预设模型未收敛时,服务端可以将其他用户设备确定为训练设备,并将第三模型参数作为第一模型参数,返回执行步骤s202,也就是返回执行向多个训练设备发送训练指令的步骤。
在本发明实施例中,对上述步骤s203和步骤s206的执行顺序不作具体限定。
通过图2所示的模型训练方法,在接收到其他用户设备发送的训练请求时,判断本轮训练是否结束,保证了每一轮训练的有序进行。
一个可选的实施例中,根据图1所示的模型训练方法,本发明实施例还提供了一种模型训练方法。如图3所示,图3为本发明实施例提供的模型训练方法的第三种流程示意图。该方法应用于服务端,具体包括以下步骤。
步骤s301,确定多个训练设备。
步骤s302,向多个训练设备发送训练指令,该训练指令包括第一模型参数。
步骤s303,接收每一训练设备发送的第二模型参数,该第二模型参数为训练设备基于训练指令和用训练数据,对预设模型进行训练得到的,该训练数据是根据训练设备中的用户数据确定的。
上述步骤s301-步骤s303与上述步骤s101-步骤s103相同。
步骤s304,统计第二时间阈值内接收到的第二模型参数的数量。
在本步骤中,服务端在向每一训练设备发送第一模型参数后,服务端可以统计第二时间阈值内接收到的训练设备发送的第二模型参数的数量。
步骤s305,判断数量是否大于预设数量阈值。若是,则执行步骤s306。
在本步骤中,服务端可以将统计到的第二时间阈值内接收到的第二模型参数的数量与上述预设数量阈值进行比较,确定该数量是否大于预设数量阈值。
步骤s306,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数。
在本步骤中,当第二时间阈值内接收到的第二模型参数的数量大于预设数量阈值时,服务端可以确定本轮训练得到的第二模型参数有效。此时,服务端可以根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数。
一个实施例中,当第二时间阈值内接收到的第二模型参数的数量大于预设数量阈值时,服务端可以利用联合平均算法,对接收到的所有第二模型参数进行处理,得到第三模型参数。
另一个实施例中,当第二时间阈值内接收到的第二模型参数的数量大于预设数量阈值时,服务端可以利用联合平均算法,对第二时间阈值内接收到的第二模型参数进行处理,得到第三模型参数。
一个可选的实施例中,当第二时间阈值内接收到的第二模型参数的数量不大于上述预设数量阈值时,服务端可以确定本轮训练得到的第二模型参数无效。此时,服务端可以返回执行上述步骤s301,也就是返回执行确定多个训练设备的步骤。
在本发明实施例中,为方便理解,仅以一轮训练过程为例进行说明的。在实际训练过程中,可能需要经过多轮训练才能完成对预设模型的训练。以第4轮训练为例,在第4轮训练过程中,若多个训练设备在第二时间阈值内发送的模型参数的数量不大于上述预设数量阈值,则服务端可以将第4轮训练开始时发送给多个训练设备的包括模型参数的训练指令,重新发送给确定的多个训练设备,开始第5轮训练。
步骤s307,判断包括第三模型参数的预设模型是否收敛。若是,则执行步骤s308。
步骤s308,将第三模型参数确定为预设模型训练完成后的模型参数。
上述步骤s307-步骤s308与上述步骤s105-步骤s106相同。
通过图3提供的模型训练方法,服务端可以根据第二时间阈值内接收的第二模型参数的数量,确定本轮训练得到的第二模型参数是否有效,从而确定本轮训练是否需要重新训练,提高了训练得到的第二模型参数的准确性,从而提高了根据第二模型参数确定的第三模型参数的准确性,进而提高预设模型训练完成时确定的模型参数的准确性。
一个可选的实施例中,根据图1所示的模型训练方法,本发明实施例还提供了一种模型训练方法。如图4所示,图4为本发明实施例提供的模型训练方法的第四种流程示意图。该方法应用于服务端,具体包括以下步骤。
步骤s401,确定多个训练设备。
步骤s402,向多个训练设备发送训练指令,该训练指令包括第一模型参数。
步骤s403,接收每一训练设备发送的第二模型参数,该第二模型参数为训练设备基于训练指令和训练数据,对预设模型进行训练得到的,该训练数据是根据训练设备中的用户数据确定的。
步骤s404,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数。
步骤s405,判断包括第三模型参数的预设模型是否收敛。若是,则执行步骤s406。
步骤s406,将第三模型参数确定为预设模型训练完成后的模型参数。
上述步骤s401-步骤s406与上述步骤s101-步骤s106相同。
步骤s407,接收待更新设备发送的对预设模型进行更新的更新请求。
在本步骤中,在预设模型训练完成后,待更新设备可以向服务端发送对预设模型进行更新的更新请求,其中,该待更新设备可以为任一用户设备。服务端可以接收该更新请求。
一个可选的实施例中,在预设模型训练完成后,服务端可以向待更新设备发送对预设模型进行更新的提示消息。待更新设备可以根据该提示消息,向服务端发送对预设模型进行更新的更新请求。
另一个可选的实施例中,待更新设备可以实时检测是否存在新的预设模型,在检测到存在新的预设模型时,待更新设备可以向服务端发送对预设模型进行更新的更新请求。
步骤s408,向待更新设备发送第三模型参数,以使待更新设备根据第三模型参数更新预设模型的模型参数。
在本步骤中,根据接收到的更新请求,服务端可以向待更新设备发送第三模型参数,也就是预设模型训练完成后的模型参数。待更新设备接收该第三模型参数,并根据第三模型参数加载到预设模型中,完成对预设模型中的模型参数的更新。
通过图4所示的模型训练方法,在预设模型训练完成后,待更新设备可以及时对预设模型中的模型参数进行更新,提高预设模型的准确性,便于用户的使用,给用户带来更好的体验感。
基于同一种发明构思,根据图1所示的模型训练方法,本发明实施例还提供了一种模型训练方法。如图5所示,图5为本发明实施例提供的模型训练方法的第五种流程示意图。该方法应用于训练设备。该方法具体包括以下步骤。
步骤s501,获取训练数据,该训练数据是根据训练设备中的用户数据确定的。
在本步骤中,训练设备可以获取用户数据,并对获取的用户数据进行数据清洗,以及特征提取等得到训练数据。该训练数据中至少包括训练集和标注数据。
一个可选的实施例中,训练设备在获取到训练数据后,可以将该训练数据存储的在临时存储空间中,从而使得预设模型训练完成时,可以及时丢弃存储的训练数据,降低训练数据泄露的风险,从而降低用户隐私泄露的风险。
步骤s502,检测是否接收到服务端发送的训练指令,该训练指令包括第一模型参数。若是,则执行步骤s503。
在本步骤中,训练设备可以检测是否接收到服务端发送的包括第一模型参数的训练指令。
步骤s503,基于训练指令和训练数据,对预设模型进行训练,得到第二模型参数。
在本步骤中,当接收到服务端发送的训练指令时,训练设备可以基于接收到的训练指令,将该训练指令中的第一模型参数加载到预设模型中,并将训练数据输入包括第一模型参数的预设模型中,得到输出结果。训练设备可以确定该输出结果对应的损失值,并根据该损失值调节预设模型的模型参数,也就是调节第一模型参数,得到第二模型参数。模型参数的调节次数至少为一次,具体次数可以根据训练指令中包括的需要进行的训练次数确定,在此,不作具体限定。
步骤s504,向服务端发送第二模型参数,以使服务端在接收到多个训练设备发送的第二模型参数后,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数,判断包括第三模型参数的预设模型是否收敛,若收敛,则将第三模型参数确定为预设模型训练完成后的模型参数。
在本步骤中,训练设备可以向服务端发送第二模型参数。服务端在接收到每一训练设备发送的第二模型参数后,可以根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数。服务端通过判断包括第三模型参数的预设模型是否收敛,并在包括第三模型参数的预设模型收敛时,将第三模型参数确定为预设模型训练完成后的模型参数,完成对预设模型的训练。
在本发明实施例中,对上述步骤s501和步骤s502的执行顺序不做具体限定。
通过图5所示的模型训练方法,由多个训练设备根据服务端发送的模型参数和训练指令,利用训练数据对预设模型进行训练得到模型参数,并将该模型参数发送给服务端。服务端对每一训练设备发送的模型参数进行处理,得到新的模型参数,从而判断包括新的模型参数的预设模型是否收敛,在预设模型收敛时,完成对预设模型的训练,这使得服务端中不会存在每一训练设备中的训练数据,并且服务端与每一训练设备之间传输的数据为模型参数,不是每一训练设备中的训练数据,大大降低了训练数据发生泄露的风险,从而降低了用户隐私泄露的风险。
一个可选的实施例中,根据图5所示的模型训练方法,本发明实施例还提供了一种模型训练方法。如图6所示,图6为本发明实施例提供的模型训练方法的第六种流程示意图。该方法应用于训练设备,具体包括以下步骤。
步骤s601,获取训练数据,该训练数据是根据训练设备中的用户数据确定的。
上述步骤s601与上述步骤s501相同。
步骤s602,向服务端发送训练请求。
一个实施例中,训练设备可以根据当前状态,例如,当前状态为空闲状态或充电状态等,向服务端发送训练请求。
步骤s603,检测是否接收到服务端发送的训练指令,该训练指令包括第一模型参数。若是,在执行步骤s604。
步骤s604,基于训练指令和训练数据,对预设模型进行训练,得到第二模型参数。
步骤s605,向服务端发送第二模型参数,以使服务端在接收到多个训练设备发送的第二模型参数后,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数,判断包括第三模型参数的预设模型是否收敛,若收敛,则将第三模型参数确定为预设模型训练完成后的模型参数。
上述步骤s603-步骤s605与上述步骤s502-步骤s504相同。
一个可选的实施例中,根据图6所示的模型训练方法,本发明实施例还提供了一种模型训练方法。如图7所示,图7为本发明实施例提供的模型训练方法的第七种流程示意图。该方法应用于训练设备,具体包括以下步骤。
步骤s701,获取训练数据,该训练数据是根据训练设备中的用户数据确定的。
步骤s702,向服务端发送训练请求。
上述步骤s701-步骤s702与上述步骤s601-步骤s602相同。
步骤s703,检测是否接收到服务端发送的包括预设时间的等待指令,该等待指令为服务端在接收到训练请求,且检测到多个训练设备正在对预设模型进行训练时发送的。若是,则执行步骤s704。若否,则执行步骤s705。
在本步骤中,服务端在接收到用户设备发送的训练请求时,可以检测多个训练设备是否正在对预设模型进行训练。若多个训练设备正在对预设模型进行训练,则服务端将向上述发送训练请求的训练设备发送包括预设时间的等待指令。该训练设备可以检测是否接收到服务端发送的包括预设时间的等待指令。
步骤s704,根据等待指令,在预设时间后重新向服务端发送训练请求。
在本步骤中,当接收到服务端发送的包括预设时间的等待指令时,训练设备可以根据接收到的等待指令,确定其他设备正在对预设模型进行训练。该训练设备可以在预设时间后重新向服务端发送训练请求。
步骤s705,检测是否接收到服务端发送的训练指令,该训练指令包括第一模型参数。若是,则执行步骤s706。
在本步骤中,当未接收到服务端发送的包括预设时间的等待指令时,训练设备可以检测是否接收到服务端发送的包括第一模型参数训练指令。
步骤s706,基于训练指令和训练数据,对预设模型进行训练,得到第二模型参数。
步骤s707,向服务端发送第二模型参数,以使服务端在接收到多个训练设备发送的第二模型参数后,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数,判断包括第三模型参数的预设模型是否收敛,若收敛,则将第三模型参数确定为预设模型训练完成后的模型参数。
上述步骤s706-步骤s707与上述步骤s604-步骤s605相同。
在本发明实施例中,对上述步骤s703和步骤s705的执行顺序不作具体限定。
另一个可选的实施例中,针对上述步骤s703-步骤s704,在上述步骤s702,向服务端发送训练请求之前,训练设备可以检测是否接收到服务端发送的指示训练完成的通知消息。若未接收到该通知消息,则训练设备可以向服务端发送训练请求,并执行上述步骤s705。
通过图7所示的模型训练方法,训练设备在向服务端发送训练请求后,服务端可以确定是否正在对预设模型进行训练,并在一轮训练完成后,才进行新一轮的训练过程,保证了预设模型训练过程的有序性。
为方便理解,下面以预测用户可能输入的词语的预设模型为例进行说明。在不同用户设备,如用户使用的手机或电脑中,当用户输入一个文字后词语后,用户设备可以自动为用户提供该文字或词组后可能出现的文字。例如,用户输入的文字为今天,用户设备提供的可选的文字可以包括:不上班、中午、吃什么等词语。
在该预设模型的训练过程中,多个用户设备向服务端发送训练请求。服务端在接收到每一用户设备发送的训练请求后,可以将发送训练请求的用户设备确定为训练设备,并向每一训练设备发送包括第一模型参数的训练指令。
每一用户设备在接收到训练指令后,可以将该训练指令中的第一模型参数加载到预设模型中,并利用根据每一用户设备中用户日常输入的文字等,生成训练数据,利用该训练数据对包括第一模型参数的预设模型进行训练,得到第二模型参数。每一用户设备向服务端发送训练得到的第二模型参数。
服务端接收每一用户设备发送的第二模型参数,并根据接收到的多个第二模型参数,利用联合平均算法,确定第三模型参数。确定包括第三模型参数的预设模型是否收敛。若未收敛,则重新确定训练设备,并基于重新确定的训练设备继续对预设模型进行训练。若收敛,则完成对预设模型的训练。
基于同一种发明构思,根据上述本发明实施例提供的模型训练方法,本发明实施例还提供了一种模型训练装置。如图8所示,图8为本发明实施例提供的模型训练装置的第一种结构示意图。该装置应用于服务端,具体包括以下模块。
第一确定模块801,用于确定多个训练设备。
第一发送模块802,用于向多个训练设备发送训练指令,该训练指令包括第一模型参数。
第一接收模块803,用于接收每一训练设备发送的第二模型参数,该第二模型参数为训练设备基于训练指令和训练数据,对预设模型进行训练得到的,该训练数据是根据训练设备中的用户数据确定的。
第二确定模块804,用于根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数。
第一判断模块805,用于判断包括第三模型参数的预设模型是否收敛。
第三确定模块806,用于在第一判断模块805的判断结果为是时,将第三模型参数确定为预设模型训练完成后的模型参数。
可选的,上述模型训练装置还可以包括:
第一执行模块,用于在第一判断模块805的判断结果为否时,将第三模型参数作为第一模型参数,返回执行确定多个训练设备的步骤。
可选的,上述第一确定模块801,具体可以用于接收多个用户设备发送的训练请求,将多个用户设备作为多个训练设备。
可选的,上述模型训练装置还可以包括:
第一检测模块,用于检测是否接收到其他用户设备发送的训练请求;
第二判断模块,用于在第一检测模块的检测结果为是时,判断多个训练设备是否正在对预设模型进行训练。
第二发送模块,用于在第二判断模块的判断结果为是时,向其他用户设备发送包含预设时间的等待指令,以使其他用户设备根据等待指令,在预设时间后重新向服务端发送训练请求。
可选的,上述第一判断模块,具体可以用于获取预设的测试数据;将第三模型参数加载到预设模型中;将测试数据输入到包括第三模型参数的预设模型中,得到输出结果;确定输出结果对应的损失值;判断损失值是否大于损失值阈值;若是,则确定包括第三模型参数的预设模型未收敛;若否,则确定包括第三模型参数的预设模型收敛。
可选的,上述第二确定模块804,具体可以用于利用联合平均算法,对接收到的多个第二模型参数进行处理,得到第三模型参数;或确定训练得到每一第二模型参数的时长,作为训练时长;利用联合平均算法,对训练时长不大于第一时间阈值的多个第二模型参数进行处理,得到第三模型参数。
可选的,上述模型训练装置还可以包括:
统计模块,用于统计第二时间阈值内接收到的第二模型参数的数量;
第三判断模块,用于判断数量是否大于预设数量阈值;
上述第二确定模块804,具体可以用于在第三判断模块的判断结果为是时,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数。
可选的,上述模型训练装置还可以包括:
第二执行模块,用于在第三判断模块的判断结果为否时,返回执行确定多个训练设备的步骤。
可选的,上述模型训练装置还可以包括:
第二接收模块,用于接收待更新设备发送的对预设模型进行更新的更新请求。
第三发送模块,用于向待更新设备发送第三模型参数,以使待更新设备根据第三模型参数更新预设模型的模型参数。
根据图8所示的训练装置,本发明实施例还提供了一种模型训练装置。如图9所示,图9为本发明实施例提供的模型训练装置的第二种结构示意图。该装置应用于训练设备,具体包括以下模块。
获取模块901,用于获取训练数据,该训练数据是根据训练设备中的用户数据确定的。
第二检测模块902,用于检测是否接收到服务端发送的训练指令,该训练指令包括第一模型参数。
训练模块903,用于在第二检测模块902的检测结果为是时,基于训练指令,和训练数据,对预设模型进行训练,得到第二模型参数。
第四发送模块904,用于向服务端发送第二模型参数,以使服务端在接收到多个训练设备发送的第二模型参数后,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数,判断包括第三模型参数的预设模型是否收敛,若收敛,则将第三模型参数确定为预设模型训练完成后的模型参数。
可选的,上述模型训练装置还装置包括:
第五发送模块,用于向服务端发送训练请求。
可选的,上述模型训练装置还可以包括:
第三检测模块,用于检测是否接收到服务端发送的包括预设时间的等待指令,该等待指令为服务端在接收到训练请求,且检测到多个训练设备正在对预设模型进行训练时发送的。
第六发送模块,用于在第三检测模块的检测结果为是时,根据等待指令,在预设时间后重新向服务端发送训练请求。
通过本发明实施例提供的装置,由多个训练设备根据服务端发送的模型参数和训练指令,利用训练数据对预设模型进行训练得到模型参数,并将该模型参数发送给服务端。服务端对每一训练设备发送的模型参数进行处理,得到新的模型参数,从而判断包括新的模型参数的预设模型是否收敛,在预设模型收敛时,完成对预设模型的训练,这使得服务端中不会存在每一训练设备中的训练数据,并且服务端与每一训练设备之间传输的数据为模型参数,不是每一训练设备中的训练数据,大大降低了训练数据发生泄露的风险,从而降低了用户隐私泄露的风险。
基于同一种发明构思,根据上述本发明实施例提供的模型训练方法,本发明实施例还提供了一种电子设备,应用于服务端,如图10所示,包括处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信;
存储器1003,用于存放计算机程序;
处理器1001,用于执行存储器1003上所存放的程序时,实现如下步骤:
确定多个训练设备;
向多个训练设备发送训练指令,该训练指令包括第一模型参数;
接收每一训练设备发送的第二模型参数,该第二模型参数为训练设备基于训练指令和训练数据,对预设模型进行训练得到的,该训练数据是根据训练设备中的用户数据确定的;
根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数;
判断包括第三模型参数的预设模型是否收敛;
若收敛,则将第三模型参数确定为预设模型训练完成后的模型参数。
基于同一种发明构思,根据上述本发明实施例提供的模型训练方法,本发明实施例还提供了一种电子设备,应用于训练设备,如图11所示,包括处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信;
存储器1103,用于存放计算机程序;
处理器1101,用于执行存储器1103上所存放的程序时,实现如下步骤:
获取训练数据,该训练数据是根据训练设备中的用户数据确定的;
检测是否接收到服务端发送的训练指令,该训练指令包括第一模型参数;
若是,则基于训练指令和训练数据,对预设模型进行训练,得到第二模型参数;
向服务端发送第二模型参数,以使服务端在接收到多个训练设备发送的第二模型参数后,根据接收到的多个第二模型参数,利用联合平均算法,得到第三模型参数,判断包括第三模型参数的预设模型是否收敛,若收敛,则将第三模型参数确定为预设模型训练完成后的模型参数。
通过本发明实施例提供的电子设备,由多个训练设备根据服务端发送的模型参数和训练指令,利用训练数据对预设模型进行训练得到模型参数,并将该模型参数发送给服务端。服务端对每一训练设备发送的模型参数进行处理,得到新的模型参数,从而判断包括新的模型参数的预设模型是否收敛,在预设模型收敛时,完成对预设模型的训练,这使得服务端中不会存在每一训练设备中的训练数据,并且服务端与每一训练设备之间传输的数据为模型参数,不是每一训练设备中的训练数据,大大降低了训练数据发生泄露的风险,从而降低了用户隐私泄露的风险。
上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
基于同一种发明构思,根据上述本发明实施例提供的模型训练方法,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一模型训练方法的步骤。
基于同一种发明构思,根据上述本发明实施例提供的模型训练方法,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一模型训练方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质及计算机程序产品等实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。