一种机器学习算法的转换系统、方法及电子设备技术方案

技术编号:26531860 阅读:29 留言:0更新日期:2020-12-01 14:13
本公开提供一种机器学习算法的转换系统、方法及电子设备,涉及计算机技术领域,系统包括:编程接口层,用于基于预设的数据流程生成工具构建原始机器学习算法的数据流图;操作符安置评估模块,用于计算数据流图中每个操作符在不同参与方执行时对应的安置代价;数据流图拆分调度模块,用于根据安置代价,将数据流图切分为多个子图,并将子图调度到目标参与方执行;编译执行层,用于基于贪心算法策略将子图编译为新数据流图,并通过生成新数据流图中各操作符的指令,得到分布式隐私保护机器学习算法。本公开能够有效改善算法转换过程中存在的兼容性差、耦合度高和性能差的问题。

【技术实现步骤摘要】
一种机器学习算法的转换系统、方法及电子设备
本公开涉及计算机
,尤其涉及一种机器学习算法的转换系统、方法及电子设备。
技术介绍
用于驱动AI模型(如AlphaGo、GPT-3)发展的各式各样的训练数据,常常散落的分布在各个机构,因而可以采用分布式隐私保护机器学习(也称联邦学习)的方式,来解决地理分布式数据收集与模型训练中遇到的数据隐私保护问题。分布式隐私保护机器学习中的一种数据切分方式为垂直切分:数据按照特征分布在不同参与方。对于垂直切分的分布式隐私保护机器学习,其现有的转换方式为,首先实现一个普通串行版本的算法,然后将该算法调试后移植到分布式隐私保护场景中,从而将普通机器学习算法机器转换为分布式隐私保护机器学习。但是,上述方式存在兼容性差、耦合度高和性能差的主要问题。其中,兼容性差是指分布式隐私保护机器学习,其作为机器学习算法的延伸,与主流深度学习框架的兼容性差,不方便开发者使用。耦合度高是指当前分布式隐私保护场景中机器学习算法与隐私保护计算协议紧密耦合,几乎每次开发都需要仔细分析原机器学习算法全流程;耦合度高还会带来应用移植困难、算法迭代困难、可扩展能力差等问题。性能差是指分布式隐私保护机器学习一般来说会比原单机版机器学习算法慢100甚至1000倍,这给分布式隐私保护机器学习的实际落地带来困难。
技术实现思路
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种机器学习算法的转换系统、方法及电子设备。本公开提供了一种机器学习算法的转换系统,包括:从上到下排列的编程接口层、数据流图变换层和编译执行层;其中,所述数据流图变换层包括:操作符安置评估模块、数据流图拆分调度模块;所述编程接口层,用于基于预设的数据流程生成工具构建原始机器学习算法的数据流图;其中,所述数据流程生成工具包括:Google-JAX计算框架;所述数据流图包括一系列操作符;所述操作符安置评估模块,用于计算所述数据流图中每个操作符在不同参与方执行时对应的安置代价;所述数据流图拆分调度模块,用于根据所述安置代价,将所述数据流图切分为多个子图,并将所述子图调度到目标参与方执行;所述编译执行层,用于基于贪心算法策略将所述子图编译为新数据流图,并通过生成所述新数据流图中各操作符的指令,得到分布式隐私保护机器学习算法。进一步,所述操作符包括:源操作数;针对所述数据流图中的任一操作符,所述操作符安置评估模块还用于:通过预设代价性能模型计算该操作符的操作符计算代价、该操作符中源操作数的通信代价和源操作数的计算代价;其中,所述操作符计算代价用于表示操作符的计算在明文或密文上的计算代价,所述源操作数的通信代价用于表示源操作数是否需要进行通信,以及通信对象是明文或密文;基于所述操作符计算代价、所述源操作数的通信代价和所述源操作数的计算代价,确定该操作符在不同参与方执行时分别对应的安置代价。进一步,数据流图拆分调度模块还用于:根据宽度优先搜索算法遍历所述数据流图中的所有操作符,针对任一操作符,根据该操作符的最小的安置代价确定执行该操作符的目标参与方;在遍历的过程中,依次对各所述操作符对应的目标参与方进行标记,得到标记信息;所述标记信息用于表示所述操作符与所述目标参与方的对应关系,以及遍历所述操作符的拓扑序;根据所述标记信息将所述数据流图拆分为多个子图;其中,每个子图包括对应于同一所述目标参与方经拓扑排序后连续的多个所述操作符;根据所述标记信息调度不同的所述目标参与方执行对应的所述子图。进一步,数据流图拆分调度模块还用于:如果在计算所述源操作数的通信代价的过程中,确定当前操作符中的源操作数需要进行通信,则在当前操作符计算流程前添加通信算子,得到改造后的新操作符;如果在计算所述源操作数的通信代价的过程中,确定当前操作符中的源操作数需要进行加密通信,则在添加的所述通信算子前添加加密算子,得到改造后的新操作符;基于所述新操作符对包含所述新操作符的子图进行改造。进一步,所述数据流图变换层还包括子图优化模块;所述子图优化模块,用于对所述子图中的明文计算部分进行优化。进一步,所述编译执行层包括:密文计算原语模块、通信原语模块、计算编译模块;所述密文计算原语模块,用于使用半同态加密算法库或全同态加密算法库生成所述新数据流图中第一目标操作符对应的计算指令;其中,所述第一目标操作符为待进行加解密计算和/或密文计算的所述操作符;所述通信原语模块,用于使用通信库生成第二目标操作符对应的计算指令;其中,所述第二目标操作符为用于不同参与方通信的所述操作符;所述计算编译模块,用于使用预设编译工具生成第三目标操作符对应的计算指令;其中,所述第三目标操作符为待进行明文计算的所述操作符。进一步,所述编译执行层还用于:基于所述贪心算法策略,对所述新数据流图中的操作符逐一执行如下编译操作:判断当前操作符中的源操作数是否不通信,所述当前操作符中的目的操作数是否不通信,以及所述当前操作符与已有的待编译操作符缓存对应的加密与否的状态是否保持一致;其中,所述目的操作数是所述操作符中由所述源操作数计算得到的结果操作数;如果所述当前操作符中的源操作数不通信,所述当前操作符中的目的操作数不通信,且所述当前操作符与所述待编译操作符缓存对应的加密与否的状态保持一致,则将所述当前操作符追加至新的待编译操作符缓存;否则,如果所述当前操作符中的源操作数不通信,所述当前操作符中的目的操作数通信,且所述当前操作符与所述待编译操作符缓存对应的加密与否的状态保持一致,则对所述当前操作符和所述待编译操作符缓存进行共同编译,并清空所述待编译操作符缓存;否则,如果所述当前操作符中的目的操作数不通信,则对所述待编译操作符缓存进行编译,而后将所述当前操作符设定为新的待编译操作符缓存;否则,如果所述当前操作符中的目的操作数通信,则对所述待编译操作符缓存和所述当前操作符分别进行编译,并清空缓存的所述待编译操作符缓存。本公开还提供了一种机器学习算法的转换方法,包括:基于预设的数据流程生成工具构建原始机器学习算法的数据流图;其中,所述数据流程生成工具包括:Google-JAX计算框架;所述数据流图包括一系列操作符;计算所述数据流图中每个操作符在不同参与方执行时对应的安置代价;根据所述安置代价,将所述数据流图切分为多个子图,并将所述子图调度到目标参与方执行;基于贪心算法策略将所述子图编译为新数据流图,并通过生成所述新数据流图中各操作符的指令,得到分布式隐私保护机器学习算法。本公开还提供了一种电子设备,包括:所述电子设备上设置有以上任一项所述的机器学习算法的转换系统。本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例提供了一种机器学习算法的转换系统、方法及电子设备,该系统包括编程接口层、数据流图变换层和编译执行层;且数据流图变换层包括:操作符安置评估模块、数据流图拆分调度模块;编程接口层用于基于预设的数据流程生成工具(如Google-JAX计算框架)构建原始机器学习算法的数据流图;该数据流图包括一系列操作符;操作符安置评估模块用于本文档来自技高网...

【技术保护点】
1.一种机器学习算法的转换系统,其特征在于,包括:从上到下排列的编程接口层、数据流图变换层和编译执行层;其中,所述数据流图变换层包括:操作符安置评估模块、数据流图拆分调度模块;/n所述编程接口层,用于基于预设的数据流程生成工具构建原始机器学习算法的数据流图;其中,所述数据流程生成工具包括:Google-JAX计算框架;所述数据流图包括一系列操作符;/n所述操作符安置评估模块,用于计算所述数据流图中每个操作符在不同参与方执行时对应的安置代价;/n所述数据流图拆分调度模块,用于根据所述安置代价,将所述数据流图切分为多个子图,并将所述子图调度到目标参与方执行;/n所述编译执行层,用于基于贪心算法策略将所述子图编译为新数据流图,并通过生成所述新数据流图中各操作符的指令,得到分布式隐私保护机器学习算法。/n

【技术特征摘要】
1.一种机器学习算法的转换系统,其特征在于,包括:从上到下排列的编程接口层、数据流图变换层和编译执行层;其中,所述数据流图变换层包括:操作符安置评估模块、数据流图拆分调度模块;
所述编程接口层,用于基于预设的数据流程生成工具构建原始机器学习算法的数据流图;其中,所述数据流程生成工具包括:Google-JAX计算框架;所述数据流图包括一系列操作符;
所述操作符安置评估模块,用于计算所述数据流图中每个操作符在不同参与方执行时对应的安置代价;
所述数据流图拆分调度模块,用于根据所述安置代价,将所述数据流图切分为多个子图,并将所述子图调度到目标参与方执行;
所述编译执行层,用于基于贪心算法策略将所述子图编译为新数据流图,并通过生成所述新数据流图中各操作符的指令,得到分布式隐私保护机器学习算法。


2.根据权利要求1所述的系统,其特征在于,所述操作符包括:源操作数;针对所述数据流图中的任一操作符,所述操作符安置评估模块还用于:
通过预设代价性能模型计算该操作符的操作符计算代价、该操作符中源操作数的通信代价和源操作数的计算代价;其中,所述操作符计算代价用于表示操作符的计算在明文或密文上的计算代价,所述源操作数的通信代价用于表示源操作数是否需要进行通信,以及通信对象是明文或密文;
基于所述操作符计算代价、所述源操作数的通信代价和所述源操作数的计算代价,确定该操作符在不同参与方执行时分别对应的安置代价。


3.根据权利要求1所述的系统,其特征在于,数据流图拆分调度模块还用于:
根据宽度优先搜索算法遍历所述数据流图中的所有操作符,针对任一操作符,根据该操作符的最小的安置代价确定执行该操作符的目标参与方;
在遍历的过程中,依次对各所述操作符对应的目标参与方进行标记,得到标记信息;所述标记信息用于表示所述操作符与所述目标参与方的对应关系,以及遍历所述操作符的拓扑序;
根据所述标记信息将所述数据流图拆分为多个子图;其中,每个子图包括对应于同一所述目标参与方经拓扑排序后连续的多个所述操作符;
根据所述标记信息调度不同的所述目标参与方执行对应的所述子图。


4.根据权利要求2所述的系统,其特征在于,数据流图拆分调度模块还用于:
如果在计算所述源操作数的通信代价的过程中,确定当前操作符中的源操作数需要进行通信,则在当前操作符计算流程前添加通信算子,得到改造后的新操作符;
如果在计算所述源操作数的通信代价的过程中,确定当前操作符中的源操作数需要进行加密通信,则在添加的所述通信算子前添加加密算子,得到改造后的新操作符;
基于所述新操作符对包含所述新操作符的子图进行改造。


5.根据权利要求1所述的系统,其特征在于,所述数据流图变换层还包括子图优化模块...

【专利技术属性】
技术研发人员:徐世真王鲲鹏朱晓芳刘荔园唐家渝田天
申请(专利权)人:北京瑞莱智慧科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1