本发明涉及一种用于形成预测输出的数据处理,例如推理期间的数据处理,该数据处理可以在设备本地执行,也可以在设备本地和远程位置(例如云服务器)联合执行。
背景技术:
1、最近,机器学习(machine learning,ml)领域通过深度学习(deep learning,dl)范式在图像分类、分析、人脸/物体识别、自然语言处理和回归类型预测等熟知任务和应用方面取得了多项突破。因此,许多技术公司决定部署dl模型,并为它们的用户提供相关服务,以执行各种ml任务。但是,考虑到执行这些模型非常耗费精力和时间,因此,这些服务的标准方法是基于云计算的。具体地,当数据点(或样本)到达并且设备(例如笔记本电脑)必须执行推理任务时,样本会被发送到云端,在云端由大型dl模型进行处理。然后,将输出返回到设备。在这种情况下,ml推理被定义为以下过程:将数据输入ml算法或模型中,以计算输出,例如数值得分、用于回归任务的数值或处理分类问题时的类。
2、因此,业界目前的标准做法是将数据样本发送到云端,在云端由强大的服务器将样本前向传递。这种方法有一个明显的好处,即可以使用任意大的dl模型来进行前向传递操作,而这对于使用电池的能量受限设备是不可行的。另一方面,推理需要更长的时间,并且根据最近研究,使用过多的层可能会对预测准确性造成潜在危害。
3、由于用户使用其移动设备的频率越来越高,因此出现了在驻留在网络边缘并与云端无线连接的设备上执行ml任务的新需求。因此,硬件制造商已经开始在设备上集成dl模型,以加快ml推理速度和/或避免对每个推理请求使用无线介质,使得推理的延迟极低。显然,由于能耗原因,在移动设备上部署大型模型(例如alexnet或resnet)是不切实际的。因此,这种方法仅限于较小的模型,但较小的模型的预测准确性可能较低。
4、在移动计算中,这就会产生一个重要问题:“模型应在哪里执行?在云端、在设备上,还是两者结合?”。这个问题非常棘手,因为它提出了一个明确的权衡问题:本地推理(即,在设备上)的延迟低,为毫秒级,而远程执行(在云端)则能够使用明显更大的dl模型,但代价是响应延迟高得多。
5、为此,灵活设置分布式深度神经网络(distributed deep neural network,ddnn)用于推理最近成为一种有前景的方法。s.teerapittayanon、b.mcdanel、h.t.kung的“云端、边缘和终端设备上的分布式深度神经网络(distributed deep neural networks overthe cloud,the edge and end devices)”(ieee icdcs,2017)中描述了这种方法的一个示例,图1示出了代表性视图。包括n个层的深度神经网络(deep neural network,dnn)按层级进行划分。这些层中的nedge个层布置在边缘设备101处,而其余ncloud=n-nedge个层位于云端102处。系统配备一个或多个所谓的“本地出口”。本地出口是dnn边缘侧某些层的输出预测,例如用于回归的数值或用于分类的类。
6、在推理阶段,随着每个数据样本x 103的到达,理想情况下,ddnn机制应能够以最优方式判定是否应使用全量dnn将预测卸载到云端,或者本地硬件是否足够。如果选择本地出口,则仅执行本地模型,最终推理结果为本地预测。在这种情况下,没有任何比特通过无线信道发送到云服务器,因此无法知道在使用所有dnn层的情况下可能会发生什么。在其它情况下,样本首先通过本地层进行前向传递,然后其中一个层的输出通过无线信道发送到云服务器,并用作云端处其余层的输入。全量dnn的推理通过无线信道返回给设备。
7、尽管ddnn设置具有灵活性和实用性,但仍有两个重大难题需要解决。第一个难题在于如何训练具有多个出口的dnn,更重要的是如何训练该dnn以便为该dnn的所有出口输出有用且相关的预测。由于边缘和云端实体通常在地理位置上相距甚远,为此目的,可根据问题的需求采用集中式或分布式训练。
8、ddnn的第二个关键问题是如何做出卸载决策。原则上,设备接收一个样本,并且可以利用本地层(和所有中间输出)和实现的逻辑进行处理,该实现的逻辑判定使用哪个出口。根据这些信息,应由哪部分数据和哪种类型的算法输出该决策?一个常见的方法是使用本地出口预测的置信度。然而,这种方法主要适用于分类任务,在分类任务中,出口的熵(类的概率质量函数)可以用作置信度的量化指标。
9、基于置信度进行判定有三大弱点。首先,它仅限于分类问题,不能泛化到其它任务,例如回归(例如,时间序列预测、分析等)。当涉及到使用dnn进行分布式推理时,这些任务同样重要。此外,本地出口置信度不一定是出口质量的相关代理指标;本地出口可能是正确的,也可能是不确定的。此外,有用的数据没有得到利用,例如输入样本x,这些数据可以揭示出相关的结构特性,以便做出决策。
10、y.kang、j.hauswald、c.gao、a.rovinski、t.mudge、j.mars和l.tang的“神经外科医生:云端和移动边缘之间的协作智能(neurosurgeon:collaborative intelligencebetween the cloud and mobile edge)”(asplos,2017)中所述的另一种方法展示了按层级划分dnn的好处。在这种方法中,dnn在设备和云端进行划分,并且样本每次都会通过所有可用层进行前向传递。通过对(a)多个“断点”层(在设备处有多少层,在云端有多少层)和(b)各种无线协议执行穷尽搜索,本研究的目的是提供能耗和延迟的性能测量。架构如图2所示,其中分别如201、202和203所示的每个块f0、f1、f2是由一个或多个dnn层组成的dl模型(或函数)。块201和202位于边缘设备204处,块203位于云端205处。样本206每次都通过所有可用层进行前向传递。
11、这项操作的一个明显缺点是缺乏灵活性,因为默认情况下所有样本都会被发送到云端,这可能会导致高延迟并且不一定是有益的,因为对于某些样本,层更少,则准确性可能会更高。
12、在最近的研究中(见s.teerapittayanon、b.mcdanel、h.t.kung的“云端、边缘和终端设备上的分布式深度神经网络(distributed deep neural networks over the cloud,the edge and end devices)”(ieee icdcs,2017)),如图3所示,一定比例的样本可以在设备301处退出,而不发送到云端302。为此,引入了决策机制和本地出口的概念。在框303中示意性地示出的决策机制确定样本是否将在本地(在设备上)解析,或者是否应进行额外的处理。需要说明的是,这项操作仅针对图像分类问题。用于指示推理在何处进行的算法基于将本地预测的熵与某个预先确定的阈值进行比较。
13、样本x 304通过f0 305进行前向传递,产生边缘层输出z。边缘层输出z被馈送到输出本地预测y0的函数f1 306。计算y0的熵。如果熵高,则z被发送到云端302,在云端302处,z通过其余层f2 307。否则,返回本地预测y0,从而避免发送到云端。
14、这项操作的一个主要限制是控制器基于启发式选择,因为原则上,输出的熵/不确定性不一定是输出的实际准确性的良好代理指标。此外,输出的熵是量化离散支持集的概率质量函数不确定性(例如,在m个不同的类之间进行分类)的一种自然方式,并且不能泛化到其它任务,例如回归(例如,时间序列预测)。
15、需要开发一种方法来解决这些问题。
技术实现思路
1、根据一方面,提供了一种用于处理数据样本以形成预测输出的设备,所述设备用于:接收所述数据样本;将所述数据样本和/或根据所述数据样本推导的任意中间输出中的一个或多个任意中间输出输入到可学习控制函数;根据所述可学习控制函数的输出,执行以下中的一项:(i)通过存储在所述设备本地的第一模型处理所述数据样本,以形成所述预测输出;(ii)将所述数据样本和/或根据所述数据样本推导的所述任意中间输出中的一个或多个任意中间输出发送到远程位置,以输入到存储在所述远程位置的第二模型,以形成所述预测输出。
2、控制器设计为一个可学习函数,所述可学习函数可以利用数据样本的固有语义特征。所述设备可以根据以下中的一项或多项,而不是根据第一模型的最终输出,判定是在设备本地执行还是本地和远程(例如,在云服务器处)联合执行:输入样本本身和第一模型的任意中间输出。由于该方法不依赖于本地预测置信度,因此这样可以降低能耗。仅当控制器指示本地预测输出时才形成本地预测输出,而当控制器的输出指示预测输出应在远程位置形成时,则不形成本地预测输出。由于控制器可以判定预测输出在远程位置形成时是否会具有更高的准确性,因此这样也可以使推理更快更准确。
3、如果可学习控制函数的输出超过阈值,则设备可以用于通过存储在设备本地的第一模型处理数据样本,以形成预测输出。所述阈值可以是预先确定的阈值。这可以是确定是否在本地处理数据样本以形成预测输出的一种便捷方式。
4、如果所述可学习控制函数的所述输出未超过所述阈值,则所述设备可以用于将所述数据样本和/或根据所述数据样本推导的所述任意中间输出中的一个或多个任意中间输出发送到所述远程位置,以输入到存储在所述远程位置的所述第二模型,以形成所述预测输出。所述阈值可以是预先确定的阈值。这可以是确定是否通过远程存储的第二模型形成预测输出的一种便捷方式。
5、所述设备可以用于存储和实现第一模型。根据输入样本推导的任意中间输出可以是第一模型的一个或多个中间输出(即不是最终输出)。所述第一模型的中间输出可以有多个。输入到可学习控制函数的一个或多个中间输出可以是发送到远程位置的一个或多个中间输出中的一个或多个不同的中间输出。所述第一模型可以包括多个部分。一个中间输出可以包括所述多个部分中的第一部分的输出。其它中间输出可以包括第一模型的其它部分的相应输出。
6、第一模型的第一部分可以用于对数据样本进行编码。这样一来,可以在将数据样本同时输入到可学习控制函数时对数据样本进行本地编码。然后,可以将编码后的数据样本发送到云端。这样可以提高过程效率。
7、在一些实施例中,所述设备可以用于将数据样本输入到可学习控制函数,并根据可学习控制函数的输出,将数据样本发送到远程位置,以输入到第二模型,以形成预测输出。
8、如上所述,输入到可学习控制函数的一个或多个中间输出可以是发送到远程位置的一个或多个中间输出中的一个或多个不同的中间输出。例如,在所述设备用于将第一模型的第一部分的中间输出输入到可学习控制函数的情况下,所述设备可以用于根据可学习控制函数的输出将第一模型的另一个中间部分(即不是最终部分)的输出发送到远程位置。可替代地,在第一中间输出包括第一模型的另一个中间部分的输出的情况下,所述设备可以用于根据可学习控制函数的输出将第一模型的第一部分的输出发送到远程位置。在其它示例中,输入到可学习控制函数的一个或多个中间输出可以是与发送到远程位置的一个或多个中间输出相同的一个或多个中间输出。
9、第一模型的计算需求和/或存储大小要求可以低于第二模型的计算需求和/或存储大小要求。例如,第一模型包括的卷积层可以少于第二模型包括的卷积层。这样可以快速高效地在设备上形成预测。
10、可学习控制函数可以用于基于从数据样本中提取的特征来形成输出。例如,如果数据样本是图像,则可学习控制函数可以基于从图像中提取的特征来形成输出。
11、可学习控制函数可以用于根据一系列数据样本及其相应的真实输出进行优化。例如,这样一来,可以训练控制函数学习应使用输入图像的哪些特征来可靠地确定推理应在设备处执行还是在远程位置执行。这样还可以通过基于梯度下降步骤的原则性方式而不是基于启发式阈值的方法来训练控制函数。
12、第一模型和第二模型可以是可学习模型。第一模型和第二模型中的每个模型都可以用于根据一系列数据样本及其相应的真实输出进行优化。第一模型和第二模型可以使用控制函数进行联合或顺序训练。这样可以使系统作为一个整体进行优化,从而产生更准确的预测。
13、远程位置可以是云服务器。这样可以在远程位置存储大型、强大的第二模型,必要时所述第二模型可以用于形成预测输出。这样可以形成更准确的预测。
14、可学习控制函数可以是包括一个或多个卷积层的神经网络。根据应用的不同,可以使用不同的dl构建块,例如dnn、cnn和fc层。这样可以为应用量身定制一种灵活的方法。
15、输入样本可以是图像或者是时间序列数据。这样可以使所述设备用于各种图像分类、物体/人脸识别应用和多变量时间序列预测任务。
16、所述设备可以是通信网络中的网络节点或边缘设备。这样可以使所述方法用于各种网络配置。
17、根据第二方面,提供了一种用于处理数据样本以形成预测输出的方法,所述方法包括:接收所述数据样本;将所述数据样本和/或根据所述数据样本推导的任意中间输出中的一个或多个任意中间输出输入到可学习控制函数;根据所述可学习控制函数的输出,执行以下中的一项:(i)通过存储在所述设备本地的第一模型处理所述数据样本,以形成所述预测输出;(ii)将所述数据样本和/或根据所述数据样本推导的所述任意中间输出中的一个或多个任意中间输出发送到远程位置,以输入到存储在所述远程位置的第二模型,以形成所述预测输出。
18、在该方法中,控制器设计为一个可学习函数,所述可学习函数可以利用数据样本的固有语义特征。所述方法根据以下中的一项或多项,而不是根据第一模型的最终输出,判定是在设备本地执行还是本地和远程(例如,在云服务器处)联合执行:输入样本本身和第一模型的任意中间输出。由于方法不依赖于本地预测置信度,因此这样可以降低能耗。
19、根据又一方面,提供了一种存储有计算机可读指令的计算机可读存储介质,当在计算机系统处执行时,所述计算机可读指令使所述计算机系统执行上述方法。计算机系统可以包括一个或多个处理器。计算机可读存储介质可以是非瞬时性计算机可读存储介质。
1.一种用于处理数据样本(401、701)以形成预测输出(409、410)的设备(400、703),所述设备(400、703)用于:
2.根据权利要求1所述的设备(400),其特征在于,如果所述可学习控制函数(402)的所述输出(403)超过阈值,则所述设备用于通过存储在所述设备(400)本地的所述第一模型(404、405)处理所述数据样本(401),以形成所述预测输出(409)。
3.根据权利要求1或2所述的设备(400),其特征在于,如果所述可学习控制函数(402)的所述输出(403)未超过阈值,则所述设备(400)用于将所述数据样本(401)和/或根据所述数据样本推导的所述任意中间输出(406)中的一个或多个任意中间输出发送到所述远程位置(407),以输入到存储在所述远程位置的所述第二模型(408),以形成所述预测输出(410)。
4.根据上述权利要求中任一项所述的设备(400),其特征在于,根据所述数据样本(401)推导的所述任意中间输出(406)是存储在所述设备(400)上的所述第一模型(404、405)的一个或多个中间输出(406)。
5.根据权利要求4所述的设备(400),其特征在于,所述第一模型包括多个部分(404、405),一个中间输出(406)包括所述多个部分中的第一部分(404)的输出。
6.根据权利要求5所述的设备(400),其特征在于,所述第一部分(404)用于对所述数据样本(401)进行编码。
7.根据上述权利要求中任一项所述的设备(400),其特征在于,所述第一模型(404、405)的计算需求和/或存储大小要求低于所述第二模型(408)的计算需求和/或存储大小要求。
8.根据上述权利要求中任一项所述的设备(400),其特征在于,所述第一模型(404、405)包括的卷积层少于所述第二模型(408)包括的卷积层。
9.根据上述权利要求中任一项所述的设备(400),其特征在于,所述可学习控制函数(402)用于基于从所述数据样本(401)中提取的特征来形成所述输出(403)。
10.根据上述权利要求中任一项所述的设备(400),其特征在于,所述可学习控制函数(402、604)用于根据一系列数据样本(607)及其相应的真实输出(608)进行优化。
11.根据权利要求10所述的设备(400),其特征在于,所述第一模型(404、405、601、602)和所述第二模型(408、603)为可学习模型,所述第一模型和所述第二模型中的每个模型用于根据所述一系列数据样本(607)及其相应的真实输出(608)进行优化。
12.根据上述权利要求中任一项所述的设备(400、703),其特征在于,所述远程位置为云服务器(407、702)。
13.根据上述权利要求中任一项所述的设备(400),其特征在于,所述可学习控制函数(402)是包括一个或多个卷积层的神经网络。
14.根据上述权利要求中任一项所述的设备(400、703),其特征在于,所述输入样本(401、701)是图像或者是时间序列数据。
15.根据上述权利要求中任一项所述的设备(400、703),其特征在于,所述设备是通信网络中的网络节点或边缘设备。
16.一种用于处理数据样本(401、701)以形成预测输出(409、410)的方法(800),所述方法包括:
17.一种存储有计算机可读指令的计算机可读存储介质,当在计算机系统处执行时,所述计算机可读指令使所述计算机系统执行根据权利要求16所述的方法。
