System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及大数据信息处理,具体涉及一种基于原生模块注入的数据与ai(artificial intelligence,人工智能)融合管线的加速方法。
技术介绍
1、随着人工智能技术的发展,实现大数据模型训练的软件程序研发也变得日益成熟。典型的人工智能软件包括scikit-learn、pytorch、tensorflow等,可以支持人工智能模型的训练与推理。典型的大数据引擎软件包括kafka、hadoop、spark、flink等,解决大数据在整个生命周期的采集、存储、管理、计算、使用等过程。这就造成人工智能模型训练与推理和大数据引擎是由两套割裂的软件栈支撑的结果。然而,人工智能模型训练与推理与大数据是不可切割的一体两面,人工智能的模型训练需要高质量的样本数据,人工智能的推理需要整合到数据管线中去,人工智能可以赋能大数据引擎驱动的智能决策并支持更准确的决策。而采用两套割裂的软件栈造成了人工智能与数据之间的互通困难,导致数据孤岛、数据不一致、两套系统之间的数据迁移开销大、运维部署困难等问题。为了实现一套统一的人工智能和数据软件栈,目前有方案公开了pyspark作为统一的人工智能和数据软件栈的开源实现。然而,pyspark的编程接口、udf(user define function,用户自定义函数)使用python语言实现,python语言性能较差,难以实现高性能功能模块。而系统开发者如果要使用如c++等高性能语言编写功能模块时,存在与pyspark接口和udf难以兼容的问题。
技术实现思路
>1、为了解决现有技术中pyspark的接口及udf难以与高性能语言实现的功能模块兼容的问题,本申请提供一种基于原生模块注入的数据与ai融合管线的加速方法,基于诸葛弩编译器实现高性能语言的编译,使其能够与pyspark接口兼容,从而实现二者的深度整合。
2、第一方面,本申请技术方案提供一种基于原生模块注入的数据与ai融合管线的加速方法,包括:
3、获取待pyspark执行的工作计划对应的工作计划树;
4、将所述工作计划树划分为第一类子树和第二类子树,其中:所述第一类子树中的节点被诸葛弩编译器支持,所述第二类子树中的节点无法被诸葛弩编译器支持但被pyspark支持;
5、在所述第一类子树的树根节点处添加诸葛弩模块输出节点,在所述第一类子树的树叶节点处插入诸葛弩模块输入节点;
6、所述诸葛弩模块输出节点在其被执行前,获取诸葛弩编译器编译得到的其包含的所述第一类子树对应的二进制模块;所述诸葛弩模块输出节点在其被执行时加载所述二进制模块并调用其中包含的模块函数入口,所述模块函数的输入包括所述第一类子树所直接依赖的第二类子树的树根节点执行后产生的第二类数据集的指针;所述模块函数的输出为所述第一类数据集的指针;
7、执行所述诸葛弩模块输出节点产生第一类数据集,其在输出时将所述第一类数据集转换为第二类数据集;执行所述诸葛弩模块输入节点产生第二类数据集,其在输出时将所述第二类数据集转换为第一类数据集。
8、一些方案中所述的基于原生模块注入的数据与ai融合管线的加速方法,所述将所述工作计划树划分为第一类子树和第二类子树,包括:
9、根据所述工作计划树上每一个节点是否被诸葛弩编译器支持,对节点进行分类,将被诸葛弩编译器支持的节点定义为第一类节点,将不被诸葛弩编译器支持的节点定义为第二类节点;
10、将一段连续的第一类节点形成的子树作为所述第一类子树;将一段连续的第二类节点形成的子树作为所述第二类子树。
11、一些方案中所述的基于原生模块注入的数据与ai融合管线的加速方法,所述将所述工作计划树划分为第一类子树和第二类子树,还包括:
12、为所述第一类节点和所述第二类节点分配着色。
13、一些方案中所述的基于原生模块注入的数据与ai融合管线的加速方法,所述诸葛弩模块输出节点在其被执行前,获取诸葛弩编译器编译得到的其包含的所述第一类子树对应的二进制模块,包括:
14、所述诸葛弩模块输出节点在其被执行前,将所述诸葛弩模块输出节点包含的第一类子树通过代码生成方式翻译为用原生编程语言编写的程序模块;
15、调用诸葛弩编译器将所述程序模块编译为所述二进制模块。
16、一些方案中所述的基于原生模块注入的数据与ai融合管线的加速方法,所述方法还包括:
17、所述第一类数据集、所述第二类数据集均具有分区特性、分布式特性和惰性求值特性,其中:
18、所述分区特性指:所述第一类数据集、所述第二类数据集均被划分为多个分区;
19、所述分布式特性指:所述第一类数据集、所述第二类数据集均以分布式的方式存放,跨越多台物理机器;
20、所述惰性求值特性指:所述第一类数据集、所述第二类数据集均是在被需要的时候执行与所述需要对应的求值操作。
21、一些方案中所述的基于原生模块注入的数据与ai融合管线的加速方法,所述分区特性中:
22、所述第一类数据集的每个分区位于原生系统,且以诸葛弩数据格式存放;
23、所述第二类数据集的每个分区位于java虚拟机系统,且以pyspark数据格式存放。
24、一些方案中所述的基于原生模块注入的数据与ai融合管线的加速方法,所述诸葛弩模块输出节点在其被执行前,获取诸葛弩编译器编译得到的其包含的所述第一类子树对应的二进制模块中:
25、所述诸葛弩编译器编译得到的所述二进制模块缓存于二进制模块缓存器中,直到完成所述工作计划。
26、第二方面,本申请技术方案提供一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现第一方面任一项技术方案所述基于原生模块注入的数据与ai融合管线的加速方法的步骤。
27、第三方面,本申请技术方案提供一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现第一方面任一项技术方案所述基于原生模块注入的数据与ai融合管线的加速方法的步骤。
28、第四方面,本申请技术方案提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现第一方面任一项技术方案所述基于原生模块注入的数据与ai融合管线的加速方法的步骤。
29、本申请提供的上述技术特征,与现有技术相比,至少具有如下效果:
30、本申请提供的基于原生模块注入的数据与ai融合管线的加速方法,在利用pyspark执行工作计划之前,先获取工作计划树,工作计划树中的各个节点有可能不被诸葛弩编译器支持仅被pyspark支持,在此情况下,将能够被诸葛弩编译器支持的节点作为第一类节点,仅被pyspark支持的节点作为第二类节点,将工作计划树分为第一类子树和第二类子树。本申请方案,通过将第一类子树的树根节点和树叶节点接入诸葛弩模块的输出节点和输入节点,从而将第一类子树本文档来自技高网...
【技术保护点】
1.一种基于原生模块注入的数据与AI融合管线的加速方法,其特征在于,包括:
2.根据权利要求1所述的基于原生模块注入的数据与AI融合管线的加速方法,其特征在于,所述将所述工作计划树划分为第一类子树和第二类子树,包括:
3.根据权利要求2所述的基于原生模块注入的数据与AI融合管线的加速方法,其特征在于,所述将所述工作计划树划分为第一类子树和第二类子树,还包括:
4.根据权利要求1所述的基于原生模块注入的数据与AI融合管线的加速方法,其特征在于,所述诸葛弩模块输出节点在其被执行前,获取诸葛弩编译器编译得到的其包含的所述第一类子树对应的二进制模块,包括:
5.根据权利要求1-4任一项所述的基于原生模块注入的数据与AI融合管线的加速方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的基于原生模块注入的数据与AI融合管线的加速方法,其特征在于,所述分区特性中:
7.根据权利要求1-4任一项所述的基于原生模块注入的数据与AI融合管线的加速方法,其特征在于,所述诸葛弩模块输出节点在其被执行前,获取诸葛弩编译器编译得
8.一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-7任一项所述基于原生模块注入的数据与AI融合管线的加速方法的步骤。
9.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-7任一项所述基于原生模块注入的数据与AI融合管线的加速方法的步骤。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-7任一项所述基于原生模块注入的数据与AI融合管线的加速方法的步骤。
...【技术特征摘要】
1.一种基于原生模块注入的数据与ai融合管线的加速方法,其特征在于,包括:
2.根据权利要求1所述的基于原生模块注入的数据与ai融合管线的加速方法,其特征在于,所述将所述工作计划树划分为第一类子树和第二类子树,包括:
3.根据权利要求2所述的基于原生模块注入的数据与ai融合管线的加速方法,其特征在于,所述将所述工作计划树划分为第一类子树和第二类子树,还包括:
4.根据权利要求1所述的基于原生模块注入的数据与ai融合管线的加速方法,其特征在于,所述诸葛弩模块输出节点在其被执行前,获取诸葛弩编译器编译得到的其包含的所述第一类子树对应的二进制模块,包括:
5.根据权利要求1-4任一项所述的基于原生模块注入的数据与ai融合管线的加速方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的基于原生模块注入的数据与ai融合管线的加速方法,其特征在于,所...
【专利技术属性】
技术研发人员:俞博文,
申请(专利权)人:北京厚笃科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。