CN114925851A - 机器学习存储库服务 - Google Patents

机器学习存储库服务 Download PDF

Info

Publication number
CN114925851A
CN114925851A CN202210535615.9A CN202210535615A CN114925851A CN 114925851 A CN114925851 A CN 114925851A CN 202210535615 A CN202210535615 A CN 202210535615A CN 114925851 A CN114925851 A CN 114925851A
Authority
CN
China
Prior art keywords
machine learning
published
item
items
computer
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
Application number
CN202210535615.9A
Other languages
English (en)
Other versions
CN114925851B (zh
Inventor
V·哈尔
A·J·斯莫拉
C·威利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Priority to CN202210535615.9A priority Critical patent/CN114925851B/zh
Publication of CN114925851A publication Critical patent/CN114925851A/zh
Application granted granted Critical
Publication of CN114925851B publication Critical patent/CN114925851B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Abstract

本申请公开了机器学习存储库服务。描述了用于提供和服务于诸如算法、数据、模型、流水线和/或笔记本的所列存储库项目的技术。在一些示例中,web服务提供商:接收来自请求者的对于所列存储库项目的请求,所述请求至少指示所述存储库项目的类别,并且存储库项目的每个列表包括对所列存储库项目所属的类别的指示以及所列存储库项目的存储位置;基于所述请求确定对至少一个所列存储库项目的建议;以及向所述请求者提供对所述至少一个所列存储库项目的所述建议。

Description

机器学习存储库服务
本申请是PCT国际申请号为PCT/US2019/021645、国际申请日为2019年3月11日、进入中国国家阶段的申请号为201980016827.2,题为“机器学习存储库服务”的发明专利申请的分案申请。
相关申请的交叉引用
本申请要求于2018年3月12日提交的美国非临时申请号15/919,178的权益,所述美国非临时申请特此以引用的方式并入。
背景技术
机器学习和数据分析算法可应用于很多领域,从医学图像分析到保险、财务数据(例如,欺诈检测)和社交网络(例如,图像和文本理解、曲线图分析)。随着人工智能和相关应用的进步,越来越多的用户开始使用这些系统。
附图说明
将参考附图描述根据本公开的各种实施方案,在附图中:
图1示出了支持建议和/或组合算法/模型/数据的实施方案的示例。
图2示出了发布/列出代理的部件以及它们如何与经训练的模型进行交互的实施方案。
图3示出了列表格式的实施方案。
图4示出了web服务ML模型开发者服务和web服务模型存储库服务之间的相互作用的实施方案。
图5示出了用于将代码发布到源控制服务(source control service)的方法的实施方案。
图6示出了用于将代码发布到模型/算法容器注册表的方法的实施方案。
图7示出了用于在发布/列出代理中列出生产者代码的方法的实施方案。
图8示出了用于处理查询并且执行针对查询返回的模型/算法的方法的实施方案。
图9示出了示例性流水线(训练前和训练后两者)的实施方案。
图10示出了根据一些实施方案的使用IP隧道技术在网络底层上实现覆盖网络的示例性数据中心。
图11是根据一些实施方案的向客户提供存储虚拟化服务和硬件虚拟化服务的示例性提供商网络的框图。
图12是示出了可在一些实施方案中使用的示例性计算机系统的框图。
图13示出了根据各种实施方案的可利用的示例性计算装置的一组通用部件的逻辑布置。
图14示出了用于实现根据各种实施方案的各方面的环境的示例。
具体实施方式
描述了用于机器学习内容存储库服务的方法、设备、系统和非暂时性计算机可读存储介质的各种实施方案。本文详细说明了使算法、模型、流水线、笔记本和/或数据(以下称为“内容”)的生产者能够将它们的内容提供给用户的实施方案。
令人遗憾的是,虽然对使用机器学习模型/算法的期望很高,但并非所有程序设计员和/或系统管理员都具有时间或必要的知识来产生此内容或将其集成到动作流水线中。在本文详细说明的实施方案中,产生数据、算法和/或模型的生产者经由基于注册表的系统来将它们提供给第三方。请求者搜索此注册表来查找算法、模型和/或数据,以达到他们自己的目的。在一些实施方案中,一种或多种方案用于使用经由基于注册表的系统提供的算法、模型和/或数据中的一者或多者来构建机器学习流水线。所述方案使得请求者能够构建机器流水线,而无需执行以下各项中的一者或多者:生成算法、训练算法、生成或管理用于训练的数据等。
图1示出了支持建议和/或组合算法/模型/数据的实施方案的示例。如图所示,web服务提供商119包括许多不同的服务以支持向请求者提供第三方内容。web服务提供商的每个部件(存储装置除外)都是存储在存储器中并在硬件上执行的软件。
(集成)开发环境101允许生产者生成或以其他方式提供内容(算法、数据、模型、流水线、笔记本等),以便由web服务提供商119的web服务模型存储库服务121提供。虽然在web服务提供商119的外部显示,但在一些实施方案中,(集成)开发环境101是(集成)开发环境101的服务。在一些实施方案中,向(集成)开发环境101提供解释性编程语言支持。
在一些实施方案中,经由(集成)开发环境101为生产者提供用于解释性语言诸如Ruby/Perl/R/Python的多个编程接口以开发代码,然后将所述代码输入到源控制服务107中。源控制服务117以冗余方式存储代码、二进制文件和/或元数据。源控制服务117允许与本地团队和远程团队协作,以编辑、比较、同步和/或修改所存储的代码并且跟踪这些动作。在一些实施方案中,源控制服务117托管第三方的代码存储库。源控制服务117对它存储的代码、二进制文件和/或元数据进行加密,并且在一些实施方案中,所述源控制服务耦合到权限系统或包括权限系统以指定对所存储的代码、二进制文件和/或元数据的访问。在一些实施方案中,生产者提供了几个用于验证和测试的单元测试用例(输入和输出)。在一些实施方案中,生产者使用模型/算法容器注册表105向web服务模型存储库服务121提供容器。此容器作为图像共享。在一些实施方案中,模型/算法容器注册表105为完全管理容器注册表,其允许存储、管理和部署容器图像。
web服务模型存储库服务121允许生产者与他人共享生成的内容。共享的内容可作为列表进行搜索。具体地,请求者与模型/算法/数据应用程序编程接口(API)前端109对接,以通过发布/列出代理125所服务的请求来查找并选择共享的内容。在一些实施方案中,API前端109跟踪哪些请求没有获得令人满意的结果(没有做出选择或者没有生成结果)。在一些实施方案中,不令人满意的结果被用来提示生产者提供内容。
发布/列出代理125发布所接收的代码或容器、列出容器并响应查询。以下详细说明这些动作中的每一个。已发布的算法、模型和数据被存储在算法/模型/数据存储区123中(当然,此存储装置可散布在多个物理装置上)。存储区123还可存储流水线和/或笔记本。
此外,在一些实施方案中,请求者使用发布/列出代理125来构建流水线和/或经由执行服务111使用执行资源113(硬件计算资源117和存储器115)来执行或训练所选择的模型或算法。在一些实施方案中,执行资源113使用虚拟化,如下所详细说明的。在一些实施方案中,容器图像包括一个或多个层,其中每个层表示可执行指令。可执行指令中的一些或全部一起表示定义了机器学习模型的算法。可执行指令(例如,算法)可以任何编程语言(例如,Python、Ruby、C++、Java等)进行编写。在一些实施方案中,虚拟机实例用于执行容器。在一些实施方案中,每个虚拟机实例包括操作系统(OS)、语言运行时以及一个或多个机器学习(ML)训练容器130。
每个生产者和请求者的用户帐户133存储已共享的内容和正使用的内容的信息。此外,在一些实施方案中,流水线存储在用户帐户133中。通过前端109访问用户帐户133。
在一些实施方案中,web服务模型存储库服务121作为运行一个或多个主机的一个或多个虚拟机。在一些实施方案中,使web服务模型存储库服务121负载均衡以使用更多的最佳硬件配置来处置更多或更少的流量。
安全性对于生产者和请求者两者都很重要。具体地,用户提供的数据将得到安全处理,并且算法的响应并非恶意的。由于大多数ML模型都需要访问数据、模型、库和其他算法,因此在一些实施方案中,模型或算法可使用(1)其他用户的所存储的数据/模型(存储在web服务提供商的外部或内部)(2)请求用户的仅针对请求用户存储的数据/模型(存储在web服务提供商的外部或内部)。在一些实施方案中,请求者发送的数据不被共享或泄露。无论生产者如何提供内容,对于生产者来说,在防止由于消费者的恶意意图而导致代码被盗方面,都可能存在几个安全问题。例如,考虑这样一个场景:消费者将输入文件传递给算法,所述算法创建核心转储并执行恶意代码,所述恶意代码生成状态的tar ball并将其发送回请求者。换句话说,这是对S3注入的概括。在一些实施方案中,通过使用定义明确的API、执行一致性检查和/或限制应用程序进行通信的方式,可以解决这一问题。另外,在一些实施方案中,为了防止滥用结果,在一些实施方案中,通过任务过滤输出,使得不共享与任务无关的输出(例如,输出可能与语音识别有关,但与多类无关,因此不共享)。
图1还包括内部带有数字的圆圈。这些圆圈指示可能发生的潜在动作。在圆圈1A处和圆圈1B处,生产者分别共享要发布的代码和容器。在圆圈2处,请求发布并列出代码或容器。在圆圈3A处和圆圈3B处,发布/列出代理125执行用于发布和列出的动作。
在圆圈4处,请求者请求(查询)内容。由模型/算法/数据应用程序编程接口(API)前端109接收该请求并将其转发到发布/列出代理125。在圆圈5处,发布/列出代理125检查其列表并提供结果。在一些实施方案中,访问请求者的用户帐户113以查看在硬件等方面允许请求者访问的内容。
请求者从结果中选择内容,并在圆圈6处提供该选择和/或使用该选择的代码。在一些实施方案中,交互还包括执行或训练的请求。在一些实施方案中,发布/列出代理125选择它认为最好的内容,并且仅就所述选择向请求者发出警示。在一些实施方案中,在圆圈7处访问请求者的用户帐户113,以拉出所选择的内容将成为其一部分的流水线,并且将所述选择和流水线转发到发布/列出代理125。
在一些实施方案中,在圆圈8处,API网关103接受执行服务111开始执行(例如,推理)或训练的请求。在圆圈9A处,API网关103指示执行服务111。在一些实施方案中,发布/列出代理125充当前端109与API网关103之间的中介,并在向执行服务111发出指令以执行流水线或对其部件进行训练之前,用所述选择填充所提供的流水线。执行服务111访问数据存储区123中的所选择的算法、模型和/或数据以使用所述选择的副本(实例)用于执行或训练,并且在圆圈10处开始执行。在一些实施方案中,请求者直接向执行服务111发出请求以在圆圈10处开始执行(例如,推理)或训练。此外,在一些实施方案中,执行服务111将执行度量提供回发布/列出代理125。
图2示出了发布/列出代理的部件以及它们如何与经训练的模型进行交互的实施方案。在此图示中,web服务深度学习服务201(例如,web服务机器学习模型开发者服务401)利用神经网络代码(算法)203和训练数据205来使用训练引擎207执行训练以产生模型209。例如,生产者使用此服务来训练要通过发布/列出代理125提供的模型209。应注意,发布/列出代理125的部件类似地与所提交的算法、数据、流水线等一起工作。
模型209被提供给发布/列出代理125。在一些实施方案中,模型209被提供给发布所述模型的发布服务(或引擎)213。关于图5至图6描述了发布服务(或引擎)213的动作的实施方案。
要使用的下一个服务/引擎为列出服务(或引擎)215,其生成多个列表217的可搜索列表。关于图7描述了列出服务(或引擎)215的动作的实施方案。
请求查询进入发布/列出代理125,进入查询评估服务(或引擎)219。查询可包括以下各项中的一者或多者:类别(和子类别)、数据信息(提供给请求者的内容的格式)、资源可用性(可供使用的资源,诸如处理器类型)、时序信息(诸如期望的延迟)、将使用模型/算法/数据的流水线的指示)、期望的准确性、期望的内容类型(算法、模型和/或数据)等。
查询评估服务(或引擎)219对所接收的查询进行评估以确定将建议哪个(哪些)列表。例如,查询评估服务(或引擎)219查看一个或多个列表217并将它们进行比较以确定哪个或哪些与查询匹配。
在一些实施方案中,输出以一种方案的形式包含有关输入/输出的信息。例如,用于图像分析的示例性方案如下:
输入:元组{输入数据、位置}
其中输入数据可为{文本片段、图像、视频}
其中位置(任选的)可为以下各项中的一者{边界框、文本窗口、视频帧索引}
输出:预测列表,其中每个预测都包含元组{输入数据、值、位置、置信度}
其中值可为以下各项中的一者{文本、类、值、矢量}
其中位置(任选的)可为以下各项中的一者{边界框、文本窗口、视频帧索引}
其中置信度为实数
图3示出了列表格式的实施方案。算法列表格式301包括以下各项中的一者或多者:算法的类别:子类别(多个子类别)、API定义(输入/输出格式)、所建议的训练算法的资源要求、类别:子类别(多个子类别)中的算法的相对使用以及算法的存储位置(以便可由请求者托管/使用)。
模型列表格式303包括以下各项中的一者或多者:名称、模型的类别:子类别(多个子类别)、API定义(输入/输出格式)、所建议的使用模型的资源要求、类别:子类别(多个子类别)中的模型的相对使用、模型的准确性、模型的延迟和模型的存储位置(以便可由请求者托管/使用)。
数据列表格式305包括以下各项中的一者或多者:名称、数据的类别:子类别(多个子类别)、资源要求(数据的大小)、类别:子类别(多个子类别)中的数据的相对使用以及数据的存储位置(以便可由请求者托管/使用)。
在一些实施方案中,提供了笔记本列表307,并且所述笔记本列表至少包括类别:子类别。
流水线列表格式309包括以下各项中的一者或多者:名称、模型的类别:子类别(多个子类别)、所建议的使用模型的资源要求、类别:子类别(多个子类别)中的相对使用、准确性、延迟和存储位置(以便可由请求者托管/使用)。
在一些实施方案中,格式301-309的一种或多种包括以下各项中的一者或多者:所使用的方案、生产者的指示、评论、示例、版本和使用文档。
图4示出了web服务ML模型开发者服务和web服务模型存储库服务之间的相互作用的实施方案。在一些实施方案中,web服务机器学习模型开发者服务401和web服务模型存储库服务121两者均由相同的web服务提供商提供(尽管不一定在同一物理机器上提供)。
web服务机器学习模型开发者服务401允许ML模型生产者(开发者)使用模型训练服务403来训练模型。可在web服务机器学习模型开发者服务401中为生产者托管所得的ML模型,使得生产者可在生产者认为合适的情况下利用经训练的ML模型。
如先前所讨论的,也可由web服务模型存储库服务121托管所得的ML模型。例如,可在web服务模型存储库服务121中托管415使用模型训练服务403训练的ML模型,然后可基于使用模型/算法/数据API前端109进行的搜索查询而在非开发者用户417的帐户中托管所述ML模型。来自其他来源413的模型也可用于模型托管(存储库和使用)。
图5示出了用于将代码发布到源控制服务的方法的实施方案。具体地,所述方法在web服务提供商的内部执行。在一些实施方案中,该方法由发布/列出代理125执行。在501处,由web服务提供商从生产者接收潜在代码(算法或模型)或数据贡献。
在503处,打包所接收的代码。在一些实施方案中,有很多方法可以执行此打包,但最终都会得到包,所述包为压缩文件(诸如zip、tar等),其由所接收的代码和任何依赖项组成。
在505处,测试所述包。例如,进行检查以查看zip文件(或tar等)是否正确解压、是否包含未损坏的数据等。当打包不成功时,在509处生成错误。例如,将错误日志用打包失败的原因填充。
在一些实施方案中,当打包成功时,在507处,从生产者接收使用代码或数据的要求。例如,向发布/列出代理125提供要使用的硬件配置或要遵循的加密等。
在一些实施方案中,在511处确定是否已接收到对生产者已请求的代码或数据的验证。例如,生产者是否要求web服务提供商验证所接收的代码并非恶意的?恶意代码包括向生产者报告返回使用情况的代码,包括在运行代码时使用的数据和/或运行代码的结果。被认为并非恶意的代码是可用来确定哪个代码作为请求者查询结果的一个因素。在一些实施方案中,使用调用签名,使得可以记录(并存储)参考行为以提供连续验证(使得可以拉取代码或数据)。
在一些实施方案中,生产者指定计分可花费的最大时间量。此超时在一定程度上提供了针对恶意行为的保护,并且将批次计分请求分成较小批次以符合生产者指定的超时。
在513处,当如此请求时,执行验证。在一些实施方案中,发布/列出代理125执行该验证。在其他实施方案中,发布/列出代理125调用另一服务执行验证。
在515处(在执行验证时)确定成功验证。当验证不成功时,在509处生成错误。当验证成功时,在源控制服务107和517中发布该包。发布/列出代理125可使用已发布的包作为代码或数据查询的潜在结果。
图6示出了用于将代码发布到模型/算法容器注册表105的方法的实施方案。具体地,所述方法在web服务提供商的内部执行。在一些实施方案中,该方法由发布/列出代理125执行。
在601处,由web服务提供商从生产者接收潜在容器(包含算法或模型)或数据贡献。
在一些实施方案中,在603处,从生产者接收对于使用代码或数据的要求。例如,向发布/列出代理125提供要使用的硬件配置或要遵循的加密等。
在一些实施方案中,在605处,对所接收的容器或数据进行预批准(验证)。例如,生产者是否要求web服务提供商验证所接收的代码并非恶意的?恶意代码包括向生产者报告返回使用情况的代码,包括在运行代码时使用的数据和/或运行代码的结果。被认为并非恶意的代码是可用来确定哪个代码作为请求者查询结果的一个因素。在一些实施方案中,发布/列出代理125执行该验证。在其他实施方案中,发布/列出代理125调用另一服务执行验证。在一些实施方案中,使用调用签名,使得可以记录(并存储)参考行为以提供连续验证(使得可以拉取代码或数据)。
在一些实施方案中,生产者指定计分可花费的最大时间量。此超时在一定程度上提供了针对恶意行为的保护,并且将批次计分请求分成较小批次以符合生产者指定的超时。
在607处(在执行验证时)确定成功验证。当验证不成功时,在611处生成错误。当验证成功时,在模型/算法容器注册表105中发布包。发布/列出代理125可使用已发布的容器作为代码或数据查询的潜在结果。
图7示出了用于在发布/列出代理中列出生产者代码的方法的实施方案。具体地,所述方法在web服务提供商的内部执行。在一些实施方案中,该方法的各方面由发布/列出代理125执行。
在701处,接收列出容器的请求。例如,生产者请求由发布/列出代理125列出模型/算法容器注册表105中的容器或在源控制服务107中发布的包,以供第三方使用。
在703处,确定代码的来源。代码是在模型/算法容器注册表105中还是在源控制服务107中。通常,请求701包括该位置。然而,在一些实施方案中,所述请求包括标识符,并且对这些实体进行查询以确定位置。
当代码在模型/算法容器注册表105中时,从模型/算法容器注册表105中获取所述代码的图像。当代码是存储在源控制服务107中的包的一部分时,在707处获取包并将所述包容器化。
无论来源何处,都在709处生成用于请求代码的容器的一个或多个微服务。在一些实施方案中,由生产者使用计算资源117执行微服务的创建。在其他实施方案中,由发布/列出代理125自主执行微服务创建。
在711处,利用API包装微服务。例如,创建输入/输出定义,使得可以进行API调用。
在713处,在发布/列出代理125中发布API包装的微服务。此时,对代码的查询将返回可在执行资源113上执行的API包装的微服务(并且在一些实施方案中,使用执行服务111作为中介)。
图8示出了用于处理查询并且执行针对查询返回的模型/算法的方法的实施方案。
在800处,在一些实施方案中,发布并列出存储库项目。上面已详细说明了如何进行该发布和列出的示例。
在801处,在一些实施方案中,接收对于所列存储库项目(算法/模型/数据/流水线/笔记本)建议的请求。例如,接收诸如关于图2所详述的查询。回到图1,经由模型/算法/数据API前端109接收请求并且将所述请求传递到发布/列出代理125。
在一些实施方案中,使用查询的细节,在803处确定可以满足查询期望的一个或多个所列存储库项目并将其提供给请求者。回到图1,发布/列出代理125执行该确定,然后经由模型/算法/数据API前端109向请求者提供响应。
在805处,在某个时刻接收到对于所选择的存储库项目的请求。应注意,并非所有此类请求都是查询的直接结果。当请求者已知道需要哪种算法/模型/数据时,可能不需要发送和接收查询的动作。回到图1,模型/算法/数据API前端109接收对于存储库项目的该请求。
在一些实施方案中,在807处接收将存储库项目添加到ML流水线的请求。例如,当发布/列出代理125正帮助用户构建流水线来执行任务(或多个任务)时,会出现这种类型的请求。在809处,发布/列出代理125将在流水线存在时对其进行评估并在流水线内进行必要的连接。在一些实施方案中,流水线被存储在用户帐户133中。
在611处,一旦请求者获得了它请求的算法、模型、数据、笔记本和/或流水线,便会分配资源(根据所述请求中的请求)来训练所选择的所建议的一个或多个算法、执行所选择的一个或多个模型或使用所选择的数据来训练算法。所选择的内容可能是流水线的一部分,在那些情况下,如果准备好执行流水线,则为流水线分配资源(例如,仅包含模型)。例如,由模型/算法/数据API前端109接收执行这些动作中的一个或多个的请求,所述模型/算法/数据API前端调用发布/列出代理125将必要的信息提供给执行服务111(诸如算法/模型/数据存储区123中所选择的算法、模型、数据、流水线和/或笔记本的位置),所述执行服务然后分配执行资源113,所述执行资源包括计算资源117和存储装置115。在一些实施方案中,所选择的算法或模型是容器的一部分,并且分配所述容器的副本来执行。使用副本代替原始容器,使得不会破坏原始容器和/或不会使生产者知晓如何使用该容器。
一旦已经分配了资源,则在813处使用所分配的资源根据需要训练或执行所选择的算法、模型、数据、笔记本和/或流水线(以及根据需要使用流水线)。例如,执行服务111使流水线的执行具有所选择的模型,使用(所选择的)训练数据来训练所选择的算法等。在一些实施方案中,为流水线的不同阶段分配了不同的资源。基于列表信息(诸如所建议的资源要求、延迟等)选择这些不同的资源。此外,在一些实施方案中,基于请求用户得到哪些硬件资源来选择不同的资源。
执行或培训的结果被报告回发布/列出代理125,以便发布/列出代理125可以更新列表。例如,更新列表以反映准确性、延迟、相对使用等。
图9示出了示例性流水线(训练前和训练后)的实施方案。在该示例中,虚线框指示由web服务模型存储库服务(诸如上面详述)所建议的内容。在一些实施方案中,该流水线的组织的至少某些方面已由web服务模型存储库服务进行。
训练前流水线901包括第一模型(模型1)903,所述第一模型吸收格式为X的数据并且输出格式为Y的数据。模型1 903的输出(Y)是算法2 905的输入。算法2 905是作为对web服务模型存储库服务的查询结果而找到的算法,所述web服务模型存储库服务找到了最终接受格式为Y的输入的算法。
在使用算法2 905作为ML模型之前,必须首先对其进行训练。训练数据907用于该目的并且作为查询的结果也找到了该数据907。
训练算法2 905生成的模型的输出为Z格式。如图所示,所选择的模型3 911的输入为Z’。在该示例中,训练前流水线901需要在模型2和模型3 911之间存在中间数据调节算法/模型909,所述中间数据调节算法/模型使得Z为Z’。然后,将Z’馈入模型3 911中。
训练后流水线921包括第一模型(模型1)923,所述第一模型吸收格式为X的数据并且输出格式为Y的数据。模型1 903的输出(Y)是模型2 925的输入。模型2 924的输出被馈送给中间数据调节算法/模型929,所述中间数据调节算法/模型使得Z为Z’。然后,将Z’馈入模型3 931中。
图10示出了根据一些实施方案的使用IP隧道技术在网络底层上实现覆盖网络的示例性数据中心。提供商数据中心1000可包括网络底层,所述网络底层包括诸如路由器、交换机、网络地址转换器(NAT)等联网节点1012,所述联网节点可被实现为软件、硬件或它们的组合。一些实施方案可采用互联网协议(IP)隧道技术来提供覆盖网络,经由所述覆盖网络,可使用隧道将封装的分组传递通过网络底层1010。IP隧道技术可提供用于在网络(例如,图10的数据中心1000中的本地网络)上创建覆盖网络的映射和封装系统,并且可为覆盖层(公共IP地址)和网络底层1010层(本地IP地址)提供独立的命名空间。可对照映射目录(例如,由映射服务1030提供)来检查覆盖层中的分组,以确定它们的隧道底层目标(本地IP地址)应该是什么。IP隧道技术提供了虚拟网络拓扑(覆盖网络);呈现给客户的接口(例如,服务API)附接到覆盖网络,使得当客户提供客户希望向其发送分组的IP地址时,所述IP地址通过与知道IP覆盖地址所在地的映射服务(例如,映射服务1030)通信来在虚拟空间中运行。
在一些实施方案中,IP隧道技术可将IP覆盖地址(公共IP地址)映射到底层IP地址(本地IP地址),将分组封装在两个命名空间之间的隧道中,并且经由该隧道将分组传递到正确的端点,在所述端点处从分组剥离封装。在图10中,示出了从主机1020A上的虚拟机(VM)1024A(即VM 1024A1-VM 1024A4,经由VMM 1022A)到中间网络1050上的装置的示例性覆盖网络隧道1034A以及主机1020A上的VM 1024A(即VM 1024A1-VM 1024A4,经由VMM1022A)与主机1020B上的VM 1024B(即VM 1024B1-VM 1024B4,经由VMM 1022B)之间的示例性覆盖网络隧道1034B。在一些实施方案中,可在发送之前将分组封装成覆盖网络分组格式,并且可在接收之后将覆盖网络分组剥离。在其他实施方案中,可在发送之前将覆盖网络地址(公共IP地址)嵌入到分组的底层地址(本地IP地址)中,并且在接收后从分组地址剥离,而不是将分组封装在覆盖网络分组中。举例来说,可使用32位IPv4(互联网协议版本4)地址作为公共IP地址来实现覆盖网络,并且可嵌入IPv4地址作为底层网络上用作本地IP地址的128位IPv6(互联网协议版本6)地址的一部分。
参看图10,其中可实现实施方案的至少一些网络可包括硬件虚拟化技术,所述硬件虚拟化技术使得多个操作系统能够在主机计算机(例如,图10的主机1020A和主机1020B)上同时运行,即作为主机1020上的虚拟机(VM)1024。例如,VM 1024可在主机1020上在被租借或租赁给网络提供商的客户的插槽中执行。主机1020上的管理程序或虚拟机监视器(VMM)1022为主机上的VM 1024呈现虚拟平台并监视VM 1024的执行。每个VM 1024可设置有一个或多个本地IP地址;主机1020上的VMM 1022可知晓主机上VM 1024的本地IP地址。映射服务1030可知晓(例如,经由存储的映射信息1032)服务于本地网络上的IP地址的路由器或其他装置的网络IP前缀和IP地址。这包括服务于多个VM 1024的VMM 1022的IP地址。映射服务1030可集中在例如服务器系统上,或者替代地可分布在网络上的两个或更多个服务器系统或其他装置之间。网络可例如使用映射服务技术和IP隧道技术来例如在数据中心1000网络内的不同主机1020上的VM 1024之间路由数据分组;应注意,内部网关协议(IGP)可用于在这种本地网络内交换路由信息。
另外,诸如提供商数据中心1000网络的网络(有时被称为自主系统(AS))可使用映射服务技术、IP隧道技术和路由服务技术来将分组从VM 1024路由到互联网目的地,以及从互联网源路由到VM 1024。应注意,外部网关协议(EGP)或边界网关协议(BGP)通常用于互联网上源与目的地之间的互联网路由。图10示出了根据一些实施方案的实现了提供资源虚拟化技术并且经由连接到互联网转接提供商的一个或多个边缘路由器1014提供全面互联网访问的网络的示例性提供商数据中心1000。提供商数据中心1000可例如向客户提供经由硬件虚拟化服务实现虚拟计算系统(VM 1024)的能力以及经由存储虚拟化服务在存储资源1018A-1018N上实现虚拟化数据存储区1016的能力。
数据中心1000网络可实现IP隧道技术、映射服务技术和路由服务技术,以路由往返于虚拟化资源的业务,例如将分组从数据中心1000中的主机1020上的VM 1024路由到互联网目的地,以及从互联网源路由到VM 1024。互联网源和目的地可例如包括:连接到中间网络1040的计算系统1070;以及连接到本地网络1050的计算系统1052,所述本地网络连接到中间网络1040(例如,经由将网络1050连接到互联网转接提供商的一个或多个边缘路由器1014)。提供商数据中心1000网络还可在数据中心1000中的资源之间路由分组,例如从数据中心1000中的主机1020上的VM 1024路由到数据中心1000中的同一主机或其他主机1020上的其他VM 1024。
提供数据中心1000的服务提供商还可提供一个或多个额外数据中心1060,所述额外数据中心包括类似于数据中心1000的硬件虚拟化技术,并且还可连接到中间网络1040。分组可从数据中心1000转发到其他数据中心1060,例如从数据中心1000中的主机1020上的VM 1024转发到另一类似数据中心1060中的另一主机上的另一VM,且反之亦然。
虽然上面描述了使多个操作系统能够在主机计算机上作为主机上的虚拟机(VM)同时运行的硬件虚拟化技术,其中VM可在主机上在被租借或租赁给网络提供商的客户的插槽上实例化,但是硬件虚拟化技术还可用于以类似方式向网络提供商的客户提供其他计算资源(例如,存储资源1018A-1018N)作为虚拟化资源。
图11是根据一些实施方案的向客户提供存储虚拟化服务和硬件虚拟化服务的示例性提供商网络的框图。硬件虚拟化服务1120向客户提供多个计算资源1124(例如,VM)。例如,可将计算资源1124租借或租赁给提供商网络1100的客户(例如,实现客户网络1150的客户)。每个计算资源1124可设置有一个或多个本地IP地址。提供商网络1100可被配置为将分组从计算资源1124的本地IP地址路由到公共互联网目的地,以及从公共互联网源路由到计算资源1124的本地IP地址。
提供商网络1100可为例如经由本地网络1156耦合到中间网络1140的客户网络1150提供经由耦合到中间网络1140和提供商网络1100的硬件虚拟化服务1120实现虚拟计算系统1192的能力。在一些实施方案中,硬件虚拟化服务1120可提供一个或多个API 1102(例如,web服务接口),经由所述API,客户网络1150可例如经由控制台1194(例如,基于web的应用程序、独立应用程序、移动应用程序等)访问由硬件虚拟化服务1120提供的功能。在一些实施方案中,在提供商网络1100处,客户网络1150处的每个虚拟计算系统1192可对应于被租赁、租借或以其他方式提供给客户网络1150的计算资源1124。
客户可例如经由一个或多个API 1102从虚拟计算系统1192和/或另一客户装置1190(例如,经由控制台1194)的实例访问存储虚拟化服务1110的功能,以从提供商网络1100所提供的虚拟数据存储区1116的存储资源1118A-1118N访问数据以及将数据存储到所述存储资源。在一些实施方案中,可在客户网络1150处提供虚拟化数据存储网关(未示出),所述虚拟化数据存储网关可在本地缓存至少一些数据(例如,频繁访问的或关键的数据),并且可经由一个或多个通信信道与虚拟化数据存储服务1110通信以从本地高速缓存上载新的或修改的数据,从而维护数据的主存储区(虚拟化数据存储区1116)。在一些实施方案中,用户可经由虚拟计算系统1192和/或在另一个客户装置1190上安装和访问虚拟数据存储1116卷,所述卷在用户看来是本地虚拟化存储装置1198。
虽然在图11中未示出,但还可经由一个或多个API 1102从提供商网络1100内的资源实例访问一个或多个虚拟化服务。例如,客户、设备服务提供商或其他实体可经由API1102从提供商网络1100上的相应的虚拟网络内部访问虚拟化服务,以请求分配虚拟网络内或另一虚拟网络内的一个或多个资源实例。
说明性系统
在一些实施方案中,实现本文描述的技术的一部分或全部的系统可包括通用计算机系统,所述通用计算机系统包括或被配置为访问一个或多个计算机可访问介质,诸如图12所示的计算机系统1200。在示出的实施方案中,计算机系统1200包括经由输入/输出(I/O)接口1230耦合到系统存储器1220的一个或多个处理器1210。计算机系统1200还包括耦合到I/O接口1230的网络接口1240。虽然图12将计算机系统1200示出为单个计算装置,但在各种实施方案中,计算机系统1200可包括一个计算装置或被配置为作为单个计算机系统1200一起工作的任何数量的计算装置。
在各种实施方案中,计算机系统1200可为包括一个处理器1210的单处理器系统,或包括几个处理器1210(例如,两个、四个、八个或另一合适数量)的多处理器系统。处理器1210可为能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1210可为实现多种指令集体系结构(ISA)中的任何一种(诸如,x86、ARM、PowerPC、SPARC、或MIPS ISA或任何其他合适的ISA)的通用或嵌入式处理器。在多处理器系统中,处理器1210中的每一个通常可以(但不一定)实现相同的ISA。
系统存储器1220可存储可由一个或多个处理器1210访问的指令和数据。在各种实施方案中,可使用任何合适的存储器技术(诸如,随机存取存储器(RAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)、非易失性/快闪型存储器或任何其他类型的存储器)来实现系统存储器1220。在示出的实施方案中,实现一个或多个期望功能的程序指令和数据(诸如上述用于在提供商网络环境中调整虚拟网络大小的那些方法、技术和数据)被示出为作为代码1225和数据1226存储在系统存储器1220内。
在一个实施方案中,I/O接口1230可被配置为协调装置中的处理器1210、系统存储器1220与任何外围装置(包括网络接口1240或其他外围接口)之间的I/O业务。在一些实施方案中,I/O接口1230可实行任何必要的协议、时序或其他数据变换,以将来自一个部件(例如,系统存储器1220)的数据信号转换成适合于由另一部件(例如,处理器1210)使用的格式。在一些实施方案中,例如,I/O接口1230可包括对通过各种类型的外围总线(诸如,外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变体)附接的装置的支持。在一些实施方案中,I/O接口1230的功能可分成两个或更多个单独的部件,诸如北桥和南桥。而且,在一些实施方案中,I/O接口1230(诸如与系统存储器1220的接口)的功能性中的一些或全部可直接并入到处理器1210中。
网络接口1240可被配置为允许在计算机系统1200与附接到一个或多个网络1250的其他装置1260(诸如,其他计算机系统或如图1中示出的装置)之间交换数据。在各种实施方案中,例如,网络接口1240可支持经由任何适当的有线或无线通用数据网络(诸如,其他类型的以太网网络)进行的通信。另外,网络接口1240可支持经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、经由存储局域网(SAN)(诸如光纤通道SAN)或经由I/O任何其他合适类型的网络和/或协议进行的通信。
在一些实施方案中,计算机系统1200包括一个或多个卸载卡1270(包括一个或多个处理器1275,并且可能包括一个或多个网络接口1240),所述一个或多个卸载卡使用I/O接口1230(例如,实现快速外围组件互连(PCI-E)标准的一个版本或诸如快速路径互连(QPI)或超路径互连(UPI)的另一互连的总线)来连接。例如,在一些实施方案中,计算机系统1200可充当托管计算实例的主机电子装置(例如,作为硬件虚拟化服务的一部分进行操作),并且一个或多个卸载卡1270执行可管理在主机电子装置上执行的计算实例的虚拟化管理器。作为示例,在一些实施方案中,一个或多个卸载卡1270可执行计算实例管理操作,诸如暂停和/或取消暂停计算实例、启动和/或终止计算实例、执行存储器转移/复制操作等。在一些实施方案中,这些管理操作可由一个或多个卸载卡1270与由计算机系统1200的其他处理器1210A-1210N执行的管理程序(例如,根据管理程序的请求)协作来执行。然而,在一些实施方案中,由一个或多个卸载卡1270实现的虚拟化管理器可容纳来自其他实体的请求,并且可不与任何管理程序协作(或服务于任何管理程序)。
在一些实施方案中,系统存储器1220可为被配置为存储如上文所描述的程序指令和数据的计算机可访问介质的一个实施方案。然而,在其他实施方案中,程序指令和/或数据可在不同类型的计算机可访问介质上接收、发送或存储。一般来说,计算机可访问介质可包括非暂时性存储介质或存储器介质,诸如磁性介质或光学介质,例如经由I/O接口1230耦合到计算机系统1200的磁盘或DVD/CD。非暂时性计算机可访问存储介质还可包括任何易失性或非易失性介质,诸如RAM(例如,SDRAM、双倍数据速率(DDR)SDRAM、SRAM等)、只读存储器(ROM)等,它们可作为系统存储器1220或另一种类型的存储器包括在计算机系统1200的一些实施方案中。此外,计算机可访问介质可包括经由通信介质(诸如网络和/或无线链路,诸如可经由网络接口1240实现)传达的传输介质或信号,诸如电信号、电磁信号或数字信号。
图13示出了示例性计算装置1300(诸如,web服务提供商119等)的通用部件集合的逻辑布置。一般来讲,计算装置1300也可称为电子装置。可使用在一个或多个电子装置(例如,客户端站和/或服务器端站)上存储和执行的代码和数据来实现附图中示出和本文描述的技术。此类电子装置使用计算机可读介质存储和传达(在内部和/或通过网络与其他电子装置)代码和数据,所述计算机可读介质例如非暂时性计算机可读存储介质(例如,磁盘、光盘、随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器装置、相变存储器)和暂时性计算机可读通信介质(例如,电、光、声或其他形式的传播信号,诸如载波、红外信号、数字信号)。另外,此类电子装置包括硬件,诸如:一个或多个处理器1302的集合(例如,其中处理器是微处理器、控制器、微控制器、中央处理单元、数字信号处理器、专用集成电路、现场可编程门阵列、其他电子电路、前述中的一个或多个的组合),所述一个或多个处理器耦合到一个或多个其他部件,例如一个或多个非暂时性机器可读存储介质(例如,存储器1304),以存储代码(例如,指令1314)和/或数据;以及一个或多个有线或无线网络接口1308的集合,所述一个或多个有线或无线网络接口允许电子装置通常跨一个或多个网络(例如,局域网(LAN)、互联网)向其他计算装置传输数据并从其他计算装置接收数据。所述处理器和其他部件的集合的耦合通常通过电子装置内的一个或多个互连件(例如,总线和可能的桥接器)进行。因此,给定电子装置的非暂时性机器可读存储介质(例如,存储器1304)通常存储用于在该电子装置的一个或多个处理器1302的集合上执行的代码(例如,指令1314)。各种实施方案的一个或多个部分可使用软件、固件和/或硬件的不同组合来实现。
计算装置1300可包括某种类型的显示元件1306,诸如触摸屏或液晶显示器(LCD),但诸如便携式媒体播放器等许多装置可经由其他装置(诸如通过音频扬声器)来传达信息,并且诸如服务器端站等其他类型的装置可根本不具有显示元件1306。如所讨论的,一些实施方案中使用的一些计算装置包括能够接收来自用户的输入的至少一个输入和/或输出部件1312。该输入部件可包括例如按钮、触摸板、触摸屏、滚轮、操纵杆、键盘、鼠标、小键盘或任何其他这种装置或元件,借此用户能够向所述装置输入命令。然而,在一些实施方案中,这种装置可通过视觉和/或音频命令的组合进行控制并利用传声器、相机、传感器等,使得用户能够控制装置而不必与装置进行物理接触。
如所讨论的,根据所描述的实施方案,可在各种环境中实现不同的方法。例如,图14示出了用于实现根据各种实施方案的各方面的环境1400的示例。例如,在一些实施方案中,以上详述的请求是由web服务器(例如,web服务器1406)接收的超文本传送协议(HTTP)请求,并且用户可经由电子装置经由通过web服务器1406和应用程序服务器1408提供的web门户与提供商网络交互。如将了解的,尽管出于解释的目的使用了基于web的环境,但是可视情况使用不同环境来实现各种实施方案。系统包括电子客户端装置1402(还可被称为客户端装置),并且可为可操作来在适当网络1404上发送和接收请求、消息或信息并且将信息传达回装置1402的用户的任何适当装置。此类客户端装置的示例包括个人计算机(PC)、手机、手持式消息传递装置、笔记本计算机、机顶盒、个人数据助理、电子书阅读器、可穿戴电子装置(例如,眼镜、腕带、监视器)等。一个或多个网络1404可包括任何适当的网络,包括内联网、互联网、蜂窝网、局域网或任何其他这种网络或它们的组合。这种系统所使用的部件可至少部分地取决于所选择的网络和/或环境的类型。用于经由这种网络进行通信的协议和部件是熟知的,因而本文将不再详细讨论。网络上的通信可经由有线或无线连接以及它们的组合来实现。在该示例中,网络1404包括互联网,因为环境包括用于接收请求并且响应于所述请求而提供内容的web服务器1406,但对于其他网络来说可使用服务于类似目的的替代装置,如本领域技术人员所显而易见的。
所示环境包括至少一个应用程序服务器1408和数据存储区1410。应理解,可能存在可链接起来或以其他方式来配置的几个应用程序服务器、层或其他元件、过程或部件,它们能够交互以实行诸如从适当数据存储区获得数据等任务。如本文所使用的,术语“数据存储区”是指能够存储、访问和检索数据的任何装置或装置组合,所述装置或装置组合可包括在任何标准、分布式或集群式环境中的数据服务器、数据库、数据存储装置和数据存储介质的任何组合和任何数量。应用程序服务器1408可包括任何适当的硬件和软件,所述硬件和软件用于视需要与数据存储区1410集成以执行客户端装置1402的一个或多个应用的各方面,并且用于处置应用的大部分数据访问和业务逻辑。应用程序服务器1408与数据存储区1410协作提供存取控制服务,并且能够生成将要传送给客户端装置1402的诸如文本、图形、音频、视频等内容,在该示例中,所述内容可以超文本标记语言(HTML)、可扩展标记语言(XML)、JavaScript对象表示法(JSON)或另一种适当的非结构化或结构化语言的形式由web服务器向用户提供。对所有请求和响应的处置以及客户端装置1402与应用程序服务器1408之间的内容递送可由web服务器1406来处置。应理解,web服务器1406和应用程序服务器1408不是必要的,而仅是示例性部件,因为本文所讨论的结构化代码可在如本文其他地方所讨论的任何适当装置或主机上执行。
数据存储区1410可包括几个单独的数据表、数据库或其他数据存储机制和介质,以用于存储与特定方面相关的数据。例如,示出的数据存储区包括用于存储生产数据1412和用户信息1416的机制,所述机制能够被用来为生产侧提供内容。数据存储区1410还被示出为包括用于存储日志或会话数据1414的机制。应理解,可能存在可需要存储在数据存储区中的许多其他方面,诸如页面图像信息和访问权信息,所述方面可视情况存储在上文列出的机制中的任一个中或存储在数据存储区1410中的额外机制中。数据存储区1410可通过与其相关联的逻辑来操作,以从应用程序服务器1408接收指令,并且响应于所述指令而获取、更新或以其他方式处理数据。在一个示例中,用户可针对某种类型的项目提交搜索请求。在这种情况下,数据存储区1410可访问用户信息1416以验证用户的身份,并且可访问生产数据1412以获得关于该类型的项目的信息。然后,可将信息在用户能够经由用户装置1402上的浏览器来查看的网页上(诸如)以结果列表的形式返回给用户。可在浏览器的专用页面或窗口中查看有关感兴趣的特定项目的信息。
web服务器1406、应用程序服务器1408和/或数据存储区1410可由一个或多个电子装置1420实现,所述一个或多个电子装置也可称为电子服务器装置或服务器端站,并且可位于或可不位于不同的地理位置。一个或多个电子装置1420中的每一个可包括提供用于该装置的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读介质,所述指令当由装置的处理器执行时,允许所述装置实行其预期的功能。用于装置的操作系统和一般功能的合适实现方式是已知的或可购得的,并且本领域的普通技术人员特别是根据本文的公开内容可容易地实现这些实现方式。
在一个实施方案中,环境是利用几个计算机系统和部件的分布式计算环境,所述计算机系统和部件使用一个或多个计算机网络或直接连接经由通信链路进行互连。然而,本领域普通技术人员应理解,这种系统可在具有比图14所示的部件更少或更多部件的系统中同样良好地操作。因此,图14中的环境1400的描绘本质上应视为说明性的,并且不限制本公开的范围。
本文所讨论或提出的各种实施方案可在多种多样的操作环境中实现,在一些情况下,所述操作环境可包括能够被用来操作若干应用中的任一个的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可包括:若干通用个人计算机中的任一个,诸如运行标准操作系统的台式计算机或笔记本计算机;以及运行移动软件并且能够支持若干联网协议和消息传递协议的蜂窝装置、无线装置和手持式装置。这种系统还可包括若干工作站,所述工作站运行多种可购得的操作系统和用于诸如开发和数据库管理等目的的其他已知应用中的任一个。这些装置还可包括其他电子装置,诸如虚拟终端、瘦客户端、游戏系统和/或能够经由网络通信的其他装置。
大多数实施方案利用本领域技术人员将熟悉的至少一个网络来支持使用多种可购得的协议中的任一个进行通信,所述协议诸如传输控制协议/互联网协议(TCP/IP)、文件传送协议(FTP)、通用即插即用(UPnP)、网络文件系统(NFS)、公共互联网文件系统(CIFS)、可扩展消息传递和现场协议(XMPP)、AppleTalk等。所述一个或多个网络可包括例如局域网(LAN)、广域网(WAN)、虚拟专用网(VPN)、互联网、内联网、外联网、公用电话交换网(PSTN)、红外网络、无线网络以及它们的任何组合。
在利用web服务器的实施方案中,web服务器能够运行多种服务器或中间层应用中的任一个,包括HTTP服务器、文件传送协议(FTP)服务器、公共网关接口(CGI)服务器、数据服务器、Java服务器、业务应用程序服务器等。所述一个或多个服务器还能够响应来自用户装置的请求而执行程序或脚本,诸如通过执行可实现为以任何编程语言(诸如
Figure BDA0003648013460000261
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)或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁性存储装置,或能够用于存储期望的信息且可由系统装置访问的任何其他介质。基于本文所提供的公开内容和教示,本技术领域普通技术人员将了解实现各种实施方案的其他方式和/或方法。
在前面的描述中,描述了各种实施方案。出于解释的目的,阐述了具体的配置和细节,以便提供对实施方案的透彻理解。然而,对本领域的技术人员将显而易见的是,在没有具体细节的情况下也可实践各实施方案。此外,为了不使所描述的实施方案变得模糊,可省略或简化熟知的特征。
本文使用带括号的文本和带有虚线边界(例如,大破折号、小破折号、点破折号和点)的框来说明向一些实施方案添加额外特征的任选操作。然而,这种表示法不应视为意味着这些是仅有的选项或任选操作,和/或在某些实施方案中,带有实线边界的框不是任选的。
在各种实施方案中,具有后缀字母的附图标记可用于指示所引用实体的一个或多个实例,并且当存在多个实例时,每个实例不必相同,而是可替代地共享一些一般特征或按惯例行事。此外,除非有相反的明确说明,否则所使用的特定后缀并不意味着暗示存在特定量的实体。因此,在各种实施方案中,使用相同或不同后缀字母的两个实体可具有或可不具有相同数量的实例。
对“一个实施方案”、“实施方案”、“示例性实施方案”等的提及指示所描述的实施方案可包括特定特征、结构或特性,但是每个实施方案可能不一定包括该特定特征、结构或特性。此外,此类短语不一定是指同一实施方案。此外,当结合一个实施方案来描述特定特征、结构或特性时,应认为,无论是否明确描述,结合其他实施方案来实现此类特征、结构或特性也在本领域技术人员的知识范围内。
可根据以下条款描述所公开的技术的至少一些实施方案:
1.一种计算机实现的方法,其包括:
将多个机器学习算法和机器学习模型发布并且列出为所列存储库项目,其中每个所列存储库项目可供第三方请求者使用,并且每个列表包括对所列存储库项目所属类别的指示、应用程序编程接口(API)定义以及所列存储库项目的存储位置;
接收来自第三方请求者的对于所列存储库项目的请求,所述请求至少指示所列存储库项目的类别;
基于所述请求确定对至少一个所列存储库项目的建议;
向所述请求者提供对所述至少一个所列存储库项目的所述建议;
接收来自所述第三方请求者的分配资源以使用所建议的所列存储库项目中的至少一个的请求;以及
利用所分配的资源来使用所选择的至少一个所建议的所列存储库项目执行任务。
2.如条款1所述的计算机实现的方法,其中所选择的至少一个所建议的所列存储库项目用于作为机器学习模型的流水线的一部分被执行。
3.如条款1至2中任一项所述的计算机实现的方法,其中所列存储库项目中的每一者都为容器,并且所分配的资源是在硬件上执行的用于执行所述容器的虚拟机。
4.一种计算机实现的方法,其包括:
接收来自请求者的对于所列存储库项目的请求,所述请求至少指示所述存储库项目的类别,并且存储库项目的每个列表包括对所列存储库项目所属的类别的指示以及所列存储库项目的存储位置;
基于所述请求确定对至少一个所列存储库项目的建议;
向所述请求者提供对所述至少一个所列存储库项目的所述建议;
接收分配资源以使用所建议的所列存储库项目中的至少一个的请求;以及
利用所分配的资源来使用所选择的至少一个所建议的所列存储库项目执行任务。
5.如条款4所述的计算机实现的方法,其中所述任务是训练或推理中的一者。
6.如条款4至5中任一项所述的计算机实现的方法,其中所列存储库项目中的每一者都为容器,并且所分配的资源是在硬件上执行的用于执行所述容器的虚拟机。
7.如条款4至6中任一项所述的计算机实现的方法,其还包括:
通过为包含机器学习代码的容器创建微服务、利用API包装微服务并且发布所包装的微服务的可用性来列出所列存储库项目。
8.如条款4至7中任一项所述的计算机实现的方法,其还包括:
验证所列存储库项目并非恶意的。
9.如条款4至8中任一项所述的计算机实现的方法,其中所列存储库项目中的至少一个是从提供给源控制服务并被容器化的代码生成的。
10.如条款4至9中任一项所述的计算机实现的方法,其中作为算法的存储库项目的列表还包括以下各项中的一者或多者:所建议的用于训练所述算法的资源要求、所建议的训练数据以及所述类别中的相对使用。
11.如条款4至10中任一项所述的计算机实现的方法,其中作为模型的存储库项目的列表还包括以下各项中的一者或多者:所建议的使用所述模型的资源要求、所述模型的准确性、所述模型的延迟以及所述类别中的相对使用。
12.如条款4至11中任一项所述的计算机实现的方法,其中所选择的至少一个所建议的所列存储库项目用于作为机器学习模型的流水线的一部分被执行。
13.如条款4至12中任一项所述的计算机实现的方法,其还包括:
将所选择的至少一个所建议的所列存储库项目添加到流水线的所述部分中。
14.如条款4至13中任一项所述的计算机实现的方法,其中所列存储库项目为数据。
15.如条款4至13中任一项所述的计算机实现的方法,其中所列存储库项目为流水线。
16.一种系统,其包括:
由第一一个或多个电子装置实现的请求者装置,用于从web服务存储库请求所列存储库项目;以及
web服务提供商,用于管理所述web服务存储库以进行以下操作:
接收所述请求,所述请求至少指示所述存储库项目的类别,并且存储库项目的每个列表包括对所列存储库项目所属的类别的指示以及所列存储库项目的存储位置;
基于所述请求确定对至少一个所列存储库项目的建议;以及向所述请求者提供对所述至少一个所列存储库项目的所述建议。
17.如条款16所述的系统,其中所述web服务提供商还用于进行以下操作:
接收分配资源以使用所建议的所列存储库项目中的至少一个的请求;以及
利用所分配的资源来使用所选择的至少一个所建议的所列存储库项目执行任务。
18.如条款17所述的系统,其中所述任务是训练或推理中的一者。
19.如条款16至18中任一项所述的系统,其中所列存储库项目中的每一者都为容器,并且所分配的资源是在硬件上执行的用于执行所述容器的虚拟机。
20.如条款16至18中任一项所述的系统,其中所列存储库项目为算法、模型、数据和流水线中的一者。
因此,说明书和附图被认为是说明性的而不是限制性的含义。然而,将显而易见的是,在不脱离如在权利要求中阐述的本公开的更宽泛精神和范围的情况下,可对其做出各种修改和改变。

Claims (20)

1.一种计算机实现的方法,包括:
由web服务提供商将多个机器学习项目发布到托管的机器学习存储库,其中,每个被发布的机器学习项目可用于第三方请求者,其中,每个被发布的机器学习项目包括所述被发布的机器学习项目的名称、所述被发布的机器学习项目所属的类别的指示、以及用于所述被发布的机器学习项目的输入格式,其中,所述多个机器学习项目包括以下一项或多项:
机器学习流水线;
机器学习算法;
机器学习模型;
容器图像;或
笔记本;
从所述第三方请求者接收使用所述多个被发布的机器学习项目中的一个被发布的机器学习项目的请求;以及
由所述web服务提供商提供对所述多个被发布的机器学习项目中的被请求的一个被发布的机器学习项目的访问权。
2.如权利要求1所述的计算机实现的方法,进一步包括:
由所述web服务提供商从生产者接收用于与具有对所述托管的机器学习存储库的访问权的其他用户共享的附加的机器学习项目;以及
将所述附加的机器学习项目发布到所述托管的机器学习存储库。
3.如权利要求1所述的计算机实现的方法,其中,所述多个被发布的机器学习项目中的所述被请求的一个被发布的机器学习项目用于作为机器学习模型的流水线的部分被执行。
4.如权利要求1所述的计算机实现的方法,其中,所述托管的机器学习存储库由所述web服务提供商托管。
5.如权利要求1所述的计算机实现的方法,其中,提供对所述多个被发布的机器学习项目中的所述被请求的一个被发布的机器学习项目的访问权进一步包括:
从与所述第三方请求者相关联的用户账户获得访问权信息;以及
基于所述访问权信息确定所述第三方请求者的访问权。
6.如权利要求1所述的计算机实现的方法,进一步包括:
接收分配用于由所述多个机器学习项目中的所述所请求的一个机器学习项目使用的资源的请求;以及
利用所分配的资源,以使用所述多个机器学习项目中的所述被请求的一个机器学习项目来执行任务。
7.如权利要求6所述的计算机实现的方法,其中,所述任务是训练和推理中的一个。
8.如权利要求1所述的计算机实现的方法,其中,所述被发布的机器学习项目中的每一个都是容器。
9.如权利要求1所述的计算机实现的方法,其中,所述被发布的机器学习项目中的至少一个被发布的机器学习项目通过被提供给所述web服务提供商的代码来生成。
10.如权利要求9所述的计算机实现的方法,其中,所述被发布的机器学习项目中的至少一个被发布的机器学习项目被容器化。
11.如权利要求1所述的计算机实现的方法,进一步包括:
将所述被发布的机器学习项目中的一个被发布的机器学习项目添加为流水线的部分。
12.如权利要求1所述的计算机实现的方法,其中,使用所述多个被发布的机器学习项目中的一个被发布的机器学习项目的请求经由所述web服务提供商的应用程序编程接口(API)被接收。
13.一种计算机实现的方法,包括:
由web服务提供商将多个机器学习项目发布到托管的机器学习存储库,其中,每个被发布的机器学习项目可用于第三方请求者,其中,每个被发布的机器学习项目包括所述被发布的机器学习项目的名称、所述被发布的机器学习项目所属的类别的指示、以及用于所述被发布的机器学习项目的输入格式,其中,所述多个机器学习项目包括以下一项或多项:
机器学习流水线;
机器学习算法;
机器学习模型;
容器图像;或
笔记本;
从所述第三方请求者接收对机器学习项目的请求,对所述机器学习项目的所述请求至少指示所述机器学习项目的类别;
基于对所述机器学习项目的所述请求确定对至少一个被发布的机器学习项目的建议;
将对所述至少一个被发布的机器学习项目的所述建议提供给所述请求者;以及
由所述web服务提供商提供对所述多个被发布的机器学习项目中的被请求的一个被发布的机器学习项目的访问权。
14.如权利要求13所述的计算机实现的方法,进一步包括:
从所述第三方请求者接收分配用于使用所建议的被发布的机器学习项目中的至少一个的资源的请求;以及
利用所分配的资源,以使用所选择的至少一个所建议的被发布的机器学习项目来执行任务。
15.如权利要求13所述的计算机实现的方法,其中,所述被发布的机器学习项目中的每一个都是容器,并且被分配的资源是在用于执行所述容器的硬件上执行的虚拟机。
16.一种系统,包括:
托管的机器学习存储库;以及
web服务提供商,用于:
将多个机器学习项目发布到所述托管的机器学习存储库,其中,每个被发布的机器学习项目可用于第三方请求者,其中,每个被发布的机器学习项目包括所述被发布的机器学习项目的名称、所述被发布的机器学习项目所属的类别的指示、以及用于所述被发布的机器学习项目的输入格式;
接收用于与具有对所述托管的机器学习存储库的访问权的其他用户共享的附加的机器学习项目;
将所述附加的机器学习项目发布到所述托管的机器学习存储库;以及
将对所述附加的机器学习项目的访问权提供给具有对所述托管的机器学习存储库的访问权的所述其他用户。
17.如权利要求16所述的系统,其中,所述被发布的机器学习项目中的每一个都是容器,并且被分配的资源是在用于执行所述容器的硬件上执行的虚拟机。
18.如权利要求16所述的系统,其中,所述多个机器学习项目包括以下一项或多项:
机器学习流水线;
机器学习算法;
机器学习模型;
容器图像;或
笔记本。
19.如权利要求16所述的系统,其中,所述托管的机器学习存储库由所述web服务提供商托管。
20.如权利要求16所述的系统,其中,所述被发布的机器学习项目中的每一个都是容器。
CN202210535615.9A 2018-03-12 2019-03-11 机器学习存储库服务 Active CN114925851B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210535615.9A CN114925851B (zh) 2018-03-12 2019-03-11 机器学习存储库服务

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/919,178 US10572321B2 (en) 2018-03-12 2018-03-12 Machine learning repository service
US15/919,178 2018-03-12
CN201980016827.2A CN111801694B (zh) 2018-03-12 2019-03-11 机器学习存储库服务
CN202210535615.9A CN114925851B (zh) 2018-03-12 2019-03-11 机器学习存储库服务
PCT/US2019/021645 WO2019177985A1 (en) 2018-03-12 2019-03-11 Machine learning repository service

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201980016827.2A Division CN111801694B (zh) 2018-03-12 2019-03-11 机器学习存储库服务

Publications (2)

Publication Number Publication Date
CN114925851A true CN114925851A (zh) 2022-08-19
CN114925851B CN114925851B (zh) 2023-04-18

Family

ID=65995841

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210535615.9A Active CN114925851B (zh) 2018-03-12 2019-03-11 机器学习存储库服务
CN201980016827.2A Active CN111801694B (zh) 2018-03-12 2019-03-11 机器学习存储库服务

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201980016827.2A Active CN111801694B (zh) 2018-03-12 2019-03-11 机器学习存储库服务

Country Status (5)

Country Link
US (3) US10572321B2 (zh)
EP (1) EP3750119A1 (zh)
CN (2) CN114925851B (zh)
AU (1) AU2019234483A1 (zh)
WO (1) WO2019177985A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10977006B2 (en) * 2019-05-03 2021-04-13 Microsoft Technology Licensing, Llc Optimized machine learning pipeline execution based on execution graphs
CN110990726A (zh) * 2019-10-30 2020-04-10 武汉大学 时空大数据智能服务系统
US20210141940A1 (en) * 2019-11-13 2021-05-13 Sensoriant, Inc. Method and system for enhancing the integrity of computing with shared data and algorithms
EP3886428A1 (en) 2020-03-24 2021-09-29 Canon Kabushiki Kaisha System and edge device
US11588830B1 (en) * 2020-06-30 2023-02-21 Sequoia Benefits and Insurance Services, LLC Using machine learning to detect malicious upload activity
US11782747B2 (en) 2021-01-20 2023-10-10 Decisionforce Llc System and method for notebook processing to handle job execution in cross-cloud environment
US20230385692A1 (en) * 2022-05-24 2023-11-30 Palantir Technologies Inc. Systems and methods for artificial intelligence inference platform and model controller
WO2024088566A1 (en) 2022-11-09 2024-05-02 Lenovo (Singapore) Pte. Ltd. Apparatuses and methods for introducing a data context with an machine learning model
WO2024088571A1 (en) 2022-12-27 2024-05-02 Lenovo (Singapore) Pte. Ltd. Determining and configuring a machine learning model profile in a wireless communication network
WO2024088580A1 (en) 2023-02-03 2024-05-02 Lenovo (Singapore) Pte. Ltd Assisting an analytics training function to select a machine learning model in a wireless communication network

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030227487A1 (en) * 2002-06-01 2003-12-11 Hugh Harlan M. Method and apparatus for creating and accessing associative data structures under a shared model of categories, rules, triggers and data relationship permissions
US20080215456A1 (en) * 2006-11-14 2008-09-04 Auctionpal, Llc Systems and methods for facilitating exchanges of items
CN104717098A (zh) * 2015-04-09 2015-06-17 北京邮电大学 一种数据处理方法及装置
CN105378699A (zh) * 2013-11-27 2016-03-02 Ntt都科摩公司 基于机器学习的自动任务分类
CN107003977A (zh) * 2014-06-27 2017-08-01 亚马逊技术股份有限公司 用于组织存储在移动计算设备上的照片的系统、方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101969475A (zh) * 2010-11-15 2011-02-09 张军 基于云计算的商业数据可控分发与融合应用系统
EP3449369B1 (en) * 2016-04-25 2022-06-08 Convida Wireless, LLC Methods for enabling data analytics service at service layer
US10812343B2 (en) * 2017-08-03 2020-10-20 Microsoft Technology Licensing, Llc Bot network orchestration to provide enriched service request responses

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030227487A1 (en) * 2002-06-01 2003-12-11 Hugh Harlan M. Method and apparatus for creating and accessing associative data structures under a shared model of categories, rules, triggers and data relationship permissions
US20080215456A1 (en) * 2006-11-14 2008-09-04 Auctionpal, Llc Systems and methods for facilitating exchanges of items
CN105378699A (zh) * 2013-11-27 2016-03-02 Ntt都科摩公司 基于机器学习的自动任务分类
CN107003977A (zh) * 2014-06-27 2017-08-01 亚马逊技术股份有限公司 用于组织存储在移动计算设备上的照片的系统、方法和装置
CN104717098A (zh) * 2015-04-09 2015-06-17 北京邮电大学 一种数据处理方法及装置

Also Published As

Publication number Publication date
US20200192733A1 (en) 2020-06-18
US10572321B2 (en) 2020-02-25
CN111801694B (zh) 2022-06-10
EP3750119A1 (en) 2020-12-16
WO2019177985A1 (en) 2019-09-19
US20190278640A1 (en) 2019-09-12
CN111801694A (zh) 2020-10-20
US20220129334A1 (en) 2022-04-28
CN114925851B (zh) 2023-04-18
AU2019234483A1 (en) 2020-09-10
US11249827B2 (en) 2022-02-15

Similar Documents

Publication Publication Date Title
CN111801694B (zh) 机器学习存储库服务
US10306023B2 (en) Pre-formed instructions for a mobile cloud service
JP6775013B2 (ja) データテーブルを共有するためのサポートを有する構成の自己記述
JP7364146B2 (ja) データベースクエリ処理のための機械学習推論コール
US11748610B1 (en) Building sequence to sequence (S2S) models using previously generated S2S models with similar use cases
US10949252B1 (en) Benchmarking machine learning models via performance feedback
US9606844B2 (en) Remotely-hosted interactive client-server session
US9369544B1 (en) Testing compatibility with web services
CN112771518A (zh) 托管机器学习模型
CN111712799A (zh) 供在非边缘装置和边缘装置上执行的模型的自动分布
US20230169396A1 (en) Machine learning using a hybrid serverless compute architecture
US10567334B1 (en) Domain mapping for privacy preservation
US11556608B2 (en) Caching for single page web applications
US11232799B1 (en) Speech recognition routing in a provider network
US10977528B1 (en) Detecting similarity between images
US20200034119A1 (en) Translating User Inputs Into Discretely Functional Styled Standalone Web and Mobile Software Features
US11100106B1 (en) Query engine virtualization
US11620102B1 (en) Voice navigation for network-connected device browsers
US11941566B2 (en) Systems and methods for enterprise metadata management
US11805027B2 (en) Machine learning using serverless compute architecture
US20230229800A1 (en) Content variation to track documents
US11258677B1 (en) Data representation generation without access to content
US20230034196A1 (en) Techniques for providing synchronous and asynchronous data processing
US20230359955A1 (en) Distributed Actor-Based Information System and Method

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