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.对各条语音数据用word2vec算法计算该条语音数据与除了该条语音数据之外的其他语音数据的重复度,得到各条语音数据的重复度打分集合;
29.计算各重复度打分集合中数据的平均值,得到各条语音数据的平均重复度打分。
30.可选的,根据平均重复度打分确定二次训练轮次,按照二次训练轮次训练全局语音识别模型,包括:
31.将平均重复度打分与预设训练轮次相乘后取整数部分,得到各条语音数据的二次训练轮次;
32.将二次训练轮次相同的各条语音数据组合,形成语音数据组;
33.基于语音数据组,按照相对应的二次训练轮次训练全局语音识别模型。
34.第二方面,提供了一种基于区块链与联邦学习的模型训练装置,该区块链包括参与训练的多个空闲边缘节点,多个空闲边缘节点的一个为聚合节点,其余空闲边缘节点为训练节点,该装置包括:
35.全局初始模型生成单元,用于基于随机函数生成最初的全局初始模型;
36.本地语音识别模型训练单元,用于从聚合节点下载全局初始模型,以全局初始模型为本地初始模型,基于各训练节点的本地语音数据训练得到各训练节点的本地语音识别模型;
37.本地语音识别模型聚合单元,用于将各自的本地语音识别模型分别传输至聚合节
点,以使聚合节点依照聚合算法得到全局语音识别模型,并将得到的全局语音识别模型作为全局初始模型;
38.全局语音识别模型下载单元,用于当全局语音识别模型满足预设迭代条件时,从聚合节点下载全局语音识别模型;
39.全局语音识别模型训练单元,用于基于各空闲边缘节点存储的本地语音数据计算二次训练所需的参数并上传至所述区块链,根据各自存储的本地语音数据及所述参数分别二次训练并部署全局语音识别模型。
40.第三方面,提供了一种区块链,该区块链包括参与训练的多个空闲边缘节点,多个空闲边缘节点的一个为聚合节点,其余空闲边缘节点为训练节点;
41.聚合节点,用于基于随机函数生成最初的全局初始模型;
42.训练节点,用于从聚合节点下载全局初始模型,以全局初始模型为本地初始模型,基于存储的本地语音数据训练得到本地语音识别模型,并将本地语音识别模型传输至聚合节点;
43.聚合节点,用于根据训练节点传输的各自的本地语音识别模型,依照聚合算法聚合得到全局语音识别模型,并将得到的全局语音识别模型作为全局初始模型,当全局语音识别模型满足预设迭代条件时,将全局语音识别模型下发至训练节点;
44.多个空闲边缘节点,用于基于各自存储的本地语音数据计算二次训练所需的参数并上传至所述区块链,根据各自存储的本地语音数据及所述参数分别二次训练并部署全局语音识别模型。
45.第四方面,本技术实施例还提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行上述任一的方法。
46.第五方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行上述任一的方法。
47.本技术实施例采用的上述至少一个技术方案能够达到以下有益效果:
48.本技术基于区块链技术与联邦学习算法的思想,将全局初始模型下发到各个参与训练的训练节点,使得各训练节点基于各自存储的本地语音数据进行训练;将各训练节点训练得到的本地语音识别模型在聚合节点依照聚合算法得到全局语音识别模型;将全局语音识别模型下发到各个参与训练的训练节点,使得各空闲边缘节点基于各自存储的本地语音数据进行二次训练参数的计算;将二次训练所需的参数上传至区块链,根据各空闲边缘节点存储的本地语音数据及参数分别二次训练并部署全局语音识别模型,最终得到满足各个设备个性化需求的模型。本技术各训练节点的本地语音数据没有离开本地即完成了模型训练,不仅保证了用户的数据隐私,而且满足了模型训练任务的数据和效率需求;各训练节点的相关数据上链,实现了信息可溯源和防篡改;对全局语音识别模型进行迭代训练,在其满足预设迭代条件时下发至各训练节点,提高了模型训练的准确性;将联邦学习训练得到的模型进行个性化改造,通过二次训练使每个设备都能获得个性化模型,提高了本地部署模型的使用精度,提升了用户体验。
附图说明
49.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
50.图1示出根据本技术的一个实施例的区块链的结构示意图;
51.图2示出根据本技术的一个实施例的基于区块链与联邦学习的模型训练方法的流程示意图;
52.图3示出根据本技术的一个实施例的基于区块链与联邦学习的模型训练装置的结构示意图;
53.图4为本技术实施例中一种电子设备的结构示意图。
具体实施方式
54.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
55.以下结合附图,详细说明本技术各实施例提供的技术方案。
56.本技术的构思在于,针对现有语音识别场景中,无法兼顾用户信息安全与个性化需求的技术壁垒问题,基于区块链技术和联邦学习思想,提供了一种基于区块链与联邦学习的模型训练方法,使得多个参与方能够在区块链的基础上,在不泄露用户隐私数据的前提下,训练和部署个性化的全局语音识别模型。
57.联邦学习(federated learning)是一种新型的人工智能基础技术,在2016年由谷歌最先提出,原本用于解决安卓手机终端用户在本地更新模型的问题,其设计目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算节点之间开展高效率的机器学习。
58.图1示出了根据本技术的一个实施例的区块链的结构示意图,但实现本技术不局限于图1所示的区块链,凡是能够实现本技术提供的全局语音识别模型的训练方法的区块链系统均可。
59.从图1所示可以看出,图1示出的区块链100包括参与训练的多个空闲边缘节点,多个空闲边缘节点的一个为聚合节点101,其余的空闲边缘节点为训练节点102。聚合节点101与各训练节点102通信连接。
60.这里需要说明的,每一个参与训练的空闲边缘节点都可以作为聚合节点101,或者训练节点102,本技术不作限制,只是在进行模型训练时,聚合节点101与训练节点102所负责的工作有所不同。至于哪一个空闲边缘节点为聚合节点101,在本技术的执行过程中随机确定。
61.图2示出了本技术的一个实施例中的基于区块链与联邦学习的模型的训练方法,从图2可以看出,本技术至少包括步骤s210~步骤s250:
62.步骤s210:聚合节点基于随机函数生成最初的全局初始模型。
63.语音识别训练任务发布者从边缘网络中收集多个空闲边缘节点参与训练,各个空闲边缘节点均存储有各自的本地语音数据。在多个空闲边缘节点中随机选取一个为聚合节
点,其余空闲边缘节点为训练节点,聚合节点与各训练节点仅在于在模型训练过程中所负责的工作不同。
64.当多个空闲边缘节点中的一个被确定为聚合节点后,该聚合节点基于随机函数生成最初的全局初始模型,作为后续迭代训练的原始模型。
65.步骤s220:各训练节点从聚合节点下载全局初始模型,以全局初始模型为本地初始模型,基于各训练节点的本地语音数据训练得到各训练节点的本地语音识别模型。
66.聚合节点生成并存储最初的全局初始模型。各训练节点从聚合节点下载最初的全局初始模型存储本地,将最初的全局初始模型作为各训练节点的本地初始模型。基于各训练节点存储的本地语音数据对最初的全局初始模型分别进行训练,得到各训练节点的本地语音识别模型。
67.在各训练节点对本地初始模型进行训练时,各训练节点存储的本地语音数据是不用上链、无需传输的,这样保证了本地语音数据的隐私性。对于本地语音识别模型的分布式训练过程可参考现有技术,例如预先设定必要的训练数据,随后基于本地语音数据在各训练节点迭代若干次,直到满足要求,结束训练,得到模型参数。
68.在本技术的一些实施例中,各训练节点训练本地初始模型的数据量可以但不限于由语音识别训练任务发布者预设确定。数据量可以但不限于包括数据条数和训练轮次。各训练节点训练本地初始模型的数据条数和训练轮次可以相同也可以不同。即可以为:各训练节点训练本地初始模型的数据条数相同且训练轮次相同,或者各训练节点训练本地初始模型的数据条数相同但训练轮次不同,亦或者各训练节点训练本地初始模型的数据条数不同但训练轮次相同。各训练节点根据数据条数确定训练样本,完成规定轮次的本地训练,得到本地语音识别模型。
69.步骤s230:各训练节点将各自的本地语音识别模型分别传输至聚合节点,以使聚合节点依照聚合算法聚合得到全局语音识别模型,并将得到的全局语音识别模型作为全局初始模型。
70.各训练节点将其在本地训练得到的本地语音识别模型分别传输到聚合节点。聚合节点基于其接收的所有本地语音识别模型进行聚合计算,得到一个全局语音识别模型。得到的该全局语音识别模型存储于聚合节点,作为下一次迭代训练的模型基础。
71.在实际训练过程中,对于一个模型的训练通常不是一个轮次的训练即可达到比较理想的效果的,通常需要进行多轮次训练,后一轮次的训练以前一轮次得到的模型参数为基础。本技术以聚合节点生成的最初的全局初始模型作为原始模型,基于各训练节点的分布式本地训练得到的本地语音识别模型聚合得到全局语音识别模型,并将得到的全局语音识别模型作为新的全局初始模型存储于聚合节点。各训练节点再次从聚合节点下载新的全局初始模型,进行分布式本地训练得到本地语音识别模型并传输至聚合节点。聚合节点对本地语音识别模型进行聚合后得到的全局语音识别模型作为最新的全局初始模型存储于聚合节点。如此往复迭代训练,直至全局语音识别模型满足预设迭代条件。
72.在本技术的一些实施例中,假设经过三个轮次的迭代训练即满足预设迭代条件,在第一轮次时,执行步骤s210-步骤s230;在第二轮次时,执行步骤s220-步骤s230;在第三轮次时,执行步骤s220-步骤s230。具体的迭代次数以最终的全局语音识别模型满足预设迭代条件确定。
73.聚合节点在对各训练节点传输的本地语音识别模型进行聚合时,可综合考虑各个训练节点的训练结果,得到最终的聚合模型参数,使得训练样本数量非常庞大,训练样本范围囊括各训练节点的本地语音数据,数据全面、准确度高。
74.步骤s240:当全局语音识别模型满足预设迭代条件时,各训练节点从聚合节点下载全局语音识别模型。
75.预设迭代条件可以但不限于全局语音识别模型的精度达到标准,或者聚合节点对本地语音识别模型进行聚合的次数达到标准。当全局语音识别模型满足预设迭代条件时,意味着全局语音识别模型训练完毕,各训练节点从聚合节点下载全局语音识别模型存储于本地。
76.在本技术的一些实施例中,每聚合得到全局语音识别模型,便对其精度进行评估。如果精度达到要求,即停止全局语音识别模型的迭代训练,将最新的全局语音识别模型下发至各训练节点;如果精度没有达到要求,则意味着由于训练次数不够,全局语音识别模型不能达到部署要求,需要继续重复迭代训练。
77.步骤s250:各空闲边缘节点基于各自存储的本地语音数据计算二次训练所需的参数并上传至所述区块链,根据各自存储的本地语音数据及所述参数分别二次训练并部署全局语音识别模型。
78.各训练节点从聚合节点下载全局语音识别模型后,各训练节点和聚合节点均存储有全局语音识别模型。即各空闲边缘节点均存储有全局语音识别模型及其各自的本地语音数据。此时,各空闲边缘节点基于各自存储的本地语音数据计算二次训练所需的参数,并将参数上传至区块链,使得参数可溯源并防篡改。基于本地语音数据和计算所得的参数对全局语音识别模型进行二次训练,得到适合于各空闲边缘节点的个性化全局语音识别模型,并进行部署。如此,各空闲边缘节点上部署的模型均具有本地个性化特点。在最终的部署效果上,聚合节点和训练节点不存在区别。
79.由图2所示的方法可以看出,本技术基于区块链技术与联邦学习算法的思想,将全局初始模型下发到各个参与训练的训练节点,使得各训练节点基于各自存储的本地语音数据进行训练;将各训练节点训练得到的本地语音识别模型在聚合节点依照聚合算法得到全局语音识别模型;将全局语音识别模型下发到各个参与训练的训练节点,使得各空闲边缘节点基于各自存储的本地语音数据进行二次训练参数的计算;将二次训练所需的参数上传至区块链,根据各空闲边缘节点存储的本地语音数据及参数分别二次训练并部署全局语音识别模型,最终得到满足各个设备个性化需求的模型。本技术各训练节点的本地语音数据没有离开本地即完成了模型训练,不仅保证了用户的数据隐私,而且满足了模型训练任务的数据和效率需求;各训练节点的相关数据上链,实现了信息可溯源和防篡改;对全局语音识别模型进行迭代训练,在其满足预设迭代条件时下发至各训练节点,提高了模型训练的准确性;将联邦学习训练得到的模型进行个性化改造,通过二次训练使每个设备都能获得个性化模型,提高了本地部署模型的使用精度,提升了用户体验。
80.在本技术的一些实施例中,各训练节点从聚合节点下载全局初始模型,以全局初始模型为本地初始模型,基于各训练节点的本地语音数据训练得到各训练节点的本地语音识别模型,包括:各训练节点根据预设数据量从各自的本地语音数据中随机获取指定数量的训练样本,其中,预设数据量包括预设数据条数和预设训练轮次;各训练节点基于指定数
量的训练样本,按照预设训练轮次训练本地初始模型,得到各训练节点的本地语音识别模型。
81.语音识别训练任务发布者预设确定各训练节点训练的数据量,该数据量包括预设数据条数和预设训练轮次。预设数据条数决定各训练节点训练本地初始模型所需的样本数量,预设训练轮次决定各训练节点训练得到的本地语音识别模型的精度。各训练节点根据预设数据条数从各自存储的本地语音数据中随机获取指定数量的训练样本。指定数量的训练样本从本地语音数据中随机选取,使训练样本的任意性更高,有利于得到更优的本地语音识别模型。
82.在训练本地初始模型的过程中,每轮次送入训练的样本数目可以相同也可以不同。每轮次送入训练的样本数目相同可以是,将指定数量的训练样本根据预设训练轮次随机平均分组;每轮次训练时在各训练样本分组中随机选择一组送入。每轮次送入训练的样本数目不同可以是,将指定数量的训练样本根据预设训练轮次随机梯度分组,例如各训练样本分组的数据数量等差分配;对本地初始模型进行训练时,按照训练样本分组的数据数量从多到少的顺序按轮次送入。
83.在本技术的一些实施例中,各训练节点将各自的本地语音识别模型分别传输至聚合节点,以使聚合节点依照聚合算法聚合得到全局语音识别模型,并将得到的全局语音识别模型作为全局初始模型,包括:各训练节点将各自的本地语音识别模型参数分别传输至聚合节点;聚合节点对参数的每个维度取平均值,以平均值组成的新参数作为全局语音识别模型的参数,得到全局语音识别模型;将得到的全局语音识别模型作为全局初始模型。
84.聚合函数的种类非常多,不同的聚合函数对应不同的应用场景,解决不同的实际问题。在本技术训练全局语音识别模型的情况下,采用经典的聚合算法。即,各个训练节点将各自的本地语音识别模型参数传输到聚合节点;聚合节点收到各模型参数后,对于各模型参数包括的每个维度均取平均值,得到一个新的模型参数;以新的模型参数作为全局语音识别模型的参数,得到聚合之后的全局语音识别模型。得到的该全局语音识别模型存储于聚合节点,作为下一次迭代训练的全局初始模型基础。
85.在本技术中,各训练节点从聚合节点下载全局初始模型,基于各自的本地语音数据进行分布式训练,聚合节点将各分布式训练结果聚合成全局语音识别模型,作为新一轮的全局初始模型。上述过程作为一次迭代过程,循环往复,直至全局语音识别模型满足迭代条件。
86.在本技术的一些实施例中,当全局语音识别模型满足预设迭代条件时,各训练节点从聚合节点下载全局语音识别模型,包括:当全局语音识别模型的精度高于预设精度阈值时,各训练节点从聚合节点下载全局语音识别模型。
87.语音识别训练任务发布者可以根据需求指定预设精度阈值。对于精度要求较高的任务,例如与军工相关的语音识别,需要较高的模型精度门槛,因此设定一个较高的预设精度阈值,使全局语音识别模型需要经过多次迭代训练以满足预设迭代条件。对于精度较低的任务,无需较高的模型精度门槛,而需要较快地获取到模型,因此设定一个较低的预设精度阈值,使全局语音识别模型无需经过过多迭代而快速满足预设迭代要求。
88.在本技术的一些实施例中,各空闲边缘节点基于各自存储的本地语音数据计算二次训练所需的参数并上传至所述区块链,根据各自存储的本地语音数据及所述参数分别二
次训练并部署全局语音识别模型,包括:收集存储于各边缘空闲节点的所有语音数据;确定各条语音数据的平均重复度打分;将平均重复度打分上传至区块链;根据平均重复度打分确定二次训练轮次,按照二次训练轮次训练全局语音识别模型。
89.各训练节点从聚合节点下载全局语音识别模型后,各空闲边缘节点分别存储有全局语音识别模型及各自的本地语音数据。此时,各空闲边缘节点在本地对全局语音识别模型进行二次训练。
90.对任一个空闲边缘节点,首先收集其存储的所有语音数据。对其中一条语音数据,确定该条语音数据与除该条之外的其他语音数据的平均重复度打分。以上述同样的方法,确定各条语音数据的平均重复度打分,并将平均重复度打分上传至区块链。将各条语音数据与其他语音数据的重复度打分记录在区块链上,保证了信息的可溯源和防篡改,并且进一步提高了模型二次训练的准确性。而后基于平均重复度打分,确定各空闲边缘节点的二次训练轮次,按照确定的二次训练轮次训练全局语音识别模型,并进行部署,使得各边缘节点上部署的模型均具有本地个性化特点。
91.在本技术的一些实施例中,确定各条语音数据的平均重复度打分,包括:对各条语音数据用word2vec算法计算该条语音数据与除了该条语音数据之外的其他语音数据的重复度,得到各条语音数据的重复度打分集合;计算各所述重复度打分集合中数据的平均值,得到各条语音数据的平均重复度打分。
92.举例来说,假设所有语音数据包括4条,则对其中1条,用word2vec算法计算出其与其他语音数据的重复度,得到该条语音数据的重复度打分集合{a1、a2、a3};其他3条,用word2vec算法计算出重复度打分集合分别为{b1、b2、b3}、{c1、c2、c3}、{d1、d2、d3}。对各重复度打分集合分别计算平均值,得到4条语音数据的平均重复度打分为a、b、c、d。
93.在本技术的一些实施例中,根据平均重复度打分确定二次训练轮次,按照二次训练轮次训练全局语音识别模型,包括:将平均重复度打分与预设训练轮次相乘后取整数部分,得到各条语音数据的二次训练轮次;将二次训练轮次相同的各条语音数据组合,形成语音数据组;基于语音数据组,按照相对应的二次训练轮次训练全局语音识别模型。
94.将每个重复度打分和之前进行本地分布式训练的预设训练轮次相乘,再截断小数位取整,得到二次训练时该条语音数据的训练轮次。延续上述举例,假设在4条语音数据中,第1条和第2条计算得到的二次训练轮次为x,第3条和第4条计算得到的二次训练轮次为y。将二次训练轮次相同的各条语音数据组合,形成语音数据组。即语音数据组a包括第1条和第2条语音数据,二次训练轮次为x;语音数据组b包括第3条和第4条语音数据,二次训练轮次为y。当然上述举例仅为描述性的,在实际训练中,各空闲边缘节点所存储的本地语音数据样本数量是非常庞大的,能够非常全面的体现各空闲边缘节点的本体个性化特征。最后,各空闲边缘节点基于语音数据组,按照相对应的二次训练轮次训练全局语音识别模型,部署具有本地个性化特点的模型。
95.申请人特别强调,本技术的技术方案,在各训练节点进行了两次本地模型训练。两次本地模型训练的方式和作用各不相同。第一次本地模型训练,训练用样本数据和训练轮次由预设数据量确定,各训练节点作为分布式模型训练的一部分,将训练得到的本地语音识别模型传输至聚合节点以聚合得到全局语音识别模型。这样本地语音数据不用上链、无需传输,能够保证用户数据隐私;全局语音识别模型基于各训练节点存储的本地语音数据
为训练样本,数据规模更加宏大、训练效率更高。第二次本地模型训练,训练用样本数据和训练轮次基于本地语音数据计算获得,相关参数上链,各个训练节点将经过二次训练全局语音识别模型得到的个性化模型进行部署。这样每个节点都能获得一个用户个性化特征的模型,提高了本地部署模型的使用精度,提升了用户体验。
96.图3示出了根据本技术的一个实施例的基于区块链与联邦学习的模型训练装置,区块链包括参与训练的多个空闲边缘节点,多个空闲边缘节点的一个为聚合节点,其余空闲边缘节点为训练节点。训练装置部署于区块链的各节点(图1的101和102)中,从图3可以看出,该装置300包括:
97.全局初始模型生成单元310,用于基于随机函数生成最初的全局初始模型;
98.本地语音识别模型训练单元320,用于从聚合节点下载全局初始模型,以全局初始模型为本地初始模型,基于各训练节点的本地语音数据训练得到各训练节点的本地语音识别模型;
99.本地语音识别模型聚合单元330,用于将各自的本地语音识别模型分别传输至聚合节点,以使聚合节点依照聚合算法聚合得到全局语音识别模型,并将得到的全局语音识别模型作为全局初始模型;
100.全局语音识别模型下载单元340,用于当全局语音识别模型满足预设迭代条件时,从聚合节点下载全局语音识别模型;
101.全局语音识别模型训练单元350,用于基于各空闲边缘节点存储的本地语音数据计算二次训练所需的参数并上传至所述区块链,根据各自存储的本地语音数据及所述参数分别二次训练并部署全局语音识别模型。
102.在本技术的一些实施例中,在上述装置中,本地语音识别模型训练单元320,用于根据预设数据量从各自的本地语音数据中随机获取指定数量的训练样本,其中,预设数据量包括预设数据条数和预设训练轮次;基于指定数量的训练样本,按照预设训练轮次训练本地初始模型,得到本地语音识别模型。
103.在本技术的一些实施例中,在上述装置中,本地语音识别模型聚合单元330,用于将各自的本地语音识别模型参数分别传输至聚合节点,以使聚合节点对参数的每个维度取平均值,以平均值组成的新参数作为全局语音识别模型的参数,得到全局语音识别模型,并将得到的全局语音识别模型作为全局初始模型。
104.在本技术的一些实施例中,在上述装置中,全局语音识别模型下载单元340,用于当全局语音识别模型的精度高于预设精度阈值时,从聚合节点下载全局语音识别模型。
105.在本技术的一些实施例中,在上述装置中,全局语音识别模型训练单元350,包括:语音数据收集模块,用于收集所有语音数据;平均重复度确定模块,用于确定各条语音数据的平均重复度打分;传输模块,用于将平均重复度打分上传至数据链;二次训练模块,用于根据平均重复度打分确定二次训练轮次,按照二次训练轮次训练全局语音识别模型。
106.在本技术的一些实施例中,在上述装置中,平均重复度确定模块,用于对各条语音数据用word2vec算法计算该条语音数据与除了该条语音数据之外的其他语音数据的重复度,得到各条语音数据的重复度打分集合;计算各重复度打分集合中数据的平均值,得到各条语音数据的平均重复度打分。
107.在本技术的一些实施例中,在上述装置中,二次训练模块,用于将平均重复度打分
与预设训练轮次相乘后取整数部分,得到各条语音数据的二次训练轮次;将二次训练轮次相同的各条语音数据组合,形成语音数据组;基于语音数据组,按照相对应的二次训练轮次训练全局语音识别模型。
108.图4是本技术的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
109.处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
110.存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
111.处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成基于区块链与联邦学习的模型训练装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
112.聚合节点基于随机函数生成最初的全局初始模型;
113.各所述训练节点从所述聚合节点下载全局初始模型,以所述全局初始模型为本地初始模型,基于各所述训练节点的本地语音数据训练得到各所述训练节点的本地语音识别模型;
114.各所述训练节点将各自的所述本地语音识别模型分别传输至所述聚合节点,以使所述聚合节点依照聚合算法聚合得到全局语音识别模型,并将得到的所述全局语音识别模型作为所述全局初始模型;
115.当所述全局语音识别模型满足预设迭代条件时,各所述训练节点从所述聚合节点下载所述全局语音识别模型;
116.各所述空闲边缘节点基于各自存储的本地语音数据计算二次训练所需的参数并上传至所述区块链,根据各自存储的本地语音数据及所述参数分别二次训练并部署所述全局语音识别模型。
117.上述如本技术图3所示实施例揭示的基于区块链与联邦学习的模型训练装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施
例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
118.该电子设备还可执行图3中基于区块链与联邦学习的模型训练装置执行的方法,并实现基于区块链与联邦学习的模型训练装置在图3所示实施例的功能,本技术实施例在此不再赘述。
119.本技术实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图3所示实施例中基于区块链与联邦学习的模型训练装置执行的方法,并具体用于执行:
120.聚合节点基于随机函数生成最初的全局初始模型;
121.各所述训练节点从所述聚合节点下载全局初始模型,以所述全局初始模型为本地初始模型,基于各所述训练节点的本地语音数据训练得到各所述训练节点的本地语音识别模型;
122.各所述训练节点将各自的所述本地语音识别模型分别传输至所述聚合节点,以使所述聚合节点依照聚合算法聚合得到全局语音识别模型,并将得到的所述全局语音识别模型作为所述全局初始模型;
123.当所述全局语音识别模型满足预设迭代条件时,各所述训练节点从所述聚合节点下载所述全局语音识别模型;
124.各所述空闲边缘节点基于各自存储的本地语音数据计算二次训练所需的参数并上传至所述区块链,根据各自存储的本地语音数据及所述参数分别二次训练并部署所述全局语音识别模型。
125.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
126.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
127.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
128.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
129.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
130.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
131.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
132.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
133.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
134.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。