CN115934455A - 经由强化学习故障注入的训练数据生成 - Google Patents
经由强化学习故障注入的训练数据生成 Download PDFInfo
- Publication number
- CN115934455A CN115934455A CN202211125543.7A CN202211125543A CN115934455A CN 115934455 A CN115934455 A CN 115934455A CN 202211125543 A CN202211125543 A CN 202211125543A CN 115934455 A CN115934455 A CN 115934455A
- Authority
- CN
- China
- Prior art keywords
- fault
- machine learning
- component
- computer
- computing application
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及经由强化学习故障注入的训练数据生成。提供了用于经由强化学习故障注入来生成训练数据的系统/技术。一种系统可以访问计算应用。在各个方面,该系统可以基于计算应用对经由强化学习确定的迭代故障注入的响应来训练一个或多个机器学习模型。更具体地,该系统可以:将第一故障注入到计算应用中;记录由计算应用响应于第一故障而输出的结果数据集;基于结果数据集和第一故障来训练一个或多个机器学习模型;基于一个或多个机器学习模型的性能度量并且基于结果数据集的数量来计算强化学习奖励;经由执行强化学习算法,基于强化学习奖励来更新故障注入策略;以及基于更新的故障注入策略,将第二故障注入到计算应用中。
Description
技术领域
本公开涉及训练数据的生成,并且更具体地涉及经由强化学习故障注入(fault-Injection)来促进训练数据生成。
背景技术
当计算应用被新部署时,一个或多个机器学习模型通常被实现以监视计算应用。这种一个或多个机器学习模型的性能取决于可用于训练的历史数据的量和质量。不幸的是,因为计算应用是新部署的,所以可能缺乏与计算应用有关和/或由计算应用生成的历史数据,这可能导致一个或多个机器学习模型变为次优训练的。存在一些便于生成合成训练数据的技术。然而,这种现有技术通常依赖于用于增强/修改现有训练数据的预定增强策略。这种预定增强策略是非常限制性的,并且不能保证所得到的增强/修改的训练数据代表现实的操作场景。
因此,可能需要能够解决上述技术问题中的一个或多个的系统和/或技术。
发明内容
以下给出了概述以提供对本发明的一个或多个实施例的基本理解。本概述不旨在标识关键或重要元素,或描绘特定实施例的任何范围或权利要求的任何范围。其唯一目的是以简化形式呈现概念,作为稍后呈现的更详细描述的序言。在本文描述的一个或多个实施例中,描述了可以促进经由强化学习故障注入的训练数据生成的设备、系统、计算机实现的方法、装置和/或计算机程序产品。
根据一个或多个实施例,提供了一种系统。该系统可以包括可以存储计算机可执行组件的存储器。该系统还可以包括处理器,该处理器可以可操作地耦合到存储器并且可以执行存储在存储器中的计算机可执行组件。在各种实施例中,计算机可执行组件可以包括可以访问计算应用的收发器组件。在各个方面,计算机可执行组件还可以包括训练组件,其可以基于计算应用对经由强化学习确定的迭代故障注入的响应来训练一个或多个机器学习模型。更具体地,在各种实例中,计算机可执行组件可以包括故障注入组件,其可以基于故障注入策略将第一故障注入到计算应用中。在各种情况下,计算机可执行组件还可以包括日志记录组件,其可以记录由计算应用响应于第一故障而输出的结果数据集。在各个方面,训练组件可以在结果数据集和第一故障上训练一个或多个机器学习模型。在各种实例中,计算机可执行组件还可以包括奖励组件,其可以评估一个或多个机器学习模型的一个或多个性能度量,评估结果数据集的数量,并且基于一个或多个性能度量和数量来计算强化学习奖励。在各种情况下,计算机可执行组件还可以包括更新组件,其可以经由强化学习算法的执行,基于强化学习奖励来更新故障注入策略。在各个方面,故障注入组件可以基于更新的故障注入策略将第二故障注入到计算应用中。
根据一个或多个实施例,上述系统可以被实现为计算机实现的方法和/或计算机程序产品。
附图说明
图1示出了根据本文描述的一个或多个实施例的促进经由强化学习故障注入的训练数据生成的示例非限制性系统的框图;
图2示出了根据本文描述的一个或多个实施例的示例非限制性计算应用的框图;
图3示出了根据本文描述的一个或多个实施例的包括故障注入策略的促进经由强化学习故障注入的训练数据生成的示例非限制性系统的框图;
图4示出了根据本文描述的一个或多个实施例的示例性非限制性故障注入策略的框图;
图5示出了根据本文描述的一个或多个实施例的包括故障导致数据集的促进经由强化学习故障注入的训练数据生成的示例非限制性系统的框图;
图6示出了根据本文描述的一个或多个实施例的示例非限制性故障导致数据集的框图;
图7示出了根据本文描述的一个或多个实施例的示出如何基于故障导致数据集来训练机器学习模型集合的示例非限制性框图;
图8示出了根据本文描述的一个或多个实施例的包括强化学习奖励的促进经由强化学习故障注入的训练数据生成的示例非限制性系统的框图;
图9示出了根据本文描述的一个或多个实施例的包括强化学习算法的促进经由强化学习故障注入的训练数据生成的示例非限制性系统的框图;
图10示出了根据本文描述的一个或多个实施例的促进经由强化学习故障注入的训练数据生成的示例非限制性计算机实现的方法的流程图;
图11示出了根据本文描述的一个或多个实施例的促进经由强化学习故障注入的训练数据生成的示例非限制性计算机实现的方法的流程图;
图12示出了其中可促进本文描述的一个或多个实施例的示例非限制性操作环境的框图;
图13示出了根据本文描述的一个或多个实施例的示例非限制性云计算环境;
图14示出了根据本文描述的一个或多个实施例的示例非限制性抽象模型层。
具体实施方式
以下详细描述仅是说明性的,并且不旨在限制实施例和/或实施例的应用或使用。此外,并不意图受前面的背景技术或发明内容部分或具体实施方式部分中呈现的任何明示或暗示的信息的约束。
现在参考附图描述一个或多个实施例,其中相同的附图标记始终用于表示相同的元件。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对一个或多个实施例的更透彻理解。然而,在各种情况下,显然可在没有这些特定细节的情况下实践所述一个或多个实施例。
当计算应用被新部署时,或者当现有计算应用被新近从单体架构现代化为分布式架构时,可以实现一个或多个机器学习模型以监视计算应用。例如,计算应用可以是容器化应用,其包括调用和/或以其他方式彼此依赖的任何合适数量的计算组件(例如,微服务、入口、部署、pod、容器、Docker映像)。在这种情况下,一个或多个机器学习模型可以被配置为接收由这样的计算组件生成的数据,并且推断和/或分类由这样的计算组件经历和/或展现的故障/错误的类型(例如,存储器饱和、处理延迟、非预期内容类型)。
这种一个或多个机器学习模型的性能可以取决于可用于训练的历史数据的量和/或质量。不幸的是,因为计算应用是新部署的和/或新现代化的,所以可能缺乏与计算应用有关的和/或由计算应用生成的历史数据。换句话说,计算应用对潜在故障/错误的可能响应的范围可能不是完全先验已知的。历史数据的这种缺乏会阻止一个或多个机器学习模型被最佳地训练。
为了解决历史训练数据的这种缺乏,存在可以促进合成训练数据的生成的一些技术。然而,这种现有技术通常依赖于用于增强/修改现有训练数据的预定增强策略。例如,可以通过插入预定的伪像来增强/修改现有训练数据的副本(例如,可以将不同水平的噪声插入到现有训练数据的不同副本中),并且可以将这种增强/修改的副本视为合成训练数据。不幸的是,这种增强策略是非常限制性的(例如,限于将先前已知的伪像插入到先前已知的训练数据中)。此外,这样的增强策略不能保证所得到的合成训练数据表示现实的操作场景(例如,当部署在现实世界操作环境中时,计算应用可能具有很少可能性和/或不可能遇到和/或产生某些伪像,并且因此训练一个或多个机器学习模型以变得不受这样的伪像影响可以是不必要的和/或不相关的)。
因此,可能需要能够解决这些技术问题中的一个或多个的系统和/或技术。
本发明的各种实施例可以解决这些技术问题中的一个或多个。具体地,本发明的各种实施例可以提供可以促进经由强化学习故障注入的训练数据生成的系统和/或技术。更具体地,本文描述的各种实施例的发明人认识到,对于被配置为监视计算应用的一个或多个机器学习模型,可以通过将计算应用暴露于各种故障场景(例如,通过模拟故障/错误)来生成合成但真实的训练数据。更具体地,对于其所面临的每个故障场景,计算应用可以输出错误数据,并且可以在这样的错误数据上训练一个或多个机器学习模型。由于这样的错误数据由计算应用本身输出,所以这样的错误数据被保证是真实的(例如,被保证代表计算应用在部署在真实世界操作上下文中期间可能输出的数据)。此外,发明人还认识到,为了确保错误数据的适当宽度(例如,为了确保探索计算应用可能经历/遇到的可能故障的范围),可以根据强化学习算法来选择各种故障场景,该强化学习算法迭代直到满足任何适当的阈值标准。换言之,发明人将上述情况构建为强化学习问题,其中一个或多个机器学习模型的内部参数和/或由计算应用产生的错误数据可以被共同地视为强化学习状态,其中将故障注入到计算应用中可以被视为强化学习动作,并且其中错误数据的大小和/或一个或多个机器学习模型在针对错误数据被训练之后的性能质量可以被共同地视为强化学习奖励。以此方式,可以在错误数据上训练一个或多个机器学习模型,其中,这样的错误数据由计算应用本身响应于迭代地暴露于故障场景而生成,并且其中,这样的故障场景由强化学习算法选择。
本文描述的各种实施例可以被认为是用于经由强化学习故障注入促进训练数据生成的计算机化工具。在各个方面,这种计算机化工具可以包括收发器组件、故障注入组件、日志记录组件、训练组件、奖励组件和/或更新组件。
在各种实施例中,可以存在计算应用。在各个方面,计算应用可以是计算机可执行硬件和/或计算机可执行软件的任何合适的组合。例如,计算应用可以是包括一个或多个应用组件的分布式软件程序,该一个或多个应用组件可以调用和/或以其他方式依赖于一个或多个其他应用组件。在一些情况下,应用组件可以是任何合适的微服务(例如,可以执行一个或多个离散功能的服务器和/或软件模块)。在其他情况下,应用组件可以是任何合适的容器化计算对象,诸如对象。如本领域普通技术人员将理解的,作为一些非限制性示例,对象可以包括入口、由入口负载平衡的服务、由服务暴露的部署、由部署管理的pod、由pod执行的容器、由容器实现的Docker映像、和/或由Docker映像指定的软件包。
在各种实施例中,可以存在被配置为监视计算应用的机器学习模型集合。在各个方面,机器学习模型集合可以包括任何合适数量的机器学习模型。在各种实例中,机器学习模型集合中的每个机器学习模型可以展现任何合适的人工智能架构(例如,深度学习神经网络、支持向量机、朴素贝叶斯模型、决策树模型、线性和/或逻辑回归模型)。本领域普通技术人员将理解,机器学习模型集合中的不同机器学习模型可以彼此展现相同和/或不同的人工智能架构。
在各个方面,机器学习模型集合中的每一个可以被设计为监视计算应用。即,在各种情况下,机器学习模型集合中的每一个可以被配置为接收由计算应用生成的一定量的数据作为输入,并且产生识别由计算应用遇到和/或经历的故障/错误的分类和/或标签作为输出。换言之,机器学习模型集合中的每一个可以是分类器,其通过分析由计算应用生成的数据来推断计算应用的错误。
在任何情况下,可以期望在由计算应用输出的误差数据上训练机器学习模型集合。在各种情况下,计算机化工具可以促进这样的功能,如本文所描述的。
在各种实施例中,计算机化工具的收发器组件可以电子地访问计算应用和/或机器学习模型集合和/或以其他方式与计算应用和/或机器学习模型集合电子地通信。在各个方面,收发器组件可以经由任何合适的有线和/或无线电子连接和/或经由任何合适的电子消息、指令和/或命令的传输来促进这样的电子通信。在各种实例中,计算应用和/或机器学习模型集合(例如,定义计算应用和/或定义机器学习模型集合的编码脚本)可以电子地存储在任何合适的集中式和/或分散式数据结构中,并且收发器组件可以通过与这些数据结构进行电子通信来电子地检索和/或以其他方式访问计算应用和/或机器学习模型集合(例如,可以电子地检索和/或访问定义计算应用和/或定义机器学习模型集合的编码脚本)。在任何情况下,收发器组件可以电子地访问计算应用和/或机器学习模型集合,使得计算机化工具的其他组件可以电子地交互(例如,读取、编辑、操纵、执行)计算应用和/或机器学习模型集合(例如,可以与定义计算应用和/或定义机器学习模型集合的编码脚本电子地交互)。
在各种实施例中,计算机化工具的故障注入组件可以电子地存储、维护、控制和/或以其他方式访问故障注入策略。在各个方面,故障注入策略可以是将应用和模型状态集合与可注入故障集合电子地相关的任何合适的映射。在各种实例中,应用和模型状态可以是与计算应用和/或机器学习模型集合有关的任何合适的信息。作为一些非限制性示例,应用和模型状态可以指示:由所述计算应用生成的错误数据的量、类型和/或内容;可以指示由计算应用初始化和/或操纵的变量(例如,输入变量、哑变量、计数器变量)的值;可以指示计算应用的拓扑和/或依赖性结构;可以指示机器学习模型集合的内部参数(例如,权重矩阵、偏置值)的值;可以指示机器学习模型集合的性能度量(例如,准确度、查准率、召回率、曲线下面积、F1评分);和/或可以指示其任何合适的组合。
在各个方面,可注入错误可以是指示可以注入到计算应用中的特定电子错误、指示注入特定电子错误的计算应用中的特定位置(例如,计算应用的特定微服务和/或组件)和/或指示注入特定电子错误到计算应用中的特定时间的任何合适的信息。作为一些非限制性示例,可注入故障可以是:编译时错误,诸如源代码突变(例如,脚本中的一行或多行现有源代码可被改变)、源代码插入(例如,一行或多行新源代码可被添加到脚本)、和/或源代码删除(例如,脚本中的一行或多行现有源代码可被删除/移除);运行时错误,诸如存储器空间的损坏(例如,使用未初始化的存储器、使用非拥有的存储器、引发存储器溢出)、系统调用的损坏(例如,可以拦截从计算应用发送到操作系统内核的系统调用,可以延迟系统调用,和/或可以扰乱/修改系统调用的内容)、和/或网络分组的损坏(例如,可以拦截从计算应用发送到任何其他计算设备的网络分组,可以延迟网络分组,和/或可以扰乱/修改网络分组的内容);和/或其任何合适的组合。如本领域普通技术人员将理解的,如果两个相同类型的可注入故障(例如,两者都是源代码突变,两者都是源代码插入,两者都是源代码删除,两者都是存储器空间的损坏,两者都是系统调用的损坏,和/或两者都是网络分组的损坏)在计算应用中的不同时间和/或不同位置发生,则这两个可注入故障仍然可以被认为是不同的、独特的和/或有区别的。
在任何情况下,故障注入策略可以将应用和模型状态集合映射到可注入故障集合,使得可注入故障集合分别对应于应用和模型状态集合。如本领域普通技术人员将理解的,故障注入策略在一些实施例中可以是确定性的,并且在其他实施例中可以是随机的。
在各个方面中,故障注入组件可以电子地识别计算应用和/或机器学习模型集合的当前状态(例如,通过与计算应用和/或机器学习模型集合电子地通信和/或查询计算应用和/或机器学习模型集合)。在各种实例中,故障注入组件然后可以搜索故障注入策略以寻找当前状态。换言之,故障注入组件可以在故障注入策略中维护的应用和模型状态的集合内定位当前状态。在各种情况下,一旦故障注入组件在应用和模型状态的集合内定位到当前状态,故障注入组件就可以在故障注入策略中所维护的可注入故障的集合内识别与当前状态相对应的特定故障。在各个方面,故障注入组件然后可以将特定故障电子地注入到计算应用中(例如,特定故障可以指定要注入的特定类型的错误、在计算应用中注入特定错误的特定位置和/或注入特定错误的特定定时)。
在各种实施例中,计算机化工具的日志记录组件可以电子地记录、捕获和/或以其他方式存储由计算应用响应于特定故障的注入而输出的结果数据集。作为一个例子,如果故障注入组件将特定故障注入到计算应用的给定微服务中,则给定微服务可以在计算应用的编译、执行和/或运行时期间输出错误数据。此外,在计算应用内并且在给定微服务上游的任何和/或所有其他微服务(例如,直接和/或间接依赖于给定微服务的微服务)也可以在计算应用的编译、执行和/或运行时期间输出错误数据。在各种实例中,日志记录组件可以电子地记录这样的错误数据,并且这样的记录的错误数据可以被认为是由计算应用响应于特定故障的注入而输出的结果数据集。在各种情况下,在计算应用内但不在给定微服务上游的微服务(例如,不直接或间接地依赖于给定微服务的微服务)可以在计算应用的执行/运行时期间生成非错误数据。在各个方面,日志记录组件还可以记录这样的非错误数据,使得所记录的错误数据和所记录的非错误数据可以被共同地视为由计算应用响应于特定故障的注入而输出的结果数据集。
在各种实施例中,计算机化工具的训练组件可以在结果数据集和/或特定故障上电子地训练机器学习模型集合。
更具体地,在各个方面,训练组件可以将结果数据集划分成任何合适数量的数据子集。在一些实例中,数据子集的数量可以等于机器学习模型集合中的机器学习模型的数量(例如,每个机器学习模型一个数据子集)。例如,如果机器学习模型集合包括m个模型,则对于任何合适的正整数m,训练组件可以将结果数据集划分成m个数据子集。实际上,在这种情况下,m个机器学习模型中的第一机器学习模型可以被配置和/或结构化为能够接收m个数据子集中的第一数据子集作为输入,并且m个机器学习模型中的第m个机器学习模型可以被配置和/或结构化为能够接收m个数据子集中的第m个数据子集作为输入。本领域普通技术人员将理解,m个数据子集中的任何两个可以包含彼此相同和/或不同的信息(例如,可以具有彼此相同和/或不同的数据大小,和/或可以包含重叠和/或非重叠信息)。在任何情况下,所有m个数据子集的并集可以等于结果数据集本身。注意,如果机器学习模型集合仅包括一个模型,则训练组件可以完全避免划分结果数据集。相反,在这种情况下,一个且唯一的机器学习模型可以被配置和/或结构化,以便能够接收整个结果数据集作为输入。
在各种实例中,训练组件可以基于数据子集和特定故障以监督的方式训练机器学习模型集合。更具体地,如上所述,机器学习模型集合中的每一个可以被设计为监视计算应用。即,在一些情况下,机器学习模型集合中的每一个可以被配置为接收由计算应用生成的一定量的数据作为输入,并且产生识别由计算应用遇到的故障/错误的分类和/或标签作为输出。因此,每个数据子集可以被认为是训练输入,并且特定故障可以被认为是对应于这样的训练输入的基础事实(ground-truth)标签和/或注释。
为了说明,再次考虑存在m个数据子集和m个机器学习模型的以上示例。在各种情况下,m个机器学习模型中的第一机器学习模型可以具有被随机初始化的内部参数(例如,权重矩阵、偏置值)。在各种实例中,训练组件可以将m个数据子集中的第一数据子集作为输入馈送到第一机器学习模型。在各种情况下,这可以使得第一机器学习模型基于第一数据子集生成一些输出。例如,如果第一机器学习模型是神经网络,则第一数据子集可以由第一机器学习模型的输入层接收,第一数据子集可以完成通过第一机器学习模型的一个或多个隐藏层的正向传递,并且第一机器学习模型的输出层可以基于一个或多个隐藏层的激活来计算输出。在任何情况下,由第一机器学习模型产生的输出可以被认为表示第一机器学习模型相信应当对应于第一数据子集的推断故障。相反,特定故障可以是由故障注入组件注入到计算应用中的实际故障,并且因此特定故障可以被认为实际上对应于基础事实方式中的第一数据子集。如果第一机器学习模型迄今为止尚未经历训练和/或经历很少的训练,则输出可能非常不准确(例如,可能与特定故障非常不同)。在各个方面,训练组件可以计算输出与特定故障之间的损失(例如,交叉熵),并且训练组件然后可以使用这样的损失来更新(例如,经由反向传播)第一机器学习模型的内部参数。
类似地,在各种情况下,m个机器学习模型中的第m个机器学习模型可以具有被随机初始化的内部参数(例如,权重矩阵、偏置值)。在各种实例中,训练组件可以将m个数据子集中的第m数据子集作为输入馈送到第m机器学习模型。在各种情况下,这可以使得第m机器学习模型基于第m数据子集生成一些输出。如上所述,如果第m机器学习模型是神经网络,则第m数据子集可以由第m机器学习模型的输入层接收,第m数据子集可以完成通过第m机器学习模型的一个或多个隐藏层的正向传递,并且第m机器学习模型的输出层可以基于一个或多个隐藏层的激活来计算输出。在任何情况下,由第m机器学习模型产生的输出可以被认为表示第m机器学习模型相信应当对应于第m数据子集的推断故障。相反,如上所述,特定故障可以被认为实际上对应于基础事实方式中的第m个数据子集。如果第m个机器学习模型迄今为止尚未经历训练和/或经历很少的训练,则输出可能非常不准确(例如,可能与特定故障非常不同)。在各个方面,训练组件可计算输出与特定故障之间的损失(例如,交叉熵),并且训练组件然后可使用这样的损失来更新(例如,经由反向传播)第m机器学习模型的内部参数。
以这种方式,训练组件可以通过将m个数据子集作为训练输入并且通过将特定故障作为针对这样的训练输入中的每一个的基础事实标签来对待,来迭代地更新机器学习模型集合的内部参数。
在各种实施例中,计算机化工具的奖励组件可以基于结果数据集并且基于机器学习模型集合来电子地计算强化学习奖励。
更具体地,在各个方面,奖励组件可以在训练组件已经更新机器学习模型集合的内部参数之后电子地评估机器学习模型集合的任何合适的性能度量。例如,在一些情况下,收发器组件可从任何合适的集中式和/或分散式数据结构电子地访问一个或多个验证数据集。在各个方面中,奖励组件可以在一个或多个验证数据集上电子地执行机器学习模型集合。基于这样的执行,奖励组件可以计算机器学习模型集合中的每一个的性能度量(例如,准确性、查准率、召回率、曲线下面积)。
此外,在各个方面,奖励组件可以电子地评估和/或量化由日志记录组件记录的结果数据集的大小和/或数量。在各种情况下,大小和/或数量可根据需要以任何合适的单位表示。作为一些非限制性示例,可以以字节、代码行的数量、字符计数和/或任何其它适当的方式来测量结果数据集的大小和/或数量。
因此,在各个方面中,奖励组件可以基于机器学习模型集合的性能度量并且基于结果数据集的大小/数量来计算强化学习奖励。如本领域普通技术人员将理解的,强化学习奖励可以等于将机器学习模型集合的性能度量和结果数据集的大小/数量两者作为自变量的任何合适的数学函数和/或数学函数的组合(例如,多项式、线性组合、指数、乘法系数)。在各种实例中,强化学习奖励可以被数学地定义,以便当机器学习模型集合的性能度量较大时和/或当结果数据集的大小/数量较大时,强化学习奖励较大,并且当机器学习模型集合的性能度量较小时和/或当结果数据集的大小/数量较小时,强化学习奖励较小。因此,当性能度量和/或大小/数量被最大化时,可以最大化强化学习奖励,并且当性能度量和/或大小/数量被最小化时,可以最小化强化学习奖励。
在各种实施例中,计算机化工具的更新组件可以基于强化学习奖励来电子地更新故障注入策略。更具体地,在各个方面,更新组件可以电子地存储、维护、控制和/或以其他方式访问强化学习算法。在各个方面中,强化学习算法可以是被配置为基于强化学习奖励迭代地更新强化学习策略的任何合适的强化学习技术。作为一些非限制性示例,强化学习算法可以是动态编程、Q学习、深度Q学习和/或近似策略优化。在任何情况下,更新组件可以对故障注入策略并且基于强化学习奖励来电子地执行强化学习算法。如本领域普通技术人员将理解的,这样的执行可以使得强化学习算法修改、更新和/或以其他方式调整故障注入策略(例如,以修改、更新和/或以其他方式调整在可能的应用和模型状态的集合与可能的可注入故障的集合之间的映射)。
在这样的修改、更新和/或调整之后,故障注入组件、日志记录组件、训练组件、奖励组件和/或更新组件可以重复上述功能。即,故障注入组件可以基于更新的故障注入策略将新的故障注入到计算应用中;日志记录组件可以记录由计算应用响应于新故障的注入而产生的新的结果数据集;训练组件可以基于新的结果数据集和新的故障来更新机器学习模型集合的内部参数;奖励组件可以基于机器学习模型集合的新性能度量和/或基于新的结果数据集的大小/数量来计算新的强化学习奖励;并且更新组件可以基于新的强化学习奖励来再次更新故障注入策略。
在各个方面,该过程可以迭代任何合适的次数(例如,直到更新组件确定强化学习奖励已经满足任何合适的阈值)。在这样的迭代中,强化学习算法的重复执行可以使得故障注入策略变为迭代地和/或递增地优化以用于增加强化学习奖励。换句话说,并且如本领域普通技术人员将理解的,由强化学习算法对故障注入策略做出的每个改变/更新可以具有在下一迭代中增加强化学习奖励的值的目的和/或效果。如上所述,可以将强化学习奖励数学地定义为机器学习模型集合的性能度量的函数,使得强化学习奖励的幅度随着性能度量的幅度而上升。因此,最大化强化学习奖励可以使得机器学习模型集合的性能度量相称地变为最大化。
在一些实施例中,计算机化工具还可以包括执行组件。在各个方面,执行组件可以在如上所述最大化机器学习模型集合的性能度量之后,电子地部署和/或执行计算应用和/或机器学习模型集合。
因此,本文描述的各种实施例包括计算机化工具,其可以迭代地将故障注入到计算应用中,所述故障可以由强化学习算法确定,并且可以响应于这样的注入的故障而在由计算应用生成的数据上训练机器学习模型集合。换言之,本文描述的各种实施例的发明人建立了强化学习框架,其中:与计算应用有关和/或由计算应用产生和/或以其他方式与机器学习模型的集合有关的数据可以被认为是强化学习状态;其中,可以在不同时间注入和/或注入到计算应用的不同位置的不同计算故障可以被认为是强化学习动作;并且其中,机器学习模型集合的性能度量和由计算应用响应于注入的故障而生成的数据的大小可以被认为是强化学习奖励。因此,通过在这样的强化学习框架中执行强化学习算法(例如,动态编程、Q学习、近似策略优化),强化学习奖励可以变得优化,并且由于强化学习奖励的定义,这样的优化可以必然地使得机器学习模型集合变得被最优地训练。
本发明的各种实施例可以被采用以使用硬件和/或软件来解决本质上是高度技术性的问题(例如,以促进经由强化学习故障注入的训练数据生成),这些问题不是抽象的并且不能由人类作为一组精神动作来执行。此外,所执行的一些过程可以由专用计算机(例如,强化学习算法,诸如动态编程、Q学习、深度Q学习和/或近似策略优化)来执行。在各个方面,与本发明的各个实施例相关联的一些定义的任务可以包括:由操作地耦合到处理器的设备访问计算应用;以及由所述设备基于所述计算应用对经由强化学习确定的迭代故障注入的响应来训练一个或多个机器学习模型。
人类的头脑和带笔和纸的人都不能电子地访问计算应用,基于故障注入策略将故障(例如,记忆饱和、传输延迟、代码突变)电子地注入到计算应用中,电子地记录由计算应用响应于注入的故障而输出的结果数据集,在结果数据集上电子地训练(例如,经由反向传播)一个或多个机器学习模型,基于一个或多个机器学习模型的性能度量电子地计算强化学习奖励,和/或基于计算的强化学习奖励电子地执行强化学习算法以便更新故障注入策略。实际上,机器学习模型和强化学习算法是不能在计算环境之外以任何合理的、实用的和/或合理的方式执行和/或训练的计算机可执行硬件和计算机可执行软件的特定组合。
在各种实例中,本文描述的一个或多个实施例可以集成到实际应用中。实际上,如本文所述,可以采用系统和/或计算机实现的方法的形式的本发明的各种实施例可以被认为是计算机化工具,其可以将故障电子地注入到计算应用中,并且可以响应于所注入的故障而对由计算应用输出的数据电子地训练机器学习模型。如上所述,对于被配置为监视计算应用的一个或多个机器学习模型,这种一个或多个机器学习模型的性能由可用于训练该一个或多个机器学习模型的训练数据的量和/或质量来支配。当计算应用被新部署和/或新创建时,可能缺少这样的训练数据。因此,应当生成合成训练数据。如上所述,用于生成合成训练数据的现有技术依赖于预定的增强策略(例如,将噪声插入到现有训练数据中),这使得这样的现有技术不能保证任何结果合成训练数据是真实的。完全相反,本文描述的计算机化工具可以迭代地将故障注入到计算应用中,并且由计算应用响应于这样的故障而产生的结果数据可以被认为是合成训练数据。因为合成训练数据由计算应用本身产生,所以保证其是真实的(例如,表示实际上由计算应用输出和/或遇到的数据)。此外,为了确保适当地探索可能的合成训练数据的空间,计算机化工具可以实现故障注入策略以选择将哪些故障注入到计算应用中,并且计算机化工具可以执行强化学习算法(例如,动态编程、Q学习)以迭代地优化故障注入策略。因此,本文描述的计算机化工具可以帮助确保被配置为监视计算应用的一个或多个机器学习模型被适当地训练(例如,实现性能功效的阈值水平),这当然是计算机的有用且实际的应用。
应当理解,附图和本文公开描述了本发明的各种实施例的非限制性示例。
图1示出了根据这里描述的一个或者多个实施例的可以促进经由强化学习故障注入的训练数据生成的示例非限制性系统100的框图。如图所示,故障注入训练系统102可以经由任何合适的有线和/或无线电子连接与计算应用104和/或与机器学习模型集合106电子地集成。
在各种实施例中,计算应用104可以是执行一个或多个计算机化功能的计算机可执行硬件和/或计算机可执行软件的任何合适的组合。也就是说,计算应用104可以是任何合适的计算机化程序和/或计算机化软件,如所期望的。在各个方面,如图所示,计算应用104可以包括n个应用组件,对于任何合适的正整数n:应用组件1到应用组件n。在各种实例中,应用组件1可以是执行计算应用104的一个或多个离散子功能的计算机可执行硬件和/或计算机可执行软件的任何合适的组合。例如,应用组件1可以是计算应用104的微服务。作为另一示例,应用组件1可以是计算应用104的容器化对象,诸如:入口、由入口负载平衡的K服务、由服务暴露的部署、由部署管理的pod、由pod执行的容器、和/或由容器实现的Docker映像。类似地,应用组件n可以是执行计算应用104的一个或多个离散子功能的计算机可执行硬件和/或计算机可执行软件的任何合适的组合(例如,应用组件n可以是微服务和/或容器化计算对象)。
因此,在各种情况下,计算应用104可以被认为是分布式应用,其中应用组件1至应用组件n共同构成计算应用104。图2中示出了这种分布式架构。
图2示出了根据本文描述的一个或多个实施例的示例非限制性计算应用的框图200。换言之,图2示出了计算应用104的分布式结构的非限制性示例实施例。
如该非限制性示例中所示并且出于说明的目的,计算应用104可以包括六个应用组件:应用组件A,应用组件B,应用组件C,应用组件D,应用组件E,应用组件F。在各个方面,计算应用104的编译和/或执行可以使得应用组件A被调用(例如,被执行和/或下载)。为了促进其自身的功能,应用组件A可以调用(例如,可以执行和/或下载)应用组件B和应用组件C,如图所示。换句话说,应用组件A可被认为依赖于应用组件B和应用组件C(例如,应用组件B和C可以是应用组件A的下游;和/或应用组件A可以是应用组件B和C的上游)。以类似的方式,应用组件C可以通过调用(例如,通过执行和/或下载)应用组件D和应用组件E来促进其自身的功能,也就是说,应用组件C可以被认为依赖于应用组件D和应用组件E(例如,应用组件D和E可以是应用组件C的下游;和/或应用组件C可以是应用组件D和E的上游)。由于应用组件A依赖于应用组件C,并且由于应用组件C依赖于应用组件D和E,因此应用组件A可以被认为间接依赖于应用组件D和E。最后,如该非限制性示例所示,应用组件D可以通过调用(例如,通过执行和/或下载)应用组件F来促进其自身的功能。因此,这意味着应用组件D可被认为依赖于应用组件F(例如,应用组件F可以是应用组件D的下游;和/或应用组件D可以是应用组件F的上游)。此外,这意味着应用组件C和应用组件A都间接依赖于应用组件F。
本领域普通技术人员将理解,图2示出了计算应用104的分布式体系结构的仅非限制性示例。
返回参考图1,在各种实施例中,机器学习模型集合106可以包括m个机器学习模型,对于任何合适的正整数m:机器学习模型1至机器学习模型m。在各个方面,机器学习模型1可以展现任何合适的人工智能架构。作为非限制性示例,机器学习模型1可以是神经网络。在这种情况下,机器学习模型1可以包括任何合适数量的神经网络层(例如,输入层、一个或多个隐藏层、输出层),可以包括各种层中的任何合适数量的神经元(例如,不同的层可以具有彼此相同和/或不同数量的神经元),可以包括各种神经元中的任何合适的激活函数(例如,softmax、sigmoid、双曲正切、线性校正单元),和/或可以包括任何合适的中间神经元连接(例如,前向连接、跳过连接、循环连接)。在其他情况下,机器学习模型1可以展示任何其他合适的人工智能架构,诸如支持向量机、XGboost、朴素贝叶斯、随机森林、线性回归和/或逻辑回归。
类似地,在各个方面,机器学习模型m可以展现任何合适的人工智能架构。例如,机器学习模型m可以是神经网络。在这种情况下,机器学习模型m可以包括任何合适数量的神经网络层,可以包括在各个层中的任何合适数量的神经元,可以包括在各个神经元中的任何合适的激活函数,和/或可以包括任何合适的中间神经元连接。在其他情况下,机器学习模型m可以展示任何其他合适的人工智能架构,诸如支持向量机、XGboost、朴素贝叶斯、随机森林、线性回归和/或逻辑回归。
本领域普通技术人员将理解,机器学习模型集合106中的任何一个可以展示彼此相同和/或不同的人工智能架构。
在任何情况下,机器学习模型集合106中的每一个可以被配置和/或设计为监视计算应用104。例如,机器学习模型1可以被配置为接收由计算应用104生成的给定数据(例如,由计算应用104的n个应用组件的给定子集生成的给定数据)作为输入,并且机器学习模型1可以被配置为产生指示折磨计算应用104的故障和/或错误(例如,折磨计算应用104的n个应用组件的给定子集的故障和/或错误)的分类作为输出。同样,机器学习模型m可以被配置为接收由计算应用104生成的不同数据(例如,由计算应用104的n个应用组件的不同子集生成的数据)作为输入,并且机器学习模型m可以被配置为产生指示折磨计算应用104的故障和/或错误(例如,折磨计算应用104的n个应用组件的不同子集的故障和/或错误)的分类作为输出。
在各个方面,计算应用104可以是新开发和/或新创建的,这意味着可能缺少由计算应用104产生的历史数据。历史数据的这种缺乏可以防止机器学习模型集合106变得被充分训练。在各种情况下,故障注入训练系统102可以被认为是可以解决该技术问题的计算机化工具,如下所述。
在各种实施例中,故障注入训练系统102可以包括处理器108(例如,计算机处理单元、微处理器)和可操作地连接到处理器108的计算机可读存储器110。存储器110可以存储计算机可执行指令,所述计算机可执行指令在由处理器108执行时可以使处理器108和/或故障注入训练系统102的其他组件(例如,收发器组件112、故障注入组件114、日志记录组件116、训练组件118、奖励组件120和/或更新组件122)执行一个或多个动作。在各种实施例中,存储器110可以存储计算机可执行组件(例如,收发器组件112、故障注入组件114、日志记录组件116、训练组件118、奖励组件120和/或更新组件122),并且处理器108可以执行计算机可执行组件。
在各种实施例中,故障注入训练系统102可以包括收发器组件112。在各个方面,收发器组件112可以电子地访问、电子地接收计算应用104和/或机器学习模型集合106和/或以其他方式与其进行电子通信。例如,在一些实例中,定义计算应用104和/或定义机器学习模型集合106的一个或多个编码脚本可以电子地存储和/或维护在任何合适的集中式和/或分散式数据结构(未示出)中,并且收发器组件112可以从这样的数据结构电子地检索这样的一个或多个编码脚本。作为另一示例,计算应用104和/或机器学习模型集合106可以由任何合适的计算设备(未示出)托管,并且收发器组件112可以通过与这样的计算设备电子地通信来访问计算应用104和/或机器学习模型集合106。在任何情况下,收发器组件112可以电子地访问和/或获得计算应用104和/或机器学习模型集合106,使得故障注入训练系统102的其他组件可以与计算应用104和/或与机器学习模型集合106电子地交互。
在各种实施例中,故障注入训练系统102可以包括故障注入组件114。在各个方面,故障注入组件114可以电子地存储、维护和/或以其他方式访问故障注入策略。在各种实例中,故障注入策略可以是应用/模型状态集合和计算故障集合之间的映射。在各种情况下,故障注入组件114可以识别计算应用104和/或机器学习模型集合106的当前状态。因此,故障注入组件114可以利用故障注入策略来识别与当前状态相对应的计算故障,并且故障注入组件114可以将所识别的计算故障电子地注入到计算应用104中。
在各种实施例中,故障注入训练系统102可以包括日志记录组件116。在各个方面,日志记录组件116可以电子地记录和/或以其他方式电子地捕获由计算应用104响应于注入所识别的计算故障而生成的结果数据集。换言之,在暴露于/经受所识别的计算故障时,计算应用104可以生成各种错误数据作为对所识别的计算故障的响应,日志记录组件116可以记录和/或以其他方式记录这样的错误数据,并且这样的所记录/记录的错误数据可以被认为是结果数据集。
在各种实施例中,故障注入训练系统102可以包括训练组件118。在各个方面中,训练组件118可以在结果数据集和所识别的计算故障上电子地训练机器学习模型集合106中的每一个。更具体地,训练组件118可以将结果数据集划分成m个数据子集,其中这m个数据子集中的任何一个可以彼此重叠和/或不重叠。因此,这m个数据子集可以被认为分别对应于机器学习模型集合106。即,机器学习模型1可以被配置为接收第一数据子集作为输入,并且机器学习模型m可以被配置为接收第m个数据子集作为输入。在各种实例中,对于机器学习模型集合106中的每一个,m个数据子集中的相应的一个可以被认为是训练输入,并且所识别的计算故障可以被认为是对应于该训练输入的基础事实标签和/或注释。因此,基于这样的训练输入和基础事实标签/注释,训练组件118可以更新(例如,经由反向传播)机器学习模型集合106中的每一个的内部参数。
在各种实施例中,故障注入训练系统102可以包括奖励组件120。在各个方面中,在机器学习模型集合106已经被训练组件118训练之后,奖励组件120可以电子地计算强化学习奖励。更具体地,一旦机器学习模型集合106已经被训练组件118训练,奖励组件120可以评估机器学习模型集合106的性能度量。例如,收发器组件112可以电子地访问任何合适的验证数据集(未示出),奖励组件120可以在这样的验证数据集上执行机器学习模型集合106中的每一个,并且奖励组件120可以相应地计算机器学习模型集合106中的每一个的性能度量(例如,准确性水平、查准率水平和/或召回率水平)。此外,在各种情况下,奖励组件120可以电子地评估由日志记录组件116日志记录/记录的结果数据集的数量。例如,奖励组件120可以估计结果数据集的字节数目(例如,兆字节和/或干兆字节)。在任何情况下,一旦奖励组件120已经评估了机器学习模型集合106的性能度量和结果数据集的数量,奖励组件120就可以基于性能度量和数量来计算/算出强化学习奖励。如本领域普通技术人员将理解的,强化学习奖励可以等于任何适当的将性能度量和数量作为自变量的数学函数和/或数学函数的组合。在各种情况下,强化学习回报可以被数学地定义,使得其幅度随着性能度量和数量而增加。
在各种实施例中,故障注入训练系统102可以包括更新组件122。在各个方面,更新组件122可以基于强化学习奖励来对故障注入策略电子地执行强化学习算法(例如,动态编程、Q学习)。如本领域普通技术人员将理解的,这样的执行可以使得强化学习算法更新和/或以其他方式修改故障注入策略,具有在后续迭代中增加强化学习奖励的效果和/或目标。一旦故障注入策略被更新/修改,上述过程/功能可以被重复。即,故障注入组件114可以将新故障注入到计算应用中,该新故障由更新的故障注入策略确定;日志记录组件116可以记录由计算应用104响应于新故障而产生的新结果数据集;训练组件118可以在新的结果数据集和新的故障上训练机器学习模型集合106;奖励组件120可以基于机器学习模型集合106的新性能度量并且基于新的结果数据集的数量来计算新的强化学习奖励;并且更新组件122可以基于新的强化学习奖励来再次更新故障注入策略。随着这些迭代的进行,它们可以使得由奖励组件120计算的强化学习奖励变得最大化,这可以相应地使得机器学习模型集合106的性能度量变得最大化。
图3示出了根据这里描述的一个或者多个实施例的包括故障注入策略的可以促进经由强化学习故障注入的训练数据生成的示例非限制性系统300的框图。如图所示,在一些情况下,系统300可以包括与系统100相同的组件,并且还可以包括故障注入策略302、应用/模型状态304和/或故障306。
在各个方面,故障注入组件114可以电子地存储、电子地维护和/或以其他方式电子地访问故障注入策略302。在各种实例中,故障注入策略302可以是应用/模型状态到可注入故障的任何合适的映射。
在各种情况下,应用/模型状态可以是与计算应用104和/或机器学习模型集合106有关的任何合适的数据和/或信息。例如,应用/模型状态可以指示计算应用104的拓扑和/或分布式结构(例如,可以指示哪些特定应用组件被包括在计算应用104中,和/或可以指示这样的特定应用组件在计算应用104中如何彼此依赖)。作为另一示例,应用/模型状态可以指示由计算应用104生成的数据的量、类型和/或内容(例如,可以指示什么特定数据已经由计算应用104中的什么特定应用组件输出)。作为又一示例,应用/模型状态可以指示机器学习模型集合106的内部参数的值(例如,可以指示在机器学习模型集合106中的每一个中实现的特定权重矩阵和/或偏置值)。作为又一示例,应用/模型状态可以指示机器学习模型集合106的性能度量(例如,可以指示机器学习模型集合106中的每一个的准确性、查准率和/或召回率的特定水平)。在各种情况下,应用/模型状态可指示上述中的任一者的任何合适组合。
在各个方面中,可注入故障可以是可以在任何合适的时间注入到计算应用104的任何合适的位置(例如,任何合适的应用组件)中的任何合适的计算错误。例如,可注入故障可以是编译时错误,诸如在执行计算应用104之前被应用于计算应用104的任何给定应用组件的源代码突变、插入和/或删除。作为另一示例,可注入故障可以是运行时错误,诸如在计算应用104的执行期间被应用于计算应用104的任何给定应用组件的存储器损坏、系统调用损坏、和/或网络分组损坏。在各种情况下,可注入故障可以包括任何上述故障的任何合适的组合。
如本领域普通技术人员将理解的,故障注入策略302可以根据需要具有任何适当的格式和/或结构。例如,在一些情况下,故障注入策略302可以被格式化和/或构造为将应用/模型状态与对应的可注入故障相链接的查找表。作为另一个示例,在其他情况下,故障注入策略302可以是将应用/模型状态作为自变量并输出相应的可注入故障的数学函数。此外,在一些情况下,故障注入策略302本质上可以是确定性的。在其他情况下,故障注入策略302本质上可以是随机的和/或概率性的。在任何情况下,本领域普通技术人员将理解,故障注入策略302可以是将强化学习状态映射到强化学习动作的任何合适的强化学习策略,其中应用/模型状态可以被认为是强化学习状态,并且其中可注入故障可以被认为是强化学习动作。
在各个方面中,故障注入组件114可以与计算应用104和/或机器学习模型集合106进行电子通信和/或以其他方式对其进行查询,以便识别计算应用104和/或机器学习模型集合106的当前状态。在各种实例中,这种当前状态可被称为应用/模型状态304。换言之,应用/模型状态304可以指示定义计算应用104和/或机器学习模型集合106在当前时间的状态的任何合适的数据。
在各种情况下,基于应用/模型状态304,故障注入组件114可以利用故障注入策略302,以便识别故障306。即,故障注入组件114可以使用故障注入策略302来识别哪个可注入故障对应于应用/模型状态304,并且这样的所识别的可注入故障可以被称为故障306。换言之,基于计算应用104的当前状态和/或机器学习模型集合106的当前状态(例如,基于应用/模型状态304),故障306可以被认为是要被注入到计算应用104中的故障。这将参照图4进一步解释。
图4示出了根据本文所述的一个或多个实施例的示例性非限制性故障注入策略的框图400。也就是说,图4示出了故障注入策略302的非限制性示例实施例。
如图所示,故障注入策略302可以将应用/模型状态集合402映射和/或关联到可注入故障集合404。在各种实例中,如图所示,应用/模型状态集合402可包括x个状态,对于任何合适的正整数x:应用/模型状态1到应用/模型状态x。此外,如图所示,该可注入故障集合404可以包括x个故障:故障1到故障x,换句话说,应用/模型状态集合402可以分别对应于可注入故障集合404。例如,应用/模型状态1可以对应于故障1。在各种情况下,这可以意味着,当计算应用104和/或机器学习模型集合106的当前状态与应用/模型状态1匹配时,故障1是应当被注入到计算应用104中的可注入故障。类似地,应用/模型状态x可以对应于故障x。再次,这可以意味着,当计算应用104和/或机器学习模型集合106的当前状态与应用/模型状态x匹配时,故障x是应当被注入到计算应用104中的可注入故障。
如本领域普通技术人员将理解的,应用/模型状态集合402可以被认为表示计算应用104和/或机器学习模型集合106的所有可能状态的空间。同样,如本领域普通技术人员将进一步理解的,该可注入故障集合404可被认为表示可被注入到计算应用104中的所有可能的电子故障(例如,故障类型、故障定时和/或故障位置)的空间。
在各个方面,如上所述,故障注入组件114可以通过与计算应用104通信和/或以其他方式查询计算应用和/或通过与机器学习模型集合106通信和/或以其他方式查询机器学习模型集合来识别应用/模型状态304。在各种实例中,故障注入组件114然后可以在应用/模型状态集合402内电子地定位应用/模型状态304。在各种情况下,故障注入组件114可以相应地在可注入故障集合404内定位与应用/模型状态304相对应的特定故障。该特定故障可以被称为故障306。
如本领域普通技术人员将理解的,在各种情况下,故障注入组件114可以将故障306电子地注入到计算应用104中。换言之,故障注入组件114可以将故障306应用于计算应用104,可以在计算应用104中实现故障306,和/或可以其他方式使计算应用104遭受故障306。再换言之,故障306可以指定特定计算错误(例如,代码插入、代码突变、代码删除、存储器损坏、软件调用损坏、网络分组损坏),可以指定将成为特定计算错误的目标的特定应用组件,并且可以指定将特定计算错误注入到特定应用组件中的特定时间,并且故障注入组件114可以相应地在该特定时间将特定计算错误注入到特定应用组件中。
图5示出了根据本文描述的一个或多个实施例的包括故障导致数据集的可以促进经由强化学习故障注入的训练数据生成的示例非限制性系统500的框图。如图所示,在一些情况下,系统500可以包括与系统300相同的组件,并且还可以包括故障导致数据集502。
在各个方面,响应于注入故障306,计算应用104可以生成、产生和/或以其他方式输出各种错误。在一些实例中,日志记录组件116可以电子地记录和/或以其他方式电子地捕获这样的错误,并且这样的记录的/捕获的错误可以被称为故障导致数据集502。这将参照图6进一步解释。
图6示出了根据本文所述的一个或多个实施例的示例非限制性故障导致数据集的框图600。更具体地,图6示出了如何将故障306注入到计算应用104中,以便产生故障导致数据集502。
如上所述,在一些非限制性示例中,计算应用104可以包括以分布式方式彼此依赖和/或以其他方式调用的应用组件A至F。在这个非限制性的例子中,假设故障306指定它将被注入到应用组件D中(例如,故障306可以是将被应用到定义应用组件D的编码脚本的代码插入/突变/删除;故障306可以是由应用组件D使用的存储空间的损坏;故障306可以是由应用组件D进行的一个或多个系统调用的损坏;和/或故障306可以是由应用组件D发送和/或检索的一个或多个网络分组的损坏)。因此,如图所示,故障注入组件114可以将故障306注入应用组件D。在各种情况下,在计算应用104的编译和/或执行期间,故障306的注入可以使得应用组件D输出错误602。在各个方面,错误602可以是指示和/或以其他方式对应于应用组件D的错误功能的一个或多个标量、一个或多个向量、一个或多个矩阵、一个或多个张量、一个或多个字符串和/或其任何合适的组合。
在各个方面,由于应用组件C可以在应用组件D的上游和/或以其他方式依赖于应用组件D,并且由于故障306可以阻止应用组件D正确地运行,因此还可以由于故障306而阻止应用组件C正确地运行。因此,应用组件C可输出错误604。在各个方面,错误604可以是指示和/或以其他方式对应于应用组件C的错误功能的一个或多个标量、一个或多个向量、一个或多个矩阵、一个或多个张量、一个或多个字符串和/或其任何合适的组合。
此外,由于应用组件A可以在应用组件C的上游和/或以其他方式依赖于应用组件C,并且由于故障306可以阻止应用组件C正常运行,因此还可以由于故障306而阻止应用组件A正常运行。因此,应用组件A可以输出错误606。在各个方面,错误606可以是指示和/或以其他方式对应于应用组件A的错误功能的一个或多个标量、一个或多个向量、一个或多个矩阵、一个或多个张量、一个或多个字符串和/或其任何合适的组合。
在各种情况下,日志记录组件116可以电子地记录错误602、错误604和错误606。因此,如图所示,错误602、错误604和错误606可以被共同地视为故障导致数据集502。
尽管图6中没有明确示出,但是本领域普通技术人员将理解,在该非限制性示例中,不依赖于应用组件D的应用组件(例如,应用组件B、应用组件E和应用组件F)可以避免响应于故障306注入到应用组件D中而输出错误。相反,这样的其他应用组件可以输出非错误数据(未示出),其可以是一个或多个标量、一个或多个向量、一个或多个矩阵、一个或多个张量、一个或多个字符串和/或其任何适当组合,其指示和/或以其他方式对应于这样的其他应用组件的正确的功能。在各种情况下,日志记录组件116可以电子地记录这样的非错误数据,并且这样的非错误数据可以被认为包括在故障导致数据集502中。
如本领域普通技术人员将理解的,日志记录组件116可以存储/捕获故障导致数据集502,使得故障导致数据集502反映计算应用104的拓扑结构。例如,在一些情况下,计算应用104可以被配置为输出结构化数据,在这种情况下,知道哪个应用组件输出哪个特定错误和/或非错误数据可能是不重要的。然而,在其他情况下,计算应用104可以被配置为输出非结构化数据。在这种情况下,日志记录组件116可以实现任何合适的实体提取和/或实体解析技术,以便识别哪个应用组件输出哪个特定错误和/或非错误数据。作为一些非限制性示例,这样的实体提取/解析技术可以包括基于规则的实体提取/解析(例如,使用计算应用104的拓扑的先验知识来提取实体)、基于查询语言的实体提取/解析(例如,构建字典以将实体与输出数据匹配)、基于语言模型的实体提取/解析(例如,使用经训练的语言模型的概率实体提取)和/或拓扑遍历实体提取/解析(例如,可以构建表示计算应用104的分布式架构的树并且逐节点地遍历该树以将每条记录数据分配给对应的应用组件)。
在各个方面,一旦日志记录组件116已经记录/捕获了故障导致数据集502,训练组件118就可以基于故障导致数据集502来电子地训练机器学习模型集合106。换言之,故障导致数据集502可以被认为是机器学习模型集合106的训练数据。这将参照图7进一步解释。
图7示出了根据这里描述的一个或多个实施例的示出了可以如何基于故障导致数据集502来训练机器学习模型集合106的示例非限制性框图700。
在各种实施例中,如图所示,训练组件118可以将故障导致数据集502电子地划分为m个故障导致数据子集:故障导致数据子集1到故障导致数据子集m。换句话说,对于机器学习模型集合106中的每一个,可以存在一个分别对应的故障导致数据子集。在一些情况下,m个故障导致数据子集中的每一个可以彼此不相交(例如,在一些情况下,m个故障导致数据子集中没有一个可以具有重叠和/或共享的信息)。在其他情况下,m个故障导致数据子集中的任何一个可以彼此不是不相交的(例如,在其他情况下,m个故障导致数据子集中的任何一个可以具有重叠和/或共享的信息)。此外,如本领域普通技术人员将理解的,m个故障导致数据子集中的任何一个可以具有彼此相同和/或不同的大小。在任何情况下,m个故障导致数据子集的并集可以等于故障导致数据集502。此外,如图所示,m个故障导致数据子集可以分别对应于机器学习模型集合106。即,机器学习模型1可以被配置和/或以其他方式被设计为接收故障导致数据子集1作为输入,并且机器学习模型m可以被配置和/或以其他方式被设计为接收故障导致数据子集m作为输入。
在各个方面,训练组件118可以基于故障导致数据子集1和故障306以监督方式电子地训练机器学习模型1。更具体地,机器学习模型1的内部参数(例如,权重矩阵、偏置值)可以以任何适当的方式被初始化(例如,随机初始化)。在各种实例中,训练组件118可以将故障导致数据子集1电子地馈送到机器学习模型1,这可以使机器学习模型1生成输出1。例如,如果机器学习模型1是神经网络,则:机器学习模型1的输入层可以接收故障导致数据子集1;故障导致数据子集1可以完成通过机器学习模型1的一个或多个隐藏层的前向传递;并且机器学习模型1的输出层可以基于由一个或多个隐藏层提供的激活来计算输出1。在任何情况下,输出1可以被认为表示机器学习模型1相信和/或推断应当对应于故障导致数据子集1的计算故障。相反,由于故障导致数据子集1是响应于故障306而创建的,所以故障306可以被认为是对应于故障导致数据集1的实际计算故障。换言之,故障306可以被认为是对应于故障导致数据子集1的基础事实注释。在任何情况下,训练组件118可以计算输出1和故障306之间(例如,输出1和故障306的嵌入向量表示之间)的损失(例如,交叉熵),并且训练组件118可以基于这样的损失来更新(例如,经由反向传播)机器学习模型1的内部参数。
类似地,在各个方面,训练组件118可以基于故障导致数据子集m和故障306以监督的方式电子地训练机器学习模型m。更具体地,机器学习模型m的内部参数(例如,权重矩阵、偏置值)可以以任何合适的方式被初始化(例如,随机初始化)。在各种实例中,训练组件118可以将故障导致数据子集m电子地馈送到机器学习模型m,这可以使机器学习模型m生成输出m。例如,如果机器学习模型m是神经网络,则:机器学习模型m的输入层可接收故障导致数据子集m;故障导致数据子集m可以完成通过机器学习模型m的一个或多个隐藏层的前向传递;并且机器学习模型m的输出层可以基于由一个或多个隐藏层提供的激活来计算输出m。在任何情况下,输出m可以被认为表示机器学习模型m相信和/或推断应当对应于故障导致数据子集m的计算故障。相反,由于故障导致数据子集m是响应于故障306而创建的,所以故障306可以被认为是与故障导致数据子集m相对应的实际计算故障,换言之,故障306可以被认为是与故障导致数据子集m相对应的基础事实注释。在任何情况下,训练组件118可以计算输出m和故障306之间(例如,输出m和故障306的嵌入向量表示之间)的损失(例如,交叉熵),并且训练组件118可以基于这样的损失来更新(例如,经由反向传播)机器学习模型m的内部参数。
以这种方式,训练组件118可以基于故障导致数据集502和故障306来更新和/或训练机器学习模型集合106中的每一个。
图8示出了根据本文描述的一个或多个实施例的包括强化学习奖励的可以促进经由强化学习故障注入的训练数据生成的示例非限制性系统800的框图。如图所示,在一些情况下,系统800可以包括与系统500相同的组件,并且还可以包括一组性能度量802、数据量804和/或奖励806。
在各种实施例中,在训练组件118已经更新机器学习模型集合106的内部参数之后,奖励组件120可以基于机器学习模型集合106来电子地计算性能度量集合802。更具体地,收发器组件112可以电子地接收、检索和/或以其他方式访问m个验证数据集(未示出):验证数据集1到验证数据集m。在各个方面中,奖励组件120可以分别对m个验证数据集执行机器学习模型集合106,并且奖励组件120可以基于这样的执行来计算性能度量集合802。例如,奖励组件120可以对验证数据集1执行机器学习模型1,并且奖励组件120可以基于这样的执行来计算机器学习模型1的准确度水平、查准率水平和/或召回率水平。同样,奖励组件120可对验证数据集m执行机器学习模型m,并且奖励组件120可基于这种执行来计算机器学习模型m的准确度水平、查准率水平和/或召回率水平。因此,这种得到的准确度水平、查准率水平和/或召回率水平可以被共同地认为是性能度量集合802。本领域普通技术人员将理解,在各种实施例中可实现除准确性、查准率和/或召回率之外的任何合适的性能度量(例如,F1得分、曲线下面积)。
此外,在各种方便中,奖励组件120可基于错误导致数据集502电子地计算数据量804。更具体地,数据量804可以被认为表示故障导致数据集502的大小。在各种实例中,数据量804可以以任何合适的单位测量。作为示例,数据量804可以以字节为单位来测量。作为另一示例,数据量804可以以代码行来测量。作为又一示例,数据量804可以用字符计数来度量。
在各种方面中,一旦奖励组件120已产生性能度量集合802和数据量804,奖励组件120便可基于性能度量集合802和/或数据数量804以电子方式计算奖励806。更具体地,奖励806可以是标量,其量值等于和/或以其他方式基于将性能度量集合802作为自变量和/或将数据量804作为自变量的任何合适的数学函数(例如,对数函数、指数函数、多项式函数、线性组合函数、乘法缩放函数)的任何合适的组合。在各种实例中,如本领域普通技术人员将理解的,奖励806可以被数学地定义,使得奖励806的量值随着性能度量集合802的大小增加和/或随着数据量804的大小增加而增加,和/或使得奖励806的量值随着性能度量集合802的大小减小和/或随着数据量804的大小减小而减小。
图9示出了根据本文描述的一个或多个实施例的包括强化学习算法的可以促进经由强化学习故障注入的训练数据生成的示例非限制性系统900的框图。如图所示,在一些情况下,系统900可以包括与系统800相同的组件,并且还可以包括强化学习算法902。
在各种实施例中,更新组件122可以电子地存储、电子地维护和/或以其他方式电子地访问强化学习算法902。在各个方面中,强化学习算法902可以是任何合适的强化学习技术,其可以在执行时基于强化学习奖励来更新强化学习策略。作为示例,强化学习算法902可以是动态编程。作为另一示例,强化学习算法902可以是Q学习。作为又一示例,强化学习算法902可以是深度Q学习。作为又一示例,强化学习算法902可以是邻近策略优化。
在任何情况下,更新组件122可以对故障注入策略302电子地执行强化学习算法902。在各个方面,强化学习算法902的这种执行可以使得故障注入策略302被更新、改变和/或以其他方式修改,其中这种更新、改变和/或修改基于奖励806的量值。换言之,强化学习算法902的执行可以改变应用/模型状态集合402与由故障注入策略302提供的可注入故障集合404之间的映射。如本领域普通技术人员将理解的,这样的更新、改变和/或修改的效果和/或目的可以是在后续迭代中增加奖励806的平均期望值。
在各个方面,一旦更新组件122更新了故障注入策略302,则可以重复上述过程中的各个过程。例如,故障注入组件114可以基于故障注入策略302的更新版本并且基于新的当前应用/模型状态来识别新的故障;故障注入组件114可以将新故障注入到计算应用104中;日志记录组件116可以记录由计算应用104响应于新故障而输出的新故障导致数据集;训练组件118可以基于新的故障导致数据集和新的故障来更新机器学习模型集合106;奖励组件120可以基于机器学习模型集合106的新的性能度量集合并且基于新的结果数据集的数量来计算新的奖励;并且更新组件122可以执行强化学习算法902,以便基于新的回报再次更新故障注入策略302。在各种情况下,这可以重复任何合适的迭代次数。更具体地,在每次迭代,更新组件122可确定奖励806是否满足任何合适的阈值,并且可开始随后的迭代,除非奖励806满足阈值。
换言之,并且如上所述,本文描述的各种实施例的发明人创建了强化学习框架,其中,强化学习状态包括与计算应用104和/或机器学习模型组106有关的任何适当的信息,其中,强化学习动作是将故障注入到计算应用104中,并且其中,基于机器学习模型集合106的性能度量并且基于由计算应用104响应于故障的注入而输出的数据的大小来计算强化学习回报。
尽管未在图中示出,但是本文描述的各种实施例可以包括主动学习,其中主题专家(例如,人类和/或其他)手动选择下一个故障以注入到计算应用104中。
图10示出了根据这里描述的一个或者多个实施例的可以促进经由强化学习故障注入的训练数据生成的示例非限制性计算机实现的方法1000的流程图。在各种情况下,故障注入训练系统102可以促进计算机实现的方法1000。
在各种实施例中,动作1002可以包括由操作地耦合到处理器的设备(例如,经由112)访问计算应用(例如,104)和被配置为监视计算应用的机器学习模型集合(例如,106)。
在各个方面,动作1004可以包括由设备(例如,经由114)访问将计算应用和/或机器学习模型集合的状态(例如,402)映射到计算故障(例如,404)的故障注入策略(例如,302)。
在各种实例中,动作1006可以包括由设备(例如,经由114)根据计算应用和/或机器学习模型集合的当前状态(例如,304)从故障注入策略中选择计算故障(例如,306)。
在各种情况下,动作1008可以包括由设备(例如,经由114)将所选择的计算故障注入到计算应用中。
在各个方面,动作1010可以包括由设备(例如,经由116)记录由计算应用响应于所选择的计算故障的注入而生成的数据(例如,502)。
在各种实例中,动作1012可以包括由设备(例如,经由118)基于所记录的数据和所选择的计算故障来更新机器学习模型集合的内部参数。
在各种情况下,动作1014可以包括由设备(例如,经由120)基于机器学习模型集合的性能度量(例如,802)和/或基于所记录的数据的数量(例如,804)来计算奖励(例如,806)。
在各个方面,动作1016可以包括由设备(例如,经由122)确定奖励是否满足阈值。如果是,则计算机实现的方法1000可以前进至动作1020,在那里结束。如果否,则计算机实现的方法1000可以前进至动作1018。
在各种实例中,动作1018可以包括由设备(例如,经由122)经由强化学习算法(例如,902)来更新故障注入策略。在各种情况下,计算机实现的方法1000可以继续回到动作1006。因此,动作1006和1018可以重复,直到计算的奖励满足阈值。
图11示出了根据这里描述的一个或者多个实施例的可以促进经由强化学习故障注入的训练数据生成的示例非限制性计算机实现的方法1100的流程图。在各种情况下,故障注入训练系统102可以促进计算机实现的方法1100。
在各种实施例中,动作1102可以包括由操作地耦合到处理器的设备(例如,经由112)访问计算应用(例如,104)。
在各个方面,动作1104可以包括由设备(例如,经由118)基于计算应用对由强化学习(例如,302、806和/或902)确定的迭代故障注入的响应(例如,502)来训练一个或多个机器学习模型(例如,106)。
尽管在图11中未明确示出,基于计算应用对迭代故障注入的响应来训练一个或多个机器学习模型可以包括:由设备(例如,经由114)基于故障注入策略(例如,302)将第一故障(例如,306)注入到计算应用中;由设备(例如,116)记录由计算应用响应于第一故障而输出的结果数据集(例如,502);由设备(例如,经由118)对结果数据集和第一故障训练一个或多个机器学习模型;在训练之后,由设备(例如,经由120)评估一个或多个机器学习模型的一个或多个性能度量(例如,802);由设备(例如,经由120)评估结果数据集的量(例如,804);由设备(例如,经由120)基于一个或多个性能度量和所述量来计算强化学习奖励(例如,806);由设备(例如,经由122)并且经由强化学习算法(例如,902)的执行,基于强化学习奖励来更新故障注入策略;以及由设备(例如,114)基于更新的故障注入策略将第二故障注入到计算应用中。
本文描述的各种实施例包括计算机化工具,其可以在错误数据上训练一个或多个机器学习模型,其中这样的错误数据由计算应用响应于计算故障的迭代注入而输出,并且其中这样的计算故障根据强化学习算法来确定。这样的计算机化工具可以帮助确保即使在缺少与计算应用相关联的历史训练数据的情况下,也充分地训练了一个或多个机器学习模型。因此,这种计算机化工具当然是计算机的有用和实际的应用。
在各种实例中,机器学习算法和/或模型可以以任何合适的方式来实现以促进本文描述的任何合适的方面。为了促进本发明的各实施例的上述机器学习方面中的某一些,考虑以下对人工智能(AI)的讨论。本发明的各实施例可以采用人工智能来便于使本发明的一个或多个特征自动化。这些组件可以采用各种基于AI的方案来执行本文所公开的各种实施例/示例。为了提供或帮助本发明的众多确定(例如,确定、查明、推断、计算、预测、估计、导出、预报、检测、计算),本发明的组件可以检查其被准许访问的数据的整体或子集,并且可以提供从经由事件和/或数据捕捉的一组观察中推理或确定系统和/或环境的状态。例如,可以采用确定来识别特定的上下文或动作,或者可以生成状态的概率分布。所述确定可以是概率性的;即,基于对数据和事件的考虑来计算感兴趣的状态的概率分布。确定还可以指用于从一组事件和/或数据中构成更高级事件的技术。
这样的确定可以导致从一组观察到的事件和/或存储的事件数据构造新的事件或动作,而不管事件是否在时间上紧密相关,以及事件和数据是否来自一个或若干个事件和数据源。本文公开的组件可以采用各种分类(显式训练(例如,经由训练数据)以及隐式训练(例如,经由观察行为、偏好、历史信息、接收外来信息等))方案和/或系统(例如,支持向量机、神经网络、专家系统、贝叶斯置信网络、模糊逻辑、数据融合引擎等)来执行与所要求保护的主题相关的自动和/或确定的动作。因此,分类方案和/或系统可以用于自动学习和执行多个功能、动作和/或确定。
分类器可以将输入属性向量z=(z1,z2,z3,z4,zn)映射到输入属于类别的置信度,如通过f(z)=置信度(类别)。这种分类可以采用基于概率和/或统计的分析(例如,将分析效用和成本考虑在内)来确定要自动执行的动作。支持向量机(SVM)可以是可以采用的分类器的一个示例。SVM通过在可能输入的空间中寻找超表面来操作,其中超表面试图将触发准则从非触发事件中分离。直观地,这使得分类对于接近但不等同于训练数据的测试数据是正确的。其它定向和非定向模型分类方法包括,例如朴素贝叶斯、贝叶斯网络、决策树、神经网络、模糊逻辑模型、和/或提供不同独立模式的概率分类模型,其中的任何一种都可被采用。如本文所使用的分类还包括用于开发优先级模型的统计回归。
本领域普通技术人员将理解,本文公开描述了本发明的各种实施例的非限制性示例。为了便于描述和/或解释,当讨论本发明的各种实施例时,本文公开的各个部分使用术语“每个”。本领域普通技术人员将理解,术语“每个”的这种使用是非限制性示例。换句话说,当本文公开的内容提供了应用于一些特定的计算机化对象和/或组件的“每个”的描述时,应当理解,这是本发明的各种实施例的非限制性示例,并且还应当理解,在本发明的各种其他实施例中,可以是这样的情况,即这样的描述应用于少于该特定的计算机化对象的“每个”。
本领域普通技术人员将理解,本文的公开描述了本发明的各种实施例的非限制性示例。为了便于描述和/或解释,在讨论本发明的各种实施例时,本文公开的各个部分使用术语“每个”。本领域普通技术人员将理解,术语“每个”的这种使用是非限制性示例。换言之,当本文的公开提供了应用于一些特定的计算机化对象和/或组件的“每个”的描述时,应当理解,这是本发明的各种实施例的非限制性示例,并且还应当理解,在本发明的各种其他实施例中,可以是这样的情况,即这样的描述应用于少于该特定的计算机化对象的“每个”。
为了提供用于本文描述的各种实施例的附加上下文,图12和以下讨论旨在提供其中可实现本文描述的实施例的各种实施例的合适的计算环境1200的简要、一般描述。尽管以上在可在一个或多个计算机上运行的计算机可执行指令的一般上下文中描述了各实施例,但本领域的技术人员将认识到,各实施例也可结合其它程序模块和/或作为硬件和软件的组合来实现。
通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构等。此外,本领域的技术人员可以理解,本发明的方法可以用其它计算机系统配置来实施,包括单处理器或多处理器计算机系统、小型机、大型计算机、物联网(IoT)设备、分布式计算系统、以及个人计算机、手持式计算设备、基于微处理器的或可编程消费电子产品等,其每一个都可以操作上耦合到一个或多个相关联的设备。
这里的实施例的所示实施例也可以在分布式计算环境中实践,其中某些任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
计算设备通常包括各种介质,其可以包括计算机可读存储介质、机器可读存储介质和/或通信介质,这两个术语在此如下彼此不同地使用。计算机可读存储介质或机器可读存储介质可以是可由计算机访问的任何可用存储介质,并且包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读存储介质或机器可读存储介质可结合用于存储诸如计算机可读或机器可读指令、程序模块、结构化数据或非结构化数据等信息的任何方法或技术来实现。
计算机可读存储介质可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、光盘只读存储器(CDROM)、数字多功能盘(DVD)、蓝光盘(BD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备、固态驱动器或其他固态存储设备、或可以用于存储期望信息的其他有形和/或非瞬态介质。就这一点而言,如应用于存储装置、存储器或计算机可读介质的本文的术语“有形”或“非暂时性”将被理解为仅排除传播暂时性信号本身作为修饰语,并且不放弃对不仅传播暂时性信号本身的所有标准存储装置、存储器或计算机可读介质的权利。
计算机可读存储介质可以由一个或多个本地或远程计算设备例如经由访问请求、查询或其他数据检索协议来访问,以便针对由介质存储的信息进行各种操作。
通信介质通常以诸如已调制数据信号等数据信号,例如载波或其它传输机制来体现计算机可读指令、数据结构、程序模块或其它结构化或非结构化数据,并包括任何信息传递或传输介质。术语“已调制数据信号”或多个信号指以在一个或多个信号中编码信息的方式设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。
再次参考图12,用于实现本文描述的方面的各实施例的示例环境1200包括计算机1202,计算机1202包括处理单元1204、系统存储器1206和系统总线1208。系统总线1208将包括但不限于系统存储器1206的系统组件耦合到处理单元1204。处理单元1204可以是各种市场上可买到的处理器中的任何一种。双微处理器和其它多处理器体系结构也可用作处理单元1204。
系统总线1208可以是若干类型的总线结构中的任一种,这些总线结构还可互连到存储器总线(带有或不带有存储器控制器)、外围总线、以及使用各类市场上可购买到的总线体系结构中的任一种的局部总线。系统存储器1206包括ROM 1210和RAM 1212。基本输入/输出系统(BIOS)可以存储在诸如ROM、可擦除可编程只读存储器(EPROM)、EEPROM等非易失性存储器中,其中BIOS包含帮助诸如在启动期间在计算机1202内的元件之间传输信息的基本例程。RAM 1212还可以包括诸如静态RAM之类的高速RAM,用于高速缓存数据。
计算机1202还包括内部硬盘驱动器(HDD)1214(例如,EIDE、SATA)、一个或多个外部存储设备1216(例如,磁软盘驱动器(FDD)1216、记忆棒或闪存驱动器读取器、存储卡读取器等)以及驱动器1220,例如,诸如固态驱动、光盘驱动,其可以从诸如CD-ROM盘、DVD、BD等的盘1222读取或写入。或者,在涉及固态驱动的情况下,不包括盘1222,除非是分离的。虽然内部HDD 1214被示为位于计算机1202内,但内部HDD 1214还可被配置成在合适的机壳(未示出)中供外部使用。另外,虽然在环境1200中未示出,但是除了HDD 1214之外,或者代替HDD 1214,可以使用固态驱动器(SSD)。HDD 1214、外部存储设备1216和驱动器1220可以分别通过HDD接口1224、外部存储接口1226和驱动器接口1228连接到系统总线1208。用于外置驱动器实现的接口1224可包括通用串行总线(USB)和电气电子工程师协会(IEEE)1394接口技术中的至少一者或两者。其它外部驱动器连接技术在本文描述的实施例的考虑范围内。
驱动器及其相关联的计算机可读存储介质提供数据、数据结构、计算机可执行指令等的非易失性存储。对于计算机1202,驱动器和存储介质容纳以适当的数字格式的任何数据的存储。尽管以上对计算机可读存储介质的描述涉及相应类型的存储设备,但本领域的技术人员应当理解,计算机可读的其它类型的存储介质,无论是当前存在的还是将来开发的,也可在示例操作环境中使用,并且此外,任何这样的存储介质可包含用于执行此处所描述的方法的计算机可执行指令。
多个程序模块可以存储在驱动器和RAM 1212中,包括操作系统1230、一个或多个应用程序1232、其它程序模块1234和程序数据1236。操作系统、应用程序、模块和/或数据的全部或部分也可被高速缓存在RAM 1212中。这里描述的系统和方法可以利用各种商业上可获得的操作系统或操作系统的组合来实现。
计算机1202可以可选地包括仿真技术。例如,系统管理程序(未示出)或其它中介可以为操作系统1230仿真硬件环境,并且所仿真的硬件可以可选地不同于图12中所示的硬件,在这样的实施例中,操作系统1230可以包括在计算机1202处托管的多个VM中的一个虚拟机(VM)。此外,操作系统1230可以提供运行时环境,例如Java运行时环境或.NET框架,用于应用1232。运行时环境是允许应用1232在包括该运行时环境的任何操作系统上运行的一致执行环境。类似地,操作系统1230可以支持容器,并且应用1232可以是容器的形式,其是包括例如代码、运行时、系统工具、系统库和用于应用的设置的轻量级、独立、可执行软件包。
此外,计算机1202可以用安全模块来启用,诸如可信处理模块(TPM)。例如,对于TPM,引导组件在引导组件的时间上散列下一个,并且在加载下一个引导组件之前等待结果与安全值的匹配。该过程可以在计算机1202的代码执行栈中的任何层发生,例如,应用在应用执行级或操作系统(OS)内核级,从而在任何代码执行级实现安全性。
用户可以通过一个或多个有线/无线输入设备,例如键盘1238、触摸屏1240和诸如鼠标1242等定点设备将命令和信息输入到计算机1202中。其它输入设备(未示出)可包括话筒、红外(IR)遥控器、射频(RF)遥控器、或其它遥控器、操纵杆、虚拟现实控制器和/或虚拟现实头戴式耳机、游戏垫、指示笔、图像输入设备(例如,相机)、姿势传感器输入设备、视觉移动传感器输入设备、情绪或面部检测设备、生物测定输入设备(例如,指纹或虹膜扫描仪)等。这些和其它输入设备通常通过可耦合到系统总线1208的输入设备接口1244连接到处理单元1204,但也可通过其它接口连接,如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口、接口等。
监视器1246或其它类型的显示设备也可经由诸如视频适配器1248等接口连接到系统总线1208。除了监视器1246之外,计算机通常包括其它外围输出设备(未示出),如扬声器、打印机等。
计算机1202可以使用经由有线和/或无线通信到一个或多个远程计算机(诸如远程计算机1250)的逻辑连接在联网环境中操作。远程计算机1250可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其它常见的网络节点,并且通常包括相对于计算机1202描述的许多或所有元件,但为了简明起见仅示出了存储器/存储设备1252。所描绘的逻辑连接包括到局域网(LAN)1254和/或更大的网络,例如广域网(WAN)1256的有线/无线连接。这样的LAN和WAN联网环境在办公室和公司中是常见的,并且促进了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网等全球通信网络。
当在LAN网络环境中使用时,计算机1202可通过有线和/或无线通信网络接口或适配器1258连接到局域网1254。适配器1258可以促进到LAN 1254的有线或无线通信,其还可以包括设置在其上的无线接入点(AP),用于以无线模式与适配器1258通信。
当在WAN联网环境中使用时,计算机1202可包括调制解调器1260,或者可经由用于通过WAN 1256,诸如通过因特网建立通信的其它手段连接到WAN 1256上的通信服务器。调制解调器1260可以是内置或外置的,并且可以是有线或无线设备,它可以通过输入设备接口1244连接到系统总线1208。在网络化环境中,相对于计算机1202或其部分描述的程序模块可被储存在远程存储器/存储设备1252中。可以理解,所示的网络连接是示例,并且可以使用在计算机之间建立通信链路的其它手段。
当在LAN或WAN联网环境中使用时,计算机1202可以访问云存储系统或其他基于网络的存储系统,作为如上所述的外部存储设备1216的补充或替代,诸如但不限于提供信息的存储或处理的一个或多个方面的网络虚拟机。通常,计算机1202和云存储系统之间的连接可例如分别由适配器1258或调制解调器1260通过LAN 1254或WAN1256建立。在将计算机1202连接到相关联的云存储系统时,外部存储接口1226可以在适配器1258和/或调制解调器1260的帮助下管理由云存储系统提供的存储,如同它将管理其他类型的外部存储一样。例如,外部存储接口1226可以被配置为提供对云存储源的访问,就像这些源被物理地连接到计算机1202一样。
计算机1202可以用于与操作上设置在无线通信中的任何无线设备或实体通信,例如打印机、扫描仪、台式和/或便携式计算机、便携式数据助理、通信卫星、与无线可检测标签相关联的任何设备或位置(例如,公用电话亭、报亭、商店货架等)以及电话。这可以包括无线保真(Wi-Fi)和无线技术。因此,通信可以是如常规网络的预定义结构,或者仅仅是至少两个设备之间的自组织通信。
现在参考图13,描绘了说明性云计算环境1300。如图所示,云计算环境1300包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点1302,所述本地计算设备例如个人数字助理(PDA)或蜂窝电话1304、台式计算机1306、膝上型计算机1308和/或汽车计算机系统1310。节点1302可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境1300提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图13中所示的计算设备1304和1310的类型仅是说明性的,并且计算节点1302和云计算环境1300可以与任何类型的计算设备通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)进行通信。
现在参考图14,示出了由云计算环境1300(图13)提供的一组功能抽象层。为了简洁,省略了在这里描述的其它实施例中采用的类似元件的重复描述。应当预先理解,图14中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描述的,提供了下面的层和相应的功能。
硬件和软件层1402包括硬件和软件组件。硬件组件的示例包括:大型机1404;基于RISC(精简指令集计算机)架构的服务器1406;服务器1408;刀片服务器1410;存储设备1412;以及网络和联网组件1414。在一些实施例中,软件组件包括网络应用服务器软件1416和数据库软件1418。
虚拟化层1420提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器1422;虚拟存储器1424;虚拟网络1426,包括虚拟专用网络;虚拟应用和操作系统1428;以及虚拟客户机1430。
在一个示例中,管理层1432可以提供以下描述的功能。资源供应1434提供对被用来执行云计算环境内的任务的计算资源和其他资源的动态采购。计量和定价1436提供了在云计算环境中利用资源时的成本跟踪,以及针对这些资源的消耗的计费或计价。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户1438为消费者和系统管理员提供对云计算环境的访问。服务级别管理1440提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)规划和履行1442提供对云计算资源的预安排和采购,其中根据SLA来预计未来需求。
工作负载层1444提供可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:映射和导航1446;软件开发和生命周期管理1448;虚拟教室教育递送1450;数据分析处理1452;交易处理1454;以及经由强化学习故障注入的训练数据生成1456。本发明的各种实施例可以利用参考图13和14描述的云计算环境来执行根据这里描述的各种实施例的一个或多个经由强化学习故障注入的训练数据生成过程。
本发明可以是任何可能的技术细节集成水平的系统、方法、装置和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表还可以包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任何组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作动作,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
尽管以上在运行在一个和/或多个计算机上的计算机程序产品的计算机可执行指令的一般上下文中描述了本主题,但是本领域的技术人员将认识到,本公开也可以结合其它程序模块来实现或可以结合其它程序模块来实现。通常,程序模块包括执行特定任务和/或实现特定抽象数据类型的例程、程序、组件和/或数据结构。此外,本领域的技术人员可以理解,本发明的计算机实现的方法可以用其它计算机系统配置来实施,包括单处理器或多处理器计算机系统、小型计算设备、大型计算机、以及计算机、手持式计算设备(例如,PDA、电话)、基于微处理器的或可编程的消费或工业电子产品等。所示的各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。然而,本公开的一些方面,如果不是所有方面,可以在独立计算机上实践。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
如本申请中所使用的,术语“组件”、“系统”、“平台”、“接口”等可以指代和/或可以包括计算机相关的实体或与具有一个或多个特定功能的操作机器相关的实体。这里公开的实体可以是硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是,但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。作为说明,在服务器上运行的应用程序和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,并且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。在另一示例中,相应组件可从其上存储有各种数据结构的各种计算机可读介质执行。这些组件可以经由本地和/或远程进程进行通信,例如根据具有一个或多个数据分组的信号(例如,来自一个组件的数据,该组件经由该信号与本地系统、分布式系统中的另一个组件进行交互和/或通过诸如因特网之类的网络与其它系统进行交互)。作为另一个示例,组件可以是具有由电气或电子电路操作的机械部件提供的特定功能的装置,该电气或电子电路由处理器执行的软件或固件应用程序操作。在这种情况下,处理器可以在装置的内部或外部,并且可以执行软件或固件应用的至少一部分。作为又一示例,组件可以是通过电子组件而不是机械部件来提供特定功能的装置,其中电子组件可以包括处理器或其他装置以执行至少部分地赋予电子组件的功能的软件或固件。在一方面,组件可经由虚拟机来仿真电子组件,例如在云计算系统内。
此外,术语“或”旨在表示包含性的“或”而不是排他性的“或”。也就是说,除非另外指定,或者从上下文中清楚,否则“X采用A或B”旨在表示任何自然的包含性排列。也就是说,如果X采用A;X采用B;或者X采用A和B两者,则在任何前述实例下都满足“X采用A或B”。此外,除非另外指定或从上下文中清楚是指单数形式,否则如在本说明书和附图中使用的冠词“一”和“一个”一般应被解释为表示“一个或多个”。如本文所使用的,术语“示例”和/或“示例性的”用于表示用作示例、实例或说明。为了避免疑问,本文公开的主题不受这些示例限制。此外,本文中描述为“示例”和/或“示例性”的任何方面或设计不一定被解释为比其它方面或设计优选或有利,也不意味着排除本领域普通技术人员已知的等效示例性结构和技术。
如在本说明书中所采用的,术语“处理器”可以指基本上任何计算处理单元或设备,包括但不限于单核处理器;具有软件多线程执行能力的单处理器;多核处理器;具有软件多线程执行能力的多核处理器;具有硬件多线程技术的多核处理器;平行平台;以及具有分布式共享存储器的并行平台。另外,处理器可以指被设计为执行本文描述的功能的集成电路、专用集成电路(ASIC)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑控制器(PLC)、复杂可编程逻辑器件(CPLD)、分立门或晶体管逻辑、分立硬件组件或其任意组合。此外,处理器可以采用纳米级架构,例如但不限于基于分子和量子点的晶体管、开关和门,以便优化空间使用或增强用户设备的性能。处理器也可以实现为计算处理单元的组合。在本公开中,诸如“存储”、“存储装置”、“数据存储”、“数据存储装置”、“数据库”以及与组件的操作和功能相关的基本上任何其他信息存储组件之类的术语被用来指代“存储器组件”、体现在“存储器”中的实体或包括存储器的组件。应了解,本文所描述的存储器和/或存储器组件可为易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。作为说明而非限制,非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)、闪存或非易失性随机存取存储器(RAM)(例如,铁电RAM(FeRAM)。易失性存储器可包括RAM,RAM可用作外部高速缓存存储器。例如作为说明而非限制,RAM可以许多形式获得,诸如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据率(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、直接Rambus RAM(DRRAM)、直接Rambus动态RAM(DRDRAM)和Rambus动态RAM(RDRAM)。另外,所公开的系统或计算机实现的方法的存储器组件意图包括但不限于这些以及任何其他合适类型的存储器。
以上描述的内容仅包括系统和计算机实现的方法的示例。当然,不可能为了描述本公开而描述组件或计算机实现的方法的每个可想到的组合,但是本领域的普通技术人员可以认识到,本公开的许多进一步的组合和置换是可能的。此外,就在详细描述、权利要求书、附录和附图中使用术语“包括”、“具有”、“拥有”等来说,这些术语旨在以与术语“包含”在权利要求书中用作过渡词时所解释的类似的方式为包含性的。
已经出于说明的目的呈现了对各种实施例的描述,但是不旨在是穷举的或限于所公开的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
Claims (15)
1.一种系统,包括:
处理器,其执行存储在计算机可读存储器中的计算机可执行组件,所述计算机可执行组件包括:
访问计算应用的收发器组件;以及
训练组件,所述训练组件基于所述计算应用对经由强化学习确定的迭代故障注入的响应来训练一个或多个机器学习模型。
2.根据权利要求1所述的系统,其中所述计算机可执行组件还包括:
故障注入组件,其基于故障注入策略将第一故障注入到所述计算应用中。
3.根据权利要求2所述的系统,其中所述计算机可执行组件还包括:
日志记录组件,其记录由所述计算应用响应于所述第一故障而输出的结果数据集。
4.根据权利要求3所述的系统,其中所述训练组件在所述结果数据集和所述第一故障上训练所述一个或多个机器学习模型。
5.根据权利要求4所述的系统,其中所述计算机可执行组件还包括:
奖励组件,其在训练之后评估所述一个或多个机器学习模型的一个或多个性能度量,评估所述结果数据集的数量,并且基于所述一个或多个性能度量和所述数量来计算强化学习奖励。
6.根据权利要求5所述的系统,其中所述计算机可执行组件还包括:
更新组件,其经由强化学习算法的执行,基于所述强化学习奖励来更新所述故障注入策略。
7.根据权利要求6所述的系统,其中,所述故障注入组件基于所述更新的故障注入策略将第二故障注入到所述计算应用中。
8.一种计算机实现的方法,包括:
由操作地耦合到处理器的设备访问计算应用;以及
由所述设备基于所述计算应用对经由强化学习确定的迭代故障注入的响应来训练一个或多个机器学习模型。
9.根据权利要求8所述的计算机实现的方法,其中基于所述计算应用对迭代故障注入的响应来训练所述一个或多个机器学习模型包括:
由所述设备基于故障注入策略将第一故障注入到所述计算应用中。
10.根据权利要求9所述的计算机实现的方法,其中基于所述计算应用对迭代故障注入的响应来训练所述一个或多个机器学习模型还包括:
由所述设备记录由所述计算应用响应于所述第一故障而输出的结果数据集。
11.根据权利要求10所述的计算机实现的方法,其中基于所述计算应用对迭代故障注入的响应来训练所述一个或多个机器学习模型还包括:
由所述设备在所述结果数据集和所述第一故障上训练所述一个或多个机器学习模型。
12.根据权利要求11所述的计算机实现的方法,其中基于所述计算应用对迭代故障注入的响应来训练所述一个或多个机器学习模型还包括:
由所述设备在训练之后评估所述一个或多个机器学习模型的一个或多个性能度量;
由所述设备评估所述结果数据集的数量;以及
由所述设备基于所述一个或多个性能度量和所述数量来计算强化学习奖励。
13.根据权利要求12所述的计算机实现的方法,其中基于所述计算应用对迭代故障注入的响应来训练所述一个或多个机器学习模型还包括:
由所述设备并且经由强化学习算法的执行,基于所述强化学习奖励来更新所述故障注入策略。
14.根据权利要求13所述的计算机实现的方法,其中基于所述计算应用对迭代故障注入的响应来训练所述一个或多个机器学习模型还包括:
由所述设备基于所述更新的故障注入策略将第二故障注入到所述计算应用中。
15.一种用于促进经由强化学习故障注入的训练数据生成的计算机程序产品,所述计算机程序产品包括程序指令,所述程序指令可由处理器执行以使所述处理器实现如权利要求8-14中任一项所述的方法中的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/482,068 US20230087837A1 (en) | 2021-09-22 | 2021-09-22 | Training data generation via reinforcement learning fault-injection |
US17/482068 | 2021-09-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115934455A true CN115934455A (zh) | 2023-04-07 |
Family
ID=85572163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211125543.7A Pending CN115934455A (zh) | 2021-09-22 | 2022-09-15 | 经由强化学习故障注入的训练数据生成 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230087837A1 (zh) |
JP (1) | JP2023046293A (zh) |
CN (1) | CN115934455A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116827685A (zh) * | 2023-08-28 | 2023-09-29 | 成都乐超人科技有限公司 | 基于深度强化学习的微服务系统动态防御策略方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11775693B1 (en) * | 2020-12-10 | 2023-10-03 | University Of Florida Research Foundation, Inc. | Hardware trojan detection using path delay based side-channel analysis and reinforcement learning |
US20230113750A1 (en) * | 2021-10-11 | 2023-04-13 | Salesforce.Com, Inc. | Reinforcement learning based group testing |
CN117808638B (zh) * | 2023-12-08 | 2024-06-04 | 广东信聚丰科技股份有限公司 | 基于用户行为分析的学习内容优化方法及系统 |
-
2021
- 2021-09-22 US US17/482,068 patent/US20230087837A1/en active Pending
-
2022
- 2022-09-15 JP JP2022147140A patent/JP2023046293A/ja active Pending
- 2022-09-15 CN CN202211125543.7A patent/CN115934455A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116827685A (zh) * | 2023-08-28 | 2023-09-29 | 成都乐超人科技有限公司 | 基于深度强化学习的微服务系统动态防御策略方法 |
CN116827685B (zh) * | 2023-08-28 | 2023-11-14 | 成都乐超人科技有限公司 | 基于深度强化学习的微服务系统动态防御策略方法 |
Also Published As
Publication number | Publication date |
---|---|
US20230087837A1 (en) | 2023-03-23 |
JP2023046293A (ja) | 2023-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230087837A1 (en) | Training data generation via reinforcement learning fault-injection | |
US20210232390A1 (en) | Microservice decomposition strategy of monolithic applications | |
US11748648B2 (en) | Quantum pulse optimization using machine learning | |
US10073974B2 (en) | Generating containers for applications utilizing reduced sets of libraries based on risk analysis | |
US11941520B2 (en) | Hyperparameter determination for a differentially private federated learning process | |
US11720826B2 (en) | Feedback loop learning between artificial intelligence systems | |
US20210224605A1 (en) | Mitigating statistical bias in artificial intelligence models | |
US11681914B2 (en) | Determining multivariate time series data dependencies | |
US11425000B2 (en) | On-the-fly reorganization of directed acyclic graph nodes of a computing service for high integration flexibility | |
US11790239B2 (en) | Deep learning testing | |
US11221846B2 (en) | Automated transformation of applications to a target computing environment | |
US20210271966A1 (en) | Transfer learning across automated machine learning systems | |
US20230281470A1 (en) | Machine learning classification of object store workloads | |
WO2023066237A9 (en) | Artificial intelligence model learning introspection | |
US20210367919A1 (en) | Centralized request validation | |
US11074508B2 (en) | Constraint tracking and inference generation | |
US20230267349A1 (en) | Smart training and smart deployment of machine learning models | |
US20240037439A1 (en) | Quantum system selection via coupling map comparison | |
TWI810017B (zh) | 經由程式簡化之訓練資料增強 | |
US11593358B2 (en) | Generation of test datasets for guarded commands | |
US20230115723A1 (en) | Complexity based artificial intelligence model training | |
US20240176871A1 (en) | Systems and methods for software execution environment management | |
US20230281170A1 (en) | Compact representation of object store workloads | |
US20220198324A1 (en) | Symbolic model training with active learning | |
US20230118939A1 (en) | Risk Assessment of a Container Build |
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 |