本发明专利技术公开了一种编译方法、装置、电子设备和存储介质。该编译方法可应用于横向联邦学习的多个参与方中的任一参与方。该方法包括:获取横向联邦学习的源代码;源代码包括多个待执行的操作以及每一操作对应的执行方标识,执行方标识用于指示执行所述操作的至少一个参与方;根据源代码,生成对应的计算图;计算图中包括源代码中各执行方标识对应的角色节点,每一角色节点对应有分支节点,所述分支节点用于表征所述执行方标识对应的操作;根据所述计算图中的角色节点,生成对应的判断语句,所述判断语句用于判断所述第一参与方是否属于所述操作的执行方;根据所述计算图中每个角色节点的分支节点和每个角色节点对应的判断语句,生成编译后的代码。成编译后的代码。成编译后的代码。
【技术实现步骤摘要】
编译方法、装置、电子设备和存储介质
[0001]本专利技术涉及数据处理领域,尤其涉及一种编译方法、装置、电子设备和存储介质。
技术介绍
[0002]科技不断发展,人工智能技术已被广泛应用,数据的价值也愈发凸显。但随着近年来人们对数据隐私的重视以及相应政策法规的发布,传统的获取原始数据并进行机器学习建模的做法已不再方便可行。人们开始转而采用联邦机器学习或多方安全计算等方式进行建模。
[0003]联邦机器学习或多方安全计算会涉及到多个参与方之间的信息传输、调度等,一般需要在代码开发中显式地对加密信息传输。这就需要为每一不同角色的参与方进行不同的代码逻辑实现,导致代码复杂,较难开发和维护。也会使得相应的机器学习开发和学习成本较高,体验较差。
技术实现思路
[0004]本专利技术的主要目的在于提供一种编译方法、装置、电子设备及存储介质,旨在通过编译使各参与方可以执行同一套源代码中专属于自己的代码,以简化源代码编写的复杂度,进而提高源代码开发和维护效率。
[0005]为实现上述目的,本专利技术提供一种编译方法,应用于横向联邦学习的多个参与方中的第一参与方,所述方法包括:获取横向联邦学习的源代码;所述源代码包括多个待执行的操作以及每一操作对应的执行方标识,所述执行方标识用于指示执行所述操作的至少一个参与方;根据所述源代码,生成对应的计算图;所述计算图中包括所述源代码中各执行方标识对应的角色节点,每一角色节点对应有分支节点,所述分支节点用于表征所述执行方标识对应的操作;根据所述计算图中的角色节点,生成对应的判断语句,所述判断语句用于判断所述第一参与方是否属于所述操作的执行方;根据所述计算图中每个角色节点的分支节点和每个角色节点对应的判断语句,生成编译后的代码。
[0006]可选的,所述方法还包括:
[0007]根据所述计算图,确定各参与方提供的单方数据所在节点;
[0008]在所述各参与方提供的单方数据所在节点之后增加加密节点;
[0009]根据所述加密节点,生成对所述单方数据进行加密的加密语句;
[0010]所述根据所述计算图中每个角色节点的分支节点和每个角色节点对应的判断语句,生成编译后的代码,包括:
[0011]根据所述计算图中每个角色节点的分支节点、每个角色节点对应的判断语句、所述加密语句,生成编译后的代码。
[0012]可选的,所述多个待执行的操作包括:数据传输操作;所述数据传输操作用于指示模型训练数据的传输方向,所述模型训练数据是基于单方数据计算得到的;
[0013]所述根据所述源代码,生成对应的计算图,包括:
[0014]根据所述数据传输操作,生成对应的数据传输节点;
[0015]所述方法还包括:
[0016]根据所述数据传输节点,生成对应的数据传输语句;
[0017]所述根据所述计算图中每个角色节点的分支节点和每个角色节点对应的判断语句,生成编译后的代码,包括:
[0018]根据所述计算图中每个角色节点的分支节点、每个角色节点对应的判断语句、所述数据传输语句,生成编译后的代码。
[0019]可选的,所述根据所述源代码,生成对应的计算图,还包括:
[0020]在所述数据传输节点之前增加加密节点;
[0021]所述方法还包括:
[0022]根据所述加密节点,生成对所述模型训练数据进行加密的加密语句。
[0023]可选的,所述生成对所述模型训练数据进行加密的加密语句,包括:
[0024]若所述加密节点对应的数据传输函数的传输方向指向参与方中的协调方,则根据协调方的公钥,生成对所述模型训练数据进行加密的加密语句。
[0025]可选的,所述根据所述数据传输节点,生成对应的数据传输语句,包括:
[0026]根据所述数据传输节点所对应的角色节点,所述数据传输节点对应的数据传输方向,生成对应的数据传输语句。
[0027]可选的,所述多个待执行的操作包括:数据解密操作;
[0028]所述根据所述源代码,生成对应的计算图,包括:
[0029]根据所述数据解密操作,生成对应的数据解密节点;
[0030]所述方法还包括:
[0031]根据所述数据解密节点,生成对应的数据解密语句;
[0032]所述根据所述计算图中每个角色节点的分支节点和每个角色节点对应的判断语句,生成编译后的代码,包括:
[0033]根据所述计算图中每个角色节点的分支节点、每个角色节点对应的判断语句、所述数据解密语句,生成编译后的代码。
[0034]本专利技术还提供一种编译装置,包括:
[0035]获取模块,用于获取横向联邦学习的源代码;所述源代码包括多个待执行的操作以及每一操作对应的执行方标识,所述执行方标识用于指示执行所述操作的至少一个参与方;
[0036]计算图生成模块,用于根据所述源代码,生成对应的计算图;所述计算图中包括所述源代码中各执行方标识对应的角色节点,每一角色节点对应有分支节点,所述分支节点用于表征所述执行方标识对应的操作;
[0037]目标代码生成模块,用于根据所述计算图中的角色节点,生成对应的判断语句,所述判断语句用于判断第一参与方是否属于所述操作的执行方;根据所述计算图中每个角色节点的分支节点和每个角色节点对应的判断语句,生成编译后的代码。
[0038]本专利技术还提供一种电子设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的编译程序,所述编译程序被所述处理器执行时实现如上所述的编译方法的步骤。
[0039]本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有编译程序,所述编译程序被处理器执行时实现如上所述的编译方法的步骤。
[0040]本专利技术提供一种编译方法、装置、电子设备和存储介质。该编译方法可应用于横向联邦学习的多个参与方中的第一参与方,第一参与方可以为任一方。该方法包括:获取横向联邦学习的源代码;所述源代码包括多个待执行的操作以及每一操作对应的执行方标识,所述执行方标识用于指示执行所述操作的至少一个参与方;根据所述源代码,生成对应的计算图;所述计算图中包括所述源代码中各执行方标识对应的角色节点,每一角色节点对应有分支节点,所述分支节点用于表征所述执行方标识对应的操作;根据所述计算图中的角色节点,生成对应的判断语句,所述判断语句用于判断所述第一参与方是否属于所述操作的执行方;根据所述计算图中每个角色节点的分支节点和每个角色节点对应的判断语句,生成编译后的代码。各参与方可以采用此编译方法对源代码进行编译,在编译过程中,识别源代码中每一操作所对应的执行方标识,并基于执行方标识生成对应的角色节点,进而生成源代码对应的计算图,再根据计算图中的各节点生成编译后的代码。在各参与方执行编译后的代码时,执行到判断语句对应的代码,可以通过判断自己是否属于对应操作的执行方,进而自动执行属于自己的操作,共同配合完成纵向联邦学习的过程。也就是说,此编译方法是支持源代本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种编译方法,其特征在于,应用于横向联邦学习的多个参与方中的第一参与方,所述方法包括:获取横向联邦学习的源代码;所述源代码包括多个待执行的操作以及每一操作对应的执行方标识,所述执行方标识用于指示执行所述操作的至少一个参与方;根据所述源代码,生成对应的计算图;所述计算图中包括所述源代码中各执行方标识对应的角色节点,每一角色节点对应有分支节点,所述分支节点用于表征所述执行方标识对应的操作;根据所述计算图中的角色节点,生成对应的判断语句,所述判断语句用于判断所述第一参与方是否属于所述操作的执行方;根据所述计算图中每个角色节点的分支节点和每个角色节点对应的判断语句,生成编译后的代码。2.根据权利要求1所述的方法,其特征在于,还包括:根据所述计算图,确定各参与方提供的单方数据所在节点;在所述各参与方提供的单方数据所在节点之后增加加密节点;根据所述加密节点,生成对所述单方数据进行加密的加密语句;所述根据所述计算图中每个角色节点的分支节点和每个角色节点对应的判断语句,生成编译后的代码,包括:根据所述计算图中每个角色节点的分支节点、每个角色节点对应的判断语句、所述加密语句,生成编译后的代码。3.根据权利要求1或2所述的方法,其特征在于,所述多个待执行的操作包括:数据传输操作;所述数据传输操作用于指示模型训练数据的传输方向,所述模型训练数据是基于单方数据计算得到的;所述根据所述源代码,生成对应的计算图,包括:根据所述数据传输操作,生成对应的数据传输节点;所述方法还包括:根据所述数据传输节点,生成对应的数据传输语句;所述根据所述计算图中每个角色节点的分支节点和每个角色节点对应的判断语句,生成编译后的代码,包括:根据所述计算图中每个角色节点的分支节点、每个角色节点对应的判断语句、所述数据传输语句,生成编译后的代码。4.根据权利要求3所述的方法,其特征在于,所述根据所述源代码,生成对应的计算图,还包括:在所述数据传输节点之前增加加密节点;所述方法还包括:根据所述加密节点,生成对所述模型训练数据进行加密的加密语句。5.根据权利要求4所述的方法,其特征在于,所述生...
【专利技术属性】
技术研发人员:李冕和,陈瑞钦,黄启军,
申请(专利权)人:深圳前海微众银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。