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

用于关于网络的预测的机器学习流水线的制作方法

2022-02-19 04:23:59 来源:中国专利 TAG:


1.本公开涉及计算机网络的分析。


背景技术:

2.虚拟化数据中心正在成为现代信息技术(it)基础设施的核心基础。特别地,现代数据中心已经广泛利用了虚拟化环境,其中诸如虚拟机或容器等虚拟主机部署在物理计算设备的基础计算平台上并且在其上执行。
3.大型数据中心内的虚拟化可以提供多个优势,包括有效利用计算资源和简化网络配置。因此,企业it员工除了具有虚拟化所带来的效率和更高的投资回报率(roi)之外,还因为其管理优势而通常更喜欢数据中心中的虚拟化计算集群。但是,在分析、评估和/或排除网络运行故障时,虚拟化可能会带来一些挑战。


技术实现要素:

4.本公开描述了包括收集针对网络的数据以及使用所收集的数据来训练和利用机器学习(ml)模型,以生成关于网络的预测的技术。预测可以提供对网络的一个或多个方面的见解,诸如预测的业务水平、cpu利用率、业务异常等。如本文所述,用于网络的网络分析系统可以训练预定的多个ml模型中的每个相应ml模型,以基于数据来生成多个训练阶段预测中的相应训练阶段预测。网络分析系统可以基于评估指标来确定预定的多个ml模型中的所选择的ml模型。此外,网络分析系统可以应用所选择的ml模型,以基于数据来生成预测。本文中描述的技术可以提供一种或多种技术优势。例如,本文中描述的技术可以降低网络分析系统的复杂性并且可以简化用于获取预测的过程。
5.在一些示例中,本发明描述了根据本公开的一个或多个方面由网络分析系统或其他网络系统执行的操作。在一个特定示例中,本公开描述了一种方法,该方法包括基于针对预测的请求:由计算系统训练预定的多个机器学习(ml)模型中每个相应ml模型,以生成多个训练阶段预测中的相应训练阶段预测;由计算系统基于针对多个ml 模型的评估指标来自动确定多个ml模型中的所选择的ml模型;以及由计算系统应用所选择的ml模型,以基于从包括多个网络设备的网络收集的数据来生成预测。
6.在另一示例中,本公开描述了一种系统,该系统包括:被配置为存储从包括多个网络设备的网络收集的数据的数据存储库;以及处理电路,该处理电路被配置为:基于针对预测的请求:训练预定的多个机器学习(ml)模型中的每个相应ml模型,以生成多个训练阶段预测中的相应训练阶段预测;基于针对预定的多个ml模型的评估指标来自动确定预定的多个ml模型中的所选择的ml模型;以及应用所选择的ml模型,以基于从包括多个网络设备的网络收集的数据来生成预测。
7.在另一示例中,本公开描述了一种包括指令的非暂态计算机可读存储介质,该指令在被执行时将计算系统的处理电路配置为执行操作,该操作包括:基于针对预测的请求:训练预定的多个机器学习 ml模型中的每个相应ml模型,以生成多个训练阶段预测中的相
应训练阶段预测;基于针对预定的多个ml模型的评估指标来自动确定预定的多个ml模型中的所选择的ml模型;以及应用所选择的ml 模型,以基于从包括多个网络设备的网络收集的数据来生成预测。
附图说明
8.图1a是示出根据本公开的一个或多个方面的包括用于分析网络的机器学习(ml)系统的示例网络的概念图;
9.图1b是示出根据本公开的一个或多个方面的用于分析网络的系统的示例组件的概念图;
10.图2是示出根据本公开的一个或多个方面的用于分析网络的示例网络的框图;
11.图3是示出根据本公开的一个或多个方面的机器学习(ml)系统的示例组件的概念图;
12.图4是示出根据本公开的一个或多个方面的示例训练工作流的概念图;
13.图5是示出根据本公开的一个或多个方面的示例生产工作流的概念图;
14.图6是示出根据本公开的一个或多个方面的示例模型对象的概念图;
15.图7是示出根据本公开的一个或多个方面的示例组件对象的概念图;以及
16.图8是示出根据本公开的一个或多个方面的网络分析系统的操作的流程图。
具体实施方式
17.使用虚拟化环境(其中诸如虚拟机或容器等虚拟主机部署在物理计算设备的基础计算平台上并且在其上执行)的数据中心可以提供效率、成本和组织优势。但是,获取对应用、节点和链路工作负载的有意义的见解对于管理任何数据中心结构可能仍然很重要。从网络设备收集业务样本可以有助于提供这样的见解。在本文中描述的各种示例中,业务样本被收集,并且然后由分析算法进行处理以生成各种类型的预测。预测可以包括指示网络内的特定通信链路或设备的利用率、网络内的特定流的量等的数据。预测可以与网络的未来或当前状况有关。
18.此外,网络管理员可能希望获取关于网络的预测。例如,网络管理员可能希望获取关于在将来的特定时间或特定时间段内将通过网络内的特定通信链路传输多少数据的预测。在另一示例中,网络管理员可能希望获取关于在将来的特定时间或特定时间段内将通过特定虚拟网络传输多少数据的预测。在另一示例中,网络管理员可能希望知道特定节点或节点集(或链路或链路集)是否会超过资源利用率阈值。
19.可能希望使用机器学习(ml)模型来生成这种预测。可以训练 ml模型,以基于从网络收集的数据(诸如流数据)生成预测。可能需要不同的ml模型来生成不同类型的预测。此外,不同类型的ml 模型可能比其他类型的ml模型更适合于生成特定类型的预测。因此,网络管理员可以将网络的ml系统配置为在临时基础上使用ml模型以获取不同的预测。临时添加ml模型可能会增加ml系统的复杂性和存储要求。例如,可能需要在ml系统上安装各种软件包以支持各种ml模型。这些软件包的数目和大小可能事先未知。此外,由于用于训练ml模型的ml系统中不统一,因此可能会增加ml系统的复杂性。此外,从网络管理员或客户端的角度来看,可能难以预先确定哪种类型的ml模型最适合于生成特定类型的网络见解。确定ml
模型的类型并且训练ml模型,以生成特定网络见解可能是一个充满挑战和耗时的过程。
20.本公开的技术可以解决上述一个或多个挑战。例如,根据本公开的示例,诸如流控制器等计算系统可以为具有多个网络设备的网络收集数据。例如,计算系统可以从网络收集流数据。流数据可以包括底层流数据、叠加流数据、和/或其他类型的流数据。计算系统可以将数据存储在数据库中。此外,基于由计算系统接收的针对预测的请求, ml系统可以训练预定的多个ml模型中的每个相应ml模型,以生成多个训练阶段预测中的相应训练阶段预测。网络分析系统可以基于针对多个ml模型的评估指标来自动确定多个ml模型中的所选择的 ml模型。另外,网络分析系统可以应用所选择的ml模型,以基于从网络收集的数据来生成预测。
21.通过训练一组预定ml模型中的多个ml模型,可以降低网络分析系统的复杂度,例如,因为可能不需要临时添加ml模型。此外,通过自动选择ml模型,管理员可以更容易选择合适的ml模型来生成预测。在一些示例中,网络分析系统可以能够仅基于针对预测的请求来自动训练ml模型、选择ml模型并且提供预测。
22.图1a是示出根据本公开的一个或多个方面的包括用于分析网络的ml系统138的示例网络的概念图。图1a示出了网络系统100和数据中心101的一种示例实现,该网络系统100和数据中心101托管一个或多个计算网络、计算域或项目、和/或基于云的计算网络(在本文中通常被称为云计算集群)。基于云的计算集群可以共同位于共同的整体计算环境中,诸如单个数据中心,也可以分布在整个环境中,诸如在不同的数据中心之间。基于云的计算集群可以例如是不同的云环境,诸如openstack云环境、kubernetes云环境或其他计算集群、域、网络等的各种组合。在其他情况下,网络系统100和数据中心101 的其他实现可能是合适的。这样的实现可以包括图1a的示例中包括的组件的子集,和/或可以包括图1a中未示出的附加组件。
23.在图1a的示例中,数据中心101为通过服务提供方网络106耦合到数据中心101的客户104提供用于应用和服务的操作环境。图1a 可以被示出为分布在图1a中的多个设备之间,在其他示例中,归因于图1a中的一个或多个设备的特征和技术可以由一个或多个这样的设备的本地组件在内部执行。类似地,一个或多个这样的设备可以包括某些组件,并且执行在本文中描述为归因于一个或多个其他设备的各种技术。此外,某些操作、技术、特征和/或功能可以结合图1a进行描述,或者由特定组件、设备和/或模块执行。在其他示例中,这样的操作、技术、特征和/或功能可以由其他组件、设备或模块执行。因此,归因于一个或多个组件、设备或模块的一些操作、技术、特征和 /或功能也可以归因于其他组件、设备和/或模块,即使本文中没有以这种方式具体描述。
24.数据中心101托管基础设施设备,诸如网络和存储系统、冗余电源和环境控件。服务提供方网络106可以耦合到由其他提供方管理的一个或多个网络,并且因此可以形成例如互联网等大规模公共网络基础设施的一部分。
25.在一些示例中,数据中心101可以表示很多地理分布的网络数据中心之一。如图1a的示例中所示,数据中心101是为客户104提供网络服务的设施。客户104可以是集体实体,诸如企业和政府或个人。例如,网络数据中心可以为若干企业和最终用户托管网络服务。其他示例性服务可以包括数据存储、虚拟专用网、流量工程、文件服务、数据挖掘、科学或超级计算等。在一些示例中,数据中心101是单独的网络服务器、网络对等方等。
26.在图1a的示例中,数据中心101包括一组存储系统、应用服务器、计算节点或其他设备,包括网络设备110a至网络设备110n(被统称为“网络设备110”,表示任何数目的网络设备)。设备110可以经由由一层或多层物理网络交换机和路由器提供的高速交换结构 121互连。在一些示例中,设备110可以被包括在结构121内,但是为了便于说明而被分开示出。网络设备110可以是很多不同类型的网络设备(核心交换机、脊柱网络设备、分支网络设备、边缘网络设备或其他网络设备)中的任何一种个,但是在某些示例中,一个或多个设备110可以用作数据中心的物理计算节点。例如,设备110中的一个或多个可以提供用于执行一个或多个客户特定虚拟机或其他虚拟化实例(诸如容器)的操作环境。在这样的示例中,设备110中的一个或多个可以备选地被称为主机计算设备或更简单地被称为主机。网络设备110从而可以执行一个或多个虚拟化实例,诸如虚拟机、容器、或用于运行一个或多个服务(诸如虚拟网络功能(vnf))的其他虚拟执行环境。
27.通常,每个网络设备110可以是可以在网络上运行并且可以生成通过遥测或其他方式可访问的数据(例如,流数据,诸如sflow数据) 的任何类型的设备,其可以包括任何类型的计算设备、传感器、相机、节点、监测设备或其他设备。此外,一些或全部网络设备110可以表示另一设备的组件,其中这种组件可以生成通过遥测或其他方式可收集的数据。例如,一些或全部网络设备110可以表示物理或虚拟网络设备,诸如交换机、路由器、集线器、网关、安全设备(诸如防火墙、入侵检测和/或入侵防御设备)。
28.尽管未具体示出,但是交换结构121可以包括耦合到机箱交换机的分布层的架顶式(tor)交换机,并且数据中心101可以包括一个或多个非边缘交换机、路由器、集线器、网关、安全设备(诸如防火墙、入侵检测和/或入侵防御设备)、服务器、计算机终端、笔记本电脑、打印机、数据库、无线移动设备(诸如蜂窝电话或个人数字助理)、无线接入点、网桥、电缆调制解调器、应用加速器或其他网络设备。交换结构121可以执行第3层路由,以通过服务提供方网络106在数据中心101与客户104之间路由网络业务。网关108用来在交换结构 121与服务提供方网络106之间转发和接收分组。
29.根据本公开的一个或多个示例,软件定义网络(“sdn”)控制器132提供逻辑上的并且在某些情况下是物理上的集中式控制器,以促进数据中心101内的一个或多个虚拟网络的操作。在一些示例中, sdn控制器132响应于经由北向api 131从编排引擎130接收的配置输入而操作,北向api 131又可以响应于从与用户接口设备129交互和/或操作用户接口设备129的管理员128接收的配置输入而操作。
30.用户接口设备129可以被实现为用于呈现输出和/或接受用户输入的任何合适的设备。例如,用户接口设备129可以包括显示器。用户接口设备129可以是计算系统,诸如由用户和/或管理员128操作的移动或非移动计算设备。根据本公开的一个或多个方面,用户接口设备129可以例如表示工作站、膝上型计算机或笔记本计算机、台式计算机、平板计算机、或可以由用户操作和/或呈现用户接口的任何其他计算设备。在一些示例中,用户接口设备129可以与控制器201物理上分离和/或在与控制器201不同的位置。在这样的示例中,用户接口设备129可以通过网络或其他通信方式与控制器201通信。在其他示例中,用户接口设备129可以是控制器201的本地外围设备,或者可以集成到控制器201中。
31.在一些示例中,编排引擎130管理数据中心101的功能,诸如计算、存储、联网和应用资源。例如,编排引擎130可以为数据中心101 内或跨数据中心的租户创建虚拟网络。编
排引擎130可以将虚拟机 (vm)附接到租户的虚拟网络。编排引擎130可以将租户的虚拟网络连接到外部网络,例如互联网或vpn。编排引擎130可以跨一组 vm或到租户网络的边界实现安全策略。编排引擎130可以在租户的虚拟网络中部署网络服务(例如,负载均衡器)。
32.在一些示例中,sdn控制器132管理诸如负载均衡、安全性等网络和联网服务,并且可以经由南向api 133将来自用作主机设备的设备110的资源分配给各种应用。也就是说,南向api 133表示sdn 控制器132用来使网络的实际状态等于由编排引擎130指定的期望状态的一组通信协议。例如,sdn控制器132可以通过配置物理交换机来实现编排引擎130的高级请求,例如,tor开关、机箱开关和交换结构121;物理路由器;物理服务节点,诸如防火墙和负载均衡器;以及vm中的诸如虚拟防火墙等虚拟服务。sdn控制器132在状态数据库内维持路由、网络和配置信息。
33.策略控制器140与设备110(和/或其他设备)中的一个或多个交互,以跨数据中心101和/或网络系统100收集数据。所收集的数据可以包括流数据。这样的流数据可以包括底层流数据和叠加流数据。在一些示例中,底层流数据可以通过在osi模型的第2层收集的流数据的样本来收集。叠加流数据可以是从跨网络系统100内建立的一个或多个虚拟网络的叠加业务导出的数据(例如,数据样本)。叠加流数据可以例如包括标识源虚拟网络和目的地虚拟网络的信息。其他类型的收集数据可以包括与计算资源(诸如处理器、内存、存储空间、链路带宽等)的利用有关的数据、物理机或虚拟机的分组吞吐量信息、功耗信息等。
34.根据本公开的一个或多个方面,图1a的策略控制器140可以将设备110中的每个配置为收集数据。例如,在可以参考图1a描述的示例中,策略控制器140向每个设备110输出信号。每个设备110接收信号并且将信号解释为收集数据的命令。此后,每个设备110将数据传递给策略控制器140。策略控制器140接收数据,响应于分析查询而准备数据以供使用,并且存储数据。在图1a的示例中,其他网络设备(包括交换结构121内的网络设备(未具体示出))也可以被配置为收集数据,诸如底层流数据、叠加流数据或其他类型的数据。
35.策略控制器140可以接收对关于网络系统100的信息的请求。例如,在所描述的示例中,用户接口设备129检测输入并且将关于该输入的信息输出到策略控制器140。策略控制器140确定该信息对应对关于网络系统100的信息的请求,诸如来自用户接口设备129的用户或其他来源的请求。策略控制器140可以使用ml系统138来处理请求。策略控制器140可以生成对请求的响应,并且将关于该响应的信息输出到用户接口设备129。
36.在图1a的示例中,ml系统138在与策略控制器140分离的计算系统中实现。例如,在一个示例中,ml系统138可以在由数据中心101提供的服务的用户的驻地的计算系统中实现,并且策略控制器 140可以在基于云的计算系统中实现。策略控制器140可以在由数据中心101提供的服务的用户的驻地的计算系统中实现,并且ml系统 138可以在基于云的计算系统中实现。在其他示例中,ml系统138 和策略控制器140可以在同一计算系统上实现。此外,在一些示例中, ml系统138可以形成策略控制器140的一部分。
37.根据本发明的一种或多种技术,响应于针对预测的请求,ml系统138可以训练预定的多个ml模型中的每个相应ml模型,以生成多个训练阶段预测中的相应训练阶段预测。另外,ml系统138可以基于针对预定的多个ml模型的评估指标来自动确定预定的多个ml 模型中的所选择的ml模型。ml系统138可以应用所选择的ml模型,以基于从包括多个网络设备(例如,设备110)的网络(例如,网络系统100)收集的数据来生成预测。在一些示例中,ml系
统138 可以将预测提供给策略控制器140。策略控制器140可以处理该预测以生成对请求的响应。
38.图1b是示出根据本公开的一个或多个方面的用于分析网络的系统的示例组件的概念图。图1b包括结合图1a描述的很多相同的元素。图1b所示的元素可以对应于在图1a中由相同标号的附图标记标识的图1a所示的元素。通常,这种相似编号的元素可以按照与结合图1a提供的对应元素的描述相一致的方式而被实现,尽管在一些示例中,这样的元素可能涉及具有更多、更少和/或不同的能力和属性的备选实现。
39.图1b示出了策略控制器140的示例组件。策略控制器140被示出为包括负载均衡器141、(多个)收集器模块142、队列和事件存储库143、拓扑和指标来源144、数据存储库145以及api 146。本公开还可以将数据存储库145称为时间序列数据库,并且可以将api 146 称为决策端点。通常,策略控制器140和策略控制器140的组件被设计和/或配置为确保高可用性以及处理大量数据(诸如流数据)的能力。在一些示例中,策略控制器140的组件的多个实例可以被编排(例如,通过编排引擎130)为在不同的物理服务器上执行,以确保策略控制器140的任何组件都没有单点故障。在一些示例中,策略控制器140 或其组件可以独立地和水平地缩放,以使得能够对期望的业务量(例如,流数据)进行高效和/或有效的处理。
40.与图1a中一样,图1b的策略控制器140将每个设备110配置为收集数据,诸如流数据或其他类型的数据。例如,策略控制器140可以向每个设备110输出信号以将每个设备110配置为收集数据。设备 110中的一个或多个此后可以收集数据并且将这样的数据报告给策略控制器140。
41.在图1b中,策略控制器140的负载均衡器141从设备110接收数据。负载均衡器141可以跨多个收集器模块142分配所接收的数据,以确保收集器模块的主动/主动故障转移策略。在一些示例中,可能需要多个负载均衡器141以确保高可用性和可缩放性。
42.(多个)收集器模块142从负载均衡器141收集数据。(多个) 收集器模块142将数据向上游发送到队列和事件存储库143。在数据包括流数据的一些示例中,(多个)收集器模块142可以寻址、处理和/或容纳来自sflows、netflow v9、ipfix、jflow、contrail flow和其他格式的统一数据。(多个)收集器模块142可以能够从sflow分组和其他数据流分组中解析内部报头。(多个)收集器模块142可以能够处理消息溢出,用拓扑信息(例如,appformix拓扑信息)丰富流记录。(多个)收集器模块142还可以能够在将数据写入或发送到队列和事件存储库143之前将数据转换为二进制格式。“sflow”类型的底层流数据(它是指“采样流”)是用于在osi模型的第2层进行分组导出的标准。sflow提供了一种导出截断分组的方法、以及用于网络监测目的的接口计数器。
43.队列和事件存储库143处理所收集的数据。例如,队列和事件存储库143可以从一个或多个收集器模块142接收数据,存储数据,并且使数据可用于数据存储库145中的摄取。在一些示例中,这使得能够分离将接收和存储大量数据的任务与索引数据和准备数据以进行分析查询的任务分离。在一些示例中,队列和事件存储库143还可以使得独立用户能够直接消费数据。在一些示例中,队列和事件存储库 143可以用于发现异常并且实时产生警报。在数据包括流数据的一些示例中,流数据可以通过读取封装的分组来解析,包括vxlan、基于udp的mpls、和基于gre的mpls。例如,队列和事件存储库 143从内部(底层)分组中解析源ip、目的地ip、源端口、目的地端口和协议。某些类型的流数据(包括sflow数据)仅包括采样
网络业务的一部分(例如,前128个字节),因此在某些情况下,流数据可能并非包括所有内部字段。在这样的示例中,这样的数据可以被标记为丢失。
44.拓扑和指标来源144可以利用拓扑信息和/或指标信息来丰富或扩充数据。例如,拓扑和指标来源144可以提供网络拓扑元数据,网络拓扑元数据可以包括所标识的节点或网络设备、配置信息、配置、所建立的链路、以及关于这样的节点和/或网络设备的其他信息。在一些示例中,拓扑和指标来源144可以使用appformix拓扑数据,或者可以是执行中的appformix模块。从拓扑和指标来源144接收的信息可以用于丰富由(多个)收集器模块142收集的数据,并且在处理数据存储库145的查询时支持api 146。
45.数据存储库145可以被配置为以索引格式存储从队列和事件存储库143以及拓扑和指标来源144接收的数据,从而实现快速聚合查询和快速随机访问数据取回。在一些示例中,数据存储库145可以通过分片和复制数据来实现容错和高可用性。
46.api 146可以处理由一个或多个用户接口设备129发送的请求。例如,在一些示例中,api 146可以通过http post请求从用户接口设备129接收请求。在一些示例中,api 146可以实现代表性状态转移(rest)api。
47.根据本公开的一种或多种技术,api 146可以接收针对预测的请求。预测可以包括关于网络系统100的未来状况的一个或多个预测,可以包括关于网络系统100的当前或过去状况的数据,或者可以包括至少部分从由(多个)收集器模块142收集的数据中导出的其他类型的数据。预测的示例类型可以包括关于后续时间段中的工作负载的预测、关于网络的容量需求的预测等。
48.基于请求,ml系统138可以训练多个ml模型中的每个相应ml 模型以(例如,基于存储在数据存储库145中的数据或所提供的训练数据)生成多个训练阶段预测中的相应训练阶段预测。ml系统138 可以基于用于多个ml模型的评估指标来自动确定多个ml模型中的所选择的ml模型。在选择ml模型之后,ml系统138可以应用所选择的ml模型,以基于数据存储库145中存储的数据来生成预测。
49.api 146可以基于预测将响应返回给ui设备129。在一些示例中, api 146可以处理预测以确定是否生成警报。例如,api 146可以基于预测中的一个或多个值与对应阈值的比较来确定是否生成警报。api146可以例如以弹出通知、电子邮件消息、即时消息、用户接口中的文本或图形消息的形式、或以其他形式向ui设备129提供警报。警报的示例类型可以包括网络业务异常警报。在一些示例中,编排引擎 130、sdn控制器132或其他系统可以响应于预测而执行自动决策执行。
50.通过实现本公开的技术,可以使生成预测的过程正规化。例如,与在逐案例的基础上生成的一组临时ml模型相反,ml系统138可以从预定的一组ml模型选择ml模型。通过使用预定的一组ml模型,可以简化ml系统138的存储要求,因为可能不需要存储、支持和维持支持临时添加的个体ml模型所需要的各种软件包。在一些示例中,ml系统138实现对于请求的标准化训练工作流和生产工作流。工作流在本公开的其他地方更详细地描述。使用这样的标准化训练工作流可以简化软件基础设施,否则将需要使用该软件基础设施来支持 ad hoc ml模型的使用。简化软件基础设施可以减少ml系统138的数据存储要求。本公开的技术还可以使得能够更容易为用户生成预测。为每个新案例创建临时模型需要大量的研究和理解以为预测创建准确的模型。本公开的技术可以使用多种主要的广泛公知的算法,训练并
且选择用于预测的准确的ml模型,这可以为任何未知的指标预测节省时间和精力。
51.图2是示出根据本公开的一个或多个方面的用于分析网络的示例网络的框图。图2的网络系统200可以被描述为图1a或图1b的网络系统100的示例或备选实现。图2的一个或多个方面在本文中可以在图1的上下文中被描述。
52.尽管诸如图1a、图1b和图2所示的数据中心可以由任何实体来操作,但是某些数据中心可以由服务提供方来操作,其中这种服务提供方的商业模型将为其客户提供计算能力。因此,数据中心通常包含大量计算节点或主机设备。为了有效地运行,这些主机具有彼此连接以及与外部世界连接的能力,并且该能力是通过物理网络设备来提供的,该物理网络设备可以按照叶脊柱拓扑互连。这些物理设备(例如,网络设备和主机)的集合形成底层网络。
53.这种数据中心中的每个主机设备通常在其上运行有多个虚拟机,这些虚拟机被称为工作负载。数据中心的客户端通常可以访问这些工作负载,并且可以使用这用的工作负载来安装应用并且执行其他操作。在不同主机设备上运行但由一个特定客户端可访问的工作负载被组织成一个虚拟网络。每个客户端通常具有至少一个虚拟网络。这些虚拟网络也被称为叠加网络。在某些情况下,数据中心的客户端可能会遇到在不同工作负载上运行的两个应用之间的连接问题。由于工作负载在大型多租户数据中心的部署,因此对这样的问题进行故障排除通常会变得很复杂。
54.在图2的示例中,网络205连接策略控制器140、主机设备210a、主机设备210b和主机设备210n。策略控制器140可以对应于图1a 和图1b所示的策略控制器140的示例或备选实现。主机设备210a、 210b至210n可以被统称为“主机设备210”,表示任何数目的主机设备210。
55.每个主机设备210可以是图1a和图1b的设备110的示例,但是在图2的示例中,与网络设备相反,每个主机设备210被实现为服务器或主机设备,该服务器或主机设备用作虚拟化数据中心的计算节点。因此,在图2的示例中,每个主机设备210执行多个虚拟计算实例,诸如虚拟机228。
56.还连接到网络205的是用户接口设备129,如图1a和图1b所示,用户接口设备129可以由管理员128操作。在一些示例中,用户接口设备129可以在与用户接口设备129相关联的显示设备上呈现一个或多个用户接口,其中一些用户接口可以具有类似于用户接口262的形式。
57.图2还示出了在网络系统200内流动的底层流数据204和叠加流数据206。特别地,底层流数据204被示出为离开脊柱设备202a并且流向策略控制器140。类似地,叠加流数据206被示出为离开主机设备210a并且在网络205上流动。在一些示例中,如本文所述,叠加流数据206通过网络205传送到策略控制器140。为了简单起见,图2示出了底层流数据204的单个实例和叠加流数据206的单个实例。然而,应当理解,脊柱设备202和叶设备203中的每个可以生成底层流数据204并且将其传送给策略控制器140,并且在一些示例中,每个主机设备210(和/或其他设备)可以生成底层流程数据204,并且通过网络205将这样的数据传送给策略控制器140。此外,应当理解,每个主机设备210(和/或其他设备)可以生成叠加流数据206,并且通过网络205将这样的数据传送给策略控制器140。
58.网络205可以对应于图1a和图1b的交换结构121和/或服务提供方网络106中的任
何一个,或者备选地,可以对应于交换结构121、服务提供方网络106和/或另一网络的组合。网络205还可以包括图 1a和图1b的一些组件,包括网关108、sdn控制器132和编排引擎 130。
59.在网络205中示出的是脊柱设备202a和202b(被统称为“脊柱设备202”,表示任何数目的脊柱设备202)、以及叶设备203a、203b 和叶设备203c(被统称为“叶设备203”并且还表示任何数目的叶设备203)。尽管网络205被示出为具有脊柱设备202和叶设备203,但是其他类型的网络设备可以被包括在网络205中,包括核心交换机、边缘网络设备、架顶式设备和其他网络设备。
60.通常,网络205可以是互联网,或者可以包括或表示任何公共或专用通信网络或其他网络。例如,网络205可以是蜂窝、 zigbee、bluetooth、近场通信(nfc)、卫星、企业、服务提供方、和/或能够在计算系统、服务器和计算设备之间进行数据传输的其他类型的网络。客户端设备、服务器设备或其他设备中的一个或多个可以使用任何合适的通信技术在网络205上发射和接收数据、命令、控制信号和/或其他信息。网络205可以包括一个或多个网络集线器、网络交换机、网络路由器、卫星天线或任何其他网络设备。这样的设备或组件可以可操作地相互耦合,从而提供计算机、设备或其他组件之间 (例如,一个或多个客户端设备或系统与一个或多个服务器设备或系统之间)的信息交换。图2所示的每个设备或系统可以使用一个或多个网络链路可操作地耦合到网络205。将这样的设备或系统耦合到网络205的链路可以是以太网、异步传输模式(atm)或其他类型的网络连接,并且这样的连接可以是无线和/或有线连接。图2所示的网络205上的设备或系统中的一个或多个等可以相对于一个或多个其他示出的设备或系统处于远程位置。
61.策略控制器140可以实现为任何合适的计算系统,诸如一个或多个服务器计算机、工作站、大型机、设备、云计算系统、和/或能够执行根据本公开的一个或多个方面而描述的操作和/或功能的其他计算系统。在一些示例中,策略控制器140表示向客户端设备和其他设备或系统提供服务的云计算系统、服务器场和/或服务器集群(或其一部分)。在其他示例中,策略控制器140可以表示数据中心、云计算系统、服务器场和/或服务器群集的一个或多个虚拟化计算实例(例如,虚拟机、容器),或者通过其而被实现。
62.在图2的示例中,策略控制器140可以包括电源241、一个或多个处理器243、一个或多个通信单元245、一个或多个输入设备246 以及一个或多个输出设备247。存储设备250可以包括一个或多个收集器模块252、用户接口模块254、api 146、数据存储库259和ml 相关数据库260。在一些示例中,ml相关数据库260与策略控制器 140分离。例如,ml相关数据库260可以被包括在ml系统138中。此外,在一些示例中,ml相关数据库260可以是元数据存储库。
63.策略控制器140的设备、模块、存储区域或其他组件中的一个或多个可以互连以实现组件间通信(物理上、通信上和/或操作上)。在一些示例中,这种连接可以通过通信信道(例如,通信信道242)、系统总线、网络连接、进程间通信数据结构、或用于传送数据的任何其他方法来提供。
64.电源241可以向策略控制器140的一个或多个组件提供电力。电源241可以从数据中心、建筑物、家庭或其他位置的主交流(ac) 电源接收电力。在其他示例中,电源241可以是电池或供应直流电 (dc)的设备。在另外的示例中,策略控制器140和/或电源241可以从
另一电源接收电力。策略控制器140内示出的设备或组件中的一个或多个可以连接到电源241,和/或可以从电源241接收电力。电源 241可以具有智能电源管理或消耗能力,并且这样的特征可以由策略控制器140的一个或多个模块和/或由一个或多个处理器243控制、访问或调节以智能地消耗、分配、供应或以其他方式管理电力。
65.策略控制器140的一个或多个处理器243可以实现与策略控制器 140相关联或与本文中示出和/或本文中描述的一个或多个模块相关联的功能和/或执行与策略控制器140相关联或与本文中示出和/或本文中描述的一个或多个模块相关联的指令。一个或多个处理器243可以是执行根据本公开的一个或多个方面的操作的处理电路,可以是这样的处理电路一部分,和/或可以包括这样的处理电路。处理器243 的示例包括微处理器、应用处理器、显示控制器、辅助处理器、一个或多个传感器集线器、以及被配置为用作处理器、处理单元或处理设备的任何其他硬件。策略控制器140可以使用一个或多个处理器243 来使用驻留在策略控制器140处和/或在策略控制器140处执行的软件、硬件、固件或硬件、软件和固件的混合来执行根据本公开的一个或多个方面的操作。
66.策略控制器140的一个或多个通信单元245可以通过发射和/或接收数据来与策略控制器140外部的设备通信,并且在某些方面可以用作输入设备和输出设备。在一些示例中,通信单元245可以通过网络与其他设备通信。在其他示例中,通信单元245可以在诸如蜂窝无线电网络等无线电网络上发送和/或接收无线电信号。通信单元245的示例包括网络接口卡(例如,诸如以太网卡)、光收发器、射频收发器、 gps接收器、或可以发送和/或接收信息的任何其他类型的设备。通信单元245的其他示例可以包括能够通过gps、nfc、 zigbee和蜂窝网络(例如,3g、4g、5g)、以及在移动设备以及通用串行总线(usb)控制器等中发现的无线电设备进行通信的设备。这样的通信可以遵循、实现或遵守适当的协议,包括传输控制协议/互联网协议(tcp/ip)、以太网、bluetooth、nfc或其他技术或协议。
67.一个或多个输入设备246可以表示本文中没有另外描述的策略控制器140的任何输入设备。一个或多个输入设备246可以从能够检测来自人或机器的输入的任何类型的设备生成、接收和/或处理输入。例如,一个或多个输入设备246可以生成、接收和/或处理以电、物理、音频、图像和/或视觉输入形式的输入(例如,外围设备、键盘、麦克风、相机等)。
68.一个或多个输出设备247可以表示本文中没有另外描述的策略控制器140的任何输出设备。一个或多个输出设备247可以从能够检测来自人或机器的输入的任何类型的设备生成、接收和/或处理输入。例如,一个或多个输出设备247可以生成、接收和/或处理以电和/或物理输出形式的输出(例如,外围设备、致动器等)。
69.策略控制器140中的一个或多个存储设备250可以存储用于在策略控制器140的操作期间进行处理的信息。存储设备250可以存储与根据本公开的一个或多个方面而描述的一个或多个模块相关联的程序指令和/或数据。一个或多个处理器243和一个或多个存储设备250 可以为这样的模块提供操作环境或平台,其可以被实现为软件,但是在一些示例中可以包括硬件、固件和软件的任何组合。一个或多个处理器243可以执行指令,并且一个或多个存储设备250可以存储一个或多个模块的指令和/或数据。处理器243和存储设备250的组合可以取回、存储和/或执行一个或多个应用、模块或软件的指令和/或数据。处理器243和/或存储设备250还可以可操作地耦合到一个或多个其他软件和/或硬件组件,包括但不
限于策略控制器140的一个或多个组件和/或被示出为连接到策略控制器140的一个或多个设备或系统。
70.在一些示例中,一个或多个存储设备250通过临时存储器而被实现,这可能表示,一个或多个存储设备的主要目的不是长期存储。策略控制器140的存储设备250可以被配置用于作为易失性存储器进行信息的短期存储,并且因此如果被停用则不保留所存储的内容。易失性存储器的示例包括随机存取存储器(ram)、动态随机存取存储器 (dram)、静态随机存取存储器(sram)、以及本领域已知的其他形式的易失性存储器。在一些示例中,存储设备250还包括一个或多个计算机可读存储介质。存储设备250可以被配置为与易失性存储器相比存储更大量的信息。存储设备250还可以被配置用于作为非易失性存储空间进行信息的长期存储,并且在激活/关闭周期之后保留信息。非易失性存储器的示例包括磁性硬盘、光盘、闪存、或电可编程存储器(eprom)或电可擦除可编程(eeprom)存储器的形式。
71.(多个)收集器模块252可以执行与接收底层流数据204和叠加流数据206两者有关的功能,并且根据需要执行负载均衡以确保用于收集这样的流数据的高可用性、吞吐量和可缩放性。收集器模块252 可以处理数据以准备数据以存储在数据存储库259中。在一些示例中, (多个)收集器模块252可以将数据存储在数据存储库259中。数据存储库259可以等同于数据存储库145(图1b)。
72.用户接口模块254可以执行与生成用于呈现由api 146执行的分析查询的结果的用户接口有关的功能。在一些示例中,用户接口模块 254可以生成足以生成一组用户接口的信息,并且引起通信单元215 在网络205上输出这样的信息,以供用户接口设备129使用以在与用户接口设备129相关联的显示设备处呈现一个或多个用户接口。
73.api 146可以执行涉及存储在数据存储库259中的数据的分析查询,该数据是从底层流数据204、叠加流数据206和/或其他类型的数据的集合中导出的。在一些示例中,api 146可以按照从http post 请求中导出的信息的形式接收请求,并且作为响应,可以使用ml系统138来获取响应于该请求的预测。在一些示例中,该请求包括查询或另一数据结构,该查询或另一数据结构指定要被包括在预测中的数据。此外,在一些示例中,api 146可以取回与设备110有关的拓扑信息,并且执行分析,包括数据重复数据删除、叠加底层相关、业务路径标识、和热图业务计算。
74.数据存储库259可以表示用于存储与数据流信息有关的信息的任何合适的数据结构或存储介质,包括从底层流数据204和叠加流数据 206导出的数据的存储。数据存储库259可以负责以索引格式存储数据,以实现快速数据取回和查询执行。存储在数据存储库259中的信息可以是可搜索的和/或分类的,使得策略控制器140内的一个或多个模块可以提供从数据存储库259请求信息的输入,并且响应于该输入,接收存储在数据存储库259内的信息。数据存储库259可以主要由(多个)收集器模块252维持。数据存储库259可以通过多个硬件设备而被实现,并且可以通过分片和复制数据来实现容错和高可用性。在一些示例中,数据存储库259可以使用开源的clickhouse面向列的数据库管理系统而被实现。
75.每个主机设备210表示为虚拟主机、虚拟机、容器和/或其他虚拟化计算资源提供执行环境的物理计算设备或计算节点。在一些示例中,每个主机设备210可以是向客户端设备和其他设备或系统提供服务的云计算系统、服务器场、和/或服务器集群(或其一部分)的组件。
76.主机设备210的某些方面在本文中关于主机设备210a来描述。其他主机设备210(例如,主机设备210b至210n)可以类似地描述,并且还可以包括相同、相似或对应的组件、设备、模块、功能和/或其他特征。因此,本文中关于主机设备210a的描述可以相应地应用于一个或多个其他主机设备210(例如,主机设备210b至主机设备 210n)。
77.在图2的示例中,主机设备210a包括底层物理计算硬件,包括电源211、一个或多个处理器213、一个或多个通信单元215、一个或多个输入设备216、一个或多个输出设备217、以及一个或多个存储设备220。存储设备220可以包括管理程序221,管理程序221包括内核模块222、虚拟路由器模块224和代理模块226。虚拟机228a至 228n(被统称为“虚拟机228”并且表示任何数目的虚拟机228)在管理程序221之上执行或者由管理程序221控制。类似地,虚拟路由器代理229可以在管理程序221上或在管理程序221的控制下执行。主机设备210的一个或多个设备、模块、存储区域或其他组件可以互连以实现组件间通信(物理上、通信上和/或操作上)。在一些示例中,这种连接可以通过通信信道(例如,通信信道212)、系统总线、网络连接、进程间通信数据结构、或用于传送数据的任何其他方法来提供。
78.电源211可以向主机设备210的一个或多个组件提供电力。处理器213可以实现与主机设备210相关联的功能和/或执行与主机设备 210相关联的指令。通信单元215可以代表主机设备210与其他设备或系统通信。一个或多个输入设备216和输出设备217可以表示与主机设备210相关联的任何其他输入和/或输出设备。存储设备220可以存储用于在主机设备210a的操作期间进行处理的信息。每个这样的组件可以按照与本文中结合策略控制器140等而描述的方式相似的方式而被实现。
79.管理程序221可以用作在基础主机硬件设备上实例化、创建和/ 或执行一个或多个虚拟机228的模块或系统。在某些情况下,管理程序221可以被称为虚拟机管理器(vmm)。管理程序221可以在由存储设备220和处理器213提供的执行环境中或在操作系统内核(例如,内核模块222)之上执行。在一些示例中,管理程序221是在硬件平台(例如,主机210)上执行以为虚拟机228和/或其他类型的虚拟计算实例提供虚拟化操作环境和编排控制器的操作系统级组件。在其他示例中,管理程序221可以是软件和/或固件层,该软件和/或固件层提供轻量级内核并且操作以为虚拟机228和/或其他类型的虚拟计算实例提供虚拟化操作环境和编排控制器。管理程序221可以结合内核模块222的功能(例如,作为“类型1管理程序”),如图2所示。在其他示例中,管理程序221可以在内核上执行(例如,作为“类型2管理程序”)。
80.虚拟路由器模块224可以为数据中心101中的对应虚拟网络执行多个路由实例,并且可以将分组路由到在由设备110提供的操作环境中执行的适当虚拟机。虚拟路由器模块224还可以负责收集叠加流数据,诸如在使用contrail sdn的基础设施中使用时的contrail flow数据。因此,每个主机设备210可以包括虚拟路由器。例如,由主机设备210a的虚拟路由器模块224从底层物理网络结构接收的分组可以包括外部报头,以允许物理网络结构将有效载荷或“内部分组”隧穿到主机设备210a的网络接口的物理网络地址。外部报头不仅可以包括服务器的网络接口的物理网络地址,还可以包括虚拟网络标识符,诸如标识虚拟网络之一的vxlan标签或多协议标签交换(mpls) 标签、以及由虚拟路由器执行的对应的路由实例。内部分组包括内部报头,该内部报头具有符合由虚拟网络标识符标识的虚拟网络的虚拟网络寻址空间的目的地网络地址。
81.代理模块226可以作为管理程序221的一部分而执行,或者可以在内核空间内或作为内核模块222的一部分而执行。代理模块226可以监测与主机设备210a相关联的一些或全部性能指标,并且可以实现可以从策略控制器140接收的策略。代理模块226可以将虚拟路由器模块224配置为将叠加流数据传送到策略控制器140。
82.虚拟机228a至虚拟机228n(被统称为“虚拟机228”,表示任何数目的虚拟机228)可以表示虚拟机228的示例实例。主机设备210a 可以将由存储设备220提供的虚拟和/或物理地址空间划分为用于运行用户进程的用户空间。主机设备210a还可以将由存储设备220提供的虚拟和/或物理地址空间划分为内核空间,该内核空间受到保护并且用户进程可能无法访问。
83.通常,每个虚拟机228可以是任何类型的软件应用,并且可以为每个虚拟机228分配虚拟地址以在对应虚拟网络中使用,其中每个虚拟网络可以是由虚拟路由器模块224提供的不同虚拟子网。可以为每个虚拟机228分配其自己的虚拟三层(l3)ip地址,例如,用于发送和接收通信,但不知道在其上执行虚拟机的物理服务器的ip地址。以这种方式,“虚拟地址”是用于应用的地址,该地址不同于用于底层物理计算机系统(例如,图2的示例中的主机设备210a)的逻辑地址。
84.每个虚拟机228可以表示租户虚拟机,该租户虚拟机运行客户应用,诸如网络服务器、数据库服务器、企业应用、或托管用于创建服务链的虚拟化服务。在一些情况下,主机设备210或另一计算设备中的任何一个或多个直接(即,不作为虚拟机)托管客户应用。尽管根据虚拟机或虚拟主机描述了本公开的一个或多个方面,但是本文中对于这样的虚拟机或虚拟主机而描述的根据本公开的一个或多个方面的技术也可以应用于在主机设备210上执行的容器、应用、进程、或其他执行单元(虚拟化或非虚拟化的)。
85.在图2的示例中,虚拟路由器代理229被包括在主机设备210a 内,并且可以与sdn控制器132和虚拟路由器模块224通信,以控制虚拟网络的叠加并且协调主机设备210a内的数据分组的路由。通常,虚拟路由器代理229与sdn控制器132通信,sdn控制器132 生成用于控制分组通过数据中心101的路由的命令。虚拟路由器代理 229可以在用户空间中执行,并且用作虚拟机228与sdn控制器132 之间的控制平面消息的代理。例如,虚拟机228a可以请求经由虚拟路由器代理229使用其虚拟地址发送消息,而虚拟路由器代理229进而可以发送该消息并且请求接收对于发起第一消息的虚拟机228a的虚拟地址的对该消息的响应。在一些情况下,虚拟机228a可以调用由虚拟路由器代理229的应用程序编程接口呈现的过程或功能调用,并且在这样的示例中,虚拟路由器代理229也处理消息的封装,包括寻址。
86.策略控制器140可以将诸如底层流数据204和叠加流数据206等数据存储在数据存储库259中。例如,在图2中,(多个)收集器模块252将信息输出到数据存储库259。数据存储库259可以按照索引格式存储数据,从而实现快速聚合查询和快速随机访问数据取回。在一些示例中,数据存储库259可以通过跨多个存储设备分片和复制数据来实现容错和高可用性,该多个存储设备可以位于多个物理主机之间。
87.策略控制器140可以接收请求。例如,用户接口设备129检测输入并且通过网络205输出从该输入中导出的信号。策略控制器140的通信单元215检测信号并且将关于该信号的信息输出到api 146。api146确定该信号对应于来自用户接口设备129的用户的请求,该请求是关于给定时间窗内的有关网络系统200的信息。例如,用户接口设备129的用户(例如,
管理员128)可能希望获取关于在将来的特定时间段内由特定主机设备210发送的网络业务的预期水平的预测。例如,如果特定主机设备托管视频流服务,给定网络205上的过去的业务模式,用户可能想知道特定主机设备可能在即将到来的周日晚上发送多少网络业务。
88.在一些示例中,策略控制器140的api 146在没有人参与的情况下从诸如软件系统或设备等系统接收请求。例如,在用户接口设备 129、策略控制器140的设备、或另一设备上运行的应用或其他类型的程序可以自动发送请求。在这样的示例中,策略控制器140可以在周期性或事件驱动的基础上接收相同的请求。在一些示例中,api 146 可以接收来自编排引擎130(例如,对于虚拟机或容器分析)、sdn 控制器132(例如,对于交换结构或连接性分析和管理)或其他系统的请求。
89.api 146可以使用ml系统138来处理针对预测的请求。为了处理该请求,ml系统138可以确定是否已经为该请求选择了ml模型。例如,ml系统138可以将先前接收的请求、先前处理的查询、或其他类型的数据存储在ml相关数据库260中。在该示例中,ml系统 138可以将该请求与先前接收的请求的库进行比较以确定是否已经为请求选择了ml模型。
90.如果已经为请求选择了ml模型,则ml系统138可以应用所选择的ml模型,以基于数据存储库259中存储的数据来生成预测。在某些示例中,如果ml系统138已经选择了对于该请求的ml模型, ml系统138可以发起生产工作流。在这样的示例中,生产工作流是使用先前为该请求而选择的ml模型来生成预测的过程。本公开例如关于图5在本公开的其他地方更详细地描述了生产工作流。
91.另一方面,如果ml系统138先前尚未为请求选择ml模型,则 ml系统138发起训练工作流。训练工作流是其中ml系统138训练多个ml模型,以基于数据存储库259中存储的数据来生成训练阶段预测的过程。由于(多个)收集器模块252继续收集数据并且继续将数据存储在数据存储库259中,所以在训练工作流期间由多个ml模型用来生成训练阶段预测的数据可以不同于在生产工作流期间由所选择的ml模型用来生成预测的数据。此外,当执行训练工作流时, ml系统138基于针对预定的多个ml模型的评估指标来自动确定预定的多个ml模型中的所选择的ml模型。本公开例如关于图4在本公开的其他地方更详细地描述了生产工作流。
92.api 146可以被配置为使用ml系统138来处理各种类型的请求。请求的示例类型可以包括但不限于最佳模型预测请求、统计模型预测请求、深度学习模型预测请求和微调请求。当ml系统138处理最佳模型预测请求时,ml系统138可以返回由被ml系统138选择为请求的最佳ml模型的ml模型生成的预测。用于处理最佳模型预测请求的所选择的ml模型可以不限于特定类型的模型,诸如统计ml模型或深度学习ml模型。当ml系统138处理统计模型请求时,ml 系统138可以返回由ml系统138从多种预定类型的统计ml模型选择的统计ml模型生成的预测。类似地,当ml系统138处理深度学习模型请求时,ml系统138可以返回由ml系统138从多种预定类型的深度学习ml模型选择的深度学习ml模型生成的预测。
93.当ml系统138处理微调请求时,ml系统138可以执行微调过程以改善已经训练的ml模型。在一些示例中,api 146或ml系统 138自动生成微调请求或发起微调过程。例如,可以在每晚,每小时或根据另一时间表或事件驱动的基础自动发起微调过程。示例微调过程在本公开的其他地方更详细地描述。
94.策略控制器140可以引起包含基于预测的数据的用户接口262被呈现在用户接口
设备129处。例如,api 146可以从ml系统138接收预测并且将预测输出到用户接口模块254。用户接口模块254可以使用来自api 146的预测来生成足以创建用户接口262的至少一部分的数据。例如,用户接口模块254可以生成javascript对象标记法 (json)对象,该对象包含足以创建用户接口262的至少一部分的数据。用户接口模块254引起通信单元245通过网络205或另一网络输出信号。用户接口设备129检测信号并且处理该信号以生成用户接口262。用户接口设备129在与用户接口设备129相关联的显示器上呈现用户接口262。图2的示例所示的用户接口262的内容可以有所不同。
95.图2所示的模块和系统(例如,虚拟路由器模块224、代理模块 226、(多个)收集器模块252、用户接口模块254、api 146、ml系统138)和/或在本公开的其他地方示出或描述的模块和系统可以执行使用驻留在一个或多个计算设备处中和/或在一个或多个计算设备处执行的软件、硬件、固件、或硬件、软件和固件的混合而描述的操作。例如,计算设备或一组计算设备可以用多个处理器或多个设备执行一个或多个这样的模块。计算设备可以执行一个或多个这样的模块作为在基础硬件上执行的虚拟机。这些模块中的一个或多个可以作为操作系统或计算平台的一个或多个服务来执行。一个或多个这样的模块可以在计算平台的应用层作为一个或多个可执行程序来执行。在其他示例中,由模块提供的功能可以由专用硬件设备而被实现。
96.尽管一个或多个存储设备中包括的某些模块、数据存储库、组件、程序、可执行文件、数据项、功能单元和/或其他项可以分别示出,但是这些项中的一个或多个可以作为单个模块、组件、程序、可执行文件、数据项或功能单元组合和操作。例如,一个或多个模块或数据存储库可以组合或部分组合,以使得它们作为单个模块操作或提供功能。此外,一个或多个模块可以彼此交互和/或结合操作,以使得例如一个模块用作另一模块的服务或扩展。而且,存储设备内示出的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以包括未示出的多个组件、子组件、模块、子模块、数据存储库和/或其他组件或模块或数据存储库。
97.此外,存储设备内示出的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以按照各种方式而被实现。例如,存储设备内示出的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以被实现为可下载或预先安装的应用或“app”。在其他示例中,存储设备内示出的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或其他项可以被实现为在计算设备上执行的操作系统的一部分。
98.图3是示出根据本公开的一个或多个方面的ml系统138的示例组件的概念图。在图3的示例中,ml系统138包括数据处理单元300、训练工作流单元302、生产工作流单元304和模型监测单元306。在其他示例中,ml系统138可以包括更多、更少或不同的单元。图3 的每个组件可以用在诸如一个或多个服务器、处理器或虚拟化执行单元(例如,容器或虚拟机)等计算环境上运行的软件而被实现。
99.数据处理单元300被配置为处理来自数据存储库259的数据以用于在一个或多个ml模型中使用。例如,数据处理单元300可以对数据执行降维。例如,输入数据可以包括大小为n
×
m的矩阵,其中n 是条目数,m是每个条目的维数。在该示例中,如果一个或多个ml 模型的所需要的输入大小是k,假定m>k,则数据处理单元300可以使用诸如自动编码器等降维算法将输入数据从n
×
m整形为n
×
k。
100.在一些示例中,数据处理单元300可以执行数据预处理。数据预处理的示例类型可以包括填写非数字(nan)值、对数据进行归一化或缩放、消除噪声(例如,使用自动编码器或其他工具)、零位居中、最小/最大归一化、主成分分析、或用于使数据准备好可供一个或多个 ml模型使用的其他类型的处理。主成分分析可以用于对数据进行去相关以用于线性回归。例如,通过将协方差矩阵设置为恒等矩阵,主成分分析可以用于增白数据。在一些示例中,数据处理单元300可以执行数据增强以基于来自数据存储库259的数据来生成附加数据。例如,数据处理单元300可以使用一个或多个生成对抗网络来执行数据增强。在一些示例中,由数据处理单元300产生的数据在不同的ml 模型之间是可共享的(或者以其他方式可重用)。使数据在不同的 ml模型之间可重用可以减少ml系统138的存储要求。
101.训练工作流单元302被配置为执行训练ml模型,以生成对于由 ml系统138接收的特定请求的预测的训练工作流。ml系统138可以在对于请求的ml模型的初始建立期间利用训练工作流单元302。在一些示例中,ml系统138可以使用训练工作流单元302来执行微调过程,该微调过程对于特定请求改善了所选择的ml模型。在一些示例中,训练工作流单元302可以实现基于kubernetes的机器学习流水线。
102.训练工作流单元302可以能够训练各种类型的ml模型。例如,在一些示例中,训练工作流单元302被配置为训练基线ml模型。基线ml模型可以是除深度学习ml模型和统计ml模型以外的另一种 ml模型。基线ml模型可以能够基于有限量的数据来生成预测。例如,基线ml模型可以能够基于少于1小时的数据来生成预测(例如,每小时预测)。基线ml模型的示例类型可以包括指数加权移动平均 (ewma)模型、隐马尔可夫模型等。
103.在一些示例中,训练工作流单元302被配置为训练统计ml模型。统计模型的示例类型包括holt-winters模型、自回归综合移动平均值 (arima)模型、季节性arima模型、向量自回归(var)模型、 facebook prophet模型等。在一些示例中,当有更多的数据可用于进行预测时,统计ml模型可以比基本ml模型具有更大的效用。例如,当超过24小时的数据可用时,可以使用用于生成每小时预测的统计ml模型。
104.在一些示例中,训练工作流单元302被配置为训练深度学习ml 模型。深度学习ml模型可能比基本ml模型或统计ml模型需要更多的数据,但是可以能够提供更复杂的预测类型。深度学习ml模型的示例类型可以包括长短期记忆(lstm)模型、双向lstm模型、递归神经网络、或包括多个层的其他类型的神经网络。在其他示例中, ml系统138可以使用除深度学习ml模型以外的神经网络模型。
105.ml模型可以被分组为基于回归的ml模型、基于分类的ml模型和无监督学习模型。这些组中的每个组可以都有基线、统计和深度学习ml。在一些示例中,对于基于回归的ml模型,训练工作流单元302可以使用hodrick-prescott过滤器来执行ml模型选择的初始水平。具体地,hodrick-prescott过滤器将时间序列数据(y_t)分解为趋势分量和周期性分量c_t:y_t=tou_t(趋势) c_t(周期性)。时间序列数据是ml模型用于生成预测的数据。通过将时间序列数据分成趋势分量和周期性分量,训练工作流单元302可以能够确定时间序列数据具有更多的周期特性还是更多的趋势特性。如果训练工作流单元302确定时间序列数据具有比趋势特性更多的周期特性,则训练工作流单元302可以消除对具有趋势特性的时间序列数据表现更好的 ml模型。相反,如果训练工作流单元302确定时间序列数据具有比周期特性更多的趋势特性,则训练工作流单元302可以消除对具有周期特性的时间序列数据
表现更好的ml模型。例如,ewma模型和 holts-winter模型对具有周期特性的时间序列数据表现更好。arima 模型、var模型等可能会对具有趋势特性的时间序列数据表现更好。
106.通过执行该初始级别的ml模型选择,训练工作流单元302可以能够避免训练每个基于回归的ml模型,从而潜在地节省时间和计算资源。在一些示例中,训练工作流单元302可以基于多少数据可用来过滤基于回归的ml模型。例如,如果数据存储库259中由少于阈值时间量的数据可用(例如,24-48小时),则训练工作流单元302可以仅训练基于回归的基线ml模型。否则,如果数据存储库259中有多于阈值时间量的数据可用,则训练工作流单元302可以附加地或备选地训练其他类型的基于回归的ml模型,诸如统计模型或低容量深度学习ml模型。
107.基于回归的基线ml模型的示例类型可以包括隐马尔可夫模型和季节趋势分解方法。基于回归的统计ml模型的示例类型可以包括误差趋势季节(ets)模型(包括指数平滑模型、趋势方法模型和ets 分解)、ewma模型(包括简单移动平均值和ewma)、holt winters 模型、arima模型、sarima模型、向量自回归模型、季节性趋势自回归(star)模型和facebook prophet模型。基于回归的深度学习ml模型的示例类型可以包括lstm架构(包括单层lstm、深度lstm、双向lstm)、rnn和门控循环单元(gru)。基于分类的基线ml模型的示例类型可以包括逻辑回归模型和k近邻模型。基于分类的统计ml模型的示例类型可以包括支持向量机和boosting集成算法(例如,xgboost)。基于分类的深度学习ml模型的示例类型可以包括lstm架构、rnn架构、gru架构和人工神经网络架构。无监督ml模型的示例类型可以包括k均值聚类模型、高斯聚类模型和基于密度的空间聚类。
108.在一些示例中,训练工作流单元302开始训练工作流,作为ml 流水线的初始建立的一部分。ml流水线是生成对请求的预测的过程。因此,当ml系统138接收到新请求时,ml系统138执行ml流水线的初始建立过程,以生成对新请求的预测。
109.在一些示例中,训练工作流单元302响应于先前接收的请求的新实例而开始训练工作流。例如,通过基本ml模型或统计ml模型可以最佳地生成对某些类型请求的某些预测。例如,对请求的预测可以包括基于过去一小时的通信链路上的通信量来预测下一小时网络205 中的通信链路上的通信量。在该示例中,基本ml模型可能足以生成预测。因此,在该示例中,响应于请求的新实例,训练工作流单元302 可以在过去一个小时的数据上对一个或多个基本ml模型进行重新训练以生成关于下一小时的预测。类似地,训练工作流单元302可以例如响应于同一请求的每日/每晚实例来重新训练一个或多个统计ml 模型。
110.在一些示例中,训练工作流单元302可以确定用于训练的可用 ml模型的子集。换言之,训练工作流单元302可以被配置为训练x 个ml模型,但是训练工作流单元302可以确定由y个ml模型组成的子集,其中y小于x。训练工作流单元302可以对于请求来训练可用ml模型的子集中的每个相应ml模型,但不对于请求来训练不在请求子集中的其余ml模型。训练工作流单元302可以按照多种方式之一来确定子集。例如,训练工作流单元302可以应用hodrick-prescott 过滤器来选择一个基线ml模型和一个统计ml模型以用于训练和/ 或微调。
111.训练工作流单元302可以执行模型评估过程和模型选择过程。在模型评估过程中,训练工作流单元302可以训练ml模型并且生成 ml模型的评估指标。在模型选择过程中,训练工作流单元302可以使用ml模型的评估指标来确定所选择的ml模型。本公开关于图4 提
供了关于模型评估过程和模型选择过程的示例细节。
112.此外,关于图3的示例,生产工作流单元304处理生产工作流。生产工作流单元304可以生成生产工作流以使用对于请求的所选择的 ml模型来生成预测。本公开关于图5提供了关于生产工作流的示例细节。在一些示例中,生产工作流单元304可以实现基于kubernetes 的机器学习流水线。
113.另外,在图3的示例中,模型监测单元306监测由对于请求的所选择的ml模型而生成的预测。例如,模型监测单元306可以监测所选择的ml模型中的漂移,并且可以自动触发训练工作流,该训练工作流使用随后收集的数据重新训练所选择的ml模型。换言之,模型监测单元306可以对所选择的ml模型发起微调过程。因此,在所选择的ml模型生成预测之后,模型监测单元306可以连续或重复地监测所选择的ml模型的性能。
114.因此,在一些示例中,由所选择的ml模型生成的预测可以包括关于网络205中的网络业务流的预测。此外,在这样的示例中,模型监测单元306可以生成关于网络205中的网络业务流的真实数据。真实数据对应于在预测中正在预测的实际值。模型监测单元306可以基于存储在数据存储库259中的数据(例如,流数据)来生成真实数据。另外,模型监测单元306可以基于预测和真实数据的比较来确定是否重新训练所选择的ml模型。基于确定需要重新训练所选择的ml模型,模型监测单元306可以自动重新训练所选择的ml模型。重新训练工作流可以包括使用其他训练数据来更新所选择的ml模型。例如,在选择的ml模型是深度学习ml模型的示例中,训练工作流单元302 可以从存储在数据存储库259中的新数据生成新的输入预期输出对,并且使用新的输入预期输出对进一步训练深度学习ml模型。
115.在一些示例中,为了确定是否重新训练所选择的ml模型,模型监测单元306可以基于特定预测与对应于特定预测的真实数据的比较来确定误差值。在一些示例中,误差值指示真实数据中的值与预测中的对应值之间的差值之和。模型监测单元306可以基于误差值越过置信区间的阈值来做出重新训练所选择的ml模型的确定。
116.图4是示出根据本公开的一个或多个方面的示例训练工作流单元 302的概念图。在图4的示例中,训练工作流单元302包括模型训练单元400、参数存储装置402、模型评估单元404、模型和权重更新单元406、以及模型选择单元408。在其他示例中,训练工作流单元302 可以包括更多、更少、或其他单元。
117.模型训练单元400可以执行用于训练ml模型的过程。更具体地,模型训练单元400可以训练ml模型,以生成请求所请求的类型的预测。因此,在一些示例中,模型训练单元400可以训练预定的多个 ml模型中的每个ml模型,以基于存储在数据存储库259中的数据来生成多个训练阶段预测中的相应训练阶段预测。
118.作为训练ml模型的一部分,模型训练单元400可以从参数存储装置402中取回ml模型的参数。此外,模型训练单元400可以更新 ml模型的参数,作为训练过程的一部分。模型训练单元400可以将 ml模型的已更新的参数存储回参数存储装置402。ml模型的参数的示例类型可以包括用于深度学习ml模型的神经元的权重和偏差值。支持向量机(svm)模型的参数的示例类型可以包括表征分离一个或多个类的一个或多个超平面的数据。基于回归的ml模型的参数的示例类型可以包括表征回归函数的系数。
119.在一些示例中,模型训练单元400可以更新某些类型的ml模型的超参数。例如,在模型训练单元400正在训练深度学习ml模型的示例中,模型训练单元400可以更新超参数,
诸如学习速率、最小批量大小、拓扑参数等。在模型训练单元400正在训练svm模型的示例中,模型训练单元400可以更新正则化常数和内核超参数。当训练统计ml模型时,模型训练单元400可以使用网格搜索或其他技术来更新超参数。当训练深度学习ml模型时,模型训练单元400可以分阶段执行交叉验证。在第一阶段,模型训练单元400可以在较短时间内训练深度学习ml模型,以确定可行的超参数的近似值。在第二阶段,模型训练单元400可以在更长的时间段内训练深度学习ml模型以微调超参数。
120.在一些示例中,ml系统138可以被配置为应用多个ml模型,但是模型训练单元400可以从多个ml模型选择ml模型的子集(例如,基于hodrick-prescott过滤器,如本公开中其他地方所述)。在一些示例中,多个ml模型可以包括先前已经被训练和/或微调的ml 模型。
121.模型训练单元400可以按照不同方式训练不同类型的ml模型。例如,在一个示例中,在模型训练单元400正在训练深度学习ml模型的情况下,请求可以包括查询和输入数据标准。查询可以描述对请求的预测。输入数据标准可以指定用于生成预测的数据(例如,流数据)。此外,在该示例中,模型训练单元400可以生成多个输入预期输出对。每个输入预期输出对包括输入数据集和预期输出数据集。输入数据集可以包括被存储在数据存储库259中的数据并且满足输入数据标准。预期输出数据集包括响应于查询的数据。换言之,模型训练单元400可以对过去的时间段的数据运行查询以生成预期输出数据集。在该示例中,模型训练单元400可以基于输入预期输出对来训练一个或多个ml模型。例如,模型训练单元400可以使用监督学习过程基于输入输出对来训练一个或多个ml模型。以这种方式,模型训练单元400可以能够训练一个或多个ml模型而无需从寻求预测的用户明确接收输入预期输出数据集。这可以帮助自动化获取预测的过程。
122.在图4的示例中,模型训练单元400可以使用模型评估单元404 作为训练ml模型的过程的一部分。模型评估单元404可以负责实际使用ml模型来生成预测。例如,在其中ml模型是深度学习ml模型的示例中,模型评估单元404可以对深度学习ml模型执行前向遍历以生成输出数据(例如,训练阶段预测)。在该示例中,模型评估单元404可以将输出数据与预期输出数据进行比较(例如,使用误差函数)以生成误差值。模型评估单元404可以使用误差值执行反向传播过程。反向传播过程可以更新深度学习ml模型的权重。模型和权重更新单元406可以将已更新的权重存储回参数存储装置402。
123.在一些示例中,模型评估单元404可以确定由一个或多个评估的 ml模型生成的预测的置信区间。例如,在一些示例中,模型评估单元404将ml模型应用于包括与预期预测相关联的验证输入数据的验证数据集。对于每个ml模型,模型评估单元404可以为验证数据集计算由ml模型生成的预测的标准偏差。然后,模型评估单元404可以使用标准偏差来确定ml模型的置信区间。在一些示例中,置信区间可以用于ml模型的选择。
124.在一些示例中,模型训练单元400可以生成增强数据并且在训练特定类型的ml模型时将增强数据用作验证数据。模型训练单元400 可以使用一个或多个生成对抗网络以基于存储在数据存储库259中的数据来生成增强数据。
125.模型选择单元408可以基于为请求而训练的ml模型的评估指标来自动确定预定的多个ml模型中的所选择的ml模型。模型选择单元408可以使用ml模型的各种评估指标来确定所选择的ml模型。例如,对于基于回归的ml模型,模型选择单元408可以使用诸如 ml模型的均方根误差(rmse)、ml模型的均方误差(mse)、平均绝对误差(mae)、相应ml模型的akaike
信息标准(aic)、 aicc、mallows cp、置信区间回归、相应ml模型的贝叶斯信息标准 (bic)或其他类型的数据等评估指标。对于基于分类的ml模型(例如,统计模型、深度学习ml模型等),评估指标可以包括准确性、特异性、召回率、f1得分(接收者工作特性(roc)/曲线下面积(auc) 等。对于使用无监督学习训练的ml模型,模型选择单元408可以使用silhouette得分作为评估指标。在一些示例中,模型选择单元408 可以将ml模型的评估指标进行比较,并且选择具有最低(或最高) 评估指标的ml模型。在一些示例中,模型选择单元408使用多个评估指标来确定所选择的ml模型。例如,模型选择单元408可以使用加权指标评估方法来确定所选择的ml模型。指标可以被加权以向特定指标赋予更多或更少重视。在该示例中,对于每个ml模型,模型选择单元408可以确定ml模型的加权评估指标的总和,并且选择总和最低(或最高)的ml模型。在模型选择单元408确定所选择的 ml模型之后,模型选择单元408可以将所选择的ml模型的参数(例如,权重、偏差值、系数等)存储在参数存储装置402中以供以后使用。在一些示例中,模型选择单元408从选择ml模型的多个ml模型可以包括用于该请求的一个或多个先前训练的ml模型。
126.图5是示出根据本公开的一个或多个方面的示例生产工作流单元 304的概念图。在图5的示例中,生产工作流单元304包括模型训练单元400、参数存储装置402、模型评估单元404、模型选择单元408、模型预测单元500和模型服务单元502。
127.模型预测单元500可以从模型选择单元408获取用于请求的所选择的ml模型的指示。另外,模型预测单元500可以从参数存储装置 402获取用于所选择的ml单元的参数。模型预测单元500可以应用所选择的ml模型,以生成(例如,基于数据存储259中的数据)对请求的预测。在某些示例中,请求本身可以指定数据存储库259中的哪些数据要用作ml模型的输入以训练和/或生成生产工作流预测。例如,该请求可以指定对要用作输入的数据的查询。在一些示例中,可以将专用训练数据提供给ml系统138,以训练ml模型,以基于请求来生成预测。标记可以用于向ml系统138指示是否提供了专用训练数据或者请求本身指定了数据存储库259中的数据以用作训练ml 模型和/或生成生产工作流预测的输入。
128.模型服务单元502还可以处理通过应用所选择的ml模型而生成的预测。例如,模型服务单元502可以处理预测以提供置信区间以及预测。
129.在一些示例中,每当ml系统138接收到特定请求时,生产工作流单元304使用模型训练单元400、模型评估单元404、模型选择单元408和模型服务单元502。在一些这样的示例中,训练、评估和选择ml模型作为用于请求的生产工作流的一部分的选项(并且因此每次ml系统138接收到请求时,训练、评估和选择ml模型的选项) 可以由生成请求的用户或程序指定。作为生产流程的一部分来训练、评估和选择ml模型在以下情况下特别有用:随着时间的推移,随着更多输入数据变为可用,所选择的ml模型发生变化,或者输入数据中的信息趋于以某种方式变化以使得选择不同ml模型是有利的。
130.在其他示例中,每次ml系统138每次接收到特定请求时,生产工作流单元304都不使用模型训练单元400、模型评估单元404和模型选择单元408。例如,如果相同的所选择的ml模型对于请求多次有用(例如,在相同类型的输入数据上,但具有不同的时间范围),则每次ml系统138接收到请求的实例时,生产工作流单元304不使用模型训练单元400、模型评估单元404或模型选择单元408。可能特别常见的是,当所选择的ml模型是深度学习模型时,每当ml系统138接收到请求的实例时,生产工作流单元304不训练、评估或选择ml模型。
131.图6是示出根据本公开的一个或多个方面的示例模型对象600的概念图。在本公开的一些示例中,ml系统138可以使用诸如模型对象600等模型对象来管理诸如训练工作流和生产工作流等ml工作流中的ml模型。模型对象600可以是面向对象的编程软件对象。ml 系统138可以将模型对象600用于ml模型的持久性、有效存储和取回。
132.在图6的示例中,模型对象600包括模型标识符602、模型状态数据604、数据取回器606、数据转换器608和训练器610。模型标识符602标识ml模型。例如,模型标识符602可以是在ml系统138 中全局标识ml模型的标识符。在某些示例中,模型标识符602可以用作在对ml流水线(例如,训练工作流或生产工作流)的内部和外部api调用中标识模型对象600的参考。
133.模型状态数据604可以指示ml模型是处于新状态(例如,未训练状态)、已训练状态、已评估状态、已部署状态还是过时状态。当 ml模型处于已训练状态时,可以至少部分训练ml模型,以生成对请求的预测。当ml模型处于已评估状态时,可能已考虑选择ml模型,但是未选择该模型。当ml模型处于已部署状态时,可能已选择 ml模型作为请求的ml模型。当ml模型处于过时状态时,ml系统138不再使用ml模型,并且ml系统138将不考虑将ml模型用于后续选择或用作所选择的ml模型。模型对象600可以绑定到训练工作流或生产工作流。训练工作流可以在新的、已训练、已评估和已部署状态之间转换模型对象600。当模型状态数据604指示ml模型处于已部署状态时,生产工作流可以使用与模型对象600相关联的 ml模型。
134.ml系统138可以使用模型对象600的数据取回器606来取回由 ml模型使用的输入数据,例如流数据。在一些示例中,数据取回器 606是包括用于取回输入数据的功能的软件对象。例如,如下面关于图7所述,数据取回器606可以被实现为组件对象。在一些示例中,数据取回器606指定用于取回输入数据的查询。
135.ml系统138可以在将输入数据提供给ml模型之前使用数据转换器608来转换输入数据。例如,ml系统138的数据处理单元300 (图3)可以使用数据取回器606来预处理输入数据。在一些示例中,数据转换器608是包括转换输入数据的功能的软件对象。例如,如下面关于图7所述,数据转换器608可以被实现为组件对象。在一些示例中,数据转换器608指定指示如何转换输入数据的数据。
136.ml系统138可以使用模型对象600的训练器610来执行ml模型的训练过程。例如,训练器610可以是或可以指示用于训练ml模型的一个或多个程序、脚本、参数或其他数据。
137.图7是示出根据本公开的一个或多个方面的示例组件对象700的概念图。诸如组件对象700等组件对象可以是形成工作流的基本单元的可重复使用的、预定义的、容器化的操作/任务。在图7的示例中,组件对象700包括驱动器702、执行器704和发布方706。组件对象700可以使用元数据存储库708。在其他示例中,组件对象可以包括更多、更少或不同的单元。
138.驱动器702消耗输入,诸如驱动组件的元数据。这样的元数据可以存储在元数据存储库710中。执行器704可以执行组件的动作或任务。发布方706将由组件生成的伪像写回元数据存储库710以供对象操作使用。例如,当组件对象700是数据取回器(例如,数据取回器 606)时,驱动器702可以获取指定执行器704将执行以便取回ml 对象的输入数据的动作的元数据。在该示例中,发布方706可以将由执行者704取回的输入数据写回元数据存储库710
(例如,以供ml 系统138在应用ml模型时使用)。
139.在组件对象700是数据转换器(例如,数据转换器608)的示例中,驱动器702可以获取指定用于转换输入数据的动作的元数据。执行器704然后可以应用动作。在该示例中,发布方706可以将转换后的输入数据写回元数据存储库710中(例如,以供ml系统138在应用ml模型时使用)。
140.组件对象可以通过元数据存储库710彼此通信。元数据存储库 710可以实现一个或多个api以记录和取回来自存储后端(例如,数据存储库259、参数存储装置402等)的元数据。在一些示例中,元数据包括通过工作流的组件/步骤生成的伪像。此外,在一些示例中,元数据包括关于这些组件/步骤的执行的信息。在一些示例中,元数据包括关于流水线的信息和相关联的沿袭信息。例如,ml系统138可以生成关于在ml模型上运行的工作流的元数据。这包括但不限于运行的特定标识符、运行期间生成的组件级伪像、以及过去在该模型上运行以实现更好可调试性和日志记录的流水线工作流中的相关沿袭信息。元数据存储库710还可以包含由组件对象(诸如组件对象700) 生成的伪像。伪像可以是抽象实体,该抽象实体具有通过客户端api 在元数据存储库710中即时注册的artifacttype。artifacttype指示这样的类型的实例的属性。
141.图8是示出根据本公开的一个或多个方面的策略控制器140的操作的流程图。在图8的示例中,策略控制器140(例如,网络分析系统的收集器模块252)可以为网络205收集诸如流数据或其他类型的数据等数据(800)。网络205包括多个网络设备(例如,脊柱设备 202、叶设备203、主机设备210等)。策略控制器140可以将数据存储在诸如数据存储259等数据库中(802)。
142.此外,在图8的示例中,策略控制器140可以接收针对预测的请求(804)。例如,策略控制器140可以从用户接口设备129或另一源接收请求。
143.基于由策略控制器140接收的针对预测的请求,ml系统138可以训练预定的多个ml模型中的每个相应ml模型,以生成(例如,基于从网络205收集的数据或所提供的训练数据)多个训练阶段预测中的相应训练阶段预测(806)。训练ml模型的示例在本公开的其他地方提供。在一些示例中,预定的多个ml模型是第一多个ml模型,并且ml系统138可以被配置为应用第二多个ml模型,该第二多个ml模型包括第一多个ml模型和一个或多个附加ml模型。然而,代替训练第二多个ml模型中的每个,ml系统138可以从第二多个ml模型选择第一多个ml模型。例如,ml系统138可以使用 hodrick-prescott过滤器来确定输入数据是否具有主要的周期特性或趋势特性,并且从第二多个ml模型选择适合于输入数据的周期特性或趋势特性的ml模型。
144.此外,ml系统138可以基于针对预定的多个ml模型的评估指标来自动确定预定的多个ml模型中的所选择的ml模型(808)。在一些示例中,作为选择ml模型的一部分,针对预定的多个ml模型中的每个相应ml模型,ml系统138可以基于由相应ml模型生成的预测来确定针对相应ml模型的一个或多个评估指标的相应集合。另外,ml系统138可以基于针对相应ml模型的一个或多个评估指标的集合来确定针对相应ml模型的得分。例如,为了确定针对相应ml模型的得分,针对预定的多个ml模型中的每个相应ml模型,ml系统138可以将针对相应ml模型的得分确定为针对相应ml模型的ml指标的加权平均值。ml系统138可以比较针对ml 模型的得分,以确定所选择的预测。在一些示例中,ml系统138可以归一化评估指标,使
得评估指标处于例如(0到10、0到100等) 的公共尺度。在一些示例中,针对相应ml模型的评估指标包括以下一项或多项:相应ml模型的均方根误差、相应ml模型的均方误差、相应ml模型的平均绝对误差、相应ml模型的akaike信息标准 (aic)、或相应ml模型的贝叶斯信息标准(bic)。某些类型的评估指标可能更适合于选择特定类型的ml模型。例如,平方根误差、 aic和bic可能非常适合在基于回归的ml模型中进行选择。
145.ml系统138可以应用所选择的ml模型,以基于从网络205收集的数据来生成预测(810)。例如,在所选择的ml模型是深度学习ml模型的示例中,ml系统138可以执行通过深度学习ml模型的前向通过以生成预测。ml系统138或策略控制器140可以关于预测执行各种操作。例如,在一些示例中,ml系统138或策略控制器 140可以基于该预测来确定是否生成警报。在该示例中,ml系统138 或策略控制器140可以基于生成警报的确定来生成警报。
146.对于本文中(包括在任何流程图或流程图中)描述的过程、装置和其他示例或说明,本文中描述的任何技术中包括的某些操作、动作、步骤或事件可以按照不同顺序执行,可以完全添加、合并或省去(例如,并非所有描述的动作或事件对于实施该技术都是必需的)。此外,在某些示例中,操作、动作、步骤或事件可以例如通过多线程处理、中断处理或多个处理器同时而不是顺序地执行。即使未明确标识为自动执行,其他某些操作、动作、步骤或事件也可以自动执行。而且,被描述为自动执行的某些操作、动作、步骤或事件可以备选地不自动执行,而是在一些示例中,这样的操作、动作、步骤或事件可以响应于输入或另一事件而执行。
147.为了便于说明,在图和/或或本文中引用的其他说明中仅示出了有限数目的设备(例如,用户接口设备129、脊柱设备202、叶设备203、主机设备210、策略控制器140以及其他设备)。然而,根据本公开的一个或多个方面的技术可以用更多的这样的系统、组件、设备、模块和/或其他项目来执行,并且对这样的系统、组件、设备、模块和/ 或其他项目的集体引用可以表示任何数目的这样的系统、组件、设备、模块和/或其他项目。
148.本文中包括的附图各自示出了本公开的一方面的至少一个示例实现。然而,本公开的范围不限于这样的实现。因此,除了附图中所示的之外的在本文中描述的系统、方法或技术的其他示例或备选实现在其他情况下可能是合适的。这样的实现可以包括在附图中包括的设备和/或组件的子集,和/或可以包括在附图中未示出的附加设备和/或组件。
149.上面阐述的详细描述旨在作为各种配置的描述,而非旨在表示可以实践本文中描述的概念的唯一配置。为了提供对各种概念的充分理解,详细描述包括特定细节。但是,可以在没有这些特定细节的情况下实践这些概念。在某些情况下,公知的结构和组件在附图中以框图形式示出了,以避免使这些概念模糊。
150.因此,尽管可以参考特定附图描述各种系统、设备和/或组件的一个或多个实现,这样的系统、设备和/或组件但是可以按照多种不同方式而被实现。例如,在本文中的附图中示出为单独设备的一个或多个设备可以备选地实现为单个设备;例如,示出为单独组件的一个或多个组件可以备选地被实现为单个组件。而且,在一些示例中,在本文中的附图中生成为单个设备的一个或多个设备可以备选地被实现为多个设备;示出为单个组件的一个或多个组件可以备选地被实现为多个组件。这样的多个设备和/或组件中的每个可以经由有线或无线通信直接耦合,和/或经由一个或多个网络远程耦合。而且,可以在本文中的各个附图中示出的一个或多个设备或组件可以备选地实现为在这样的附图中未示出的另一
设备或组件的一部分。以这种和其他方式,本文中描述的一些功能可以通过两个或更多个设备或组件的分布式处理来执行。
151.此外,某些操作、技术、特征和/或功能在本文中可以描述为由特定组件、设备和/或模块执行。在其他示例中,这样的操作、技术、特征和/或功能可以由不同的组件、设备或模块执行。因此,在其他示例中,可以在本文中描述为归因于一个或多个组件、设备或模块的一些操作、技术、特征和/或功能可以归因于其他组件、设备和/或模块,即使本文中没有以这种方式具体描述。
152.尽管已经结合一些示例的描述标识出了特定的优点,但是各种其他示例可以包括所列举的优点中的一些、全部或没有一个。从本公开中,技术或其他方面的其他优点对于本领域的普通技术人员可能变得很清楚。此外,尽管本文中已经公开了特定示例,但是本公开的各个方面可以使用任何数目的技术而被实现,无论当前是否已知,并且因此,本公开不限于本公开中具体描述和/或示出的示例。
153.在一个或多个示例中,所描述的功能可以按照硬件、软件、固件或其任何组合而被实现。如果以软件实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上和/或通过计算机可读介质传输并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质(其对应于诸如数据存储介质等有形介质)、或者通信介质(其包括有助于将计算机程序从一个地方转移到另一地方(例如,根据通信协议)的任何介质)。以这种方式,计算机可读介质通常可以对应于(1)非暂态的有形的计算机可读存储介质,或者(2)诸如信号或载波等通信介质。数据存储介质可以是可以由一个或多个计算机或一个或多个处理器访问以取回指令、代码和/或数据结构以实现本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
154.作为示例而非限制,这种计算机可读存储介质可以包括ram、 rom、eeprom、cd-rom或其他光盘存储、磁盘存储或其他磁性存储设备、闪存、或者可以用于以指令或数据结构形式存储期望的程序代码并且可以由计算机访问的任何其他介质。而且,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或无线技术(诸如红外、无线电和微波) 从网站、服务器或其他远程源发送指令,则介质的定义包括同轴电缆、光纤电缆、双绞线、dsl或无线技术(诸如红外、无线电和微波等)。但是,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬态介质,而是涉及非暂态的有形的存储介质。所使用的磁盘和光盘包括压缩盘(cd)、光盘,数字多功能光盘(dvd) 和蓝光光盘,其中磁盘通常以磁性方式复制数据,而光盘则通过激光以光学方式复制数据。上述的组合也应当被包括在计算机可读介质的范围内。
155.指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)、或其他等效的集成或分立逻辑电路。因此,本文中使用的术语“处理器”或“处理电路”可以分别指任何前述结构或适合于实现所描述的技术的任何其他结构。另外,在一些示例中,所描述的功能可以在专用硬件和/或软件模块内提供。同样,该技术可以在一个或多个电路或逻辑元件中完全实现。
156.本公开的技术可以在包括集成电路(ic)或一组ic(例如,芯片组)在内的多种设备或装置中实现。本公开中描述了各种组件、模块或单元以强调被配置为执行所公开技术的设备的功能方面,但不一定需要由不同硬件单元而被实现。而是,如上所述,各种单元可以
组合在硬件单元中,或者由互操作的硬件单元(包括上述一个或多个处理器)的集合与合适的软件和/或固件相结合来提供。
再多了解一些

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

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

相关文献