一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

分布式随机梯度下降的安全联合的制作方法

2022-07-10 18:46:17 来源:中国专利 TAG:


1.本发明总体上涉及基于梯度下降来训练机器学习模型,包括深度神经网络。更具体地,实施例涉及用于基于迭代算法以分布式、联合、私有和安全方式训练机器学习模型的协作。


背景技术:

2.人工智能(ai)涉及针对与人类相关的计算机和计算机行为的计算机科学领域。ai是指当机器基于信息能够做出决定时的智能,这使得在给定主题中成功的机会最大化。更具体地,ai能够从数据集学习以解决问题并提供相关推荐。例如,在人工智能计算机系统领域中,自然语言系统(诸如ibm人工智能计算机系统或其他自然语言询问应答系统)基于系统获得的知识来处理自然语言。为了处理自然语言,可以用从数据库或知识语料库导出的数据来训练系统,但是由于多种原因,所得的结果可能是不正确的或不准确的。
3.机器学习(ml)是人工智能(ai)的子集,它利用算法从数据中学习并基于此数据创建远见(foresight)。ml是通过模型的创建来应用ai,所述模型包括可以通过执行未显式编程的任务来演示学习行为的神经网络。深度学习是一种ml类型,在该ml类型中,系统可以通过使用基于先前层的输出的多层选择来完成复杂任务,从而创建越来越智能且更抽象的结论。深度学习采用神经网络(在本文中被称为人工神经网络)、对输入和输出之间的复杂关系进行建模并标识其中的模式。
4.ai的核心和相关联的推理在于相似性的概念。理解自然语言和对象的过程需要从可能具有挑战性的关系角度推理。结构(包括静态结构和动态结构)规定给定确定输入的确定输出或动作。更具体地,所确定的输出或动作基于结构内的显式或固有关系。这种布置对于选择的情况和条件可以是令人满意的。然而,应当理解,动态结构固有地经受改变,并且输出或动作可以相应地经受改变。


技术实现要素:

5.在本发明的一个方面,提供了一种与人工智能(ai)平台一起使用以训练机器学习模型的系统。处理单元可操作地耦合到存储器并且与ai平台通信,ai平台嵌入有注册管理器、加密管理器和实体管理器形式的工具。注册管理器用于将参与实体注册成协作关系,将注册实体布置在拓扑中,并建立拓扑通信方向。加密管理器用于生成公共附加同态加密(ahe)密钥并将其分发给每个注册的实体。实体管理器用于利用对应的分布式ahe密钥本地引导实体本地机器学习模型权重的加密。实体管理器进一步用于响应于拓扑通信方向,选择性地聚合加密的本地机器学习权重,并将聚合的权重分发给拓扑中的一个或多个实体。加密管理器利用对应的私有ahe密钥对加密的本地机器学习模型权重的聚合的总和进行解密,并且将聚合的总和分发给拓扑中的每个实体。加密管理器进一步起作用以与注册的参与实体共享加密的本地机器学习模型权重的解密的聚合的总和。
6.在另一方面中,提供了一种用于训练机器学习模型的计算机程序产品。所述计算
机程序产品包括计算机可读存储媒质,所述计算机可读存储媒质具有随其包含的程序代码,所述程序代码可由处理器执行用于以协作关系注册参与实体,将注册的实体布置在拓扑中,以及建立拓扑通信方向。提供程序代码用于生成公共附加同态加密(ahe)密钥并将其分发给每个注册的实体。程序代码利用对应的分布式ahe密钥本地引导实体本地机器学习模型权重的加密。本地机器学习模型权重被选择性地聚合,并且聚合的权重响应于拓扑通信方向而被分布到拓扑中的一个或多个实体。进一步提供程序代码用于利用对应的私有ahe密钥对加密的本地机器学习模型权重的聚合的总和进行解密。将解密的聚合的总和分发到拓扑中的每个实体,其中加密的本地机器学习模型权重的解密的聚合的总和与注册的参与实体共享。
7.在又一方面,提供了一种用于训练机器学习模型的方法。参与实体以协作关系注册。将注册的参与实体布置在拓扑中,建立拓扑通信方向。每个注册的参与实体接收公共附加同态加密(ahe)密钥,并且利用接收的密钥对本地机器学习模型权重进行加密。响应于拓扑通信方向,选择性地聚合加密的本地机器学习模型权重,并且将选择性地聚合的加密的权重分发给拓扑中的一个或多个参与实体。利用对应的私有ahe密钥对加密的本地机器学习模型权重的聚合的总和进行解密。加密的本地机器学习模型权重的解密的聚合的总和与注册的参与实体共享。
8.从下面结合附图对本发明优选实施例的详细描述,这些和其他特征和优点将变得显而易见。
附图说明
9.在此参考的附图形成说明书的一部分。除非另外指明,否则附图中所示的特征仅意味着对一些实施例的说明,而不是对所有实施例的说明。
10.图1描绘了示出连接在支持分布式随机梯度下降的安全联合的网络环境中的系统的流程图。
11.图2描述了示出如图1所示和所描述的人工智能平台和工具及其相关联的应用程序接口的框图。
12.图3描绘了示出管理域和域内聚合的框图。
13.图4描绘了示出用于执行管理域的域内聚合的过程的流程图。
14.图5描述了示出用于ml程序的域间协作和训练的过程的流程图。
15.图6描绘了示出支持图5中示出和描述的过程的示例环形拓扑的框图。
16.图7描述了示出用于将实体布置在完全连接的拓扑中并且在该拓扑上采用广播通信协议的过程的流程图。
17.图8示出了用于在成员关系动态改变的信道或广播组上支持和实现权重加密和聚合的过程的流程图。
18.图9描述了示出用于加密本地权重阵列和同步并行聚合阵列的块的过程的流程图。
19.图10描绘了示出基于云的支持系统的计算机系统/服务器的示例的框图,该计算机系统/服务器用于实现以上关于图1至图9描述的系统和过程。
20.图11描绘了示出云计算机环境的框图。
21.图12描绘了示出由云计算环境提供的一组功能抽象模型层的框图。
具体实施方式
22.将容易理解的是,如在本文的附图中一般地描述和图示的,可以以各种各样的不同配置布置和设计本实施例的组件。由此,如附图中所呈现的本实施例的装置、系统、方法和计算机程序产品的实施例的以下细节描述不旨在限制所要求保护的实施例的范围,而是仅表示所选实施例。
23.贯穿本说明书提及“选择实施例”、“一个实施例”、或“实施例”是指结合该实施例所描述的特定特征、结构、或特性被包括在至少一个实施例中。因此,在整个本说明书中的各个地方出现的短语“选择实施例”、“在一个实施例中”或“在实施例中”不一定是指相同的实施例。
24.通过参考附图,将最好地理解示出的实施例,其中,相同的部分在全文中以相同的标号表示。以下描述仅旨在通过举例的方式,并且简单地展示了与本文所要求保护的实施例一致的设备、系统、和过程的某些所选实施例。
25.深度学习是一种机器学习的方法,该方法在连续层中结合神经网络来以迭代方式从数据学习。神经网络是人脑处理信息的方式的模型。神经网络的基本单元被称为神经元,神经元通常被组织成层。神经网络通过模拟类似于神经元的抽象版本的大量互连的处理单元来工作。神经网络中通常存在三个部分,包括输入层(具有表示输入字段的单元)、一个或多个隐藏层、以及输出层(具有表示目标字段的一个或多个单元)。这些单元以变化的连接强度或权重进行连接。输入数据被呈现给第一层,并且值被从每个神经元传播到下一层中的每个神经元。最终,结果从输出层传递。深度学习复杂神经网络被设计成模拟人类大脑如何工作,因此计算机可被训练成支持欠佳地定义的抽象和问题。神经网络和深度学习经常用于图像识别、语音和计算机视觉应用中。
26.神经网络包括互连层和对应的算法和可调节权重。调整权重的优化函数被称为梯度下降。更具体地,梯度下降是用于通过在由负梯度限定的最陡下降的方向上迭代地移动来最小化函数的优化算法。在ml中,梯度下降用于更新神经网络的参数和对应的神经模型。当在单个物理机器上或在单个实体内的计算机之间训练时,这是直接的。然而,当包括多个实体时,由于通信限制或者由于法律原因(如hipaa等的规定),可能不能共享数据。一种解决方案是然后共享来自每个参与实体的权重和洞察(insight)。本领域中理解的是,共享来自数据的洞察可以导致构建期望的或改进的神经模型。然而,共享数据会导致其他问题,例如由于其他参与实体对来自共享的洞察的数据进行逆向工程(例如重构)而导致的保密性和隐私泄露。因此,如本文中示出和描述的,提供了一种系统、计算机程序产品和方法,其通过共享加密的模型参数而不共享纯文本(例如,明文)中的数据或权重来合并加密的权重。
27.如此处所示和所描述的,加密密钥和对应的加密平台被用来对受共享的权重进行加密,并且算法或过程被用来支持和实现对加密的权重的聚合。加密平台利用例如附加同态加密(ahe),例如paillier加密,这是利用公钥和对应的私钥的基于密钥对的密码学的类型。每个实体使用相同的公钥来支持和实现每个训练作业的同态化。ahe提供附加同态化,其使得能够在消息或对应的数据处于加密形式时将它们添加到一起,并且进一步支持利用对应的私钥对附加加密的形式进行适当的解密。如在此所示和所描述的,ahe被应用于ml以
加密对应的神经网络的权重,并且与协作环境的注册的参与实体共享加密的权重,而无需加密或共享对应的数据。
28.参考图1,提供了示意图(100)以示出分布式随机梯度下降的安全联合。如图所示,提供了跨网络连接(105)与多个计算设备(180)、(182)、(184)、(186)、(188)和(190)通信的服务器(110)。服务器(110)配置有跨总线(114)与存储器(116)通信的处理单元(112)。服务器(110)被示为具有人工智能(ai)平台(150)以支持协作以基于分布式、联合、私有和安全环境中的迭代优化算法来训练机器学习模型。服务器(110)通过网络(105)与计算设备(180)、(182)、(184)、(186)、(188)和(190)中的一个或多个通信。更具体来说,计算设备(180)、(182)、(184)、(186)、(188)和(190)经由一个或多个有线和/或无线数据通信链路彼此通信和与其他设备或组件通信,其中每个通信链路可包括导线、路由器、开关、发送器、接收器等中的一者或一者以上。在该联网的布置中,服务器(110)和网络连接(105)实现通信检测、识别和解析。服务器(110)的其他实施例可以与除了本文描绘的那些之外的组件、系统、子系统和/或设备一起使用。
29.ai平台(150)在本文中被示出为被配置为从不同源接收输入(102)。例如,ai平台(150)可以从网络(105)接收输入并且利用数据源(160)(在本文中也称为语料库或知识库)来创建输出或响应内容。如图所示,数据源(160)配置有库(162),或在一个实施例中配置有多个库,库(162)包括一个或多个深度神经网络,在本文中被称为神经模型,包括模型a(164a)、模型b(164b)、模型c(164c)和模型d(164d)。在一个实施例中,库(162)可包括减少量的模型或放大量的模型。类似地,在一个实施例中,数据源(160)中的库可通过共同的主题或题材来组织,尽管这不是要求。被填充到库中的模型可以来自相似或不相似的源。
30.ai平台(150)配备有支持和实现机器学习协作的工具。与网络(105)通信的不同计算设备(180)、(182)、(184)、(186)、(188)和(190)可包括用于数据源(160)的模型的接入点。ai平台(150)充当在不共享洞察或数据的情况下实现和支持协作的平台。如在此所示和所描述的,协作采用公共密钥基础设施(pki),其将ahe密钥生成与权重加密和聚合隔离。更具体地,如本文中详细描述的,利用附加同态加密以使得所标识的或所选择的实体能够共享加密形式的神经模型权重而不共享数据。获得具有期望准确度的神经模型形式的响应输出(132)并且与涵盖和参与协作的实体共享。在一个实施例中,ai平台(150)将响应输出(132)通信至协作拓扑的成员,诸如在图6和图7中所示出和描述的,跨网络(105)可操作地耦合至服务器(110)或计算设备(180)-(190)中的一个或多个。
31.在不同实施例中,网络(105)可以包括本地网络连接和远程连接,使得ai平台(150)可以在任何大小的环境中操作,包括例如本地和全局,例如互联网。ai平台(150)用作支持协作的后端系统。以这种方式,一些处理填充ai平台(150),其中ai平台(150)还包括接收请求并相应地响应的输入接口。
32.ai平台(150)在本文中被示出为具有用于支持神经模型协作的若干工具,包括注册管理器(152)、加密管理器(154)和实体管理器(156)。注册管理器(152)用于将参与实体注册成协作关系,包括拓扑中注册的实体的布置,以及在拓扑中的实体之间建立通信方向和通信协议。例如,在一个实施例中,并且如以下所示出和描述的,注册实体被布置在环形拓扑中。然而,通信协议可能不同。协议的示例包括但不限于:线性方向协议、广播协议、以及all-reduce协议。如本文进一步示出和描述的,采用附加同态pki加密平台来共享和协作
神经模型权重。本文所示的加密管理器(154)操作性地耦合到注册管理器(152),用于生成并向注册的实体分发用于每个训练作业的公共附加同态加密(ahe)密钥。该分布通常是根据机器学习训练作业完成的,尽管它也可以根据每个迭代完成。对应的私有ahe密钥被生成,但不被分发。公钥由对应的接收方实体保留。例如,与分布式公共ahe密钥中的每一个相关联的私有ahe密钥(下文称为私钥)不与任何接收方实体(例如参与实体)共享。因此,注册管理器(152)和加密管理器(154)用于注册参与协作的实体,建立通信协议,以及生成和选择性地分发ahe公共加密密钥。
33.如图所示,实体管理器(156)可操作地分别耦合到注册和加密管理器(152)和(154)。实体管理器(156)用于利用对应的分布式ahe密钥本地引导实体本地机器学习模型权重的加密,随后是聚合。例如,在一个实施例中,在本文中显示为模型a(164a)、模型b(164b)、模型c(164c)和模型d(164d)的每个模型与相应一组实体相关联。在一个实施例中,实体可以是操作地耦合到服务器(110)的计算机器(180)-(190)中的任一个。每个模型具有作为协作的主题的一个或多个对应的权重。例如,在一个实施例中,模型a(164a)具有对应的权重(166a),模型b(164b)具有对应的权重(166b),模型模型c(164c)具有对应的权重(166c),以及模型d(164d)具有对应的权重(166d)。实体管理器(156)选择性地将加密的本地机器学习模型权重与对应的公钥聚合。可以采用不同的聚合和协作协议,包括但不限于线性传输、广播和all-reduce。不管协作协议如何,在协作和聚合过程中的某个点处,用对应的公共ahe密钥对每个实体模型权重进行加密。如本文所示,权重(166a)用对应的ahe公钥(168a)加密,权重(166b)用对应的ahe公钥(168a)加密,权重(166c)用对应的ahe公钥(168a)加密,权重(166d)用对应的ahe公钥(168a)加密。因此,使用相同的对应的ahe公钥(168a)来分别加密每个权重。
34.本领域中应理解,ahe支持附加属性。这使得在以加密形式时聚合对应的模型的权重。根据通信和协作协议,在不同的阶段对加密的权重进行聚合。例如,在线性环形拓扑中,注册管理器(152)将排名(rank)分配给拓扑中的每个参与实体。模型权重中的每一个基于其对应的排名和所建立的通信方向而被递增地加密和聚合。实体管理器(156)用本地提供的ahe公钥(例如,公钥(168a))对权重进行加密,并且将加密的权重传送至相邻定位的实体以供聚合。更具体地,实体管理器(156)沿着拓扑来聚合ahe加密的权重,而无需促进或实现解密。注册管理器(152)建立、并且在一个实施例中修改通信方向。例如,在环形拓扑中,注册管理器可以建立顺时针或逆时针通信方向,并且可以改变方向。例如,在一个实施例中,注册管理器(152)可基于可用带宽改变方向。在广播协议中,注册管理器(152)建立权重的本地加密和从每个实体到其他实体和ai平台的加密的权重的通信。因此,实体管理器(156)支持和实现基于拓扑方向和通信协议或响应于拓扑方向和通信协议对加密的权重的聚合和分布。
35.公共ahe密钥具有对应的私钥,该私钥不与参与实体共享。在一个实施例中,私钥(例如,key
p
(168
p
))在ai平台(150)的加密管理器(154)本地保持。应当理解,聚合和加密的权重基于通信协议进行解密。在解密是合适的时间,加密管理器(154)使加密的权重(166
p,e
)的聚合和加密的总和经受用私钥进行解密(例如,key
p
(168
p
)),从而创建解密的权重的聚合的总和(166
p,ue
)。加密管理器(154)将本地权重的聚合和解密的总和(166
p,ue
)分发或以其他方式共享给参与和贡献实体中的每一个。因此,有助于聚合的每个实体接收聚合
和解密的总和。
36.应当理解,参与实体可包括单个子实体,或在一个实施例中,包括多个内部子实体。在一个实施例中,每个实体具有用于网络域的单组安全和配置策略。关于包括多个内部子实体的示例性实体的演示,参见图3。实体管理器(156)被配置为支持和实现基于单个子实体或多个子实体的权重的协作聚合。更具体地,实体管理器(156)执行表示来自每个内部子实体的同类数据类型的权重的实体内聚合,并且使实体内聚合受到具有实体ahe公钥的加密。因此,实体内聚合在对聚合进行ahe加密之前进行。
37.实体管理器(156)使实体内聚合经受使用本地公共ahe加密密钥的加密。此后,加密的聚合经受跨拓扑的实体间分布。如上所述,实体间分布包括加密的权重的聚合。在权重的实体间聚合以及用对应的私钥解密之后,实体管理器(156)将所聚合的总和传播到内部子实体中的每一个。因此,每个参与实体及其相关联的内部子实体受益于并参与协作。
38.注册管理器(152)负责建立拓扑和通信协议。在一个实施例中,注册管理器(152)建立全连接拓扑,也称为网状拓扑,以及对应的广播协议,其中每个参与实体发送,例如跨拓扑并且直接向拓扑中的每个其他参与实体广播它们的加密的本地权重。实体管理器(156)进一步支持和实现选择性地聚合,其在该实施例中涵盖每个参与实体来本地聚合所有接收的广播的加密的权重。加密管理器(154)使每个本地聚合经受参与验证。聚合的目标是使每个参与实体接收和受益于其他参与实体的加密的权重。然而,标识拓扑中的实体中的一个或多个实体是否对权重聚合没有贡献或没有贡献是具有挑战性的。在网状拓扑中,每个参与成员实体可直接与加密管理器(154)通信,并且这样,加密管理器(154)被配置为评估其是否从拓扑的不同成员接收到不同的聚合的权重值。例如,如果存在四个参与实体,并且实体中的三个实体具有相同的聚合的权重值并且实体中的一个实体具有不同的聚合的权重值,则加密管理器(154)可以标识非贡献实体。在一个实施例中,加密管理器(154)可以限制解密的聚合的权重总和与贡献实体共享,或者请求所标识的非贡献实体向拓扑的参与成员中的每一个广播其加密的本地权重。因此,如在此示出和描述的,网状拓扑采用广播协议,并且在一个实施例中使用实体参与验证来支持联合机器学习。
39.如图1中所示和所述,注册管理器(152)可实现用于协作的all-reduce算法或协议。在该实施例中,实体管理器(156)将每个实体的权重表示为权重阵列。实体管理器(156)用对应的实体ahe公钥对该阵列进行加密,将加密的阵列划分成两个或更多个块,以及并行地并响应于该拓扑来同步地聚合这些块。当协作中的每个参与实体正在接收单个聚合的块(chunk)时,实体管理器(156)结束同步聚合。每个聚合的块由加密管理器(154)用对应的私钥进行解密,随后级联解密的块,并将级联的解密的块分配到注册的参与实体。因此,all-reduce协议是在本文中以并行和集体方式高效采用的算法。
40.在一些说明性实施例中,服务器(110)可以是可从纽约armonk的国际商业机器公司获得的ibm 系统,其用下文描述的说明性实施例的机制扩充。在此示出和描述的ibm 系统包括基于迭代优化算法实现联合机器学习的工具。该工具使得能够选择性地聚合加密模型权重而不共享底层数据,从而使得数据能够保持机密或私有。
41.下文统称为ai工具或ai平台工具的注册管理器(152)、加密管理器(154)和实体管理器(156)被示为在服务器(110)的ai平台(150)中体现或集成在服务器(110)的ai平台(150)内。ai工具可以在跨网络(105)连接到服务器(110)的单独的计算系统(例如,190)中
实现。在实现的任何地方,ai工具用于以迭代方式支持和实现联合机器学习,包括本地模型权重的加密和在参与实体之间共享加密的本地模型权重,而不共享或公开底层数据。输出内容(132)可以是经实体间通信的聚合的权重的解密的格式的形式。
42.可以利用ai平台(150)的信息处理系统的类型的范围从诸如手持式计算机/移动电话(180)的小型手持式设备到诸如大型计算机(182)的大型主机系统。手持式计算机(180)的示例包括个人数字助理(pda)、诸如mp4播放器的个人娱乐设备、便携式电视和致密盘播放器。信息处理系统的其他示例包括笔或平板计算机(184)、膝上型或笔记本计算机(186)、个人计算机系统(188)和服务器(190)。如图所示,可使用计算机网络将不同信息处理系统联网在一起(105)。可以用于互连不同信息处理系统的计算机网络(105)的类型包括局域网(lan)、无线局域网(wlan)、互联网、公共交换电话网(pstn)、其他无线网络和可以用于互连信息处理系统的任何其他网络拓扑。许多信息处理系统包括非易失性数据存储装置,诸如硬盘驱动器和/或非易失性存储器。一些信息处理系统可使用单独的非易失性数据存储器(例如,服务器(190)利用非易失性数据存储器(190a),且大型计算机(182)利用非易失性数据存储器(182a))。非易失性数据存储器(182a)可以是在不同信息处理系统外部或可以在信息处理系统之一内部的组件。
43.用于支持ai平台(150)的信息处理系统可以采取许多形式,其中一些在图1中示出。例如,信息处理系统可以采取台式机、服务器、便携式、膝上型、笔记本或其他形状因素计算机或数据处理系统的形式。此外,信息处理系统可以采取其他形式的因素,诸如个人数字助理(pda)、游戏设备、atm机、便携式电话设备、通信设备或包括处理器和存储器的其他设备。此外,信息处理系统不一定需要体现北桥/南桥控制器架构,因为将理解,也可以采用其他架构。
44.应用程序接口(api)在本领域中被理解为在两个或更多个应用程序之间的中间的软件。关于图1中示出并描述的ai平台(150),一个或多个api可以用于支持工具(152)-(156)中的一个或多个及其相关联的功能。参照图2,提供了示出工具(152)-(156)及其相关联的api的框图(200)。如图所示,多个工具被嵌入在ai平台(205)内,其中该工具包括与api0(212)相关联的注册管理器(252)、与api1(222)相关联的加密管理器(254)、以及与api2(232)相关联的实体管理器(256)。api中的每一个可以用一种或多种语言和接口规范来实现。api0(212)提供功能支持以注册参与的实体,布置拓扑,并建立通信协议;api1(222)提供功能支持以生成和分发每个注册的实体的公共ahe密钥,管理使用对应的私钥对聚合权重的解密,并管理解密权重的分配;并且api2(232)提供功能支持以响应于拓扑来引导实体内聚合和实体间聚合。如图所示,api(212)、(222)和(232)中的每一个可操作地耦合到api编排器(260),该api编排器(260)另外被称为编排层,其在本领域中被理解为充当抽象层以将单独的api透明地线程在一起。在一个实施例中,单独的api的功能可以被接合或组合。照此,本文所示的api的配置不应当被认为是限制性的。因此,如本文所示,工具的功能可以由其相应的api体现或支持。
45.参考图3,提供了示出管理域和域内聚合的框图(300)。注册的参与实体(310)在本文中被称为可操作地耦合到一个或多个本地计算实体的本地聚合器(la)。在此所示的示例中,存在四个本地计算实体,包括实体0(320)、实体1(330)、实体2(340)、以及实体3(350)。每个计算实体包括或利用由操作地耦合的数据所支持的一个或多个机器学习程序(在本文中
被称为学习者(learner))。如本文中所示,实体0(320)被示为具有学习者0(322)和操作地耦合的数据0(324),实体1(330)被示为具有学习者1(332)和操作地耦合的数据1(334),实体2(340)被示为具有学习者2(342)和操作地耦合的数据2(344),并且实体3(350)被示为具有学习者3(352)和操作地耦合的数据3(354)。每个机器学习程序(例如,学习者)提取本地数据并且将其处理成对应的本地神经模型。
46.源自相同分类的数据可被应用于构建或利用相同数据分类的不同神经模型。在本文示出的示例中,学习者(322)、(332)、(342)和(352)中的每一个针对例如相同的数据类型(同类数据分类)表示相同的机器学习程序,但具有不同数据。la(310)支持并且实现学习者在共享或不共享底层数据的情况下共享权重。la(310)执行接收的权重的聚合,并且在一个实施例中,对接收的权重进行平均,而不执行ahe加密。因此,本文所示出和描述的管理域表示实体,其在一个实施例中可以是商业实体或域,以支持来自域内的进程的权重的内部聚合,例如,实体内聚合。
47.参照图4,提供流程图(400)以示出用于执行管理域的域内聚合的过程。变量x
total
表示域内计算实体的量(402)。域可以包括单个或多个计算实体。如图3所示,每个计算实体具有机器学习程序和本地耦合的数据,其中每个机器学习程序表示数据的同类类别。变量y
total
表示可以存在于本地耦合的数据中的数据类型的量(404)。在一个实施例中,数据类型的值与机器学习程序的量对准。初始化数据类型计数变量y(406)。对于每个计算实体x,对应于数据类型y的ml程序中的权重,例如权重y,被标识和聚合(408)。聚合权重的过程可以应用于针对不同数据类型的不同ml程序。如图所示,在步骤(408)之后,数据类型计数变量y递增(410)以考虑下一ml程序,并且确定数据类型中的每一个是否已经被处理用于权重聚合(412)。对确定的否定响应之后是返回步骤(408),并且对确定的肯定响应结束聚合。在一个实施例中,可以指定数据类型,并且聚合可以限于指定的数据类型。因此,可以跨驻留在指定或定义的域中的两个或更多个计算实体来进行权重的实体内聚合,而无需进行或采用任何ahe加密。
48.多个域可以被布置在定义的拓扑中。每个域具有可操作地耦接至一个或多个实体和相关联的ml程序的对应的la。来自ml程序的权重可以在域间基础上共享,而不共享数据。更具体地,以在保持加密的同时支持聚合的方式对权重进行加密。权重的域间共享支持并实现ml程序的协作和增强的训练。参考图5,提供流程图(500)来说明用于ml程序的域间协作和训练的过程。变量n
total
被分配给经受协作的la的量(502)。应当理解的是,每个la是可寻址的并且具有对应的地址标识符。每个la布置在拓扑中并且响应于其在拓扑中的相应位置而被分配排名(504)。此外,在拓扑内建立用于域间通信的通信协议。为了描述的目的,在本文中使用的拓扑是线性环形拓扑,其中,la在环内连接并且根据它们在环结构内的相邻接近性和指定的方向(例如,顺时针或逆时针)将信息传递到彼此或从彼此传递信息。服务器(诸如在图6中示出和描述的中央服务器(620))还被称为第三方协调器(在一个实施例中是中央服务器(110)本地的ai平台(150)),被设置为与拓扑和被分配给拓扑的la通信,并且用于生成和分配加密密钥。拓扑中的每个la被分配加密密钥。如图所示,ai平台(150)生成公共加密密钥并且将该公共加密密钥发送给拓扑中的每个la(506)。该公钥具有对应的私钥,该私钥由中央服务器保留。中央服务器所使用的加密平台利用附加同态加密(ahe),例如paillier加密。因此,利用填充到拓扑中的三个或更多个la来建立拓扑和通信协议。
49.如图3和图4所示和所述,每个ml程序表示特定数据类型。每个la可具有一个或多个ml程序,其中每个程序关联或被分配不同的数据类型。变量y
total
被分配以表示数据类型的量(508),并且在(510)和(512)分别单独地初始化数据类型计数变量和la计数变量。此后,发起权重聚合过程。如图所示,lan被标识,并且用于数据类型y的lan本地的ml程序的权重被聚合并用公共加密密钥加密(514)。在一个实施例中,lan限于用于数据类型y的单个ml程序。在步骤(514)之后,la计数变量递增(516),随后确定在拓扑中是否还有la未经受权重聚合(518)。对步骤(518)处的确定的否定响应之后是la
n-1将用于ml程序y,n-1的权重发送至lan(520)。在接收到权重之后,用于数据类型y的lan本地的ml程序的权重被本地聚合并用公共加密密钥加密(522)。从la
n-1
接收的加密的权重与用于ml程序
y,n
的加密的权重聚合(524)。一旦在lan处的聚合完成,该过程返回到步骤(516)。因此,权重的聚合在域内和域间基础上发生。
50.对在步骤(518)的确定的肯定响应是拓扑中的la中的每一个已经完成了环形的旋转的指示。如本文中所示,la中的每一个的权重以加密的形式完成,其中每个贡献la的权重具有相同的公共加密密钥。聚合和加密的权重从la
n total
发送到中央服务器(526)。具有完全聚合的唯一实体是la
ntotal
。中央服务器利用分布在拓扑中的与公钥相关联的私钥,并解密用于数据类型y的加密的权重的聚合(528)。中央服务器将用于数据类型y的解密的聚合分发给拓扑中的每个la(530)。在从中央服务器接收到解密的聚合时,相应的la将权重向下游传播到内部学习者过程(532)。此后,数据类型计数变量递增(534),并且确定数据类型中的每一个,例如,如图4中示出和描述的ml程序已经相对于权重聚合被处理(536)。对确定的否定响应之后是返回步骤(514),并且肯定响应结束该聚合过程。因此,本文所示和所述的聚合限于对应ml程序中的权重,并且不扩展到相关联的数据。
51.参照图6,提供框图(600)以示出支持图5中示出和描述的过程的示例环形拓扑。如图所示,中央服务器(620)(在本文也称为第三方协调器)被配置或提供有密钥生成器(622)以生成用于分发的公钥和将在本地保留的私钥(680)。在该示例中,存在拓扑结构(610)中表示的四个la,包括la0(630)、la1(640)、la2(650)以及la3(660),然而la的量用于描述性目的并且不应被视为限制性的。每个单独的la可包括单个学习者或多个学习者,如图3所示,形成内部域。中央服务器(620)可操作地耦合到拓扑结构中的每个la。更具体地,中央服务器(620)为每个la(630)、(640)、(650)和(660)创建公共密钥,并且跨相应的通信信道传输该公共密钥。如本文中所示,服务器(620)跨通信信道0(634)将公钥(632)传送至la0(630)。类似地,服务器(620)跨通信信道1(644)将公钥(642)传送至la1(640),跨通信信道2(654)将公钥(652)传送至la2(650),并且跨通信信道3(664)将公钥(662)通传送至la3(660)。公钥(632)(642)、(652)和(662)对于每个la是相同的公钥,并且支持ahe加密。
52.如本文中所示,该示例中的权重的加密源自la0(630)。针对特定数据类型或数据分类,在la0(630)处的本地模型的权重被计算并用密钥0(632)加密,并且跨通信信道
0,1
(670)被传送至la1(640)。用于la0(630)的加密的权重在本文中称为权重0(636)。在从la0(630)接收权重0(636)之后,在la1(640)处针对相同的特定数据类型或数据分类的本地模型的权重被计算并用密钥1(642)加密。本文中将la1(640)的加密的权重称为权重1(646)。本地模型la1(640)的加密的权重、权重1(646)与本地模型la0(630)的加密的权重权重0(636)聚合。聚合在本文中也称为第一聚合,例如,聚合0(648)。加密和聚合的过程在所建立的方向
上跨环形拓扑继续。如图所示,聚合0(648)跨通信信道
1,2
(672)传送给la2(650)。在从la1(640)接收到聚合0(648)之后,在la2(650)处针对相同的特定数据类型或数据分类的本地模型的权重被计算并用密钥2(652)加密。la2的加密的权重(650)在本文中被称为权重2(656)。本地模型la2的加密的权重(650)、权重2(656)与从la1(640)接收的聚合0(648)聚合。该聚合在本文中也称为第二聚合,例如,聚合1(658)。如图所示,聚合1(658)跨通信信道
2,3
(674)被传送至la3(660)。在从la2(650)接收到聚合1(658)之后,针对同一特定数据类型或数据分类在la3(660)处的本地模型的权重被计算并用密钥3(662)加密。本文中将la3(660)的加密的权重称为权重3(666)。本地模型la3(660)的加密的权重、权重3(666)与从la2(650)接收的聚合1(658)聚合。在本文中,该聚合也称为第三聚合,例如,聚合2(668)。因此,在指定方向上跨拓扑加密和聚合权重。
53.在la3(660)处完成聚合之后,聚合2(668)被传递到中央服务器(620),例如。第三方协调器,通过通信信道(664)。中央服务器(620)不具有与聚合的权重或包括聚合的各个权重相关联的底层数据。中央服务器(620)拥有与公钥相关联的私钥(680)。中央服务器(620)使用私钥(680)解密聚合(例如,聚合2(668)),并且将解密的聚合发送给作为拓扑的成员的每个la。如本文所示,解密的聚合跨通信信道0(634)被传送至la0(630),并且进一步跨通信信道1(644)被传送至la1(640)、跨通信信道2(654)被传送至la2(650)、以及跨通信信道3(664)被传送至la3(660)。因此,本文中相对于环形拓扑示出和描述的同态加密平台支持与每个神经模型相关联的权重的附加加密,同时保持对应的数据的隐私和机密性。
54.图6中示出和描述的加密平台是针对同类数据类型的环形拓扑,例如。单个数据类型。在一个实施例中,平台中所支持的聚合和加密可以用于第二或不同数据类型,其中每个数据类型的加密和聚合串行或并行地发生。
55.如图1中所示和所描述的,拓扑和对应的通信协议不限于环形拓扑。参考图7,提供流程图(700)以示出用于将实体布置在完全连接拓扑中并且在拓扑上采用广播通信协议的过程。变量n
total
表示拓扑结构中的实体的量(702)。实体布置成完全连接的拓扑,在本文中也称为网状拓扑,(704)。在一个实施例中,每个参与实体包括la或者采用la的形式。每个参与实体具有本地加密的权重并且发送其本地加密的权重,例如。ahe加密的权重,直接去往拓扑中的每个参与实体(706)。ahe加密的权重的聚合在本地发生。更具体地,每个参与实体聚合所有接收的加密的权重。每个参与实体可操作地耦接至解密器(例如,第三方协调器),并且将它们的聚合的权重发送给解密器以用于利用对应的私钥进行解密(708)。
56.基于拓扑和所建立的通信协议,解密器被配置为与每个参与实体共享解密,并且在一个实施例中,可验证参与。在步骤(708)之后,确定是否要进行验证协议(710)。在该确定的否定响应之后,向参与实体返回解密的聚合,使得每个参与实体接收到解密的聚合(712)。本领域中应理解,可能存在带宽约束。在一个实施例中,可以指定单个参与实体与解密器通信,用于传输加密的聚合的总和。类似地,在一个实施例中,每个参与实体可分别与解密器通信,用于发送加密的聚合的总和以及接收解密的聚合的总和。在一个实施例中,参与实体不具有其他参与实体的知识或细节,并且因此,解密器负责权重的解密的聚合的传输。
57.理论上,参与实体中的每一个应该具有相同的加密的聚合。对步骤(710)的确定的肯定响应之后是执行验证协议。比较从每个参与实体接收的解密的聚合的权重以标识非参
与实体(714)。在一个实施例中,在步骤(714),将所接收的加密的权重聚合的量与请求的解密的量进行比较。类似地,在一个实施例中,在步骤(714),比较所接收的加密的权重聚合的值以确定是否存在异常值。如果在步骤(716)标识出非参与实体,则解密的聚合的返回可以被限制到参与实体(716)。类似地,如果在步骤(718)中没有被标识为非参与的实体,则解密的聚合被传送给注册的参与实体中的每一个(720)。因此,本文所示和所述的拓扑支持和实现非参与实体的标识。
58.聚合协议可被更改或修改以支持拓扑内的成员关系的动态修改,例如。本地聚合器的成员关系。参考图8,提供流程图(800)以示出用于在成员关系动态改变的信道或广播组上支持和实现权重加密和聚合的过程。服务器或第三方协调器生成paillier公钥和对应的私钥,并且准备与拓扑中的la共享公钥(802)。变量n
total
被分配给拓扑中的la的量,或者在一个实施例中,被分配给拓扑中的la的初始量(804)。所生成的paillier公钥与拓扑中的每个la共享(806)。在一个实施例中,在la加入拓扑(在本文中也称为一组互连的la)时,服务器或第三方协调器生成paillier公钥和对应的私钥并且与每个加入或加入的la共享公钥,或者与加入拓扑的la共享之前生成的paillier公钥。因此,作为拓扑的成员的每个la与中央服务器通信并且接收用于权重加密的paillier公钥。
59.接收到加密密钥的la形成组。然而,在所形成的组中的每个la不必知道其他la。如本文中所示,组中的la(在本文中称为lan)使用公钥加密其权重,然后,将加密的权重广播给组中的所有其他la(808)。在步骤(808)从lan广播加密的权重之后,lan从作为组的成员的所有其他la接收加密的权重(810)。lan将其加密的权重添加到接收的加密的权重中的每一个(812),下文称为聚合加密的权重,并将聚合的加密的权重发送到中央服务器,例如,第三方协调器(814)。中央服务器采用私钥对聚合的加密的权重进行解密(816),并将解密的聚合的权重分发给成员la中的每一个(818)。因此,本文所示的过程在广播场景中利用加密密钥。
60.在ai和ml领域中理解的是,作为图6所示和所述的拓扑(例如环形拓扑)的成员的一个或多个la可以具有对应于本地聚合的结果的大权重阵列。参考图9,提供流程图(900)以示出用于加密本地权重阵列和同步并行聚合阵列的块的过程。多个la以环形拓扑布置并且建立通信方向(902),如在图6中示出和描述的。变量n
total
被分配给作为拓扑的成员的la的量(904)。每个la(例如,lan)使用paillier公钥加密其本地权重阵列(906)。代替以环形或广播方式在拓扑上完整地发送权重阵列,每个la将加密的阵列划分成在本文中称为块的分段(908),其中,每个la阵列中的块的量等于作为拓扑的成员的la的量n
total
。通过初始化la和块计数变量n(910),调用环形all-reduce算法。lan将块n发送到环中的下一la,例如la
n 1
,同时它,例如lan响应于通信方向从拓扑中的先前la同时接收块
n-1
(912)。拓扑中的每个la然后聚合其接收的块
n-1
和其自身的对应的块
n-1
,并将聚合的块
n-1
发送到环中的下一la,例如。此后,计数变量n递增(916),随后确定n是否大于n
total
(918)。对步骤(918)的确定的否定响应之后是返回步骤(912),并且肯定响应是每个la具有权重的聚合的块的指示。块跨环形拓扑同步并行聚合。因此,每个la将其本地块添加至接收的块,并且响应于通信方向将其发送至下一la。
61.在对步骤(918)的确定的肯定响应之后,拓扑中的每个la具有paillier加密的权重的一个聚合的块。在具有四个la的示例中,la1具有聚合的块2,la2具有聚合的块3,la3具有
聚合的块4,并且la4具有聚合的块1。每个la将其聚合的块发送给第三方协调器(920),该第三方协调器用于对从每个la到达的聚合的加密的权重进行解密(922)。第三方协调器级联解密的权重并将它们分发给拓扑中的la中的每一个(924)。因此,本文所示和所述的过程使all-reduce算法适应于以拓扑布置的la之间的权重的高效且安全的聚合。
62.功能工具(152)-(156)的方面及其相关联的功能可以体现在单个位置中的计算机系统/服务器中,或者在一个实施例中,可以配置在共享计算资源的基于云的系统中。参考图10,提供了示出计算机系统/服务器(1002)的示例的框图(1000),该计算机系统/服务器在下文中被称为与基于云的支持系统通信的主机(1002),以实现以上关于图1至图9描述的过程。主机(1002)可与许多其他通用或专用计算系统环境或配置一起操作。可适合于与主机(1002)一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型计算机系统、大型计算机系统和包括以上系统、设备及其等效物中的任一者的文件系统(例如,分布式存储环境和分布式云计算环境)。
63.主机(1002)可在由计算机系统执行的计算机系统可执行指令(例如程序模块)的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。主机(1002)可以在分布式云计算环境(1080)中实现,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储媒质中。
64.如图10所示,主机(1002)以通用计算设备的形式示出。主机(1002)的组件可以包括但不限于一个或多个处理器或处理单元(1004),例如。硬件处理器、系统存储器(1006)和将包括系统存储器(1006)的不同系统组件耦合至处理器(1004)的总线(1008)。总线(1008)表示若干类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任一种的处理器或本地总线。作为示例而非限制,此类架构包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)本地总线以及外围组件互连(pci)总线。主机(1002)通常包括各种计算机系统可读媒质。这样的介质可以是可由主机(1002)访问的任何可用介质,并且其包括易失性和非易失性介质、可移动和不可移动介质。
65.存储器(1006)可包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(ram)(1030)和/或高速缓存存储器(1032)。仅作为示例,存储系统(1034)可被设置用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取和写入至不可移动、非易失性磁介质。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,以及用于从可移动非易失性光盘(如cd-rom、dvd-rom或其他光学介质)读取或向其写入的光盘驱动器。在这样的情况下,每一个可以通过一个或多个数据介质接口连接到总线(1008)。
66.具有一组(至少一个)程序模块(1042)的程序/实用程序(1040)以及操作系统、一个或多个应用程序、其他程序模块和程序数据可以作为示例而非限制存储在存储器(1006)中。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的某种组合可以包括网络环境的实现方式。程序模块(1042)通常执行实施例的功能和/或方法以动
态地通信评估询问标识和处理。例如,该组程序模块(1042)可包括如图1中所描述的工具(152)-(156)。
67.主机(1002)还可与一个或多个外部设备(1014)(诸如键盘、指向设备等)、显示器(1024)、使得用户能够与主机(1002)交互的一个或多个设备通信;和/或使得主机(1002)能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可经由输入/输出(i/o)接口(1022)发生。此外,主机(1002)可以经由网络适配器(1020)与诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,互联网)的一个或多个网络通信。如所描绘的,网络适配器(1020)经由总线(1008)与主机(1002)的其他组件通信。在一个实施例中,分布式文件系统(未示出)的多个节点经由i/o接口(1022)或经由网络适配器(1020)与主机(1002)通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与主机(1002)结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器和数据归档存储系统等。
68.在本文档中,术语“计算机程序介质”、“计算机可用介质”和“计算机可读介质”用于泛指诸如主存储器(1006)(包括ram(1030))、高速缓存(1032)和存储系统(1034)(诸如可移动存储驱动器和安装在硬盘驱动器中的硬盘)的介质。
69.计算机程序(也称为计算机控制逻辑)被存储在存储器(1006)中。计算机程序还可以经由通信接口(诸如网络适配器(1020))来接收。这样的计算机程序在运行时使得计算机系统能够执行如本文所讨论的本实施例的特征。具体地,计算机程序在运行时使处理单元(1004)能够执行计算机系统的特征。因此,这样的计算机程序表示计算机系统的控制器。
70.计算机可读存储媒体可为可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储媒质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储媒质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、动态或静态随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、磁存储设备、便携式紧凑盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、诸如穿孔卡的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储媒体不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输媒体传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发送的电信号。
71.本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储媒质中。
72.用于执行本实施例的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言的任何组合编写的源代码或目标代码,这些编程语言包括面向对象的编程语言(如java、smalltalk、c 等)和常规过程编程语言(如“c”编程语言或类似编程语言)。计算机可
读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器或服务器集群上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户计算机,或者可连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行实施例的方面。
73.在一个实施例中,主机(1002)是云计算环境的节点。如本领域中已知的,云计算是服务递送的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互被快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。这样的特性的示例如下:
74.按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者的人类交互。
75.广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机和pda)的使用。
76.资源池:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要动态地指派和重新指派。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够在较高抽象层(例如,国家、州或数据中心)处指定位置。
77.快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
78.测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象层处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
79.服务模型如下:
80.软件即服务(saas):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
81.平台即服务(paas):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
82.基础设施即服务(iaas):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
83.部署模型如下:
84.私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
85.社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
86.公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
87.混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
88.云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
89.现在参见图11,说明性云计算网络(1100)。如图所示,云计算网络(1100)包括具有一个或多个云计算节点(1110)的云计算环境(1150),云消费者使用的本地计算设备可以与该云计算节点通信。这些本地计算设备的示例包括但不限于个人数字助理(pda)或蜂窝电话(1154a)、台式计算机(1154b)、膝上型计算机(1154c)和/或汽车计算机系统(1154n)。节点(1110)内的各个节点可以进一步彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境(1100)提供基础架构、平台和/或软件作为云消费者不需要为其维护本地计算设备上的资源的服务。应当理解,图11中所示的计算设备(1154a-n)的类型旨在仅是说明性的,并且云计算环境(1150)可通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
90.现在参见图12,示出了由图11的云计算网络提供的一组功能抽象层(1200)。应当提前理解的是,在图12中示出的组件、层、以及功能仅仅旨在进行说明,并且实施例不限于此。如所描绘的,提供以下层和对应功能:硬件和软件层(1210)、虚拟化层(1220)、管理层(1230)和工作负载层(1240)。
91.硬件和软件层(1210)包括硬件和软件组件。硬件组件的示例包括大型机,在一个示例中为系统;基于risc(精简指令集计算机)架构的服务器,在一个示例中为ibm 系统;ibm 系统;ibm系统;存储装置;网络和联网组件。软件组件的示例包括网络应用服务器软件,在一个示例中为ibm应用服务器软件;以及数据库软件,在一个示例中为ibm数据库软件。(ibm,zseries,

pseries,xseries,bladecenter,websphere和db2是在全球许多司法辖区中注册的国际商业机器公司的商标)。
92.虚拟化层(1220)提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器;虚拟存储装置;虚拟网络,包括虚拟专用网络;虚拟应用和操作系统;以及虚拟客户端。
93.在一个示例中,管理层(1230)可以提供以下功能:资源供应、计量和定价、用户门户、服务层管理和sla规划和履行。资源供应提供用于在云计算环境内执行任务的计算资源
和其他资源的动态采购。计量和定价提供成本跟踪,因为资源在云计算环境内被利用,并且为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户为消费者和系统管理员提供对云计算环境的访问。服务层管理提供云计算资源分配和管理,使得满足所需的服务层。服务层协议(sla)规划和履行提供云计算资源的预布置和采购,根据该sla预期该云计算资源的未来要求。
94.工作负载层(1240)提供可利用云计算环境的功能性的示例。可以从该层提供的工作负荷和功能的示例包括但不限于:绘图和导航;软件开发和生命周期管理;虚拟教室教育递送;数据分析处理;事务处理;以及联合机器学习。
95.将了解,本文揭示一种系统、方法、装置和计算机程序产品,其用于评估自然语言输入,检测对应的通信中的询问,以及用回答和/或支持内容解析检测到的询问。
96.虽然已经示出和描述了本实施例的特定实施例,但是对于本领域技术人员来说将显而易见的是,基于本文的教导,在不脱离实施例及其更广泛的方面的情况下可以做出改变和修改。因此,所附权利要求书将在其范围内涵盖实施例的真实范围内的所有此类改变和修改。此外,应当理解,实施例仅由所附权利要求限定。本领域技术人员将理解,如果旨在具体数目的所引入的权利要求元素,则这样的意图将在权利要求中显式叙述,并且在没有这样的叙述的情况下,不存在这样的限制。作为非限制性示例,为了帮助理解,以下所附权利要求包含使用介绍性短语“至少”和“一个或多个”来介绍权利要求元素。然而,这种短语的使用不应解释为暗示通过不定冠词“一个(a)”或“一种(an)”引入权利要求元件将包含这种引入的权利要求元件的任何特定权利要求限制为仅包含一个这种元件的实施例,即使当相同的权利要求包括引入性短语“一个或多个”或“至少一个”以及不定冠词诸如“一个(a)”或“一种(an)”时;这同样适用于定冠词的权利要求中的用途。
97.本实施例可以是系统、方法和/或计算机程序产品。此外,本实施例的所选择的方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者组合软件和/或硬件方面的实施例的形式,在本文中可以统称为“电路”、“模块”或“系统”。此外,本实施例的方面可以采取计算机程序产品的形式,该计算机程序产品体现在其上具有用于使处理器执行本实施例的方面的计算机可读程序指令的计算机可读存储媒质(或多个媒质)中。如此具体化,所公开的系统、方法和/或计算机程序产品操作以改进人工智能平台的功能和操作,以解决具有意图标识和与所标识的意图相关的对应响应的询问器。
98.计算机可读存储媒体可为可保留和存储供指令执行设备使用的指令的有形设备。计算机可读存储媒质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储媒质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、动态或静态随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、磁存储设备、便携式紧凑盘只读存储器(cd-rom)、数字通用盘(dvd)、记忆棒、软盘、诸如穿孔卡的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储媒体不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输媒体传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发送的电信号。
99.本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储媒质中。
100.用于执行本实施例的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言的任何组合编写的源代码或目标代码,这些编程语言包括面向对象的编程语言(如java、smalltalk、c 等)和常规过程编程语言(如“c”编程语言或类似编程语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器或服务器集群上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户计算机,或者可连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行实施例的方面。
101.本文参考根据实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本实施例的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
102.这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的部件。也可以把这些计算机可读程序指令存储在计算机可读存储媒质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储媒质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
103.也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
104.图中的流程图和框图示出根据本实施例的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
105.应当理解,尽管为了说明的目的在此已经描述了具体实施例,但是可以在不背离本发明的范围的情况下做出各种修改。因此,实施例的保护范围仅由所附权利要求及其等同物限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献