CN112771518A - 托管机器学习模型 - Google Patents
托管机器学习模型 Download PDFInfo
- Publication number
- CN112771518A CN112771518A CN201980063748.7A CN201980063748A CN112771518A CN 112771518 A CN112771518 A CN 112771518A CN 201980063748 A CN201980063748 A CN 201980063748A CN 112771518 A CN112771518 A CN 112771518A
- Authority
- CN
- China
- Prior art keywords
- host
- machine learning
- group
- request
- inference
- 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.)
- Granted
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 113
- 238000000034 method Methods 0.000 claims abstract description 82
- 230000015654 memory Effects 0.000 claims abstract description 42
- 238000004458 analytical method Methods 0.000 claims abstract description 7
- 238000003860 storage Methods 0.000 claims description 43
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 12
- 230000036541 health Effects 0.000 description 11
- 238000013500 data storage Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 230000005641 tunneling Effects 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003862 health status Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Library & Information Science (AREA)
- Artificial Intelligence (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
描述了用于托管机器学习模型的技术。在一些情况下,执行了一种方法:接收使用特定机器学习模型执行推理的请求;确定要将所述请求路由到的主机组,所述主机组托管包括所述特定机器学习模型的多个机器学习模型;确定到所确定的主机组的路径;基于所确定的路径来确定所述主机组中的特定主机以执行对所述请求的分析,所述特定主机在存储器中具有所述特定机器学习模型;将所述请求路由到所述主机组的所述特定主机;使用所述特定主机对所述请求执行推理;以及向请求者提供所述推理的结果。
Description
背景技术
在托管环境中响应于来自用户的请求而动态加载机器学习模型(例如,接收来自磁盘的模型,将其存储在存储器中并使其实例化)由于加载操作的延时相对较高通常是不可行的。此外,单个主机的存储器大小通常不允许缓存所有模型,或者不允许经济地缓存所有模型。
附图说明
将参考附图描述根据本公开的各种实施方案,在附图中:
图1示出了机器人用法的示例性实施方案。
图2示出了用于执行包括推理的操作的系统的示例性实施方案。
图3示出了用于在提供商网络以及应用和服务订阅实体中处理推理的系统的示例性实施方案。
图4示出了推理部件的示例性实施方案。
图5示出了单个主机上的推理服务的示例性实施方案。
图6示出了用于配置ISG的方法的示例性实施方案。
图7示出了利用服务进行推理的方法的示例性实施方案。
图8示出了用于路由推理请求的方法的示例性实施方案。
图9示出了用于ISG管理的方法的示例性实施方案。
图10示出了用于预热新的ISG的方法的示例性实施方案。
图11示出了用于对主机数量进行按比例缩放并加载任何新主机的方法的示例性实施方案。
图12示出了用于使用主机的健康信息的方法的示例性实施方案。
图13示出了根据一些实施方案的示例性提供商网络环境。
图14示出了根据一些实施方案的使用IP隧道技术在网络底层上实现覆盖网络的示例性数据中心。
图15是根据一些实施方案的向客户提供存储服务和硬件虚拟化服务的示例性提供商网络的框图。
图16是示出可在一些实施方案中使用的示例性计算机系统的框图。
图17示出了根据各种实施方案可利用的示例性计算装置的通用部件集合的逻辑布置。
图18示出了用于实现根据各种实施方案的各方面的环境的示例。
具体实施方式
描述了用于自然语言理解(NLU)的方法、设备、系统和非暂时性计算机可读存储介质的各种实施方案。特别地,详细描述了定向到机器学习模型的自动缩放的分布式多租户托管以进行推理的实施方案。
NLU模型的大小可大约为数十兆字节(10-20MB)、数百兆字节(诸如300-500MB)等。在具有可能使用的大量模型或聊天机器人(也称为“机器人”)的系统中,通过加载到计算机系统中以准备用于进行推理来托管每个模型不太可能高效。例如,在总共有120,000个机器人的一些系统中,在任何给定一天只有2,000个接收到流量。仅仅托管其余的118,000个机器人不太可能高效地使用可以由其他租户使用的资源。
如上所述,在许多情况下,存储和/或计算资源的数量不适合托管所有可能的模型是不可行的。本文详细描述了允许在任何给定时间点在主机集合上加载可能模型的适当子集的实施方案,以及将模型映射到主机的路由方案,从而允许例如提供商网络通过存储所有模型或导致延迟以不断地加载进出需要的模型来支持需要的模型,而不会无效率地利用资源。在一些实施方案中,所确定的主机组中的每个主机根据最不常用的缓存模型来在磁盘中缓存加载到随机存取存储器中的第一多个机器学习模型并且缓存第二不同多个机器学习模型,从而允许更常使用的模型更容易获得。
在一些实施方案中,一个或多个自动缩放主机组提供动态计算实例,所述动态计算实例容纳比不使用的模型更可能使用的模型(因此,减少了存储器占用、节省了能量等)。通常,每个主机映射到至少一个虚拟节点,并且机器学习模型的标识符被散列到虚拟节点中的至少一个,以便可以在物理装置间散布模型。在一些情况下,要路由到哪个主机是随机确定的并且随机确定的主机的位置决定要将话语路由到的主机组。这种随机性有助于确保不会使任一个主机负担过重。
根据需要,自动缩放组可以添加主机和/或可以启动附加自动缩放组(以解决流量增加等)。在一些实施方案中,随着主机的添加或附加组的启动,它们被预热以包括更可能需要的模型。
图1示出了涉及用户与机器人对话的机器人用法的实施方案。在该示例中,机器人101用于摄入用户输入(诸如话语)并提供对输入的响应(以斜体显示)。在该示例中,机器人101的意图103是预订酒店。意图响应于自然语言输入而执行动作。
用户以口语或打字短语的形式提供调用意图103的话语105。槽107是履行意图所需的输入数据。最后,机器人101提供履行的指示。在该示例中,本文详细描述了定向到执行如“我想预订酒店”和“纽约”的话语的NLU的实施方案。
图2示出了用于执行包括推理的NLU操作的系统的实施方案。如图所示,在一些实施方案中,提供商网络211为用户提供利用各种类型的计算相关资源中的一种或多种的能力,所述各种类型的计算相关资源诸如至少针对NLU的计算资源(例如,执行虚拟机(VM)实例和/或容器、执行批作业、执行代码而无需配置服务器)、数据/存储资源(例如,对象存储、块级存储、数据档案存储、数据库和数据库表等)、网络相关资源(例如,配置包括计算资源组的虚拟网络、内容分发网络(CDN)、域名服务(DNS))、应用资源(例如,数据库、应用构建/部署服务)、访问策略或角色、身份策略或角色、机器图像、路由器和其他数据处理资源等。这些和其他计算资源可以作为服务提供,诸如可以执行计算实例的硬件虚拟化服务、可以存储数据对象的存储服务等。提供商网络211的用户(可以是或可以不是与服务提供商具有特定财务关系的客户)可以利用与客户账户相关联的一个或多个用户账户,但是这些术语可以取决于使用的上下文在某种程度上可互换地使用。用户装置201可以经由一个或多个接口209在一个或多个中间网络203(例如,互联网)上与提供商网络211交互,诸如通过使用应用编程接口(API)调用、经由被实现为网站或应用的控制台等。一个或多个接口209可以是提供商网络211的控制平面的一部分,或者用作其前端,所述控制平面包括支持和启用可能会更直接地提供给客户的服务的“后端”服务。应注意,在一些实施方案中,不利用提供商网络211来托管ML服务207;而是使用另一个计算机系统来托管ML服务207。
为了提供这些和其他计算资源服务,提供商网络100通常依赖于虚拟化技术。例如,虚拟化技术可用于为用户提供控制或利用计算实例的能力(例如,使用来宾操作系统(O/S)的VM,所述来宾操作系统使用管理程序操作,所述管理程序可能会或可能不会进一步在底层主机O/S之上操作;可以在或可以不在VM中操作的容器;可以在没有底层管理程序的情况下在“裸机”硬件上执行的实例),其中可以使用单个电子装置实现一个或多个计算实例。因此,用户可以直接利用提供商网络托管的计算实例来执行各种计算任务,或者可以通过提交要由提供商网络执行的代码来间接利用计算实例,所述提供商网络又利用计算实例来执行代码(通常无需用户对所涉及的一个或多个底层计算实例进行任何控制或具有任何了解)。
在该图示中,提供商网络211提供ML服务,所述ML服务包括但不限于NLU服务,诸如支持应用205的对话语的推理。如图所示,在圆圈1和2处,用户装置经由中间网络203和接口209与提供商网络211通信。特别地,用户装置与将要利用所托管的ML服务207的应用205(诸如机器人)进行通信。应注意,这是示例性的,并且并非在所有情况下都利用该应用205。通信的示例是“话语”,并且在本说明书的其余部分中将使用该示例。
应用205在圆圈3处发话并向所托管的ML服务207发出请求。所托管的ML服务207在物理和/或虚拟主机的共享机群上托管用于不同实体的机器学习(ML)模型。用于ML模型的计算能力可以随机器人的吞吐量按比例缩放,并允许机群随ML模型的总存储器消耗按比例缩放。所托管的ML模型可以是自定义的(由客户提供)或由服务提供。所托管ML服务207可以包括例如推理部件,所述推理部件将使用其从所托管的ML模型存储装置209获取的ML模型执行推理操作(诸如对话语执行)。
操作的结果在圆圈4处返回到应用205,并且然后根据需要在圆圈5和6中转发回到用户装置。
图3示出了用于在提供商网络以及应用和ML服务订阅实体中处理ML推理的系统的实施方案。特别地,示出了ML服务207的实施方案。
ML服务订阅实体317向ML服务207提供机器人定义和/或建模工件(ML模型)。应用205与所提供的一个或多个机器人和/或建模工件(模型、训练数据等)对接。
推理部件307服务于由应用205(诸如经由机器人)提供的执行推理(诸如从话语中提取信息(诸如域、意图和/或槽标签))的请求,并以开发者可消耗的方式(诸如槽解析)构造所提取的信息。在一些实施方案中,推理部件307执行以下各项中的一项或多项:预处理文本,加载必要的工件,调用用于机器学习任务(诸如意图分类和槽贴标签)的算法,对输出进行后处理,和/或合并对话帧。
在一些实施方案中,推理部件307使用一致的散列路由将推理请求路由到作为自动缩放主机组的特定推理服务组(ISG)。在后面将更详细地讨论推理服务组。此外,在一些实施方案中,推理部件307的负载均衡器使用目标组和收听器规则以及基于路径的路由来将请求路由到推理服务组。每个ISG都托管模型集合,并基于ISG中托管的模型的吞吐量按比例放大。随后的附图和对应讨论中详细描述了推理部件307的一些实施方案的详细信息。
模型工件存储装置(MASS)313是可用且可缩放数据存储区,所述数据存储区存留要由推理部件307使用的模型工件。在一些实施方案中,针对读取访问优化了MASS 313(服务于来自高速缓存的大部分读取流量)。在一些实施方案中,ML模型存储装置209至少包括MASS 313。
在一些实施方案中,ML服务207包括建模部件309,所述建模部件生产要用于推理的项目。由此,建模部件309服务于创建和管理所有建模工件的请求。为NLU推理生产的项目的示例包括但不限于:词嵌入模型、内置工件(诸如目录和语法)以及机器人。
在一些实施方案中,数据中枢311将与推理结果和/或请求有关的数据存储并提供到一个或多个实体,诸如ML服务订阅实体317、注释应用301和实验中枢303。推理结果可以包括包括由推理部件307提供的调试信息。数据中枢311允许查询推理结果和注释。数据中枢311导出推理结果数据和或分析。
在一些实施方案中,实验中枢303向安全环境提供工具以访问(来自数据中枢311的)话语数据并用它们执行实验。经由建模部件309将使用实验中枢303生产的工件发布到MASS 313。哪些数据可以进出该系统将受到严格的限制。
在一些实施方案中,注释应用301是用于注释由数据中枢311提供的数据的工具的集合。
图4示出了诸如推理部件307之类的推理部件的实施方案。推理部件包括一个或多个推理服务主机411-417,所述推理服务主机是一个或多个ISG 421和423的一部分。如图所示,每个ISG 421和423是服务于同一模型集的推理服务主机的集合。使用可以基于ISG 421或423中托管的模型的吞吐量进行按比例放大或缩小的缩放组来实现ISG 421或423。
ISG 421或423的推理服务主机411-417托管对所接收的话语执行推理操作并使此类推理的结果可用的干扰服务。在一些实施方案中,推理服务是容器化微服务的集合,所述容器化微服务的集合托管在同一主机上并且协同工作以用像意图分类、槽贴标签、多轮对话支持、上下文感知等任务生成NLU解释。
ISG数据库407包括模型到ISG映射的列表。在一些实施方案中,ISG数据库407包括推理工作者主机及其健康状态的列表。在一些实施方案中,工作者主机数据库407还存储关于加载了或在溢出模型高速缓存中加载了哪些模型的指示。在服务启动时间,ISG数据库407被进行轮询以检索列表,并用于用适当的模型等更新高速缓存404。在执行期间,在一些实施方案中,以某个间隔对该ISG数据库407进行轮询获得列表以帮助确定如何加载附加主机、添加新的ISG等。
推理部件运行时401的路由器403从客户端接收要处理的推理请求数据(诸如话语),并使用一致的散列方案以经由负载均衡器405将话语路由到ISG 421或423。在一些实施方案中,路由器403是负责确定哪个ISG要接收推理请求的虚拟路由器。在一些实施方案中,负载均衡器405包括关于图12详细描述的健康检查机制。
图5示出了单个主机上的推理服务的实施方案。推理服务500的入口点是推理编排服务501。推理编排器服务501从文本生成解释。在一些实施方案中,推理编排器服务501包括多个软件模块,以执行工件/捆绑管理、预处理、识别、解析(槽解析)、上下文管理(例如,对话行为支持、上下文结转)、与数据中枢311连接以提供推理的结果以及与MASS 313连接以将ML模型带到磁盘511或高速缓存505/509中或将模型移出到MASS 313。
推理编排器服务501耦合到一个或多个推理工作者服务503和507。每个推理工作者服务503或507使用基于模型的推理来执行实际的推理作业。此类模型的示例包括但不限于:DiSAN(DNN)、CRF(统计)和/或FST(确定性)。应注意,推理编排器服务501以及一个或多个推理工作者服务503和507是在硬件上执行的软件部件。
如上所述,让任何给定的推理工作者服务503或507加载所有已知模型通常是不实际的。而是,将适当的模型子集加载到“模型高速缓存”505或509中,诸如物理主机上的随机存取存储器(RAM)。在一些实施方案中,维护存在于存储器中的模型列表。
另一个“高速缓存”位于RAM外部,诸如在物理主机中的磁盘上。这是“溢出”模型高速缓存511。该溢出高速缓存511提供了另一种方式来潜在地保存来自MASS的模型的加载。此外,模型在服务器关闭时被写入溢出模型高速缓存511,并且在服务启动时被从磁盘中读取并加载到已加载的模型高速缓存505和509中。
当模型推理请求出现时,由于已加载的模型高速缓存505或509或溢出模型高速缓存511中都没有对应的模型,调用MASS来获取模型,从高速缓存中移出最不常用的模型,并加载所获取的模型以进行执行并用于生成推理。
图6示出了用于配置ISG的方法的示例性实施方案。在一些实施方案中,所述方法的各方面由推理部件307执行。在一些实施方案中,所述方法的各方面由前端(诸如接口209)执行。
在601处,响应于用户请求将ISG创建为自动缩放组(ASG)。AST包含计算实例集合,所述计算实例集合共享相似特性并且出于实例缩放和管理目的被视为一个逻辑分组。用户创建ASG的请求可以以使用启动模板、启动配置、向导、使用实例等形式出现。例如,用户通过提供商网络的web接口提供针对ISG的ASG的配置信息(诸如组名、组大小(组的初始实例数量)等),并且提供商网络的前端然后使用配置信息配置ISG。
在603处将主机添加到所创建的ISG。例如,用户通过提供商网络的web接口提供有关要将哪些主机添加到ISG的信息(诸如主机的标识符),并且提供商网络的前端然后将ISG配置为包括一个或多个主机。
在605处创建目标组以用于路由到所创建的ISG。目标组用于基于收听器规则将请求路由到一个或多个已注册目标。收听器规则定义负载均衡器405如何将请求路由到一个或多个目标组中的目标。在一些实施方案中,每个收听器规则由以下各项中的一项或多项组成:优先级(评估集合内规则的顺序)、动作(类型(诸如认证、响应、转发、重定向等)、顺序和执行动作所需的信息)、主机条件(基于主机名将请求转发到不同目标组的规则)和路径条件(基于请求的路径将请求转发到不同目标组的规则)。当满足规则条件时,将流量转发到对应目标组。
在607处将一个或多个收听器规则放入负载均衡器405,以用于用基于路径的路由将请求路由到以上目标组。例如,像‘7ISG1/*'->target-group1”的收听器规则将使像“inference-worker.awsamazon.com/ISG1/infer”的请求路由到ISG1。
最后,在609处更新路由器403以开始路由到新创建的推理服务组。在一些实现方式中,此更新称为发现。本质上,路由器403需要知道其支持的推理服务组的列表,以既使用一致的基于散列的路由又构建用于路由的URL。在一些实施方案中,为了更新列表,将条目手动输入到白名单配置中,但是这将不需要部署来传播改变。
图7示出了利用ML服务进行推理的方法的示例性实施方案。在700处,在一些实施方案中配置和启动ML推理部件307。例如,配置一个或多个ISG,将模型加载到主机中等。关于图6描述将ISG配置为ASG的示例。在一些实施方案中,基于最不常用(LFU)缓存策略从MASS 313或磁盘511加载模型。如果可用,则从磁盘511加载模型。
在一些实施方案中,利用起来并运行的推理部件307,在701处接收并加载“新”模型。在一些实施方案中,通过向主机提交“虚拟”请求来加载新模型,所述主机不包括要在推理中使用的数据(诸如话语)。缺少要进行操作的任何内容导致主机将新模型从MASS 313加载到其高速缓存中。由此,当“真实”请求中包含要在推理中使用的数据(诸如话语)时,将加载新模型并准备使用。应注意,取决于使用情况,新模型可能会强制将较少使用的模型转储清除到磁盘或全部从主机中一起移除。
在某个时间点,在703处接收使用特定托管的ML模型对要在推理中使用的数据(诸如话语)执行推理的请求。例如,在推理部件307的路由器403处接收由用户提供给机器人的话语。
在705处将请求数据(诸如话语)路由到适当的ML模型。关于图8详细描述了示例性路由方法的实施方案。
适当的ML模型在707处对所路由的数据(诸如话语)执行推理,并在709处提供推理的结果。例如,执行FST,并将结果提供回请求的机器人。
在一些实施方案中,在711处存储推理的结果和/或要在推理中使用的数据(诸如话语),诸如先前详细描述的。
图8示出了用于路由话语推理请求的方法的示例性实施方案。在801处,路由器403使用一致的散列来确定模型的ISG(特定的主机集合)以服务于推理请求。为了一致的散列,每个主机(诸如主机411-417)都映射到“A”个虚拟节点,并且在总共有“N”个主机的情况下,将有A x N数量的虚拟节点。这些虚拟节点被散列。当接收到针对模型的推理请求时,将模型标识符散列到属于不同计算区域的相同子空间和虚拟节点。每个计算区域通常在不同的物理位置,但是并非在所有实现方式中都是如此。推理请求被随机路由到这些主机之一,并且该随机主机的位置决定了ISG。哪些主机有哪些模型可以通过查询高速缓存404和/或ISG数据库407找到。
在803处基于所确定的ISG生成URL(路径)。例如,生成URL“inference-worker.aws.amazon.com/ISG1/infer”以使用ISG1。
然后在805处将请求和URL发送到负载均衡器405,以用于路由到适当的ISG。负载均衡器405使用收听器规则来映射到目标组的ISG。例如,负载均衡器405将路径7ISG1/*'映射到目标组。
在807处负载均衡器405根据映射来路由请求。
图9示出了用于ISG管理的方法的示例性实施方案。这与路由请求、执行推理等并行地执行。在一些实施方案中,这由路由器403执行。在901处路由器403维护在给定时间段内每个主机的活动模型列表。例如,路由器403用加载了哪些模型或在溢出模型高速缓存中更新ISG数据库407。
在903处路由器403确定关于在所述时间段内主机的高速缓存未命中率的主机的第一度量。该未命中率由主机无法服务的请求数确定,因为在维护活动模型列表的时间段内未加载所请求的模型。在一些实施方案中,这是系统失效度量。
在905处路由器403确定关于在所述时间段内所请求的独特模型数量的主机的第二度量。该度量是通过计算独特模型请求的数量来确定的。
在907处确定度量中的任一个是否超过阈值。示例性阈值可以包括但不限于:高速缓存未命中率超过10%或所请求的独特模型数量大于5。当两个度量均符合(例如,未超过)时,在901处将要跟踪的模型列表重置为与随后的时间段一致(应注意,可能已经加载了新模型,将模型发送到磁盘等,转到第一时间段),并在901处维护新列表。
当任一个或两个度量不符合时,在909处添加一个或多个新的ISG主
机和/或生成添加新ISG的指示。在一些实施方案中,所述指示被发送到管理和监测服务以转发给管理员或其他用户和/或开始自动添加新ISG的过程。如关于图11所详细描述的,添加了新的主机。图6中详细描述了添加ISG。
图10示出了用于预热新的ISG的方法的示例性实施方案。添加到一致的散列方案的ISG应该在使用前“预热”。这种预热包括工件(模型、训练数据等)的加载。在一些实施方案中,所述方法的实施方案由路由器403在确定应当添加新的ISG时执行。
在1001处,路由器403接收要用于新组的候选节点集合以及所有ISG中托管的所有模型的集合。可以在ISG数据库407中找到模型集合。在一些实施方案中,候选节点集合被提供作为ISG生成的一部分。
在1003处路由器403确定要放入新ISG中的模型。路由器403可以基于一个或多个因素来做出此确定。例如,路由器403可以考虑定向到特定主机的流量(并且因此从流量角度来看,哪些模型最有影响力,并且可最好在几个主机上使用)、特定主机中可用于存储模型的存储器量(由于一些模型比其他模型大,因此每个主机就其可加载哪些模型而言都是受存储器束缚的)、模型从高速缓存到磁盘的系统失效等。在一些实施方案中,路由器403还将移动模型以使ISG“重新平衡”。例如,将大模型从第一ISG移动到第二ISG将移除定向到第一ISG的流量。
在1005处将要加载的模型加载到新的ISG中。
图11示出了用于增加主机数量并将模型加载到新主机中的方法的示例性实施方案。在一些实施方案中,所述方法的实施方案由负载均衡器405在确定应该将另一个节点或多个节点添加到ISG时执行。
在1101处针对每个主机已缓存(本地或在磁盘上加载)的模型列表以及这些模型的利用率统计信息将请求发送到ISG,所述ISG服务于路由器403处理的请求。
在1103处负载均衡器405接收已加载的模型列表和利用率统计信息。
在1105处负载均衡器405然后使用列表和统计信息来确定要加载哪些模型,并从MASS 313获取这些模型。在一些实施方案中,不获取具有低使用率的模型。在其他实施方案中,根据使用水平来获取模型,其中首先加载更频繁使用的模型。
图12示出了用于使用主机的健康信息的方法的示例性实施方案。这与路由请求、执行推理等并行地执行。在一些实施方案中,健康检查器402在负载均衡器405实例中运行,所述实例与负载均衡器405协同工作以使主机重新平衡。
在1201处,健康检查器402请求推理工作者主机的列表。该列表可能来自工作者主机数据库407或者是从各个ISG 421和423收集的,取决于实现方式。
健康检查器402在1203处接收该列表,并且然后在1205处相对于负载均衡器405查询每个推理工作者主机的健康信息并接收响应。健康信息可以包括L7信息,诸如用于与主机连接的ping协议、用于连接到端口的端口(诸如该端口上有超时?)、ping路径(在设置的超时时段内是否有响应)等。
在1207处,使用接收到的健康信息来确定哪些主机不健康(如果有的话)。不健康的主机是那些满足已定义策略(诸如超时或响应时间过长)的主机。
在1209处将更新的健康状态信息存储在工作者主机数据库407中。
在一些实施方案中,针对负载均衡器405的健康检查设置是以每个目标组为基础。每个目标组都使用默认的健康检查设置,除非它们在创建或修改目标组时被超弛。在1211处负载均衡器405监测向目标组注册的所有目标的健康状态信息并将请求路由到健康的已注册目标。
图13示出了根据一些实施方案的示例性提供商网络(或“服务提供商系统”)环境。提供商网络1300可以经由一个或多个虚拟化服务1310向客户提供资源虚拟化,所述虚拟化服务允许客户购买、租赁或以其他方式获得虚拟化资源的实例1312,包括但不限于在一个或多个数据中心中的一个或多个提供商网络内的装置上实现的计算和存储资源。本地互联网协议(IP)地址1316可与资源实例1312相关联;本地IP地址是提供商网络1300上的资源实例1312的内部网络地址。在一些实施方案中,提供商网络1300还可提供客户可从提供商1300获得的公共IP地址1314和/或公共IP地址范围(例如,互联网协议版本4(IPv4)或互联网协议版本6(IPv6)地址)。
常规上,提供商网络1300经由虚拟化服务1310可以允许服务提供商的客户(例如,操作包括一个或多个客户装置1352的一个或多个客户端网络1350A-1350C的客户)将至少一些分配或分派给客户的公共IP地址1314与分配给客户的特定资源实例1312动态地关联。提供商网络1300还可允许客户将先前映射到分配给客户的一个虚拟化计算资源实例1312的公共IP地址1314重新映射到也分配给客户的另一虚拟化计算资源实例1312。使用服务提供商提供的虚拟化计算资源实例1312和公共IP地址1314,服务提供商的客户(诸如,一个或多个客户网络1350A-1350C的操作者)可以例如实现客户特定的应用并在中间网络1340(诸如,互联网)上呈现客户的应用。中间网络1340上的其他网络实体1320然后可生成到由一个或多个客户网络1350A-1350C发布的目的地公共IP地址1314的流量;流量被路由到服务提供商数据中心,并且在数据中心处经由网络底层路由到当前映射到目的地公共IP地址1314的虚拟化计算资源实例1312的本地IP地址1316。类似地,来自虚拟化计算资源实例1312的响应流量可经由网络底层路由回到中间网络1340上到达源实体1320。
如本文所使用的,本地IP地址是指例如提供商网络中的资源实例的内部或“专用”网络地址。本地IP地址可以在互联网工程任务组(IETF)的征求意见稿(RFC)1918保留的地址块之内和/或呈IETF RFC 4193指定的地址格式,并且在提供商网络内可以是可变的。源自提供商网络外部的网络流量不会被直接路由到本地IP地址;相反,流量使用映射到资源实例的本地IP地址的公共IP地址。提供商网络可以包括提供网络地址转换(NAT)或类似功能性以执行从公共IP地址到本地IP地址(且反之亦然)的映射的联网装置或设备。
公共IP地址是互联网可变网络地址,其由服务提供商或客户分配给资源实例。例如经由1:1NAT对路由到公共IP地址的流量进行转换,并将其转发到资源实例的相应本地IP地址。
提供商网络基础设施可能会将一些公共IP地址分配给特定的资源实例;这些公共IP地址可以称为标准公共IP地址,或简称为标准IP地址。在一些实施方案中,标准IP地址到资源实例的本地IP地址的映射是所有资源实例类型的默认启动配置。
至少一些公共IP地址可以被分配给提供商网络1300的客户或由其获得;然后,客户可以将其分配的公共IP地址分配给分配给客户的特定资源实例。这些公共IP地址可以称为客户公共IP地址,或简称为客户IP地址。代替在标准IP地址的情况下由提供商网络1300分配给资源实例,客户IP地址可以由客户(例如,经由服务提供商提供的API)分配给资源实例。与标准IP地址不同,客户IP地址被分配给客户帐户,并且可以由相应客户根据需要或期望重新映射到其他资源实例。客户IP地址与客户的帐户(而不是特定资源实例)相关联,并且客户控制该IP地址,直到客户选择将其释放为止。与常规静态IP地址不同,客户IP地址允许客户通过将客户的公共IP地址重新映射到与客户帐户相关联的任何资源实例来掩盖资源实例或可用性区域故障。例如,客户IP地址使客户能够通过将客户IP地址重新映射到替换资源实例来解决客户的资源实例或软件的问题。
图14示出了根据一些实施方案的使用IP隧道技术在网络底层上实现覆盖网络的示例性数据中心。提供商数据中心1400可包括网络底层,所述网络底层包括诸如路由器、交换机、网络地址转换器(NAT)等联网节点1412,所述联网节点可被实现为软件、硬件或它们的组合。一些实施方案可采用互联网协议(IP)隧道技术来提供覆盖网络,经由所述覆盖网络,可使用隧道将封装的分组传递通过网络底层1410。IP隧道技术可提供用于在网络(例如,图14的数据中心1400中的本地网络)上创建覆盖网络的映射和封装系统,并且可针对覆盖层(公共IP地址)和网络底层1410层(本地IP地址)提供独立的命名空间。可对照映射目录(例如,由映射服务1430提供)来检查覆盖层中的分组,以确定它们的隧道底层目标(本地IP地址)应该是什么。IP隧道技术提供了虚拟网络拓扑(覆盖网络);呈现给客户的接口(例如,服务API)附接到覆盖网络,使得当客户提供客户希望向其发送分组的IP地址时,通过与知道IP覆盖地址所在地的映射服务(例如,映射服务1430)通信,所述IP地址在虚拟空间中运行。
在一些实施方案中,IP隧道技术可将IP覆盖地址(公共IP地址)映射到底层IP地址(本地IP地址),将分组封装在两个命名空间之间的隧道中,并且经由隧道将分组递送到正确的端点,在所述端点处从分组剥离封装。在图14中,示出了从主机1420A上的虚拟机(VM)1424A(即VM 1424A1-VM 1424A4,经由VMM 1422A)到中间网络1450上的装置的示例性覆盖网络隧道1434A以及主机1420A上的VM 1424A(即VM 1424A1-VM 1424A4,经由VMM 1422A)与主机1420B上的VM 1424B(即VM 1424B1-VM 1424B4,经由VMM 1422B)之间的示例性覆盖网络隧道1434B。在一些实施方案中,可在发送之前将分组封装成覆盖网络分组格式,并且可在接收之后将覆盖网络分组剥离。在其他实施方案中,可在发送之前将覆盖网络地址(公共IP地址)嵌入到分组的底层地址(本地IP地址)中,并且在接收后从分组地址剥离,而不是将分组封装在覆盖网络分组中。作为示例,可使用32位IPv4(互联网协议版本4)地址作为公共IP地址来实现覆盖网络,并且可嵌入IPv4地址作为底层网络上用作本地IP地址的128位IPv6(互联网协议版本6)地址的一部分。
参见图14,其中可实现实施方案的至少一些网络可包括硬件虚拟化技术,所述硬件虚拟化技术使得多个操作系统能够在主机计算机(例如,图14的主机1420A和1420B)上同时运行,即作为主机1420上的虚拟机(VM)1424。例如,VM 1424可在主机1420上被租借或租赁给网络提供商的客户的槽中执行。主机1420上的管理程序或虚拟机监测器(VMM)1422为主机上的VM 1424呈现虚拟平台,并监测VM 1424的执行。每个VM 1424可设置有一个或多个本地IP地址;主机1420上的VMM 1422可知晓主机上VM 1424的本地IP地址。映射服务1430可知晓(例如,经由存储的映射信息1432)服务于本地网络上的IP地址的路由器或其他装置的网络IP前缀和IP地址。这包括服务于多个VM 1424的VMM 1422的IP地址。映射服务1430可集中在例如服务器系统上,或者替代地可分布在网络上的两个或更多个服务器系统或其他装置之间。网络可例如使用映射服务技术和IP隧道技术来例如在数据中心1400网络内的不同主机1420上的VM 1424之间路由数据分组;应注意,内部网关协议(IGP)可用于在这种本地网络内交换路由信息。
另外,诸如提供商数据中心1400网络的网络(有时被称为自主系统(AS))可使用映射服务技术、IP隧道技术和路由服务技术来将分组从VM 1424路由到互联网目的地,以及从互联网源路由到VM 1424。应注意,外部网关协议(EGP)或边界网关协议(BGP)通常用于互联网上源与目的地之间的互联网路由。图14示出了根据一些实施方案的示例性提供商数据中心1400,所述提供商数据中心实现了提供资源虚拟化技术并且经由连接到互联网转接提供商的一个或多个边缘路由器1414提供全面互联网访问的网络。提供商数据中心1400可例如向客户提供经由硬件虚拟化服务实现虚拟计算系统(VM 1424)的能力以及经由存储服务在存储资源1418A-1418N上实现虚拟化数据存储区1416的能力。
数据中心1400网络可实现IP隧道技术、映射服务技术和路由服务技术,以路由往返于虚拟化资源的流量,例如将分组从数据中心1400中的主机1420上的VM 1424路由到互联网目的地,以及从互联网源路由到VM 1424。互联网源和目的地可例如包括:连接到中间网络1440的计算系统1470;以及连接到本地网络1450的计算系统1452,所述本地网络连接到中间网络1440(例如,经由将网络1450连接到互联网转接提供商的一个或多个边缘路由器1414)。提供商数据中心1400网络还可在数据中心1400中的资源之间路由分组,例如从数据中心1400中的主机1420上的VM 1424路由到数据中心1400中的同一主机或其他主机1420上的其他VM 1424。
提供数据中心1400的服务提供商还可提供一个或多个附加数据中心1460,所述附加数据中心包括类似于数据中心1400的硬件虚拟化技术,并且还可连接到中间网络1440。分组可从数据中心1400转发到其他数据中心1460,例如从数据中心1400中的主机1420上的VM 1424转发到另一类似数据中心1460中的另一主机上的另一VM,且反之亦然。
虽然上面描述了使多个操作系统能够在主机计算机上作为主机上的虚拟机(VM)同时运行的硬件虚拟化技术,其中VM可在主机上被租借或租赁给网络提供商的客户的槽上实例化,但是硬件虚拟化技术还可用于以类似方式向网络提供商的客户提供其他计算资源(例如存储资源1418A-1418N)作为虚拟化资源。
图15是根据一些实施方案的向客户提供存储服务和硬件虚拟化服务的示例性提供商网络的框图。硬件虚拟化服务1520向客户提供多个计算资源1524(例如,VM)。例如,可将计算资源1524租借或租赁给提供商网络1500的客户(例如,实现客户网络1550的客户)。每个计算资源1524可设置有一个或多个本地IP地址。提供商网络1500可被配置为将分组从计算资源1524的本地IP地址路由到公共互联网目的地,以及从公共互联网源路由到计算资源1524的本地IP地址。
提供商网络1500可为例如经由本地网络1556耦合到中间网络1540的客户网络1550提供经由耦合到中间网络1540和提供商网络1500的硬件虚拟化服务1520实现虚拟计算系统1592的能力。在一些实施方案中,硬件虚拟化服务1520可提供一个或多个API 1502(例如,web服务接口),经由所述API,客户网络1550可例如经由控制台1594(例如,基于web的应用、独立应用、移动应用等)访问由硬件虚拟化服务1520提供的功能。在一些实施方案中,在提供商网络1500处,客户网络1550处的每个虚拟计算系统1592可对应于被租赁、租借或以其他方式提供给客户网络1550的计算资源1524。
客户可例如经由一个或多个API 1502从虚拟计算系统1592和/或另一客户装置1590(例如,经由控制台1594)的实例访问存储服务1510的功能性,以从提供商网络1500所提供的虚拟数据存储区1516的存储资源1518A-1518N(例如,文件夹或“桶”、虚拟化卷、数据库等)中访问数据以及将数据存储到所述存储资源。在一些实施方案中,可在客户网络1550处提供虚拟化数据存储网关(未示出),所述虚拟化数据存储网关可在本地缓存至少一些数据(例如,频繁访问的或关键的数据),并且可经由一个或多个通信信道与存储服务1510通信以从本地高速缓存上载新的或修改的数据,以便维护数据的主存储区(虚拟化数据存储区1516)。在一些实施方案中,用户经由虚拟计算系统1592和/或在另一个客户装置1590上可以经由充当存储虚拟化服务的存储服务1510安装和访问虚拟数据存储区1516卷,并且这些卷在用户看来可以是本地(虚拟化)存储装置1598。
虽然在图15中未示出,但还可经由一个或多个API 1502从提供商网络1500内的资源实例访问一个或多个虚拟化服务。例如,客户、设备服务提供商或其他实体可经由API1502从提供商网络1500上的相应的虚拟网络内访问虚拟化服务,以请求分配虚拟网络内或另一虚拟网络内的一个或多个资源实例。
在一些实施方案中,如本文所述实现上文详细描述的技术的一部分或全部的系统可包括通用计算机系统,所述通用计算机系统包括或被配置为访问一个或多个计算机可访问介质,诸如图16所示的计算机系统1600。在示出的实施方案中,计算机系统1600包括经由输入/输出(I/O)接口1630耦合到系统存储器1620的一个或多个处理器1610。计算机系统1600还包括耦合到I/O接口1630的网络接口1640。虽然图16将计算机系统1600示出为单个计算装置,但在各种实施方案中,计算机系统1600可包括一个计算装置或被配置为作为单个计算机系统1600一起工作的任何数量的计算装置。
在各种实施方案中,计算机系统1600可以是包括一个处理器1610的单处理器系统,或包括若干处理器1610(例如,两个、四个、八个或另一合适的数量)的多处理器系统。处理器1610可为能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1610可以是实现多种指令集体系结构(ISA)中的任何一种(诸如,x86、ARM、PowerPC、SPARC、或MIPSISA或任何其他合适的ISA)的通用或嵌入式处理器。在多处理器系统中,处理器1610中的每一个通常可以(但不一定)实现相同的ISA。
系统存储器1620可存储可由一个或多个处理器1610访问的指令和数据。在各种实施方案中,可使用任何合适的存储器技术(诸如,随机存取存储器(RAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)、非易失性/快闪型存储器或任何其他类型的存储器)来实现系统存储器1620。在示出的实施方案中,实现一个或多个期望功能的程序指令和数据(诸如上述那些方法、技术和数据)被示出为作为代码1625和数据1626存储在系统存储器1620内。
在一个实施方案中,I/O接口1630可被配置为协调装置中的处理器1610、系统存储器1620与任何外围装置(包括网络接口1640或其他外围接口)之间的I/O流量。在一些实施方案中,I/O接口1630可执行任何必要的协议、时序或其他数据变换,以将来自一个部件(例如,系统存储器1620)的数据信号转换成适合于由另一部件(例如,处理器1610)使用的格式。在一些实施方案中,I/O接口1630可以包括对通过各种类型的外围总线(例如,诸如外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变体)附接的装置的支持。在一些实施方案中,I/O接口1630的功能可以分为两个或更多个单独部件,例如诸如北桥和南桥。而且,在一些实施方案中,I/O接口1630(诸如,与系统存储器1620的接口)的功能性中的一些或全部可直接并入到处理器1610中。
网络接口1640可被配置为允许在计算机系统1600与附接到一个或多个网络1650的其他装置1660(例如,如图1中示出的其他计算机系统或装置)之间交换数据。在各种实施方案中,网络接口1640可支持经由任何合适的有线或无线通用数据网络(例如,诸如以太网网络类型)进行的通信。另外,网络接口1640可支持经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、经由存储区域网(SAN)(诸如光纤通道SAN)或经由I/O任何其他合适类型的网络和/或协议进行的通信。
在一些实施方案中,计算机系统1600包括一个或多个卸载卡1670(包括一个或多个处理器1675,并且可能包括一个或多个网络接口1640),所述一个或多个卸载卡使用I/O接口1630(例如,实现快速外围部件互连(PCI-E)标准的一个版本的总线或诸如快速路径互连(QPI)或超路径互连(UPI)的另一互连件)来连接。例如,在一些实施方案中,计算机系统1600可充当托管计算实例的主机电子装置(例如,作为硬件虚拟化服务的一部分操作),并且一个或多个卸载卡1670执行可管理在主机电子装置上执行的计算实例的虚拟化管理器。作为示例,在一些实施方案中,一个或多个卸载卡1670可执行计算实例管理操作,诸如暂停和/或取消暂停计算实例、启动和/或终止计算实例、执行存储器转移/复制操作等。在一些实施方案中,这些管理操作可由一个或多个卸载卡1670与由计算机系统1600的其他处理器1610A-1610N执行的管理程序(例如,根据管理程序的请求)协作来执行。然而,在一些实施方案中,由一个或多个卸载卡1670实现的虚拟化管理器可容纳来自其他实体(例如,来自计算实例本身)的请求,并且可不与任何单独管理程序协作(或可不服务于任何单独管理程序)。
在一些实施方案中,系统存储器1620可为被配置为存储如上文所描述的程序指令和数据的计算机可访问介质的一个实施方案。然而,在其他实施方案中,程序指令和/或数据可在不同类型的计算机可访问介质上接收、发送或存储。一般来说,计算机可访问介质可包括非暂时性存储介质或存储器介质,诸如磁性介质或光学介质,例如经由I/O接口1630耦合到计算机系统1600的磁盘或DVD/CD。非暂时性计算机可访问存储介质还可包括任何易失性或非易失性介质,诸如RAM(例如,SDRAM、双倍数据速率(DDR)SDRAM、SRAM等)、只读存储器(ROM)等,它们可作为系统存储器1620或另一种类型的存储器被包括在计算机系统1600的一些实施方案中。此外,计算机可访问介质可以包括经由通信介质(诸如网络和/或无线链路,诸如可以经由网络接口1640实现)传达的传输介质或信号,诸如电信号、电磁信号或数字信号。
图17示出了示例性计算装置1700(诸如,主机等)的通用部件集合的逻辑布置。一般来讲,计算装置1700也可称为电子装置。可使用在一个或多个电子装置(例如,客户端端站和/或服务器端站)上存储和执行的代码和数据来实现附图中示出和本文描述的技术。此类电子装置使用计算机可读介质存储和传达(在内部和/或通过网络与其他电子装置)代码和数据,所述计算机可读介质诸如非暂时性计算机可读存储介质(例如,磁盘、光盘、随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器装置、相变存储器)和暂时性计算机可读通信介质(例如,电、光、声或其他形式的传播信号,诸如载波、红外信号、数字信号)。另外,此类电子装置包括硬件,诸如:一个或多个处理器1702的集合(例如,其中处理器是微处理器、控制器、微控制器、中央处理单元、数字信号处理器、专用集成电路、现场可编程门阵列、其他电子电路、前述中的一个或多个的组合),所述一个或多个处理器的集合耦接到一个或多个其他部件,例如一个或多个非暂时性机器可读存储介质(例如,存储器1704),以存储代码(例如,指令1714)和/或数据;以及一个或多个有线或无线网络接口1708的集合,所述一个或多个有线或无线网络接口的集合允许电子装置通常跨一个或多个网络(例如,局域网(LAN)、互联网)向其他计算装置传输数据并从其他计算装置接收数据。所述处理器的集合和其他部件的耦接通常通过电子装置内的一个或多个互连件(例如,总线和可能的桥接器)进行。因此,给定电子装置的非暂时性机器可读存储介质(例如,存储器1704)通常存储用于在该电子装置的一个或多个处理器1702的集合上执行的代码(例如,指令1714)。各种实施方案的一个或多个部分可使用软件、固件和/或硬件的不同组合来实现。
计算装置1700可包括某种类型的显示元件1706,诸如触摸屏或液晶显示器(LCD),但诸如便携式媒体播放器的许多装置可经由其他装置(诸如通过音频扬声器)来传达信息,并且诸如服务器端站的其他类型的装置可根本不具有显示元件1706。如所讨论的,一些实施方案中使用的一些计算装置包括能够接收来自用户的输入的至少一个输入和/或输出部件1712。该输入部件可包括例如按钮、触摸板、触摸屏、轮、操纵杆、键盘、鼠标、小键盘或任何其他这种装置或元件,借此用户能够向所述装置输入命令。然而,在一些实施方案中,这种装置可通过视觉和/或音频命令的组合进行控制并利用传声器、相机、传感器等,使得用户能够控制装置而不必与装置进行物理接触。
如所讨论的,根据所描述的实施方案,可在各种环境中实现不同的方法。例如,图18示出了用于实现根据各种实施方案的各方面的环境1800的示例。例如,在一些实施方案中,推理请求是由web服务器(例如,web服务器1806)接收的超文本传送协议(HTTP)请求,并且用户可经由电子装置经由通过web服务器1806和应用服务器1808提供的web门户与提供商网络交互。如将了解的,尽管出于解释的目的使用了基于web的环境,但是可视情况使用不同环境来实现各种实施方案。系统包括电子客户端装置1802(还可被称为客户端装置),并且可为可操作来在适当网络1804上发送和接收请求、消息或信息并且将信息传达回装置1802的用户的任何适当装置。此类客户端装置的示例包括个人计算机(PC)、手机、手持式消息传递装置、笔记本计算机、机顶盒、个人数据助理、电子书阅读器、可穿戴电子装置(例如,眼镜、腕带、监测器)等。一个或多个网络1804可包括任何适当的网络,包括内联网、互联网、蜂窝网、局域网或任何其他这种网络或它们的组合。这种系统所使用的部件可至少部分地取决于所选择的网络和/或环境的类型。用于经由这种网络进行通信的协议和部件是熟知的,因而本文将不再详细讨论。网络上的通信可经由有线或无线连接以及它们的组合来实现。在该示例中,网络1804包括互联网,因为环境包括用于接收请求并且响应于所述请求而提供内容的web服务器1806,但对于其他网络来说可使用服务于类似目的的替代装置,如本领域普通技术人员所明白的。
所示环境包括至少一个应用服务器1808和数据存储区1810。应理解,可能存在可链接起来或以其他方式来配置的几个应用服务器、层或其他元件、过程或部件,它们能够交互以执行诸如从适当数据存储区获得数据的任务。如本文所用,术语“数据存储区”是指能够存储、访问和检索数据的任何装置或装置组合,所述装置或装置组合可包括在任何标准、分布式或集群式环境中的数据服务器、数据库、数据存储装置和数据存储介质的任何组合和任何数量。应用服务器1808可包括任何适当的硬件和软件,所述硬件和软件用于视需要与数据存储区1810集成以执行客户端装置1802的一个或多个应用的各方面,并且用于处置应用的大部分数据访问和业务逻辑。应用服务器1808与数据存储区1810协作提供访问控制服务,并且能够生成将要传送给客户端装置1802的诸如文本、图形、音频、视频等内容,在该示例中,所述内容可以超文本标记语言(HTML)、可扩展标记语言(XML)、JavaScript对象表示法(JSON)或另一种适当的非结构化或结构化语言的形式由web服务器向用户提供。对所有请求和响应的处置以及客户端装置1802与应用服务器1808之间的内容递送可由web服务器1806来处置。应理解,web服务器1806和应用服务器1808不是必要的,而仅是示例性部件,因为本文所讨论的结构化代码可在如本文其他地方所讨论的任何适当装置或主机上执行。
数据存储区1810可包括几个单独的数据表、数据库或其他数据存储机制和介质,以用于存储与特定方面相关的数据。例如,示出的数据存储区包括用于存储生产数据1812和用户信息1816的机制,所述机制能够被用来为生产侧提供内容。数据存储区1810还被示出为包括用于存储日志或会话数据1814的机制。应理解,可能存在可需要存储在数据存储区中的许多其他方面,诸如页面图像信息和访问权信息,所述方面可视情况存储在上文列出的机制中的任一个中或存储在数据存储区1810中的附加机制中。数据存储区1810可通过与其相关联的逻辑来操作,以从应用服务器1808接收指令,并且响应于所述指令而获得、更新或以其他方式处理数据。在一个示例中,用户可针对某种类型的项目提交搜索请求。在这种情况下,数据存储区1810可访问用户信息1816以验证用户的身份,并且可访问生产数据1812以获得关于该类型的项目的信息。然后,可将信息在用户能够经由用户装置1802上的浏览器来查看的网页上诸如以结果列表的形式返回给用户。可在浏览器的专用页面或窗口中查看有关感兴趣的特定项目的信息。
web服务器1806、应用服务器1808和/或数据存储区1810可由一个或多个电子装置1820实现,所述一个或多个电子装置也可称为电子服务器装置或服务器端站,并且可位于或可不位于不同的地理位置。一个或多个电子装置1820中的每一个可包括提供用于该装置的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读介质,所述指令当由装置的处理器执行时,允许所述装置执行其预期的功能。用于装置的操作系统和一般功能的合适实现方式是已知的或可购得的,并且本领域的普通技术人员特别是根据本文的公开内容可容易地实现这些实现方式。
在一个实施方案中,环境是分布式计算环境,其利用经由通信链路、使用一个或多个计算机网络或直接连接来互连的若干计算机系统和部件。然而,本领域普通技术人员应理解,这种系统可在具有比图18所示的部件更少或更多数量的部件的系统中同样良好地操作。因此,图18中的环境1800的描绘本质上应视为说明性的,并且不限制本公开的范围。
本文所讨论或提出的各种实施方案可在多种多样的操作环境中实现,在一些情况下,所述操作环境可包括能够被用来操作若干应用中的任一个的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可包括:若干通用个人计算机中的任一个,诸如运行标准操作系统的台式计算机或笔记本计算机;以及运行移动软件并且能够支持若干联网协议和消息传递协议的蜂窝装置、无线装置和手持式装置。这种系统还可包括若干工作站,所述工作站运行多种可购得的操作系统和用于诸如开发和数据库管理等目的的其他已知应用中的任一个。这些装置还可包括其他电子装置,诸如虚拟终端、瘦客户端、游戏系统和/或能够经由网络通信的其他装置。
大多数实施方案利用本领域技术人员将熟悉的至少一个网络来支持使用多种可购得的协议中的任一个进行通信,所述协议诸如传输控制协议/互联网协议(TCP/IP)、文件传送协议(FTP)、通用即插即用(UPnP)、网络文件系统(NFS)、公共互联网文件系统(CIFS)、可扩展消息传递和现场协议(XMPP)、AppleTalk等。所述一个或多个网络可包括例如局域网(LAN)、广域网(WAN)、虚拟专用网(VPN)、互联网、内联网、外联网、公用电话交换网(PSTN)、红外网络、无线网络以及它们的任何组合。
在利用web服务器的实施方案中,web服务器能够运行多种服务器或中间层应用中的任一个,包括HTTP服务器、文件传送协议(FTP)服务器、公共网关接口(CGI)服务器、数据服务器、Java服务器、业务应用服务器等。所述一个或多个服务器还能够响应于来自用户装置的请求而执行程序或脚本,诸如通过执行可实现为以任何编程语言(诸如C、C#或C++)或任何脚本语言(诸如Perl、Python、PHP或TCL)以及它们的组合编写的一个或多个脚本或程序的一个或多个Web应用。所述一个或多个服务器还可包括数据库服务器,包括但不限于可从Oracle(R)、Microsoft(R)、Sybase(R)、IBM(R)等购得的数据库服务器。数据库服务器可为关系型或非关系型(例如,“NoSQL”)、分布式或非分布式等。
环境可包括如上文所讨论的多种数据存储区以及其他存储器和存储介质。这些可驻留在多种位置,诸如驻留在计算机中的一个或多个计算机本地(和/或驻留在一个或多个计算机中)的存储介质上,或驻留在跨网络位于计算机中的任一个或全部计算机远程的存储介质上。在实施方案的特定集合中,信息可驻留在本领域技术人员熟悉的存储区域网(SAN)中。类似地,用于执行属于计算机、服务器或其他网络装置的功能的任何必要的文件可视情况本地和/或远程存储。在系统包括计算机化装置的情况下,每个这种装置可包括可经由总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(CPU)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和/或至少一个输出装置(例如,显示装置、打印机或扬声器)。这种系统还可包括一个或多个存储装置,诸如硬盘驱动器、光学存储装置和固态存储装置(诸如,随机存取存储器(RAM)或只读存储器(ROM))以及可移动媒体装置、存储器卡、闪存卡等。
此类装置还可包括如上所述的计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线)、红外通信装置等)和工作存储器。计算机可读存储介质读取器可与计算机可读存储介质连接或被配置为接收计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可移动存储装置以及用于暂时和/或更持久地含有、存储、传输和检索计算机可读信息的存储介质。系统和各种装置通常还将包括位于至少一个工作存储器装置内的若干软件应用、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用或Web浏览器。应了解,替代实施方案可具有与上述实施方案不同的众多变化形式。例如,也可使用定制硬件,和/或特定元件可在硬件、软件(包括便携式软件,诸如小应用)或两者中实现。此外,可采用与诸如网络输入/输出装置的其他计算装置的连接。
用于包含代码或代码各部分的存储介质和计算机可读介质可包括本领域已知或已使用的任何适当介质,包括存储介质和通信介质,诸如但不限于以用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质,包括RAM、ROM、电可擦可编程只读存储器(EEPROM)、快闪存储器或其他存储器技术、光盘只读存储器(CD-ROM)、数字通用光盘(DVD)或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁性存储装置、或可用于存储期望的信息且可由系统装置访问的任何其他介质。基于本文所提供的公开内容和教示,本技术领域普通技术人员将了解实现各种实施方案的其他方式和/或方法。
在前面的描述中,描述了各种实施方案。出于解释的目的,阐述了具体的配置和细节,以便提供对实施方案的透彻理解。然而,对本领域的技术人员将明显的是,在没有具体细节的情况下也可实践各实施方案。此外,为了不使所描述的实施方案变得模糊,可省略或简化熟知的特征。
本文使用带括号的文本和带有虚线边界(例如,大破折号、小破折号、点破折号和点)的框来说明向一些实施方案添加附加特征的任选操作。然而,这种表示法不应视为意味着,这些是仅有的选项或任选操作,和/或在某些实施方案中,带有实线边界的框不是任选的。
在各种实施方案中,具有后缀字母的附图标记可用于指示可存在所引用实体的一个或多个实例,并且当存在多个实例时,每个实例不必同一,而是可替代地共享一些一般特征或按惯例行事。此外,除非有相反的明确说明,否则所使用的特定后缀并不意味着暗示存在特定量的实体。因此,在各种实施方案中,使用相同或不同后缀字母的两个实体可具有或可不具有相同数量的实例。
对“一个实施方案”、“实施方案”、“示例性实施方案”等的提及指示所描述的实施方案可包括特定特征、结构或特性,但是每个实施方案可能不一定包括该特定特征、结构或特性。此外,此类短语不一定是指同一实施方案。此外,当结合一个实施方案来描述特定特征、结构或特性时,应认为,无论是否明确描述,结合其他实施方案来实现此类特征、结构或特性也在本领域技术人员的知识范围内。
此外,在上述各种实施方案中,除非以其他方式明确指出,否则诸如短语“A、B或C中的至少一个”之类的析取语言旨在被理解为表示A、B或C或其任何组合(例如,A、B和/或C)。因此,析取语言不旨在且不应理解为暗示给定实施方案要求A中的至少一个、B中的至少一个或C中的至少一个每一个都存在。
可根据以下条款描述所公开的技术的至少一些实施方案:
1.一种计算机实现的方法,包括:
接收来自机器人的使用特定机器学习模型来分析话语的请求,所述话语是对所述机器人的用户输入;
用路由器确定要将所述话语路由到的主机组,所述主机组用于托管包括所述特定机器学习模型的多个机器学习模型;
确定到所确定的主机组的路径;
向负载均衡器发送所述话语和所确定的到所述特定机器学习模型的路径;
使用所述负载均衡器确定所述主机组中的特定主机以执行对所述话语的分析,所述特定主机在存储器中具有所述特定机器学习模型;
将所述话语路由到所述主机组中的所述特定主机;
使用所述特定主机分析所述话语;以及
向所述机器人提供所述分析的结果。
2.如条款1所述的计算机实现的方法,其中所述主机组是自动缩放组,所述自动缩放组基于其托管的机器学习模型的吞吐量对主机数量按比例缩放。
3.如条款1-2中任一项所述的计算机实现的方法,其中所确定的主机组中的每个主机根据最不常用的缓存模型在磁盘中缓存随机存取存储器中加载的第一多个机器学习模型并且缓存不同的第二多个机器学习模型。
4.一种计算机实现的方法,包括:
接收使用特定机器学习模型执行推理的请求;
确定要将所述请求路由到的主机组,所述主机组用于托管包括所述特定机器学习模型的多个机器学习模型;
确定到所确定的主机组的路径;
基于所确定的路径来确定所述主机组中的特定主机以执行对所述请求的分析,所述特定主机在存储器中具有所述特定机器学习模型;
将所述请求路由到所述主机组中的所述特定主机;
使用所述特定主机对所述请求执行推理;以及
向请求者提供所述推理的结果。
5.如条款4所述的计算机实现的方法,其中每个主机映射到至少一个虚拟节点,并且所述机器学习模型的标识符被散列到所述虚拟节点中的至少一个。
6.如条款5所述的计算机实现的方法,其中要路由到哪个主机是随机确定的,并且随机确定的主机的位置决定要将所述话语路由到的所述主机组。
7.如条款4-6中任一项所述的计算机实现的方法,其中所述主机组是自动缩放组,所述自动缩放组基于其托管的机器学习模型的吞吐量对主机数量按比例缩放。
8.如条款4-7中任一项所述的计算机实现的方法,其中确定要将所述请求路由到的主机组并且确定到托管所述机器学习模型的所述所确定的主机组的路径还包括:
确定所述确定的主机组过载;
生成创建新的主机组以托管所述所确定的主机组的机器学习模型的指示;以及
向监测服务提供所述指示。
9.如条款8所述的计算机实现的方法,其中确定所述所确定的主机组过载包括:
计算在一个时间段内所述所确定的主机组中的主机的高速缓存未命中率的第一度量;以及
计算在所述时间段内在所述所确定的主机组中请求的独特模型数量的第二度量,其中当所述第一度量或所述第二度量超过阈值时,所述所确定的主机组过载。
10.如条款4-9中任一项所述的计算机实现的方法,其中所述请求和所述路径根据收听器规则被路由。
11.如条款4-10中任一项所述的计算机实现的方法,其中所述所确定的主机组中的每个主机根据最不常用的缓存模型来在磁盘中缓存随机存取存储器中加载的第一多个机器学习模型并且缓存不同的第二多个机器学习模型。
12.如条款4-11中任一项所述的计算机实现的方法,还包括:
在订阅实体可访问的数据中枢中存储包括请求数据和推理结果的数据。
13.如条款4-12中任一项所述的计算机实现的方法,其中所述请求是从机器人接收的。
14.一种系统,包括:
一个或多个存储装置,用于存储要由推理服务使用的一个或多个机器学习模型;以及
推理服务,具有由第一一个或多个电子装置实现的多个主机,所述推理服务包括指令,所述指令在执行时使得:
接收使用特定机器学习模型执行推理的请求;
确定要将所述请求路由到的所述多个主机中的主机组,所述主机组用于托管包括所述特定机器学习模型的多个机器学习模型;
确定到所确定的主机组的路径;
基于所确定的路径来确定所述主机组中的特定主机以执行对所述请求的分析,所述特定主机在存储器中具有所述特定机器学习模型;
将所述请求路由到所述主机组中的所述特定主机;
使用所述特定主机对所述请求执行推理;以及
向请求者提供所述推理的结果。
15.如条款14所述的系统,其中每个主机映射到至少一个虚拟节点,并且所述机器学习模型的标识符被散列到所述虚拟节点中的至少一个。
16.如条款15所述的系统,其中要路由到哪个主机是随机确定的,并且随机确定的主机的位置决定要将话语路由到的所述主机组。
17.如条款14-16中任一项所述的系统,其中所述主机组是自动缩放组,所述自动缩放组基于其托管的机器学习模型的吞吐量对主机数量按比例缩放。
18.如条款14-17中任一项所述的系统,其中确定要将所述请求路由到的主机组并且确定到托管所述机器学习模型的所述所确定的主机组的路径还包括:
确定所述所确定的主机组过载;
生成创建新的主机组以托管所述所确定的主机组的机器学习模型的指示;
向监测服务提供所述指示。
19.如条款14-17中任一项所述的系统,其中确定所述所确定的主机组过载包括:
计算在一个时间段内所述所确定的主机组中的主机的高速缓存未命中率的第一度量;以及
计算在所述时间段内在所述所确定的主机组中请求的独特模型数量的第二度量,其中当所述第一度量或所述第二度量超过阈值时,所述偶确定的主机组过载。
20.如条款14-19中任一项所述的系统,其中所述确定的主机组中的每个主机要根据最不常用的缓存模型来在磁盘中缓存随机存取存储器中加载的第一多个机器学习模型并且缓存第二不同多个机器学习模型。
21.一种计算机实现的方法,其包括:
接收要在第一主机组中使用的候选节点集合以及在第二主机组中托管的所有机器学习模型的集合;
将所述第二主机组中托管的所述机器学习模型集合中的至少一些加载到所述第一组的随机存取存储器中;
接收使用所加载的机器学习模型之一执行推理的请求;
将所述请求路由到所述第一主机组中的主机;
使用所述第一主机组中的所述主机执行推理;以及
向外部实体提供所述推理的结果。
22.如条款21所述的计算机实现的方法,其中由于确定所述第二主机组过载而生成所述第一主机组。
23.如条款22所述的计算机实现的方法,其中确定所述第二主机组过载包括:
维持在一个时间段内所述第二主机组的主机的高速缓存未命中率,所述第二主机组中的每个主机用于缓存多个机器学习模型;
跟踪在所述时间段内在所述第二主机组中请求的独特机器学习模型数量;并且
其中当所述第一度量或所述第二度量超过阈值时,所述第二主机组过载。
24.如条款21-23中任一项所述的计算机实现的方法,其中每个主机映射到至少一个虚拟节点,并且所述机器学习模型的标识符被散列到所述虚拟节点中的至少一个。
25.如条款21-24中任一项所述的计算机实现的方法,其中要路由到哪个主机是随机确定的,并且随机确定的主机的位置决定要将所述请求路由到的所述主机组。
26.如条款21-25中任一项所述的计算机实现的方法,其中每个主机根据最不常用的缓存模型在磁盘中缓存随机存取存储器中加载的第一多个机器学习模型并且缓存不同的第二多个机器学习模型。
27.如条款26所述的计算机实现的方法,其中当先前未使用的模型被缓存到所述随机存取存储器中时,所述随机存取存储器中所述最不常用的机器学习模型被转储清除到所述磁盘。
28.一种计算机实现的方法,包括:
确定要通过将附加主机添加到主机组来使至少一个主机组增加;
向所述主机组发送针对所述主机组中的每个主机加载的机器学习模型列表的请求;
接收来自每个主机的所述加载的机器学习模型列表;
至少将加载的机器学习模型列表的适当子集加载到所述至少一组的随机存取存储器中;
接收执行推理的请求;
将所述请求路由到所述主机组中的所述附加主机;
使用所述主机组中的所述附加主机执行推理;以及
向外部实体提供所述推理的结果。
29.如条款28所述的计算机实现的方法,其中每个主机映射到至少一个虚拟节点,并且所述机器学习模型的标识符被散列到所述虚拟节点中的至少一个。
30.如条款28-29中任一项所述的计算机实现的方法,其中所述请求基于随机确定被路由到所述附加主机。
31.如条款28-30中任一项所述的计算机实现的方法,其中每个主机根据最不常用的缓存模型在磁盘中缓存随机存取存储器中加载的第一多个机器学习模型并且缓存不同的第二多个机器学习模型。
32.如条款31所述的计算机实现的方法,其中当先前未使用的模型被缓存到所述随机存取存储器中时,所述随机存取存储器中所述最不常用的机器学习模型被转储清除到所述磁盘。
33.如条款28-32中任一项所述的计算机实现的方法,还包括:
在订阅实体可访问的数据中枢中存储包括请求和推理结果的数据。
34.如条款28-33中任一项所述的计算机实现的方法,其中所述请求是从机器人接收的。
35.一种系统,包括:
多个计算节点,具有被加载以用于推理操作的多个机器学习模型,所述多个计算节点在逻辑上被划分为多个主机组并由第一一个或多个电子装置实现;以及
推理服务,由第二一个或多个电子装置实现,所述推理服务包括指令,所述指令在执行时使得:
接收要在第一逻辑主机组中使用的候选计算节点集合以及在第二逻辑主机组中托管的所有机器学习模型的集合;
将所述第二主机组中托管的所述机器学习模型集合中的至少一些加载到所述第一逻辑主机组的随机存取存储器中;
接收使用所加载的机器学习模型之一执行推理的请求;
将所述请求路由到所述第一逻辑主机组中的主机;
使用所述第一逻辑主机组中的所述主机执行推理;以及
向外部实体提供所述推理的结果。
36.如条款35所述的系统,其中由于确定所述第二主机组过载而生成所述第一逻辑主机组。
37.如条款35-36中任一项所述的系统,其中确定所述第二逻辑主机组过载包括:
维持在一个时间段内所述第二逻辑主机组中的主机的高速缓存未命中率,所述第二逻辑主机组中的每个主机用于缓存多个机器学习模型;
跟踪在所述时间段内在所述第二逻辑主机组中请求的独特机器学习模型数量;并且
其中当所述第一度量或所述第二度量超过阈值时,所述第二逻辑主机组过载。
38.如条款35-37中任一项所述的系统,其中每个主机映射到至少一个虚拟节点,并且所述机器学习模型的标识符被散列到所述虚拟节点中的至少一个。
39.如条款35-38中任一项所述的系统,其中要路由到哪个主机是随机确定的,并且随机确定的主机的位置决定要将话语路由到的所述逻辑主机组。
40.如条款35-39中任一项所述的系统,其中每个主机根据最不常用的缓存模型在磁盘中缓存随机存取存储器中加载的第一多个机器学习模型并且缓存不同的第二多个机器学习模型。
因此,说明书和附图被认为是说明性的而不是限制性的含义。然而,将明显的是:在不脱离如在权利要求中阐述的本公开的更宽泛精神和范围的情况下,可对其做出各种修改和改变。
Claims (15)
1.一种计算机实现的方法,包括:
接收使用特定机器学习模型执行推理的请求;
确定要将所述请求路由到的主机组,所述主机组用于托管包括所述特定机器学习模型的多个机器学习模型;
确定到所确定的主机组的路径;
基于所确定的路径来确定所述主机组中的特定主机以执行对所述请求的分析,所述特定主机在存储器中具有所述特定机器学习模型;
将所述请求路由到所述主机组中的所述特定主机;
使用所述特定主机对所述请求执行推理;以及
向请求者提供所述推理的结果。
2.如权利要求1所述的计算机实现的方法,其中每个主机映射到至少一个虚拟节点,并且所述机器学习模型的标识符被散列到所述虚拟节点中的至少一个。
3.如权利要求2所述的计算机实现的方法,其中要路由到哪个主机是随机确定的,并且随机确定的主机的位置决定要将话语路由到的所述主机组。
4.如权利要求1-3中任一项所述的计算机实现的方法,其中所述主机组是自动缩放组,所述自动缩放组基于其托管的机器学习模型的吞吐量对主机数量按比例缩放。
5.如权利要求1-4中任一项所述的计算机实现的方法,其中确定要将所述请求路由到的主机组并且确定到托管所述机器学习模型的所述所确定的主机组的路径还包括:
确定所述所确定的主机组过载;
生成创建新的主机组以托管所述所确定的主机组的机器学习模型的指示;
向监测服务提供所述指示。
6.如权利要求5所述的计算机实现的方法,其中确定所述所确定的主机组过载包括:
计算在一个时间段内所述所确定的主机组中的主机的高速缓存未命中率的第一度量;以及
计算在所述时间段内在所述所确定的主机组中请求的独特模型数量的第二度量,其中当所述第一度量或所述第二度量超过阈值时,所述所确定的主机组过载。
7.如权利要求1-6中任一项所述的计算机实现的方法,其中所述请求和所述路径根据收听器规则被路由。
8.如权利要求1-7中任一项所述的计算机实现的方法,其中所述所确定的主机组中的每个主机根据最不常用的缓存模型在磁盘中缓存随机存取存储器中加载的第一多个机器学习模型并且缓存不同的第二多个机器学习模型。
9.如权利要求1-8中任一项所述的计算机实现的方法,还包括:
在订阅实体可访问的数据中枢中存储包括请求数据和推理结果的数据。
10.如权利要求1-8中任一项所述的计算机实现的方法,其中所述请求是从机器人接收的。
11.一种系统,包括:
一个或多个存储装置,用于存储要由推理服务使用的一个或多个机器学习模型;以及
推理服务,具有由第一一个或多个电子装置实现的多个主机,所述推理服务包括指令,所述指令在执行时使得:
接收使用特定机器学习模型执行推理的请求;
确定要将所述请求路由到的所述多个主机中的主机组,所述主机组用于托管包括所述特定机器学习模型的多个机器学习模型;
确定到所确定的主机组的路径;
基于所确定的路径来确定所述主机组中的特定主机以执行对所述请求的分析,所述特定主机在存储器中具有所述特定机器学习模型;
将所述请求路由到所述主机组中的所述特定主机;
使用所述特定主机对所述请求执行推理;以及
向请求者提供所述推理的结果。
12.如权利要求11所述的系统,其中每个主机映射到至少一个虚拟节点,并且所述机器学习模型的标识符被散列到所述虚拟节点中的至少一个。
13.如权利要求12所述的系统,其中要路由到哪个主机是随机确定的,并且随机确定的主机的位置决定要将话语路由到的所述主机组。
14.如权利要求11-13所述的系统,其中所述主机组是自动缩放组,所述自动缩放组基于其托管的机器学习模型的吞吐量对主机数量按比例缩放。
15.如权利要求11-14所述的系统,其中确定要将所述请求路由到的主机组并且确定到托管所述机器学习模型的所述所确定的主机组的路径还包括:
确定所述所确定的主机组过载;
生成创建新的主机组以托管所述所确定的主机组的机器学习模型的指示;以及
向监测服务提供所述指示。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/146,331 | 2018-09-28 | ||
US16/146,331 US11436524B2 (en) | 2018-09-28 | 2018-09-28 | Hosting machine learning models |
US16/146,295 | 2018-09-28 | ||
US16/146,295 US11562288B2 (en) | 2018-09-28 | 2018-09-28 | Pre-warming scheme to load machine learning models |
PCT/US2019/052951 WO2020068978A1 (en) | 2018-09-28 | 2019-09-25 | Hosting machine learning models |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112771518A true CN112771518A (zh) | 2021-05-07 |
CN112771518B CN112771518B (zh) | 2024-08-16 |
Family
ID=68290334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980063748.7A Active CN112771518B (zh) | 2018-09-28 | 2019-09-25 | 托管机器学习模型 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3857407B1 (zh) |
CN (1) | CN112771518B (zh) |
WO (1) | WO2020068978A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112346870B (zh) * | 2020-11-18 | 2024-04-16 | 脸萌有限公司 | 模型处理方法及系统 |
US20230138987A1 (en) * | 2021-11-04 | 2023-05-04 | International Business Machines Corporation | Efficient machine learning model inference |
WO2023169646A1 (en) * | 2022-03-07 | 2023-09-14 | Nokia Technologies Oy | Performance related management of artificial intelligence or machine learning pipelines |
US12028368B1 (en) * | 2024-02-22 | 2024-07-02 | Wiz, Inc. | System and method for detecting cybersecurity risks in managed artificial intelligence models |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105051693A (zh) * | 2013-03-15 | 2015-11-11 | 思杰系统有限公司 | 管理计算机服务器能力 |
CN105450553A (zh) * | 2014-09-24 | 2016-03-30 | 英特尔公司 | 管理控制器在数据中心环境中学习控制平面层次的机制 |
US20160379686A1 (en) * | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Server systems with hardware accelerators including stacked memory |
CN106575395A (zh) * | 2014-08-12 | 2017-04-19 | 微软技术许可有限责任公司 | 包含来自各种数据源的数据的实体解析 |
US9678773B1 (en) * | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
-
2019
- 2019-09-25 WO PCT/US2019/052951 patent/WO2020068978A1/en unknown
- 2019-09-25 EP EP19790344.6A patent/EP3857407B1/en active Active
- 2019-09-25 CN CN201980063748.7A patent/CN112771518B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105051693A (zh) * | 2013-03-15 | 2015-11-11 | 思杰系统有限公司 | 管理计算机服务器能力 |
CN106575395A (zh) * | 2014-08-12 | 2017-04-19 | 微软技术许可有限责任公司 | 包含来自各种数据源的数据的实体解析 |
CN105450553A (zh) * | 2014-09-24 | 2016-03-30 | 英特尔公司 | 管理控制器在数据中心环境中学习控制平面层次的机制 |
US9678773B1 (en) * | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US20160379686A1 (en) * | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Server systems with hardware accelerators including stacked memory |
Also Published As
Publication number | Publication date |
---|---|
EP3857407B1 (en) | 2023-04-05 |
CN112771518B (zh) | 2024-08-16 |
EP3857407A1 (en) | 2021-08-04 |
WO2020068978A1 (en) | 2020-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11704577B1 (en) | High performance machine learning inference framework for edge devices | |
CN112771518B (zh) | 托管机器学习模型 | |
US10963754B1 (en) | Prototypical network algorithms for few-shot learning | |
CN114925851B (zh) | 机器学习存储库服务 | |
US11100106B1 (en) | Query engine virtualization | |
US11436524B2 (en) | Hosting machine learning models | |
US11562288B2 (en) | Pre-warming scheme to load machine learning models | |
US11605033B2 (en) | Quantum computing task translation supporting multiple quantum computing technologies | |
CN112292668B (zh) | 基于附接的加速器的推理服务 | |
US11650869B2 (en) | Quantum computing service with local edge devices supporting multiple quantum computing technologies | |
US20200004596A1 (en) | Attached accelerator based inference service | |
US20200004597A1 (en) | Attached accelerator scaling | |
US11138374B1 (en) | Slot type authoring | |
US10949252B1 (en) | Benchmarking machine learning models via performance feedback | |
CN111712799B (zh) | 供在非边缘装置和边缘装置上执行的模型的自动分布 | |
US11467835B1 (en) | Framework integration for instance-attachable accelerator | |
US11308281B1 (en) | Slot type resolution process | |
US11960935B2 (en) | Fault-tolerant accelerator based inference service | |
US11797535B1 (en) | Use of batch mode function execution in database engines to enable efficient calls to remote services | |
US11232799B1 (en) | Speech recognition routing in a provider network | |
US20200005124A1 (en) | Attached accelerator selection and placement | |
US10824913B1 (en) | Training machine learning models for physical agents and robotic controls with simulations | |
US11423283B1 (en) | Model adaptation | |
US10567334B1 (en) | Domain mapping for privacy preservation |
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 |