首页 / 一种面向流式数据的协作计算方法

一种面向流式数据的协作计算方法有效专利 发明

技术领域

[0001] 本发明涉及边缘计算领域,具体涉及一种面向流式数据的协作计算方法。

相关背景技术

[0002] 随着移动设备和各类智能设备的普及,用户在日常使用这些设备的过程中会产生大量的数据,而且数据,包含数据内容、数据标签等,产生的过程是持续的、不断的。如用户在使用聊天软件过程中不断利用输入法打字;用户在输入法中输入的英文符号,如用于拼音,作为数据内容,在输入法中选择对应的中文词组作为数据标签。
[0003] 这些数据往往会被各类服务提供商、软件开发者所使用。如输入法公司会用这些用户产生的数据进行各类分析计算,如模型训练等,用于日后在其他用户输入符号的过程中进行热点词汇的识别和联想。传统上,这些服务提供商或是软件开发者需要先收集用户的所有数据,再进行计算。但是这些数据会包含用户的隐私,用户不愿意将原始数据直接交付给服务提供商或是软件开发者。因此,现今的做法是在用户和服务提供商之间进行协作计算,即各用户不断上传各自计算的中间结果而非原始数据。服务提供商不断使用用户上传的这些中间结果聚合成最终所需的计算结果。典型的协作计算例子为利用用户数据进行联邦学习训练。
[0004] 然而,已有的协作计算框架要求所有用户的数据均需准备就绪之后,才能开始计算。这样带来的结果是,若用户产生的数据较多,在用户设备上进行计算会产生高负载,会严重影响到设备的正常使用,如,训练任务经常占满一个CPU,会带来设备卡顿,影响其他应用的使用。这是由于,联邦学习框架中会包含迭代式,通常为千百轮的训练,每轮迭代都会要求各设备使用已准备就绪的数据进行梯度计算,用于更新每轮迭代中需要上传的中间结果,供服务提供商使用进行必要的模型聚合。注,训练的停止往往取决于服务提供商。
[0005] 直观上,在用户不断产生数据的过程中,可以适当进行一些计算,避免等到所有数据就绪后,才利用所有数据,给设备带来高负载压力。但利用不断到达的数据样本,即流式数据进行协作,需要考虑到:1)各设备所能接受的瞬时负载上限;2)需考虑使用这样协作计算的方式是否会对最终全局聚合的计算结果产生的影响。

具体实施方式

[0026] 下面结合附图和实施例对本发明做进一步的详细说明,但应当理解,以下具体实施例的描述仅是为了使本领域技术人员更清楚地理解技术方案,而不是对本发明的限定。
[0027] 图1给出了实施例提供的面向流式数据的协作计算示意图,其针对的场景是:各设备利用不断到达的流式数据进行适当的局部计算,再不断迭代地将局部计算所得的中间结果进行全局计算聚合,以获取最终的结果。在这个过程中,如图1所示,本发明需要进行局部计算调控和全局计算聚合的边缘服务器选择。
[0028] 在本发明的建模中,时间被分为若干个时隙,每一个时隙对应着一轮迭代。每个时隙的长度可提前设定,如分钟或小时级别。在每个时隙t内部,也就是这段时间之内样本会不断地到达,实际上是产生,各设备需要在这段时间内陆续对这些样本进行局部计算,并更新其所维护的中间结果。等到这段时隙结束的时候,各设备将自己维护的计算中间结果传输至指定的边缘服务器进行全局计算聚合。
[0029] 图2展示了实施例涉及的核心组件及其关系。具体来说,每个设备上运行着局部计算调控模块,用于调控对流式数据的负载;全局有一个全局计算聚合模块,用于指定每个时隙的边缘服务器,用以进行全局计算聚合。其工作流程包含以下步骤:步骤(1),对于当前时隙t,在时隙开始的时候,各设备的局部计算调控模块决策确定,在数据到达时进行的最大样本参与数 ,其中i为设备编号。在各设备计算完中间结果后,全局计算聚合模块决策确定需要进行全局计算聚合的边缘服务器,并利用该服务器进行全局计算聚合。该迭代计算不断重复,直到租借预算B被用完。
[0030] 步骤(2),在当前时隙t的整个时间范围内,各设备上的样本不断到达。各设备利用这些不断到达的流式数据进行局部计算。以设备i为例,涉及的局部计算过程如下:首先,时隙可以进一步被划分为许多时间片。每一个时间片会到达一部分样本。这里记时隙t中的第j个时间片上设备i到达的样本数量为 。将这些 样本全部纳入到一个缓冲区Buf中。这个缓冲区在每个时隙开始时初始化为空。
[0031] 接着,为每个时间片进行至多 次操作,每次操作涉及从Buf中选出一个样本,并对当前设备维护的中间结果进行更新,达到局部计算的目的。在这里,每个设备还会维护一个集合S,用以保存那些已经处理的样本。注,用户产生的样本本身就是要存储的。
[0032] 每次选取样本并更新中间结果的操作如下:随机从Buf中获取一个样本 ,并初始化 的权重为0,记为 。这里的粗体表示向量。将该数据样本从Buf移动到S。计算S中所有样本的权值均值 ,也就是 。从S中随机挑选一个样本 。注,该样本可并非刚刚放入的样本。利用该样本 计算更新梯度 。用梯度更新的方式为这其中 为设备维护的中间结果,其下标z表示经历过的“样本‑梯度‑更新”的次数; 为学习率,可提前设定。这里需要说明的是 的初始化 是上一时隙全局计算聚合的反馈。也就是,上一时隙全局计算聚合得到的结果作为当前时隙所有设备维护的中间结果的初始。梯度 的计算方式为 。其中 为损失函数,是关于单样本和中
间结果的函数。其含义为,用未更新的中间结果 和样本 ,理想上希望更新的步长为 。
更新完设备上的中间结果后,设备对该样本 的权值 进行更新,也就是 。
[0033] 然后,当时隙内的每个时间片的 次操作做完后,设备将其维护的中间结果上传至指定的边缘服务器,供全局计算聚合,并等待下一个时隙的开始。
[0034] 步骤(3),步骤(1)中涉及的最大样本参与数制定,以及步骤(2)中涉及的选择合适的边缘服务器,是通过求解以下优化问题确定的,求解过程并非直接求解该问题:优化目标:
优化约束: 
优化变量: 
优化目标中, 已进行解释,意为时隙t设备i上最大样本参与数,范围是所有的正整数; 为时隙t设备i上处理单样本的时延; 为时隙t是否选择边缘服务器e作为全局计算聚合; 为时隙t从设备i到边缘服务器e的传输时延; 为时隙t边缘服务器e执行全局计算聚合的时延。这里需要说明的是,本发明初衷希望节省计算过程的资源消耗,而时延与设备功耗和计算代价均挂钩。因此本发明以时延作为优化目标。
[0035] 优化约束中, 更细粒度地表示时隙t时间片j设备i上处理单样本的时延。其含义是所有时间片上最大的计算负载被 所定界,同时该计算负载不能超过设备所能承受的负载上限 意为在每时隙进行边缘服务器选择的时候,仅能选择一个边缘服务器作为全局计算聚合。第三个约束是全局计算的要求。该约束的左边实际上反映了进行协作计算的迭代轮数,也即时隙数。当左边的项超过右边的项时,意味着协作计算达到了既定的要求。这里,协作计算的迭代轮数目标用 表示,其输入的一部分为一系列最大样本参与数 。一个典型的例子是联邦学习协作计算,迭代的轮数要求表示为,该式所涉及的 是一个提前确定的固定参数。对于那些凸的损失函数来说就可以有计算质量上的保障,且这其中,全局协作计算效果用参数 衡量。
[0036] 步骤(4),步骤(1)中涉及的最大样本参与数制定,是建立在步骤(3)所提优化问题的基础之上的,具体的求解过程如下:首先,进行一些变量约束简化,记
其中, 表示为约束的聚合,为列向量; 是 的一个期望的下界,可
提前指定。继而,本发明可以使用 替代优化目标,用 简化约束。
[0037] 对于每个时隙t,本发明利用当前时隙的结果,确定下一时隙的 。也就是构造 其中, 是 的聚合,也是一个列向量,且 是 的松弛变量,是
一个正实数; 是提前确定的参数; 是需要不断更新的列向量,其更新方式如下:
在上式更新的基础上, 的求解可以采用成熟的凸优化技术。
[0038] 步骤(5),步骤(2)中涉及的选择合适的边缘服务器,具体操作如下:对于当前时隙t+1(为了和步骤4一致),全局计算聚合已经维护了各边缘历史上被选择后观测到的传输时延和计算时延 。即 为时隙t选择边缘e后观测的
传输时延和计算时延的综合。其中若某一时刻t’没有选择边缘服务器e作为全局计算聚合,那么对应的 从上述集合中删除即可。
[0039] 那么,当前时隙t+1对边缘服务器e的全局计算聚合时延估计为其中, 为正常数,用于保证上式非负;函数 用于对集合 里的元
素进行求均值操作;变量 用于估计全局计算聚合时延的波动,初始化为0,计算方式见后。
[0040] 接着,全局计算聚合模块选择上式最大的边缘服务器用于全局计算聚合,也就是对于以备选择的边缘服务器e,在执行了全局计算聚合后,需要对其参数进行更新该变量用于统计边缘服务器e已被选择多少次作为全局计算聚合的服务器;其中, 为租借边缘服务器的花费的下界,一般来说租借边缘服务器也需花费的,记当前时隙使用边缘服务器e的租借花费为 。那么,可用的租借预算被更新为步骤(6),直到租借预算B到0,即可停止协作计算。
[0041] 至此,通过以上几个步骤,得到了面向流式数据的协作计算方案。
[0042] 图3展示了面向流式数据协作计算的实验图。针对的例子是联邦学习协作计算。传统上,数据要被完整地收集完,才进行训练,训练的方法有如图中迭代式计算所示,也就是深灰色的带大叉的线,出现在100时间戳后。其每次用一部分固定数量的样本计算一次梯度来更新中间结果。如图3所示,该迭代式计算方法需在时间戳100之后再持续20多秒,并需完整地占满一个CPU。虽然单样本处理的方法也能随流式数据达到而进行,如浅灰色方块线所示,但在协作计算过程中波动较大。本文所提方法利用步骤(2)进行协作,随着流式数据从0到100到达,协作计算产生的效果不错,且CPU资源使用是零散的,并不持续占满。除了图3展示了需要为流式数据进行针对性地计算调控,在多个设备间进行协作计算更要进行调度。本发明在设备上利用局部计算调控模块控制每次最多处理的样本数;并用全局计算聚合模块控制协作计算的全局计算聚合的服务器。
[0043] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0044] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0045] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0046] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0047] 本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出以上实施列对本发明不构成限定,本领域相关技术人员在不偏离本发明技术思想的范围内,所进行的多样变化和修改,均落在本发明的保护范围内。

当前第1页 第1页 第2页 第3页