CN117724851B - 数据处理方法、装置、存储介质及设备 - Google Patents
数据处理方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN117724851B CN117724851B CN202410171631.3A CN202410171631A CN117724851B CN 117724851 B CN117724851 B CN 117724851B CN 202410171631 A CN202410171631 A CN 202410171631A CN 117724851 B CN117724851 B CN 117724851B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- operated
- task
- cost function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 41
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 120
- 238000000638 solvent extraction Methods 0.000 claims abstract description 26
- 230000006870 function Effects 0.000 claims description 185
- 238000004364 calculation method Methods 0.000 claims description 72
- 238000000034 method Methods 0.000 claims description 69
- 238000004422 calculation algorithm Methods 0.000 claims description 52
- 230000000694 effects Effects 0.000 claims description 27
- 238000009826 distribution Methods 0.000 claims description 26
- 230000015654 memory Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004458 analytical method Methods 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 abstract description 19
- 238000013473 artificial intelligence Methods 0.000 abstract description 10
- 230000001364 causal effect Effects 0.000 description 47
- 230000008569 process Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 16
- 239000011159 matrix material Substances 0.000 description 15
- 238000012549 training Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 238000012417 linear regression Methods 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 235000004919 Ariocarpus fissuratus Nutrition 0.000 description 3
- 244000176187 Ariocarpus fissuratus Species 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000013215 result calculation Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请实施例公开了一种数据处理方法、装置、存储介质及设备,可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景,通过获取待执行任务,并根据待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据;对基础公式进行分析,确定基础公式中的目标成本函数,目标成本函数至少满足结合律;从总待运算数据中,获取目标成本函数对应的目标待运算数据;将目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据;将多个子目标待运算数据分发到多个计算节点进行运算,得到目标成本函数的运算结果,并根据运算结果计算出基础公式的目标运算结果,以根据目标运算结果完成待执行任务。极大的提升了数据处理效率。
Description
技术领域
本申请涉及云计算技术领域,具体涉及一种数据处理方法、装置、存储介质及设备。
背景技术
随着计算技术的不断发展,有些应用需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间来完成。因此,分布式计算应运而生,分布式计算是一种高效计算方法,其中许多计算机(通常是在网络中)协同工作,共同完成一个任务或一组任务。每台计算机都有自己的内存和处理器,即任务被分割成更小的子任务,然后在各个计算机上并行处理。
在相关技术中,分布式计算一般通过Shuffle(洗牌)过程来实现数据重新分配,它可以在不同的节点之间交换数据,实现数据被分割为更小的子数据,然后分配到各个节点上并行计算,然而,Shuffle过程需要做大量的数据交换和计算,使得计算的性能很低,非常耗时,数据处理效率很低。
发明内容
本申请实施例提供一种数据处理方法、装置、存储介质及设备,可以提升数据处理效率。
为解决上述技术问题,本申请实施例提供以下技术方案:
一种数据处理方法,包括:
获取待执行任务,并根据所述待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据;
对所述基础公式进行分析,确定所述基础公式中的目标成本函数,所述目标成本函数至少满足结合律;
从所述总待运算数据中,获取所述目标成本函数对应的目标待运算数据;
将所述目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据;
将多个所述子目标待运算数据分发到多个计算节点进行运算,得到所述目标成本函数的运算结果,并根据所述运算结果计算出所述基础公式的目标运算结果,以根据所述目标运算结果完成所述待执行任务。
一种数据处理装置,包括:
第一获取单元,用于获取待执行任务,并根据所述待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据;
分析单元,用于对所述基础公式进行分析,确定所述基础公式中的目标成本函数,所述目标成本函数至少满足结合律;
第二获取单元,用于从所述总待运算数据中,获取所述目标成本函数对应的目标待运算数据;
分块单元,用于将所述目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据;
运算单元,用于将多个所述子目标待运算数据分发到多个计算节点进行运算,得到所述目标成本函数的运算结果,并根据所述运算结果计算出所述基础公式的目标运算结果,以根据所述目标运算结果完成所述待执行任务。
在一些实施方式中,所述分析单元,包括:
分析子单元,用于对所述基础公式进行分析,确定所述基础公式中的待运算函数;
确定子单元,用于根据所述待运算函数对应的待运算数据的数据数量大小,从所述待运算函数中确定出相应的目标成本函数。
在一些实施方式中,所述确定子单元,用于:
获取所述待运算函数对应的待运算数据的数据数量;
将所述数据数量大于预设阈值的待运算函数确定为目标成本函数,所述预设阈值的值与总待运算数据的数据数量关联。
在一些实施例中,所述运算单元,包括:
分发子单元,用于将多个所述子目标待运算数据分发到多个计算节点进行并行计算,得到多个子计算结果;
统计子单元,用于统计多个所述子计算结果,得到所述目标成本函数对应的运算结果;
计算子单元,用于根据所述运算结果计算出所述基础公式的目标运算结果。
在一些实施例中,所述分发子单元,用于:
获取每个计算节点的剩余计算资源;
将所述剩余计算资源进行求和,计算出总剩余计算资源;
根据每个剩余计算资源和所述总剩余计算资源的比值,确定出每个计算节点的目标分配权重;
将多个所述子目标待运算数据按照所述目标分配权重分发到每个计算节点进行并行计算,得到多个子计算结果。
在一些实施例中,所述分发子单元,还用于:
获取每个计算节点的剩余计算资源;
将所述剩余计算资源进行求和,计算出总剩余计算资源;
根据每个剩余计算资源和所述总剩余计算资源的比值,确定出每个计算节点的初始分配权重;
获取每个计算节点的网络状态;
根据所述网络状态对每个计算节点的初始分配权重进行调整,确定出每个计算节点的目标分配权重;
将多个所述子目标待运算数据按照所述目标分配权重分发到每个计算节点进行并行计算,得到多个子计算结果。
在一些实施例中,所述计算节点以向量化计算方式计算每个所述子目标待运算数据。
在一些实施例中,所述分块单元,用于:
将所述目标待运算数据按照预设数量进行分块处理,得到分块处理后的预设数量个子目标待运算数据,所述子目标待运算数据的数据维度相同。
在一些实施例中,所述分块单元,还用于:
将所述目标待运算数据按照预设数量进行分块处理,获取所述目标待运算数据的总数据维度;
当检测到所述总数据维度能被所述预设数量整除时,得到分块处理后的预设数量个子目标待运算数据;
当检测到所述总数据维度不能被所述预设数量整除时,对所述目标待运算数据的总数据维度进行补齐操作,以使得补齐操作后的目标待运算数据的总数据维度能够被预设数量整除,执行将补齐操作后的目标待运算数据按照预设数量进行分块处理,得到分块处理后的预设数量个子目标待运算数据。
在一些实施例中,所述第一获取单元,包括:
获取子单元,用于获取待执行任务,并获取所述待执行任务关联的目标因果推断算法;
确定子单元,用于根据所述目标因果推断算法确定关联的基础算子,并获取所述基础算子相应的基础公式,并根据所述待执行任务确定相应的总待运算数据。
在一些实施例中,所述获取子单元,用于:
显示任务输入界面,并通过所述任务输入界面接收对象输入的结构化查询语言;
根据所述结构化查询语言确定待执行任务,并获取所述待执行任务关联的目标因果推断算法。
一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述数据处理方法。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可以在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据处理方法。
一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在存储介质中。计算机设备的处理器从存储介质读取所述计算机指令,处理器执行所述计算机指令,使得实现上述数据处理方法。
本申请实施例通过获取待执行任务,并根据待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据;对基础公式进行分析,确定基础公式中的目标成本函数,目标成本函数至少满足结合律;从总待运算数据中,获取目标成本函数对应的目标待运算数据;将目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据;将多个子目标待运算数据分发到多个计算节点进行运算,得到目标成本函数的运算结果,并根据运算结果计算出基础公式的目标运算结果,以根据目标运算结果完成待执行任务。以此,可以对待执行任务指示的目标因果推断算法的基础算子相应的基础公式进行分析,确定出目标成本函数,由于该目标成本函数满足结合律,因此,可以实现对目标成本函数关联的目标待运算数据进行分块以及分布化处理,相对于相关技术中通过Shuffle过程实现数据重新分配的方案而言,本申请实施例可以在不通过Shuffle过程下保证分布式计算,极大的提升数据处理效率。
本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的数据处理系统的场景示意图。
图2是本申请实施例提供的数据处理方法的场景示意图。
图3为本申请实施例提供的数据处理方法的流程示意图。
图4为本申请实施例提供的数据处理方法的架构示意图。
图5为本申请实施例提供的数据处理方法的框架示意图。
图6为本申请实施例提供的数据处理方法的场景示意图。
图7为本申请实施例提供的数据处理方法的另一场景示意图。
图8为本申请实施例提供的数据处理方法的另一场景示意图。
图9为本申请实施例提供的因果推断模型的框架示意图。
图10为本申请实施例提供的数据处理方法的另一流程示意图。
图11是本申请实施例提供的数据处理装置的结构示意图。
图12是本申请实施例提供的终端的结构示意图。
图13是本申请实施例提供的服务器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请的方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
可以理解的是,在本申请的具体实施方式中,涉及到待运算数据等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关法律法规和标准。
此外,当本申请实施例需要获取待运算数据等相关的数据时,会通过弹窗或者跳转到确认页面等方式获得待运算数据等相关的数据的单独许可或者单独同意,在明确获得待运算数据等相关的数据的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的待运算数据等相关的数据。
需要说明的是,在说明书、权利要求书和上述附图所描述的一些流程中,包含了按照特定顺序出现的多个步骤,但应该清楚了解,这些步骤可以不按照其在本文中出现的顺序来执行或并行执行,步骤序号仅仅是用于区分开各个不同的步骤,序号本身不代表任何的执行顺序。此外,本文中的“第一”、“第二”或者“目标”等描述,是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
对本公开实施例进行进一步详细说明之前,对本公开实施例中涉及的名词和术语进行说明,本公开实施例中涉及的名词和术语适用于如下的解释:
Spark,是专为大规模数据处理而设计的快速通用的计算引擎。
Python,是一种跨平台的计算机编程语言,具有着解释性、变异性、交互性和面向对象的特点。
GitHub是一个面向开源及私有软件项目的托管平台。
OLAP(On-line Analytical Processing,联机分析处理)是一种用于分析和查询大规模数据集的计算机处理技术。OLAP技术主要用于多维数据分析和数据挖掘,通过提供多维数据模型和多维查询功能,帮助用户从不同角度和层次上对数据进行分析和查询,侧重分析决策。
OLAP引擎:可以理解为大数据存储引擎,用于快速从多维数据集中提取和查看数据。OLAP引擎是实现这种处理方式的软件系统,它能够在预先计算和存储的数据视图中,快速分析信息。
需要说明得是,OLAP框架至少可以包括Clickhouse或者StarRocks等等,其中,Clickhouse是一个面向联机分析处理(OLAP)的开源的面向列式存储的DBMS(DatabaseManagement System,数据库管理系统)为轻量级,查询性能非常好。该StarRocks是开源的一款MPP(Massively Parallel Processor,大规模并行处理)数据库。
分布式计算:分布式计算是一种计算方法,其中许多计算机(通常是在网络中)协同工作,共同完成一个任务或一组任务。每台计算机都有自己的内存和处理器,任务被分割成更小的子任务,然后在各个计算机上并行处理。
向量化计算:向量化计算是一种特殊的并行计算形式,它依赖于硬件和软件的特性,可以在一个操作中处理多个数据。例如,在科学计算和数据分析中,向量化可以大大提高代码的效率,因为它可以一次处理整个数组,而不是逐个处理数组的元素,提升数据处理效率。
线性回归:线性回归是一种统计学上的预测分析方法,用于建立两个或更多变量之间的关系模型。在这种模型中,一个变量的值(因变量)基于一个或多个其他变量(自变量)的值进行预测。线性回归假设因变量和自变量之间的关系是线性的。
矩阵乘法:矩阵乘法是一种数学运算,用于将两个兼容的矩阵相乘,生成一个新的矩阵。在矩阵乘法中,第一个矩阵的列数必须等于第二个矩阵的行数。矩阵乘法在许多领域都有应用,包括物理学、计算机图形学、统计学和机器学习。
因果推断:“当一个事件的出现导致、产生或决定了另一个事件的出现,这两个事件之间的关系就被称为因果关系”,因果推断是一种统计方法,用于确定一个变量(原因)是否影响另一个变量(结果)。这种方法试图模拟随机实验的条件,以确定因果关系。因果推断的主要挑战是找到合适的工具变量或设计合适的实验,以消除混淆因素。
当前有关因果推断的研究主要包括因果效应的估计(Causal EfectEstimation)。因果效应估计主要研究原因变量对结果变量的影响程度,其本质是建立因果模型并输出对增量的预测值。
目前,随着计算技术的不断发展,分布式计算应运而生,分布式计算是一种高效计算方法,一般通过Shuffle(洗牌)过程来实现数据重新分配,它可以在不同的节点之间交换数据,实现数据被分割为更小的子数据,然后分配到各个节点上并行计算。具体而言,Shuffle目前应用在Spark上,Shuffle过程可以分为以下三个步骤:
1、Map阶段:在每个输入分区上,Spark首先会执行map操作(例如,对每个键应用哈希函数)。然后,Spark会根据键的哈希值将数据分成多个“桶”。每个“桶”对应一个输出分区。
2、Shuffle阶段:在这个阶段,Spark会将同一个桶的数据发送到同一个执行器(executor)上。这可能涉及跨网络的数据传输,因为不同的桶可能在不同的执行器上。
3、Reduce阶段:在每个执行器上,Spark会对每个桶的数据进行reduce操作(例如,对所有具有相同键的值进行求和),即负责将中间结果进行聚合和合并。
然而,Shuffle过程需要将数据进行重新聚合和划分,然后分配到集群的各个节点上进行下一个stage(阶段)操作,这里会涉及集群不同计算节点间的大量数据交换。由于不同节点间的数据通过网络进行传输时需要先将数据写入磁盘,因此集群中每个计算节点均有大量的文件读写操作,从而导致Shuffle过程十分耗时,数据处理效率很低,而且该Shuffle过程只能实现在Spark上,局限性较大,而相应的因果推断算法由于涉及到大规模数据量,需要分布式计算,但是目前没有实现因果推断算法分布式实现的框架,而假设通过Spark的Shuffle过程,会造成计算性能很低,也相当耗时。
本申请实施例为了解决上述问题,提出一种可以对因果推断算法的基础算子相应的基础公式进行分析,确定出目标成本函数,由于该目标成本函数满足结合律,因此,可以实现对目标成本函数关联的目标待运算数据进行分块以及分布化处理,在不通过Shuffle过程下保证分布式计算,极大的提升数据处理效率。具体请继续参阅下述具体实施例。
请参阅图1,图1是本申请实施例提供的数据处理系统的场景示意图。它包括终端140、互联网130、网关120、服务器110等。
终端140包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。另外,它可以是单台设备,也可以是多台设备组成的集合。终端140可以以有线或无线的方式与互联网130进行通信,交换数据。
服务器110是指能对终端140提供某些服务的计算机系统。相对于普通终端140来说,服务器110在稳定性、安全性、性能等方面都要求更高。服务器110可以是网络平台中的一台高性能计算机、多台高性能计算机的集群、一台高性能计算机中划出的一部分(例如虚拟机)、多台高性能计算机中划出的一部分(例如虚拟机)的组合等。
网关120又称网间连接器、协议转换器。网关在传输层上实现网络互连,是一种充当转换作用的计算机系统或设备。在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。同时,网关也可以提供过滤和安全功能。终端140向服务器110发送的消息要通过网关120发送到相应的服务器110。服务器110向终端140发送的消息也要通过网关120发送到相应的终端140。
本公开实施例的数据处理方法可以在服务器110实现。
数据处理方法在服务器110实现的情况下,在服务器110获取待执行任务,并根据所述待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据;对所述基础公式进行分析,确定所述基础公式中的目标成本函数,所述目标成本函数至少满足结合律;从所述总待运算数据中,获取所述目标成本函数对应的目标待运算数据;将所述目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据;将多个所述子目标待运算数据分发到多个计算节点进行运算,得到所述目标成本函数的运算结果,并根据所述运算结果计算出所述基础公式的目标运算结果,以根据所述目标运算结果完成所述待执行任务。
本公开实施例可以应用在多种场景下,如图2所示的数据处理方法的场景。
数据处理方法的场景:
数据处理方法的场景能够实现一键因果推断,实现任务的快速实现。
数据处理系统能够显示任务输入界面11,该任务输入界面11上包含结构化查询语言输入框以及“立即执行”控件111,对象可以通过结构化查询语言输入框输入结构化查询语言,并通过点击“立即执行”控件111实现快速的任务请求发送服务器,该任务请求指示的任务由所述结构化查询语言的内容确定,服务器根据任务请求,获取待执行任务,并根据该待执行任务确定待运算的基础算子相应的基础公式;对该基础公式进行分析,确定该基础公式中的目标成本函数,该目标成本函数至少满足结合律;获取该目标成本函数对应的目标待运算数据;将该目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据;将多个该子目标待运算数据分发到多个计算节点进行运算,得到该目标成本函数的运算结果,并根据该运算结果计算出该基础公式的目标运算结果,以根据目标运算结果完成该待执行任务,需要说明的是可以将目标运算结果,即因果推断的结果和待执行任务完成情况反馈至终端140的显示屏上显示。
需要说明的是,图1所示的数据处理系统的场景示意图仅仅是一个示例,本申请实施例描述的数据处理系统以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着数据处理的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本实施例中,将从数据处理装置的角度进行描述,该数据处理装置具体可以集成在具备储存单元并安装有微处理器而具有运算能力的计算机设备中,计算机设备可以为服务器,在本实施例中以计算机设备为服务器进行说明。
请参阅图3,图3是本申请实施例提供的数据处理方法的流程示意图。该数据处理方法包括:
在步骤201中,获取待执行任务,并根据待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据。
为了更好的理解本申请实施例,请一并参阅图4和图5所示,图4为本申请实施例提供的数据处理方法的架构示意图,图5为本申请实施例提供的数据处理方法的框架示意图,如图4所示,即Fast-Causal-Inference(因果推断计算库)的架构示意图,该因果推断计算库采用SQL(结构化查询语言)交互,基于分布式向量化统计,可以实现快速的因果推断。基于此,可以生成一个因果推断计算库工具包,对象可以直接安装python library(库)来使用上述因果推断计算库,快速实现待执行任务,该待执行任务为需要进行大规模数据运算的任务,例如估计量与方差、假设检验、基于回归的检验、匹配、树相关模型的训练、机器学习模型的训练等,可以看出的是,如果直接对待执行任务进行处理,会导致服务器的处理器处理过载,需要花费大量的时间进行处理,效率很低,该处理器可以包括中央处理器(Central Processing Unit, CPU)或者图形处理器(graphics processing unit,GPU)以及处理内存等等,因此需要通过因果推断计算库工具包来实现解决上述问题,该因果推断计算库工具包的架构包括以下三个部分。
User Access Layer(用户访问层):主要采用SQL与对象交互,对象可以通过写一行SQL完成因果推断,实现待执行任务。对于复杂的因果推断模型,还提供了python交互来协助结论的可视化。
SQL Layer(结构化查询语言层):通过SQL表达因果推理模型分布式算法的执行过程,将对象访问层的输入SQL扩展为可执行的计算引擎计算命令并组织执行计划。
Compute-Storage layer(计算和存储层):负责算法的具体执行,采用ClickHouse和StarRocks引擎作为主要组件。此外还采用Apache Spark作为补充引擎(非使用Shuffle过程),提供机器学习等更复杂的模型计算。以此,实现因果推断算法。
如图5所示,因果推断模型可以由多种待执行任务组成,即估计量与方差、假设检验、基于回归的检验、匹配、树相关模型的训练、机器学习模型的训练,每种待执行任务可以包括多种算法,例如,基于回归的检验可以包括DID(双重差分法)、匹配可以包括倾向得分匹配法以及机器学习模型可以包括双重稳健学习法等等,相应的,本申请实施例可以将因果模型分解为4大类基础算子,即统计量、重抽样、回归、和匹配,每个基础算子包含相应的基础公式,进一步的,实现基础算法时,可以将其相应的基础公式拆分为f(x)-高成本函数和g(x)-低成本函数,以对f(x)进行分布式优化。即实现基础算子时,我们可以拆分为f(X)和g(x)的组合:f(X):O(n)量级的运算,O(n)表示随着输入数据规模n的增大,算法的时间复杂度增长的级别是线性级别的,也就是说,当n增加1时,时间复杂度也会增加1,例如sum/count/线性回归中的大矩阵乘法,是分布式计算的主要优化目标。g(x):O(1)级别的运算,表示时间复杂度是常数级别的,也就是说,不管输入数据规模n有多大,算法的时间复杂度都不会发生变化,例如求导,小矩阵运算。以此,可以在不通过Shuffle过程下,实现对因果推断算法进行数学抽象和分解,转换为可以依托于OLAP引擎的方式进行分布式计算,即本申请实施例实现了一种因果推断算法分布式实现的框架,聚集现在业内常用的因果推断算法,对其进行分解和抽象,分解成一些可以分布式高效实现的算子,我们利用了OLAP引擎分布式以及向量化计算的特点,把业内常用的因果推断算法通过数学推导改写成适合于OLAP引擎计算的算子,从而极大的利用了OLAP引擎速度快的优势,这也是第一个依托OLAP引擎进行分布式因果推断工具开发的框架,可以高效完成待执行任务。我们最后把项目发明成功集成在一个github上开源的package(包)里。具体可以继续参阅如下实施例。
人工智能(Artificial Intelligence, AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、预训练模型技术、操作/交互系统、机电一体化等技术。其中,预训练模型又称大模型、基础模型,经过微调后可以广泛应用于人工智能各大方向下游任务。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例应用模型并行计算原理:指将模型的计算任务分配给多个计算设备(例如CPU、GPU、TPU等)同时进行计算,从而加速模型的训练和推理。模型并行计算能够有效地利用计算资源,提高模型的计算效率和训练速度。
基于此,本申请实施例可以获取当前需要执行的待执行任务,例如基于回归的检验,用于检验数据库中的数据执行完毕之后是否能实现回归的线性关系,并确定该待执行任务指示的目标因果推断算法,例如该基于回归的检验指示的目标因果推断算法为双重差分法(DID),根据该目标因果推断算法确定关联的基础算子,例如根据该目标因果推断算法双重差分法(DID)确定关联的基础算子为回归,并获取该基础算子相应的基础公式,该基础公式为实现基础算子的至少一个计算公式,例如该基础公式可以为“系数估计”和“方差估计”的计算公式。
进一步的,该总待运算数据可以为大数据库中需要参与该待执行任务运算的全部待运算数据,例如,该总待运算数据的数据数量可以为1亿条,每一条待运算数据可以表征为需要进行运算的两个样本数据,样本数据的行方向可以为样本的特征维度,样本数据的列方向代表一个样本,即该全部样本维度即为数量,以此,可以获取该待执行任务相应的总待运算数据,可以看出的是,该总待运算数据的数据维度过大,如果直接运算,运算的时间会非常长,且容易造成服务器宕机。
在一些实施方式中,该获取待执行任务,并根据所述待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据,可以包括:
(1)获取待执行任务,并获取所述待执行任务关联的目标因果推断算法;
(2)根据所述目标因果推断算法确定关联的基础算子,并获取所述基础算子相应的基础公式,并根据所述待执行任务确定相应的总待运算数据。
其中,可以获取需要执行的待执行任务,该待执行任务为对象想要执行的大规模数据计算的任务,例如对象想要进行回归的检验,输入基于回归的检验的待执行任务,服务器可以根据该待执行任务关联的目标因果推断算法,根据该目标因果推断算法确定关联的基础算子,并基于该基础算子确定相应包括的基础公式,例如,以该目标因果推断算法为双重差分法为例进行说明,该双重差分法的本质是线性回归模型(即属于回归的基础算子),因此,可以获取该双重差分法对应的回归基础算子的基础公式,即“系数估计”的基础公式和“方差估计”的基础公式,并根据所述待执行任务确定相应的总待运算数据。在一实施方式中,该“系数估计”的基础公式如下:
该即为估计系数,该X和Y为变量。
该“方差估计”的基础公式如下:
该为估计方差,该n和k为常数,该/>为估计系数的方差。
在一些实施方式中,该获取待执行任务,并获取所述待执行任务关联的目标因果推断算法,包括:
(1.1)显示任务输入界面,并通过所述任务输入界面接收对象输入的结构化查询语言;
(1.2)根据所述结构化查询语言确定待执行任务,并获取所述待执行任务关联的目标因果推断算法。
其中,可以通过外部接口,例如外接显示器显示任务输入界面,并通过该任务输入界面接收对象输入的结构化查询语言,例如XXX,以此,根据该结构化查询语言确定待执行任务,并获取该待执行任务的目标因果推断算法,即对象可以通过SQL快速启动目标因果推断算法的执行,来快速完成待执行任务。
在步骤202中,对基础公式进行分析,确定基础公式中的目标成本函数。
本申请依托于OLAP引擎的方式进行分布式计算,而需要说明的是,该OLAP引擎不支持Shuffle运算,因此,本申请实施例需要将基础公式转换成OLAP引擎可以高效计算的方式,即需要通过数学推导改写成适合于OLAP引擎计算的算子,实现分布式计算。
为了更好的说明本申请实施例,先对结合律进行说明,结合律(Associative law)结合律是一种数学运算定律,它适用于二元运算,意味着在进行多次运算时,只要操作符的位置保持不变,运算的顺序不会影响最终的结果,例如,三个数相乘,先把前两个数相乘,再和另外一个数相乘,或先把后两个数相乘,再和另外一个数相乘,积不变。对于,即i属于1至n的情况,/>,即结合律保证可以分块计算,可以把对f(x1,...,xn)所有样本的计算拆解成分别对f(x1,...,xm)的运算结果再结合f(xm+1,...,xn)的运算结果,可以看出,拆解之后结合二者的成本非常低。因此可以把数据通过这种方式进行拆解,拆解到多个机器(计算节点)上实现无Shuffle过程的分布式计算。
以此,需要对基础公式进行分析,确定该基础公式中的目标成本函数(高成本函数f(x)),该高成本函数f(x)为需要计算大量待运算数据的运算函数,且该目标成本函数至少还要满足上述结合律,即可以实现后续分块拆解到多个计算节点上实现分布式计算。
在一些实施方式中,该对该基础公式进行分析,确定该基础公式中的目标成本函数,可以包括:
(1)对该基础公式进行分析,确定该基础公式中的待运算函数;
(2)根据该待运算函数对应的待运算数据的数据数量大小,从该待运算函数中确定出相应的目标成本函数。
其中,可以对该基础公式进行运算式分析,确定出基础公式中待运算函数,该待运算函数可以为多个,该待运算函数为具有运算关系的两个变量组成,例如即为一个待运算函数,需要说明的,该待运算函数需要从大数据数据库中调取相应的待运算数据代入进行计算,因此,每个待运算函数对应不同的待运算数据的数据数量,数据数量越大的待运算函数,计算需要花费的成本和时间越高,数据数量越小的待运算函数,计算需要花费的成本和时间越低。
因此,可以根据待运算函数对应的待运算数据的数据数量大小作为依据,将数据数量较大,导致计算需要花费成本和时间较高的待运算函数确定为目标成本函数,当然,该目标成本函数至少还要满足上述结合律,该目标成本函数的类型至少可以为大矩阵乘法类相应的目标成本函数,求和类相应的目标成本函数以及计数类相应的目标成本函数。
在一些实施方式中,该根据该待运算函数对应的待运算数据的数据数量大小,从该待运算函数中确定出相应的目标成本函数,可以包括:
(1.1)获取该待运算函数对应的待运算数据的数据数量;
(1.2)将该数据数量大于预设阈值的待运算函数确定为目标成本函数。
其中,需要说明的是,该预设阈值的值与总待运算数据的数据数量关联,该总待运算数据可以为大数据库中需要参与运算的全部待运算数据,例如,该总待运算数据的数据数量可以为1亿条,每一条待运算数据可以表征为需要进行运算的两个样本数据,样本数据的行方向可以为样本的特征维度,样本数据的列方向代表一个样本,即该全部样本维度即为数量。
相应的,该预设阈值即为界定是否花费较高成本和时间的数量阈值,例如,可以为100万条,以此,可以获取每个待运算函数对应的待运算数据的数据数量,并将数据数量大于100万条的待运算函数确定为目标成本函数,当然,该目标成本函数至少还要满足上述结合律。
为了更好的说明本申请实施例,请一并参阅图6所示,可以获取该双重差分法对应的回归基础算子的基础公式,即“系数估计”的基础公式和“方差估计”的基础公式。该系数估计”的基础公式如下:
该即为估计系数,该X和Y为变量。
该“方差估计”的基础公式如下:
该为估计方差,该n和k为常数,该/>为估计系数的方差。
进一步的,分别对该基础公式进行分析,确定基础公式中待运算函数包括中的/>和/>中的、/>、/>和/>和/>中的/>,以此,可以获取待运算函数的运算数据的/>、/>、/>和/>分别对应的待运算数据的数据数量,将数据数量大于预设阈值的待运算函数/>、/>、/>和/>确定为目标成本函数,即代表/>、/>、/>和均为大矩阵相乘类的目标成本函数。/>
在步骤203中,从总待运算数据中,获取目标成本函数对应的目标待运算数据。
其中,由于该目标成本函数满足上述结合律,因此,可以从总待运算数据中,获取目标成本函数对应的目标待运算数据,该目标成本函数相应的目标待运算数据都可以进行拆解,即可以将f(x1,...,xn)所有样本的计算拆解成分别对f(x1,...,xm)的运算结果再结合f(xm+1,...,xn)的运算结果,拆解之后结合二者的成本非常低。因此可以把目标待运算数据通过这种方式进行拆解,拆解到多个计算节点上实现无Shuffle分布式计算,实现依托OLAP引擎进行分布式因果推断,以此,可以获取目标成本函数对应的目标待运算数据,以进行拆解准备。
在步骤204中,将目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据。
需要说明的是,为了实现后续的分布式计算,提升数据处理的效率,需要将目标待运算数据进行分块处理,由于该目标待运算数据满足上述结合律,因此,可以将目标待运算数据进行分块处理,以将该目标待运算数据分为多份,即得到分块处理后的多个子目标待运算数据,需要说明的是,该分块处理是为了后续的分布式计算,为了保证分布式计算后的结果能够结合,分块处理后的每个子目标待运算数据的数据维度相同,即分块处理后的每个子目标待运算数据的行数相同,具有相同的数据量,以此,分布式计算后的结果能够直接结合,提升了数据处理的效率。
在一些实施例中,该将该目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据,包括:将该目标待运算数据按照预设数量进行分块处理,得到分块处理后的预设数量个子目标待运算数据,该子目标待运算数据的数据维度相同。
其中,该预设数量可以为预先设置,例如为计算节点的数量,假设计算节点存在300个,该预设数量即可以为300个,以此,可以将目标待运算数据按照预设数量300进行分块处理,得到分块处理后的300个子目标待运算数据,需要说明的是,为了保证分布式计算后的结果能够结合,分块处理后的300个子目标待运算数据的数据维度相同,即分块处理后的300个子目标待运算数据的行数相同,具有相同的数据量,例如当该目标待运算数据为3000万条时,将目标待运算数据按照预设数量300进行分块处理,得到分块处理后的300个子目标待运算数据,300个子目标待运算数据的数据维度均为10万条(即3000万除以300),以此,保证分块处理后的300个子目标待运算数据在分布式处理后的结果仍然是相同的维度,因此可以快速结合,保证分布式计算的合理性。
在一些实施例中,得到分块处理后的预设数量个子目标待运算数据,包括:
(1)获取该目标待运算数据的总数据维度;
(2)当检测到该总数据维度能被该预设数量整除时,得到分块处理后的预设数量个子目标待运算数据;
(3)当检测到该总数据维度不能被该预设数量整除时,对该目标待运算数据的总数据维度进行补齐操作,以使得补齐操作后的目标待运算数据的总数据维度能够被预设数量整除,执行将补齐操作后的目标待运算数据按照预设数量进行分块处理,得到分块处理后的预设数量个子目标待运算数据。
其中,该目标待运算数据的总数据维度也可以理解为该目标待运算数据的行数,即总数据数量,假设该总数据维度为该预设数量的整数倍,即检测到该总数据维度能够被改预设数量整除时,直接执行,得到分块处理后的预设数量个子目标待运算数据,具体实现过程请参照上述实现方式,此处不作具体赘述。
而当该总数据维度不为该预设数量的整数倍,例如总数据维度为200万条,而该预设数量为300时,即检测到该总数据维度不能被该预设数量整除,此时,需要对目标待运算数据的总数据维度进行补齐操作,即可以增加一万条为0的目标待运算数据,使得补齐操作后的目标待运算数据的总数据维度为201万条,能够被预设数量整除,以此,执行将补齐操作后的目标待运算数据按照预设数量进行分块处理,即将201万条的目标待运算数据按照预设数量300进行分块处理,得到分块处理后的300个子目标待运算数据,每个子目标待运算数据的数据维度均为6700条,以此,保证分块处理后的300个子目标待运算数据在分布式处理后的结果仍然是相同的维度,因此可以快速结合,保证分布式计算的合理性。
在步骤205中,将多个子目标待运算数据分发到多个计算节点进行运算,得到目标成本函数的运算结果,并根据运算结果计算出基础公式的目标运算结果,以根据目标运算结果完成待执行任务。
需要说明的是,本申请依托的OLAP引擎中具有多个计算节点,每个计算节点具有独立的内存和处理器,因此可以实现分布式计算,并且,通过上述分块处理,每个子目标待运算数据均实现独立化计算条件,以此,可以将多个子目标运算数据平均分发到多个计算节点进行分布式计算,例如,假设该计算节点为300个,可以将每个子目标待运算数据发到不同计算节点上进行分布式计算,因此,每个计算节点均可以对分发到的子目标待运算数据进行分布式计算,并将各自计算的结果进行统计,得到目标成本函数的运算结果,以此,请继续参阅图5所示,实现分布式计算目标成本函数(f(x))的快速计算,在不使用Shuffle过程下,实现分布式计算,并且,在将复杂的目标成本函数的运算结果计算出来之后,剩下的公式计算均为时间复杂度为常数级别的运算(即g(x)),因此,可以直接根据运算结果通过g(x)计算出基础公式的目标运算结果,以此实现基础算子的确定,进而根据基础算子的组合实现目标因果推断算法,需要说明的是,该目标运算结果即为待处理任务的完成结果,即可以根据该目标运算结果的反馈完成待执行任务,例如该待执行任务为基于回归的检验时,服务器的处理器原本需要对大量总待运算数据进行计算,根据最后计算结果来检验是否实现回归的线性关系,但是,由于总待运算数据的规模过于庞大,因此,服务器的处理器的处理时间会很长,而且计算结果会非常慢,相应的,本申请实施例通过上述实施方式,可以实现对目标成本函数的目标待运算数据进行快速的分布式计算,从而提升服务器的处理器的处理速度,而且本申请实施例无Shuffle过程,因此不涉及对数据的标识和调度,可实现直接分配分布化,即还可以减少数据传输量,即可以实现快速的回归检验,极大的提升服务器处理器的运算速度。极大的提升了数据处理的效率。
又例如,该待执行任务为机器学习模型训练时,服务器的处理器原本需要对大量总待运算数据(可以为数据库中存储的训练样本)进行训练,根据最后计算结果来检验是否训练完毕,但是,由于总待运算数据的规模过于庞大,因此,服务器的处理器的处理时间会很长,而且计算结果会非常慢,导致训练时间过长,相应的,本申请实施例通过上述实施方式,可以实现对目标成本函数的目标待运算数据进行快速的分布式计算,从而提升服务器的处理器的处理速度,而且本申请实施例无Shuffle过程,因此不涉及对数据的标识和调度,可实现直接分配分布化,即还可以减少数据传输量,即可以实现快速的机器学习模型训练,极大的提升服务器处理器的运算速度。极大的提升了数据处理的效率。
在一些实施方式中,为了进一步的提升数据处理的效率,可以设定每个计算节点以向量化计算方式计算每个该子目标待运算数据,即该目标成本函数还可以满足交换律,该交换律即指一种计算定律,两个数相乘,交换因数的位置,它们的积不变,叫做乘法交换律,用字母表示a*b=b*a。该交换律可以实现向量化计算,即实现数据块内可以向量化计算,即对于,即使改变数据的位置,例如/>交换,如,结果还是相等的。以此,可以实现每个计算节点以向量化计算方式计算每个子目标待运算数据,为了更好的说明向量化计算的优点,请一并参阅图7所示,如果是无向量化计算,那么对于待运算数据a和b而言,需要依次先计算1*6再计算2*7再计算3*8再计算4*9再进行求和,需要运算5次,而向量化计算,可以直接计算两个向量的结果,只需要运算1次,因此,向量化计算可以提升数据处理的效率。
请继续参阅图6所示,对于大矩阵相乘类的目标成本函数,由于同时满足交换律和结合律,因此,也可以在每个计算节点中实现向量内积,实现向量化计算,提升数据处理的效率。
为了更好的说明本申请实施例,请一并参阅图8所示,N为亿级别数据,M,K受限于存储引擎表的列,为1万级别、100万级别,N:对象,K,M特征,大矩阵乘法计算中,若直接将N乘K维的待运算数据和M乘N维的待运算数据进行大矩阵相乘,由于数据量非常大,会导致计算结果非常慢,以此,本申请实施例,可以将上述N乘K维的待运算数据和M乘N维的待运算数据进行分块处理,并且将分块处理后的每个子待运算数据放到不同计算节点上进行分布式计算,且每个计算节点中都是以向量化计算实现每个子待运算数据的,最后进行矩阵相加,可以快速得到大矩阵相乘的计算结果。
在一些实施方式中,该将多个子目标待运算数据分发到多个计算节点进行运算,得到目标成本函数的运算结果,并根据运算结果计算出基础公式的目标运算结果,包括:
(1)将多个该子目标待运算数据分发到多个计算节点进行并行计算,得到多个子计算结果;
(2)统计多个该子计算结果,得到该目标成本函数对应的运算结果;
(3)根据该运算结果计算出该基础公式的目标运算结果。
其中,可以将每个子目标待运算数据平均分发到每个计算节点上进行并行计算,假设该计算节点为300个,该子目标待运算数据也为300个,可以将每个子目标待运算数据发到一个计算节点上进行分布式计算,因此,每个计算节点均可以得到一个子目标待运算数据进行分布式计算,得到300个子计算结果,由于子计算结果的维度均相同,以此,可以将300个子计算结果进行统计,得到目标成本函数对应的运算结果,实现分布式计算目标成本函数(f(x))的快速计算,此时,剩余的待运算函数的时间复杂度均为常数级别的运算(即g(x)),可以直接根据运算结果和基础公式,计算出目标运算结果。
为了更好的说明本申请实施例,可以一并参阅图9所示,本申请对于基础公式,可以通过分布式计算高效算出f(x),然后再组合g(x)运算,可以快速实现多个基础算子的计算,最后可以将这些基础算子的结果组装成因果推算模型。
在一些实施方式中,该将多个该子目标待运算数据分发到多个计算节点进行并行计算,包括:
(1.1)获取每个计算节点的剩余计算资源;
(1.2)将该剩余计算资源进行求和,计算出总剩余计算资源;
(1.3)根据每个剩余计算资源和该总剩余计算资源的比值,确定出每个计算节点的目标分配权重;
(1.4)将多个该子目标待运算数据按照该目标分配权重分发到每个计算节点进行并行计算。
其中,该剩余计算资源可以为节点的剩余中央处理器使用率,由于每个计算节点相互是独立的,因此,每个计算节点的剩余计算资源是不同的,并且剩余计算资源越多,相应的计算速度越快,所以可以获取每个计算节点的剩余计算资源,并将剩余计算资源进行求和,计算出总剩余计算资源,根据两者的比值,确定出每个计算节点的目标分配权重,需要说明的是,剩余计算资源越高的计算节点,其相应的目标分配权重会越高,剩余计算资源越低的计算节点,其相应的目标分配权重会越低。
进一步的,可以将该子目标待运算数据按照目标分配权重分发到每个计算节点上进行并行计算,可以保证空闲的计算节点得到充分的使用,而繁忙的计算节点可以避免资源使用过高而宕机,提升了数据处理的稳定性。
在一些实施方式中,该根据每个剩余计算资源和该总剩余计算资源的比值,确定出每个计算节点的目标分配权重,包括:
(1)根据每个剩余计算资源和该总剩余计算资源的比值,确定出每个计算节点的初始分配权重;
(2)获取每个计算节点的网络状态;
(3)根据该网络状态对每个计算节点的初始分配权重进行调整,确定出每个计算节点的目标分配权重。
其中,可以获取每个计算节点的剩余计算资源,并将剩余计算资源进行求和,计算出总剩余计算资源,根据两者的比值,确定出每个计算节点的初始分配权重,需要说明的是,剩余计算资源越高的计算节点,其相应的初始分配权重会越高,剩余计算资源越低的计算节点,其相应的初始分配权重会越低。
进一步的,由于网络状态差的计算节点的数据传输效率低,而网络状态好的计算节点的数据传输效率高,因此,还可以根据网络状态,将计算节点的初始分配权重进行微调,例如,将网络状态好的计算节点的初始分配权重调高,网络状态一般的初始分配权重不变,而将网络状态差的计算节点的初始分配权重降低,以确定出每个计算节点的目标分配权重,以此,实现结合空闲状态和网络状态确定目标分配权重,保证空闲的计算节点和网络状态好的计算节点得到充分的使用,而繁忙的计算节点和网络状态差的计算节点可以避免资源使用过高而宕机以及网络传输效率慢导致处理效率差,提升了数据处理的稳定性。
由上述可知,本申请实施例通过获取待执行任务,并根据待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据;对基础公式进行分析,确定基础公式中的目标成本函数,目标成本函数至少满足结合律;从总待运算数据中,获取目标成本函数对应的目标待运算数据;将目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据;将多个子目标待运算数据分发到多个计算节点进行运算,得到目标成本函数的运算结果,并根据运算结果计算出基础公式的目标运算结果,以根据目标运算结果完成待执行任务。以此,可以对待执行任务指示的目标因果推断算法的基础算子相应的基础公式进行分析,确定出目标成本函数,由于该目标成本函数满足结合律,因此,可以实现对目标成本函数关联的目标待运算数据进行分块以及分布化处理,相对于相关技术中通过Shuffle过程实现数据重新分配的方案而言,本申请实施例可以在不通过Shuffle过程下保证分布式计算,极大的提升数据处理效率。
结合上述实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该数据处理装置具体集成在服务器中为例进行说明。
为了更好的说明本申请实施例,请一并参阅图10,图10为本申请实施例提供的数据处理方法的另一流程示意图。包括:
在步骤301中,服务器显示任务输入界面,并通过任务输入界面接收对象输入的结构化查询语言,根据结构化查询语言确定待执行任务,并获取待执行任务关联的目标因果推断算法,根据目标因果推断算法确定关联的基础算子,并获取基础算子相应的基础公式,并根据待执行任务确定相应的总待运算数据。
其中,服务器可以通过外部接口,例如外接显示器显示任务输入界面,并通过该任务输入界面接收对象输入的结构化查询语言,例如XXX,以此,根据该结构化查询语言确定待执行任务,并获取该待执行任务的目标因果推断算法,即对象可以通过SQL快速启动目标因果推断算法的执行,来快速完成待执行任务。
以该目标因果推断算法为双重差分法为例进行说明,该双重差分法的本质是线性回归模型(即属于回归的基础算子),因此,可以获取该双重差分法对应的回归基础算子的基础公式,即“系数估计”的基础公式和“方差估计”的基础公式。该系数估计”的基础公式如下:
该即为估计系数,该X和Y为变量。
该“方差估计”的基础公式如下:
该为估计方差,该n和k为常数,该/>为估计系数的方差。
在步骤302中,服务器对基础公式进行分析,确定基础公式中的待运算函数。
其中,服务器分别对该基础公式进行分析,确定基础公式中待运算函数包括中的/>和/>中的、/>、/>和/>和/>中的/>。
在步骤303中,服务器获取待运算函数对应的待运算数据的数据数量,将数据数量大于预设阈值的待运算函数确定为目标成本函数。
其中,该预设阈值为100万条,服务器可以获取待运算函数的运算数据的、/>、/>和/>分别对应的待运算数据的数据数量,将数据数量大于预设阈值100万条的待运算函数/>、/>、/>和/>确定为目标成本函数,即代表/>、/>、/>和/>均为大矩阵相乘类的目标成本函数。
在步骤304中,服务器从总待运算数据中,获取目标成本函数对应的目标待运算数据。
其中,由于该目标成本函数满足结合律,因此,可以从总待运算数据中,获取目标成本函数对应的目标待运算数据,该目标成本函数相应的目标待运算数据都可以进行拆解,因此可以把目标待运算数据通过这种方式进行拆解,拆解到多个计算节点上实现无Shuffle分布式计算,实现依托OLAP引擎进行分布式因果推断,以此,可以获取目标成本函数对应的目标待运算数据,以进行拆解准备。
在步骤305中,服务器将目标待运算数据按照预设数量进行分块处理,获取目标待运算数据的总数据维度。
其中,假设计算节点存在300个,该预设数量即可以为300个,以此,可以将目标待运算数据按照预设数量300进行分块处理,得到分块处理后的300个子目标待运算数据,需要说明的是,为了保证分布式计算后的结果能够结合,分块处理后的300个子目标待运算数据的数据维度相同,即分块处理后的300个子目标待运算数据的行数相同,具有相同的数据量,为了保证分块处理后的300个子目标待运算数据的数据维度相同,需要获取目标待运算数据的总数据维度,例如当该目标待运算数据为3000万条时,将目标待运算数据按照预设数量300进行分块处理,得到分块处理后的300个子目标待运算数据,300个子目标待运算数据的数据维度均为10万条(即3000万除以300),以此,保证分块处理后的300个子目标待运算数据在分布式处理后的结果仍然是相同的维度,因此可以快速结合,保证分布式计算的合理性。
在步骤306中,当服务器检测到该总数据维度不能被该预设数量整除时,对该目标待运算数据的总数据维度进行补齐操作,以使得补齐操作后的目标待运算数据的总数据维度能够被预设数量整除,执行将补齐操作后的目标待运算数据按照预设数量进行分块处理,得到分块处理后的预设数量个子目标待运算数据。
其中,而当服务器检测到该总数据维度不为该预设数量的整数倍,例如总数据维度为200万条,而该预设数量为300时,即检测到该总数据维度不能被该预设数量整除,此时,需要对目标待运算数据的总数据维度进行补齐操作,即可以增加一万条为0的目标待运算数据,使得补齐操作后的目标待运算数据的总数据维度为201万条,能够被预设数量整除,以此,得到分块处理后的300个子目标待运算数据,每个子目标待运算数据的数据维度均为6700条,以此,保证分块处理后的300个子目标待运算数据在分布式处理后的结果仍然是相同的维度,因此可以快速结合,保证分布式计算的合理性。
在步骤307中,服务器获取每个计算节点的剩余计算资源,将剩余计算资源进行求和,计算出总剩余计算资源,根据每个剩余计算资源和总剩余计算资源的比值,确定出每个计算节点的初始分配权重,获取每个计算节点的网络状态根据网络状态对每个计算节点的初始分配权重进行调整,确定出每个计算节点的目标分配权重。
其中,该剩余计算资源可以为节点的剩余中央处理器使用率,由于每个计算节点相互是独立的,因此,每个计算节点的剩余计算资源是不同的,并且剩余计算资源越多,相应的计算速度越快,所以可以获取每个计算节点的剩余计算资源,并将剩余计算资源进行求和,计算出总剩余计算资源,根据两者的比值,确定出每个计算节点的初始分配权重,需要说明的是,剩余计算资源越高的计算节点,其相应的初始分配权重会越高,剩余计算资源越低的计算节点,其相应的初始分配权重会越低。
进一步的,由于网络状态差的计算节点的数据传输效率低,而网络状态好的计算节点的数据传输效率高,因此,还可以根据网络状态,将计算节点的初始分配权重进行微调,例如,将网络状态好的计算节点的初始分配权重调高,网络状态一般的初始分配权重不变,而将网络状态差的计算节点的初始分配权重降低,以确定出每个计算节点的目标分配权重。
在步骤308中,服务器将多个子目标待运算数据按照目标分配权重分发到每个计算节点进行并行计算,得到多个子计算结果。
其中,可以将该子目标待运算数据按照目标分配权重分发到每个计算节点上进行并行计算,以此,实现结合空闲状态和网络状态确定目标分配权重,保证空闲的计算节点和网络状态好的计算节点得到充分的使用,而繁忙的计算节点和网络状态差的计算节点可以避免资源使用过高而宕机以及网络传输效率慢导致处理效率差,提升了数据处理的稳定性,并由多个计算节点反馈回的300个子计算结果。
在步骤309中,服务器统计多个子计算结果,得到目标成本函数对应的运算结果,根据运算结果计算出基础公式的目标运算结果,以根据目标运算结果完成待执行任务。
其中,由于子计算结果的维度均相同,以此,可以将300个子计算结果进行统计,得到目标成本函数对应的运算结果,实现分布式计算目标成本函数(f(x))的快速计算,此时,剩余的待运算函数的时间复杂度均为常数级别的运算(即g(x)),可以直接根据运算结果和基础公式,计算出目标运算结果。请继续参阅图9所示,本申请对于基础公式,可以通过分布式计算高效算出f(x),然后再组合g(x)运算,可以快速实现多个基础算子的计算,最后可以将这些基础算子的结果组装成因果推算模型,需要说明的是,该目标运算结果即为待处理任务的完成结果,即可以根据该目标运算结果的反馈完成待执行任务,例如该待执行任务为基于回归的检验时,服务器的处理器原本需要对大量总待运算数据进行计算,根据最后计算结果来检验是否实现回归的线性关系,但是,由于总待运算数据的规模过于庞大,因此,服务器的处理器的处理时间会很长,而且计算结果会非常慢,相应的,本申请实施例通过上述实施方式,可以实现对目标成本函数的目标待运算数据进行快速的分布式计算,从而提升服务器的处理器的处理速度,而且本申请实施例无Shuffle过程,因此不涉及对数据的标识和调度,可实现直接分配分布化,即还可以减少数据传输量,即可以实现快速的回归检验,极大的提升服务器处理器的运算速度。极大的提升了数据处理的效率。
由上述可知,本申请实施例通过获取待执行任务,并根据待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据;对基础公式进行分析,确定基础公式中的目标成本函数,目标成本函数至少满足结合律;从总待运算数据中,获取目标成本函数对应的目标待运算数据;将目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据;将多个子目标待运算数据分发到多个计算节点进行运算,得到目标成本函数的运算结果,并根据运算结果计算出基础公式的目标运算结果,以根据目标运算结果完成待执行任务。以此,可以对待执行任务指示的目标因果推断算法的基础算子相应的基础公式进行分析,确定出目标成本函数,由于该目标成本函数满足结合律,因此,可以实现对目标成本函数关联的目标待运算数据进行分块以及分布化处理,相对于相关技术中通过Shuffle过程实现数据重新分配的方案而言,本申请实施例可以在不通过Shuffle过程下保证分布式计算,极大的提升数据处理效率。
进一步的,本申请实施例还可以根据计算节点的空闲状态和网络状态实现子目标待运算数据的动态分配,更好的利用计算节点,进一步的提升了数据处理的稳定性。
在一些实施方式中,为了更好的说明本申请实施例,请一并如下表所示:
表1,实验数据表
本申请实施例采用6亿大小的数据进行因果推断算法的性能测试,其中使用300个计算节点,对比计算速度,可以看出本申请实施例提供的因果推断计算架构的因果推断计算速度远远快于其他分布式工具。
为便于更好的实施本申请实施例提供的数据处理方法,本申请实施例还提供一种基于上述数据处理方法的装置。其中名词的含义与上述数据处理方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图11,图11为本申请实施例提供的数据处理装置的结构示意图,该数据处理装置应用于计算机设备,其中该数据处理装置可以包括第一获取单元401、分析单元402、第二获取单元403、分块单元404、及运算单元405等。
第一获取单元401,用于获取待执行任务,并根据所述待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据。
在一些实施例中,该第一获取单元401,包括:
获取子单元(未标识),用于获取待执行任务,并获取所述待执行任务关联的目标因果推断算法;
确定子单元(未标识),用于根据所述目标因果推断算法确定关联的基础算子,并获取所述基础算子相应的基础公式,并根据所述待执行任务确定相应的总待运算数据。
在一些实施例中,该获取子单元(未标识),用于:
显示任务输入界面,并通过所述任务输入界面接收对象输入的结构化查询语言;
根据所述结构化查询语言确定待执行任务,并获取所述待执行任务关联的目标因果推断算法。
分析单元402,用于对该基础公式进行分析,确定该基础公式中的目标成本函数,该目标成本函数至少满足结合律。
在一些实施方式中,该分析单元402,包括:
分析子单元(未标识),用于对该基础公式进行分析,确定该基础公式中的待运算函数;
确定子单元(未标识),用于根据该待运算函数对应的待运算数据的数据数量大小,从该待运算函数中确定出相应的目标成本函数。
在一些实施方式中,该确定子单元(未标识),用于:
获取该待运算函数对应的待运算数据的数据数量;
将该数据数量大于预设阈值的待运算函数确定为目标成本函数,该预设阈值的值与总待运算数据的数据数量关联。
第二获取单元403,用于从所述总待运算数据中,获取所述目标成本函数对应的目标待运算数据;
分块单元404,用于将该目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据。
在一些实施例中,该分块单元404,用于:
将该目标待运算数据按照预设数量进行分块处理,得到分块处理后的预设数量个子目标待运算数据,该子目标待运算数据的数据维度相同。
在一些实施例中,该分块单元(未标识),还用于:
将该目标待运算数据按照预设数量进行分块处理,获取该目标待运算数据的总数据维度;
当检测到该总数据维度能被该预设数量整除时,得到分块处理后的预设数量个子目标待运算数据;
当检测到该总数据维度不能被该预设数量整除时,对该目标待运算数据的总数据维度进行补齐操作,以使得补齐操作后的目标待运算数据的总数据维度能够被预设数量整除,执行将补齐操作后的目标待运算数据按照预设数量进行分块处理,得到分块处理后的预设数量个子目标待运算数据。
运算单元405,用于将多个所述子目标待运算数据分发到多个计算节点进行运算,得到所述目标成本函数的运算结果,并根据所述运算结果计算出所述基础公式的目标运算结果,以根据所述目标运算结果完成所述待执行任务。
在一些实施例中,该运算单元405,包括:
分发子单元(未标识),用于将多个该子目标待运算数据分发到多个计算节点进行并行计算,得到多个子计算结果;
统计子单元(未标识),用于统计多个该子计算结果,得到该目标成本函数对应的运算结果;
计算子单元(未标识),用于根据该运算结果计算出该基础公式的目标运算结果。
在一些实施例中,该分发子单元(未标识),用于:
获取每个计算节点的剩余计算资源;
将该剩余计算资源进行求和,计算出总剩余计算资源;
根据每个剩余计算资源和该总剩余计算资源的比值,确定出每个计算节点的目标分配权重;
将多个该子目标待运算数据按照该目标分配权重分发到每个计算节点进行并行计算,得到多个子计算结果。
在一些实施例中,该分发子单元(未标识),还用于:
获取每个计算节点的剩余计算资源;
将该剩余计算资源进行求和,计算出总剩余计算资源;
根据每个剩余计算资源和该总剩余计算资源的比值,确定出每个计算节点的初始分配权重;
获取每个计算节点的网络状态;
根据该网络状态对每个计算节点的初始分配权重进行调整,确定出每个计算节点的目标分配权重;
将多个该子目标待运算数据按照该目标分配权重分发到每个计算节点进行并行计算,得到多个子计算结果。
在一些实施例中,该计算节点以向量化计算方式计算每个该子目标待运算数据。
以上各个单元的具体实施可参见前面的实施例,在此不再赘述。
由上述可知,本申请实施例通过第一获取单元401获取待执行任务,并根据待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据;分析单元402对基础公式进行分析,确定基础公式中的目标成本函数,目标成本函数至少满足结合律;第二获取单元403从总待运算数据中,获取目标成本函数对应的目标待运算数据;分块单元404将目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据;运算单元405将多个子目标待运算数据分发到多个计算节点进行运算,得到目标成本函数的运算结果,并根据运算结果计算出基础公式的目标运算结果,以根据目标运算结果完成待执行任务。以此,可以对待执行任务指示的目标因果推断算法的基础算子相应的基础公式进行分析,确定出目标成本函数,由于该目标成本函数满足结合律,因此,可以实现对目标成本函数关联的目标待运算数据进行分块以及分布化处理,相对于相关技术中通过Shuffle过程实现数据重新分配的方案而言,本申请实施例可以在不通过Shuffle过程下保证分布式计算,极大的提升数据处理效率。
以上各个单元的具体实施可参见前面的实施例,在此不再赘述。
参照图12,图12为实现本公开实施例的终端140的部分的结构框图,该终端140包括:射频(Radio Frequency,简称RF)电路510、存储器515、输入单元530、显示单元540、传感器550、音频电路560、无线保真(wireless fidelity,简称WiFi)模块570、处理器580、以及电源590等部件。本领域技术人员可以理解,图12示出的终端140结构并不构成对手机或电脑的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
RF电路510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器580处理;另外,将设计上行的数据发送给基站。
存储器515可用于存储软件程序以及模块,处理器580通过运行存储在存储器515的软件程序以及模块,从而执行终端的各种功能应用以及数据处理。
输入单元530可用于接收输入的数字或字符信息,以及产生与终端的设置以及功能控制有关的键信号输入。具体地,输入单元530可包括触控面板531以及其他输入装置532。
显示单元540可用于显示输入的信息或提供的信息以及终端的各种菜单。显示单元540可包括显示面板541。
音频电路560、扬声器561,传声器562可提供音频接口。
在本实施例中,该终端140所包括的处理器580可以执行前面实施例的数据处理方法。
本公开实施例的终端140包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
图13为实施本公开实施例的服务器110的部分的结构框图。服务器110可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(CentralProcessing Units,简称CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储装置)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器600中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在服务器600上执行存储介质630中的一系列指令操作。
服务器600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,和/或,一个或一个以上操作系统641,例如Windows ServerTM,Mac OS XTM,UnixTM ,LinuxTM,FreeBSDTM等等。
服务器600中的中央处理器622可以用于执行本公开实施例的数据处理方法,即:获取待执行任务,并根据所述待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据;对所述基础公式进行分析,确定所述基础公式中的目标成本函数,所述目标成本函数至少满足结合律;从所述总待运算数据中,获取所述目标成本函数对应的目标待运算数据;将所述目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据;将多个所述子目标待运算数据分发到多个计算节点进行运算,得到所述目标成本函数的运算结果,并根据所述运算结果计算出所述基础公式的目标运算结果,以根据所述目标运算结果完成所述待执行任务。
本公开实施例还提供一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码用于执行前述各个实施例的数据处理方法,即:获取待执行任务,并根据所述待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据;对所述基础公式进行分析,确定所述基础公式中的目标成本函数,所述目标成本函数至少满足结合律;从所述总待运算数据中,获取所述目标成本函数对应的目标待运算数据;将所述目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据;将多个所述子目标待运算数据分发到多个计算节点进行运算,得到所述目标成本函数的运算结果,并根据所述运算结果计算出所述基础公式的目标运算结果,以根据所述目标运算结果完成所述待执行任务。
本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序。计算机设备的处理器读取该计算机程序并执行,使得该计算机设备执行实现上述的数据处理方法。
此外,术语“包括”和“包含”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或单元。
应当理解,在本公开中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
应了解,在本公开实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
在本公开所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
还应了解,本公开实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
以上是对本公开的实施方式的具体说明,但本公开并不局限于上述实施方式,熟悉本领域的技术人员在不违背本公开精神的条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本公开权利要求所限定的范围内。
Claims (15)
1.一种数据处理方法,其特征在于,包括:
获取待执行任务,并根据所述待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据;
对所述基础公式进行分析,确定所述基础公式中的目标成本函数,所述目标成本函数满足结合律,所述目标成本函数为高成本函数,所述高成本函数随着输入数据规模的增大,算法的时间复杂度增加的级别为线性级别;
从所述总待运算数据中,获取所述目标成本函数对应的目标待运算数据;
将所述目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据;
将多个所述子目标待运算数据分发到多个计算节点进行运算,得到所述目标成本函数的运算结果,并根据所述运算结果计算出所述基础公式的目标运算结果,以根据所述目标运算结果完成所述待执行任务。
2.根据权利要求1所述的数据处理方法,其特征在于,所述对所述基础公式进行分析,确定所述基础公式中的目标成本函数,包括:
对所述基础公式进行分析,确定所述基础公式中的待运算函数;
根据所述待运算函数对应的待运算数据的数据数量大小,从所述待运算函数中确定出相应的目标成本函数。
3.根据权利要求2所述的数据处理方法,其特征在于,所述根据所述待运算函数对应的待运算数据的数据数量大小,从所述待运算函数中确定出相应的目标成本函数,包括:
获取所述待运算函数对应的待运算数据的数据数量;
将所述数据数量大于预设阈值的待运算函数确定为目标成本函数,所述预设阈值的值与总待运算数据的数据数量关联。
4.根据权利要求1所述的数据处理方法,其特征在于,所述将多个所述子目标待运算数据分发到多个计算节点进行运算,得到所述目标成本函数的运算结果,并根据所述运算结果计算出所述基础公式的目标运算结果,包括:
将多个所述子目标待运算数据分发到多个计算节点进行并行计算,得到多个子计算结果;
统计多个所述子计算结果,得到所述目标成本函数对应的运算结果;
根据所述运算结果计算出所述基础公式的目标运算结果。
5.根据权利要求4所述的数据处理方法,其特征在于,所述将多个所述子目标待运算数据分发到多个计算节点进行并行计算,包括:
获取每个计算节点的剩余计算资源;
将所述剩余计算资源进行求和,计算出总剩余计算资源;
根据每个剩余计算资源和所述总剩余计算资源的比值,确定出每个计算节点的目标分配权重;
将多个所述子目标待运算数据按照所述目标分配权重分发到每个计算节点进行并行计算。
6.根据权利要求5所述的数据处理方法,其特征在于,所述根据每个剩余计算资源和所述总剩余计算资源的比值,确定出每个计算节点的目标分配权重,包括:
根据每个剩余计算资源和所述总剩余计算资源的比值,确定出每个计算节点的初始分配权重;
获取每个计算节点的网络状态;
根据所述网络状态对每个计算节点的初始分配权重进行调整,确定出每个计算节点的目标分配权重。
7.根据权利要求4或5所述的数据处理方法,其特征在于,所述计算节点以向量化计算方式计算每个所述子目标待运算数据。
8.根据权利要求1所述的数据处理方法,其特征在于,所述将所述目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据,包括:
将所述目标待运算数据按照预设数量进行分块处理,得到分块处理后的预设数量个子目标待运算数据,所述子目标待运算数据的数据维度相同。
9.根据权利要求8所述的数据处理方法,其特征在于,所述得到分块处理后的预设数量个子目标待运算数据,包括:
获取所述目标待运算数据的总数据维度;
当检测到所述总数据维度能被所述预设数量整除时,得到分块处理后的预设数量个子目标待运算数据;
当检测到所述总数据维度不能被所述预设数量整除时,对所述目标待运算数据的总数据维度进行补齐操作,以使得补齐操作后的目标待运算数据的总数据维度能够被预设数量整除,执行将补齐操作后的目标待运算数据按照预设数量进行分块处理,得到分块处理后的预设数量个子目标待运算数据。
10.根据权利要求1所述的数据处理方法,其特征在于,所述获取待执行任务,并根据所述待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据,包括:
获取待执行任务,并获取所述待执行任务关联的目标因果推断算法;
根据所述目标因果推断算法确定关联的基础算子,并获取所述基础算子相应的基础公式,并根据所述待执行任务确定相应的总待运算数据。
11.根据权利要求10所述的数据处理方法,其特征在于,所述获取待执行任务,并获取所述待执行任务关联的目标因果推断算法,包括:
显示任务输入界面,并通过所述任务输入界面接收对象输入的结构化查询语言;
根据所述结构化查询语言确定待执行任务,并获取所述待执行任务关联的目标因果推断算法。
12.一种数据处理装置,其特征在于,包括:
第一获取单元,用于获取待执行任务,并根据所述待执行任务确定待运算的基础算子相应的基础公式以及相应的总待运算数据;
分析单元,用于对所述基础公式进行分析,确定所述基础公式中的目标成本函数,所述目标成本函数满足结合律,所述目标成本函数为高成本函数,所述高成本函数随着输入数据规模的增大,算法的时间复杂度增加的级别为线性级别;
第二获取单元,用于从所述总待运算数据中,获取所述目标成本函数对应的目标待运算数据;
分块单元,用于将所述目标待运算数据进行分块处理,得到分块处理后的多个子目标待运算数据;
运算单元,用于将多个所述子目标待运算数据分发到多个计算节点进行运算,得到所述目标成本函数的运算结果,并根据所述运算结果计算出所述基础公式的目标运算结果,以根据所述目标运算结果完成所述待执行任务。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至11任一项所述的数据处理方法。
14.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11任一项所述的数据处理方法。
15.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现权利要求1至11任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410171631.3A CN117724851B (zh) | 2024-02-07 | 2024-02-07 | 数据处理方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410171631.3A CN117724851B (zh) | 2024-02-07 | 2024-02-07 | 数据处理方法、装置、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117724851A CN117724851A (zh) | 2024-03-19 |
CN117724851B true CN117724851B (zh) | 2024-05-10 |
Family
ID=90209185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410171631.3A Active CN117724851B (zh) | 2024-02-07 | 2024-02-07 | 数据处理方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117724851B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077488A (zh) * | 2014-10-07 | 2017-08-18 | 甲骨文国际公司 | 并行合并 |
CN107612886A (zh) * | 2017-08-15 | 2018-01-19 | 中国科学院大学 | 一种Spark平台Shuffle过程压缩算法决策方法 |
WO2020216622A1 (de) * | 2019-04-26 | 2020-10-29 | Robert Bosch Gmbh | Erkennung und behebung von rauschen in labels von lern-daten für trainierbare module |
CN113098840A (zh) * | 2021-02-25 | 2021-07-09 | 鹏城实验室 | 基于加法秘密分享技术的高效安全线性整流函数运算方法 |
CN114329578A (zh) * | 2021-11-25 | 2022-04-12 | 光之树(北京)科技有限公司 | 数据处理方法、装置及系统 |
CN115454650A (zh) * | 2022-10-11 | 2022-12-09 | 广东电网有限责任公司 | 微电网边缘计算终端的资源配置方法、装置、终端及介质 |
CN115686792A (zh) * | 2022-11-07 | 2023-02-03 | 中国建设银行股份有限公司 | 任务调度方法、装置、电子设备、存储介质及产品 |
CN116316612A (zh) * | 2023-05-16 | 2023-06-23 | 南方电网数字电网研究院有限公司 | 自动机器学习的新能源功率云边协同预测方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230101817A1 (en) * | 2021-09-28 | 2023-03-30 | Nationstar Mortgage LLC, d/b/a/ Mr. Cooper | Systems and methods for machine learning-based data extraction |
-
2024
- 2024-02-07 CN CN202410171631.3A patent/CN117724851B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077488A (zh) * | 2014-10-07 | 2017-08-18 | 甲骨文国际公司 | 并行合并 |
CN107612886A (zh) * | 2017-08-15 | 2018-01-19 | 中国科学院大学 | 一种Spark平台Shuffle过程压缩算法决策方法 |
WO2020216622A1 (de) * | 2019-04-26 | 2020-10-29 | Robert Bosch Gmbh | Erkennung und behebung von rauschen in labels von lern-daten für trainierbare module |
CN113098840A (zh) * | 2021-02-25 | 2021-07-09 | 鹏城实验室 | 基于加法秘密分享技术的高效安全线性整流函数运算方法 |
CN114329578A (zh) * | 2021-11-25 | 2022-04-12 | 光之树(北京)科技有限公司 | 数据处理方法、装置及系统 |
CN115454650A (zh) * | 2022-10-11 | 2022-12-09 | 广东电网有限责任公司 | 微电网边缘计算终端的资源配置方法、装置、终端及介质 |
CN115686792A (zh) * | 2022-11-07 | 2023-02-03 | 中国建设银行股份有限公司 | 任务调度方法、装置、电子设备、存储介质及产品 |
CN116316612A (zh) * | 2023-05-16 | 2023-06-23 | 南方电网数字电网研究院有限公司 | 自动机器学习的新能源功率云边协同预测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117724851A (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11106486B2 (en) | Techniques to manage virtual classes for statistical tests | |
CN109993299B (zh) | 数据训练方法及装置、存储介质、电子装置 | |
Xu et al. | Multiobjective computation offloading for workflow management in cloudlet‐based mobile cloud using NSGA‐II | |
Meng et al. | Efficient winograd convolution via integer arithmetic | |
US20220004858A1 (en) | Method for processing artificial neural network, and electronic device therefor | |
US11651198B2 (en) | Data processing method and apparatus for neural network | |
Li et al. | An intelligent collaborative inference approach of service partitioning and task offloading for deep learning based service in mobile edge computing networks | |
CN111563598A (zh) | 预估量子计算模拟时间的方法、系统 | |
Ribas et al. | Pbfvmc: A new pseudo-boolean formulation to virtual-machine consolidation | |
CN108256638A (zh) | 微处理器电路以及执行神经网络运算的方法 | |
CN117724851B (zh) | 数据处理方法、装置、存储介质及设备 | |
Yasudo et al. | Performance estimation for exascale reconfigurable dataflow platforms | |
CN110728118A (zh) | 跨数据平台的数据处理方法、装置、设备及存储介质 | |
Li et al. | Performance optimization algorithm of radar signal processing system | |
Cañizares et al. | Eminent: Embarrassingly parallel mutation testing | |
CN114138811A (zh) | 一种基于Spark SQL的列计算优化方法 | |
CN104615763B (zh) | 中间表更新方法及装置 | |
Wolf et al. | Sparse matrix partitioning for parallel eigenanalysis of large static and dynamic graphs | |
CN117435308B (zh) | 一种基于并行计算算法的Modelica模型仿真方法及系统 | |
CN110874615A (zh) | 特征聚类处理方法、集群服务器及可读存储介质 | |
Aldahir | Evaluation of the performance of WebGPU in a cluster of WEB-browsers for scientific computing | |
CN113259482B (zh) | 多对多通信模式的优化方法、装置、存储介质及电子设备 | |
Mateeva et al. | Android content providers in mobile distributed computing | |
Zhang et al. | Hlanc: heterogeneous parallel implementation of the implicitly restarted Lanczos method | |
TAŞ et al. | Quadratic programming based partitioning for Block Cimmino with correct value representation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |