CN113094200A - 一种应用程序的故障预测方法和装置 - Google Patents

一种应用程序的故障预测方法和装置 Download PDF

Info

Publication number
CN113094200A
CN113094200A CN202110633968.8A CN202110633968A CN113094200A CN 113094200 A CN113094200 A CN 113094200A CN 202110633968 A CN202110633968 A CN 202110633968A CN 113094200 A CN113094200 A CN 113094200A
Authority
CN
China
Prior art keywords
log
log text
word segmentation
sample
vector
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
CN202110633968.8A
Other languages
English (en)
Other versions
CN113094200B (zh
Inventor
秦天柱
罗家润
刘楚蓉
谢宗兴
徐逸扬
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110633968.8A priority Critical patent/CN113094200B/zh
Publication of CN113094200A publication Critical patent/CN113094200A/zh
Application granted granted Critical
Publication of CN113094200B publication Critical patent/CN113094200B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0718Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an object-oriented system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供一种应用程序的故障预测方法和装置,涉及人工智能领域,其中方法包括:获取待检测应用程序的预设时间窗口对应的目标运行日志文本;对目标运行日志文本进行分词处理,得到目标运行日志文本对应的日志文本分词序列;调用目标故障预测模型对日志文本分词序列进行故障预测,得到待检测应用程序的故障预测结果;目标故障预测模型为基于预设时间窗口对应的样本日志文本集和匹配的故障标签对初始预测模型进行故障预测的约束训练得到的模型;样本日志文本集和故障标签为基于预设时间窗口对应的线上问题反馈数据以及与线上问题反馈数据对应的样本日志文本生成的。本申请能够辅助开发人员在用户无感的情况下预先排查线上问题,改善用户体验。

Description

一种应用程序的故障预测方法和装置
技术领域
本申请涉及人工智能领域,尤其涉及一种应用程序的故障预测方法和装置。
背景技术
受网络环境、配置选择、用户标准和测试局限性等影响,在应用程序的运行过程中,不可避免的会存在功能故障,进而产生诸多线上问题。为及时排查应用程序的功能故障,以避免相关线上问题带来的不良体验,需尽早定位线上问题,以便开发人员及时知悉问题和溯源故障根因。但现有技术中通常基于开发人员的先验知识进行线上问题预警和相应的故障预测,存在主观干扰、经验局限性和滞后性等缺陷。
因此,亟需提供一种行之有效的故障预警方案,以解决现有技术中存在的问题。
发明内容
本申请提供了一种应用程序的故障预测方法和装置,可以基于应用程序的日志文本数据进行故障预测,以实现应用程序的线上问题预警。
一方面,本申请提供了应用程序的故障预测方法,所述方法包括:
获取待检测应用程序的预设时间窗口对应的目标运行日志文本;
对所述目标运行日志文本进行分词处理,得到所述目标运行日志文本对应的日志文本分词序列;
调用目标故障预测模型对所述日志文本分词序列进行故障预测,得到所述待检测应用程序的故障预测结果;
其中,所述目标故障预测模型为基于所述预设时间窗口对应的样本日志文本集和匹配的故障标签对初始预测模型进行故障预测的约束训练得到的模型;所述样本日志文本集和所述故障标签为基于所述预设时间窗口对应的线上问题反馈数据以及与所述线上问题反馈数据对应的样本日志文本生成的。
另一方面提供了一种应用程序的故障预测装置,所述装置包括:
日志文本获取模块:用于获取待检测应用程序的预设时间窗口对应的目标运行日志文本;
分词处理模块:用于对所述目标运行日志文本进行分词处理,得到所述目标运行日志文本对应的日志文本分词序列;
故障预测模块:用于调用目标故障预测模型对所述日志文本分词序列进行故障预测,得到所述待检测应用程序的故障预测结果;
其中,所述目标故障预测模型为基于所述预设时间窗口对应的样本日志文本集和匹配的故障标签对初始预测模型进行故障预测的约束训练得到的模型;所述样本日志文本集和所述故障标签为基于所述预设时间窗口对应的线上问题反馈数据以及与所述线上问题反馈数据对应的样本日志文本生成的。
另一方面提供了应用程序的故障预测设备,所述设备包括处理器和存储器,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的应用程序的故障预测方法。
另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的应用程序的故障预测方法。
本申请提供的应用程序的故障预测方法、装置、设备和存储介质,具有如下技术效果:
本申请通过获取待检测应用程序的预设时间窗口对应的目标运行日志文本;对目标运行日志文本进行分词处理,得到目标运行日志文本对应的日志文本分词序列;并调用目标故障预测模型对日志文本分词序列进行故障预测,得到待检测应用程序的故障预测结果,能够自动化地在线上问题大规模暴露以前就实现相应的故障预测和预警,能够辅助开发人员在用户无感的情况下预先定位和排查线上问题,提高用户体验。并且,基于应用程序自身的线上问题反馈数据和对应的样本日志文本生成模型训练数据,标记数据的获取方式简便且与线上问题具有强相关性,也无需构建大量的支撑规则和复杂的知识图谱,能够有效提高模型预测的准确性和训练效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种应用环境的示意图;
图2是本申请实施例提供的一个区块链***的结构示意图;
图3是本申请实施例提供的一种应用程序的故障预测方法的流程示意图;
图4是本申请实施例提供的wordi在高维向量中投射的示意图;
图5是本申请实施例提供的对wordi进行维度扩展的示意图;
图6是本申请实施例提供的对wordi的特征向量进行拆分的示意图;
图7是本申请实施例提供的一种目标故障预测模型的训练方法的流程示意图;
图8是本申请实施例提供的应用程序的故障预测方法的整体框架示意图;
图9是本申请实施例提供的应用程序的故障预测装置的结构框图;
图10是本申请实施例提供的应用程序的故障预测方法的服务器的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
Bert:Bidirectional Encoder Representations from Transformers,基于变换器的双向编码器表示技术,用于自然语言处理的预训练技术。
NLP:Nature Language Process,自然语言处理。
线上问题:应用程序中可能存在并让用户感知的问题。
知识图谱:语义网络的知识库。
Flink:是指Apache Flink,是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时***可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。
人工智能(Artificial Intelligence, AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
自然语言处理(Nature Language processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。
近年来,随着人工智能技术研究和进步,人工智能技术在多个领域得到广泛应用,本申请实施例提供的方案涉及人工智能的机器学习/深度学习和自然语言处理等技术,具体通过如下实施例进行说明:
请参阅图1,图1是本申请实施例提供的一种应用环境的示意图,如图1所示,该应用环境可以至少包括服务器01和终端02,服务器01以及终端02可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例中,服务器01可以包括一个独立运行的服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。此外,多个服务器也可组成为一区块链,而服务器为区块链上的节点。具体的,服务器01可以包括有网络通信单元、处理器和存储器等等。
具体的,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。它将计算任务分布在大量计算机构成的资源池上,使各种应用***能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。其中,人工智能云服务,一般也被称作是AIaaS(AI as a Service,中文为“AI即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说AIaaS平台会把几类常见的AI服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个AI主题商城:所有的开发者都可以通过API接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的AI框架和AI基础设施来部署和运维自已专属的云人工智能服务。
具体的,请参考图2,图2是本申请实施例提供的一个区块链***的结构示意图。服务器01可以为分布式***100中的一个节点200,其中该分布式***可以为区块链***,该区块链***可以是由多个节点通过网络通信的形式连接形成的分布式***,节点之间可以组成点对点(P2P,Peer To Peer)网络,任意形式的计算机设备,比如服务器01、终端02等电子设备都可以通过加入该点对点网络而成为该区块链***中的一个节点,其中区块链包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链***中节点提交的记录数据。
其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新兴应用模式,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
具体的,服务器01可以用于提供待检测应用程序的故障预测服务,以生成对应的故障预测结果。或者也可以进行初始预测模型的训练学习,以生成目标故障预测模型。
本申请实施例中,终端02可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、智能可穿戴设备、车载终端等类型的实体设备,但并不局限于此,也可以包括运行于实体设备中的软体,例如应用程序等。本申请实施例中终端02上运行的操作***可以包括但不限于安卓***、IOS***、linux、windows等。
本申请实施例中,终端02可以用于将待检测应用程序的运行日志数据发送至服务器01,以使服务器01基于该运行日志数据提供故障预测服务,以及还可以用于接收用户基于待检测应用程序的线上问题提交的线上问题反馈数据,并将线上问题反馈数据和对应的样本日志文本发送至服务器01,以使服务器01基于该线上问题反馈数据和对应的样本日志文本进行初始预测模型的训练。本申请实施例中,线上问题可以为应用程序中可能存在并让用户感知的问题。
此外,需要说明的是,图1所示的仅仅是一种应用程序的故障预测方法和装置的应用环境,在实际应用中,应用环境可以包括更多或更少的节点,本申请不做限制。
一款应用程序在上线PC端或移动端后,外部受网络环境、使用配置、用户标准以及上下游产业的影响,内部受产品设计、运营规划、机制安排以及程序测试的局限性,可能会发生运行故障或功能故障等,进而产生线上问题,影响用户体验,现有技术通常采用基于规则进行特征提取或基于模式进行判断等方式对线上问题进行预警,以提示开发人员进行故障排查,但上述方式均需借助全面专业的先验知识来建立大量的规则,具有经验局限性和主观干扰等缺陷,且无法在应用程序升级和扩展后进行快速迭代。因此为了辅助开发人员尽快发现问题并防患于未然,或在早期发现并解决线上问题,需提供一种行之有效的故障预警方案。以下结合图3介绍本申请提供的一种应用程序的故障预测方法,图3是本申请实施例提供的一种应用程序的故障预测方法的流程示意图,本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的***或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图3所示,方法可以包括:
S301:获取待检测应用程序的预设时间窗口对应的目标运行日志文本。
本申请实施例中,待检测应用程序为可能产生线上问题的程序,可以运行在PC端或移动端等。目标运行日志文本可以为对待检测应用程序的历史运行日志数据或实时运行日志数据进行预处理所得到的日志文本。在一个实施例中,获取待检测应用程序的实时运行日志数据,对实时运行日志数据进行预处理,以得到目标运行日志文本。预处理方式包括但不限于流处理等。
相应的,步骤S301可以包括:
S3011:获取待检测应用程序的运行日志数据。
S3013:对运行日志数据进行流处理,得到预设时间窗口对应的目标运行日志文本。
在实际应用中,待检测应用程序运行时会生成运行日志数据,该运行日志数据可以基于卡夫卡和流处理等方式,结合预先构建的数据通道上报到服务器的日志池中,流处理方式可以包括但不限于Flink流处理等。然后,对日志池中的运行日志数据进行流处理,以对运行日志数据进行清洗和过滤等,进而去掉无信息的日志文本,得到初始日志文本,并基于时序以预设时间窗口为聚合窗口对初始日志文本进行分时段聚合,得到预设时间窗口对应的目标运行日志文本。具体地,预设时间窗口的时长可以基于实际需求设定,如预设时间窗口可以为10min,30min或1h等。
在实际应用中,待检测应用程序可以运行在一个或多个终端上,运行日志数据可以来源于一个或多个终端,相应的,目标运行日志文本来源于预设时间窗口对应的一个或多个终端上报的运行日志数据。运行日志数据也可以来源于开发者的上报数据。
在实际应用中,运行日志数据可以为待检测应用程序的全量运行日志数据,或者,待检测应用程序可以包括多个子***,运行日志数据可以为其中一个或几个子***对应的日志数据,以进行相关子***的定向故障预测,或者运行日志数据可以为针对特定的业务、活动或时间段的日志数据,以进行相应的故障预测。
S303:对目标运行日志文本进行分词处理,得到目标运行日志文本对应的日志文本分词序列。
本申请实施例中,目标运行日志文本的分词处理可以基于现有自然语言处理中的分词方式进行处理,将目标运行日志文本拆分为更小粒度,例如基于词粒度、字粒度或子词粒度等分词方式,如基于WordPiece Tokenization方式进行分词处理。WordPieceTokenization是将文本分割为子词粒度的分词方式,是基于连续字节对的出现频率来确定其形成分词的可能性,进而根据该可能性将文本分割成各子词。具体的,可以借助分词工具进行分词处理,也可以将目标运行日志文本输入预设的分词模型,以得到日志文本分词序列。在一些情况下,也可以在目标故障预测模型中设置分词网络,利用目标故障预测模型的分词网络对输入的目标运行日志文本进行分词表征,以得到日志文本分词序列,进而实现端到端的故障预测。
在一个实施例中,分词处理方法可以包括:对目标运行日志文本进行去标点、转小写、去数字和词根化等处理步骤。举例来说,目标运行日志文本例如为“[business.cpp:34]Warning: Database unlinked error”,去标点处理后得到“business cpp 34 WarningDatabase unlinked error”,转小写处理后得到“business cpp 34 warning databaseunlinked error”,去数字处理后得到“business cpp warning database unlinkederror”,以及,词根化处理后得到“business cpp warn database unlink error”。在一些情况下,还会对目标运行日志文本进行词性标注或Batch补充等,如利用[UNK]作为词典外的新词,[PAD]做Batch补充等,以生成具有预设长度的日志文本分词序列。
需要说明的是,可以调用预设分词方法对目标运行日志文本进行分词处理,也可以调用预先训练好的分词模型进行分词处理。也可以将预设分词方法或分词模型集成在下述目标故障预测模型中,作为模型的网络层,实现故障预测的端对端处理。
S305:调用目标故障预测模型对日志文本分词序列进行故障预测,得到待检测应用程序的故障预测结果。
本申请实施例中,目标故障预测模型为基于预设时间窗口对应的样本日志文本集和匹配的故障标签对初始预测模型进行故障预测的约束训练得到的模型;样本日志文本集和故障标签为基于预设时间窗口对应的线上问题反馈数据以及与线上问题反馈数据对应的样本日志文本生成的。初始预测模型可以为预训练语言模型。
在实际应用中,待检测应用程序上线应用后,由于功能故障会产生一些线上问题,线上问题反馈数据为用户针对待检测应用程序的线上问题提交的反馈数据,线上问题反馈数据可以包括但不限于用户的主观评测(如对线上问题严重程度的评分或等级评定)和描述文本信息等。具体的,待检测应用程序预先设置有用户反馈通道,当出现线上问题时,显示用户反馈通道对应的用户反馈界面,反馈界面上可以包括评测选项、打分选项、问题分类选项和问题描述窗口等,以接收用户的反馈。
在实际应用中,线上问题反馈数据对应的样本日志文本可以为与线上问题反馈数据的提交时间对应的日志文本。在待检测应用程序的运行过程中,出现线上问题时会生成相应的问题日志数据,基于线上问题的出现时间或反馈数据的提交时间,可以在后台日志***中获取相应的运行日志数据,进而通过预处理得到样本日志文本。需要说明的是,可以获取线上问题的出现时间点或反馈数据的提交时间点对应的日志文本,也可以是获取线上问题的出现时间段或反馈数据的提交时间段对应的日志文本。样本日志文本包括问题日志数据对应的日志文本,也可以包括该问题日志数据前后的正常日志数据对应的日志文本。
本申请实施例中,故障预测结果用于表征待检测应用程序出现运行故障的可能性,也即出现线上问题的可能性,包括待检测应用程序是否存在故障问题、出现故障问题的概率或故障指标等。具体的,可以设定出现故障问题的概率阈值或故障指标阈值,当故障预测结果中的出现故障问题的概率大于该概率阈值,或当故障指标大于故障指标阈值时,确定待检测应用程序存在故障问题,进而进行线上问题预警。也可以针对每个目标运行日志文本进行预测结果输出,以对各目标运行日志文本进行线上问题预警。
在一些情况下,当对待检测应用程序的全量日志运行数据进行分析时,通过流处理,可以将全量运行日志数据处理为全量运行日志文本,并基于时序将全量运行日志文本聚合为以预设时间窗口为单位的目标运行日志文本,如第一时间窗口(T1)对应的目标运行日志文本,第二时间窗口(T2)对应的目标运行日志文本等,分别将各预设时间窗口对应的目标运行日志文本输入目标故障预测模型,以得到各预设时间窗口的目标运行日志文本对应的预测结果,如T1对应的目标运行日志文本存在故障问题,出现问题概率为78%,T2对应的目标运行日志文本不存在故障问题,出现问题概率为0%等。可以根据各目标运行日志文本的预设结果生成待检测应用程序的故障预测结果。
在另一些情况下,当对待检测应用程序的一个或几个子***对应的日志运行数据进行分析时,可以分别以预设时间窗口为单位对各子***的日志运行数据对应的运行日志文本进行聚合,得到目标运行日志文本,进而分别进行各子***的故障预测,如第一子***的某些目标日志文本存在故障问题,或第一子***的故障预测结果为存在故障问题,故障指标为0.9(故障指标取值范围为0-1),还可以根据各子***的故障预测结果生成待检测应用程序的故障预测结果。
综上,本申请通过获取待检测应用程序的预设时间窗口对应的目标运行日志文本;对目标运行日志文本进行分词处理,得到目标运行日志文本对应的日志文本分词序列;并调用目标故障预测模型对日志文本分词序列进行故障预测,得到待检测应用程序的故障预测结果,能够自动化地在线上问题大规模暴露以前就实现相应的故障预测和预警,能够辅助开发人员在用户无感的情况下预先定位和排查线上问题,提高用户体验。并且,基于应用程序自身的线上问题反馈数据和对应的样本日志文本生成模型训练数据,标记数据的获取方式简便且与线上问题具有强相关性,也无需构建大量的支撑规则和复杂的知识图谱,能够有效提高模型预测的准确性和训练效率。
本申请实施例中,目标故障预测模型包括嵌入网络和特征编码器,相应的,步骤S305可以包括:
S3051:利用目标故障预测模型的嵌入网络对日志文本分词序列进行编码处理,得到日志文本分词序列对应的日志分词向量序列。
在实际应用中,将日志文本分词序列输入上述嵌入网络,通过对其进行编码处理实现向量化表征。在一些实施例中,嵌入网络包括第一嵌入层和第二嵌入层,相应的,步骤S3051可以包括:
S30511:通过第一嵌入层对日志文本分词序列中的各日志分词进行词嵌入处理,得到各日志分词的词向量。
S30512:通过第二嵌入层,基于各日志分词在日志文本分词序列中的位置对各日志分词进行位置嵌入处理,得到各日志分词的位置向量。
S30513:对各日志分词的词向量和位置向量进行融合处理,得到日志分词向量序列。
具体的,第一嵌入层可以利用神经网络模拟各日志分词在高维向量中的投射,实现各日志分词的词嵌入处理,得到相应的词向量。第二嵌入层可以记录每个日志分词在日志文本分词序列中的位置,并对各日志分词的位置进行向量化表征,得到位置向量。
在一个实施例中,对各日志分词的词向量和位置向量进行的融合处理可以例如为相加处理。例如,可以将向量[X11, X12, X13, X14]和向量[X21, X22, X23, X24]相加处理得到向量[X11+X21, X12+X22, X13+X23, X14+X24]。具体的,将各日志分词的词向量和位置向量相加,得到每个日志分词的日志分词向量,并基于各日志分词的排序和各日志分词向量生成日志分词向量序列。通过结合各日志分词的词向量和位置向量,既能保留分词本来的含义,又保留了分词在句子中的位置信息,能够更完整的诠释文本的整体语义。
在一个实施例中,初始预测模型可以为BERT模型,BERT模型是谷歌提出的一种基于Transformer(变换器)的预训练语言模型,通过用大量的基础语料进行无监督训练,产生预训练参数集合。根据应用场景的不同,如在使用日志文本的预测场景下,BERT模型可以为利用日志文本语料预训练的BERT模型,也可以为基于其它中/英文语料预训练的BERT模型。由于BERT模型采用了多层Transformer对文本进行双向学习,且Transformer采用一次性读取方式对文本进行提取,因此可以更准确地学习到文本中词之间的上下文关系,对语义的理解更加深刻,即双向训练的语言模型对语义的理解会比单向的语言模型更深刻,从而能够准确地对日志文本进行特征抽取。
相应的,嵌入网络可以对应于BERT模型的Embedding网络,第一嵌入层和第二嵌入层可以分别对应于该Embedding网络的word embedding层和position embedding层,通过结合word embedding和position embedding,既保留分词本来的含义,又保留了分词在句子中的位置信息,对输入文本的整体语义理解进行了很好的诠释。举例来说,输入的日志文本分词序列可以例如为word1/word2/word3/…/wordi,将日志文本分词序列输入wordembedding层,以进行词嵌入处理,得到词嵌入向量,请参考图4,图4示出了wordi在高维向量中投射的示意图,图中wordi对应的词嵌入向量为[X1,i, X2,i, X3,i, X4,i, X5,i,…,Xn,i]。进一步地,将日志文本分词序列输入position embedding层,以进行位置嵌入处理,word1的位置可以表征为X1,word2的位置可以表征为X2,依次类推,wordi的位置可以表征为Xi
需要说明的是,本申请可以不对目标运行日志文本进行分段处理,进而初始预测模型的嵌入网络可以不设置传统BERT模型中的segmentation embedding层,也无需设置type embedding层,进而不需要进行该网络层相关的训练数据处理和训练操作,不仅减少了训练工作量,而且有效降低了模型的不确定性和对外依赖。
S3052:利用目标故障预测模型的特征编码器对日志分词向量序列进行自注意力处理,得到日志分词向量序列对应的自注意力向量。
在实际应用中,将生成的日志分词向量序列输入特征编码器进行自注意力处理。在一些实施例中,特征编码器包括向量变换层和自注意力层,相应的,步骤S3052可以包括:
S30521:利用向量变换层对日志分词向量序列中的各分词向量进行权重矩阵转换,得到特征向量序列。
在一些情况下,利用向量变换层引入Queries,Keys,Values三个权重矩阵对各分词向量进行权重矩阵转换,将分词向量分别与权重矩阵相乘得到对应的特征向量,并基于各分词向量对应的特征向量生成特征向量序列。
S30522:利用自注意力层对特征向量序列进行自注意力处理,得到自注意力向量。
在实际应用中,自注意力层可以基于缩放的点积注意力机制或多头自注意力机制等注意力机制构建。在一些实施例中,自注意力层为基于多头自注意力机制构建的网络层,即该自注意力层可以为多头自注意力层,相应的,步骤S30522可以包括:利用自注意力层,将特征向量序列中的各特征向量分别拆分为预设数量的特征子向量,并基于多头自注意力机制对各特征向量对应的各特征子向量进行多头自注意力计算,得到各特征子向量的自注意力值,以及,根据各特征子向量的自注意力值生成自注意力向量。
具体的,可以对每个特征向量进行分割处理,得到对应的两个或两个以上的特征子向量,进而将得到的特征子向量进行拼接处理和自注意力值计算,得到自注意力向量。
以初始预测模型为BERT模型为例,向量变换层可以对应于BERT模型的Transformer Encoder层,将日志分词向量序列输入该层,以对每个日志分词向量进行维度扩展,利用Queries,Keys,Values三个权重矩阵将日志分词向量投射到Key,Query,Value三个维度上,生成特征向量序列。请参考图5,图5示出了对wordi进行维度扩展的示意图。进一步的,多头自注意力层可以对应于BERT模型的Multi Head Attention层,将特征向量序列输入该层,以对每个特征向量进行分割,并对生成的特征子向量进行拼接和自注意力计算。请参考图6,图6示出了对wordi的特征向量进行拆分的示意图,图中的横线表征向量分割位置。可以理解的,根据实际需求可以设置预设数量的值,以及各特征子向量的长度,例如可以对特征向量进行等长度分割。
进一步地,多头自注意力层可以基于下述表达式(一)至(三)进行特征子向量的自注意力处理。其中,headh表征特征子向量,MultiHead(Q,K,V)表征将各特征子向量进行拼接后得到的自注意力向量,Attention(Qi,Ki,Vi) 表征headh的自注意力值,通过公式(三)可以计算得到该自注意力值,dk表征K的维度。
Figure 852256DEST_PATH_IMAGE001
S3053:对自注意力向量进行前向传播处理,得到故障预测结果。
在实际应用中,目标故障预测模型可以使用前馈的方式,利用目标故障预测模型的后续网络层对特征编码器输出的自注意力向量进行前向传播处理,进而推导出故障预测结果。具体的,可以将自注意力向量输入至目标故障预测模型中特征编码器的下一级网络,以进行前向传播处理。在一些实施例中,下一级网络可以包括前馈层或全连接层等。
需要说明的是,本申请的初始预测模型不限于上述的BERT模型,也可以是其他类似的模型如RNN(Recurrent Neural Network, 循环神经网络)、其他类Transformer模型,本申请对此不作限制。
当基于故障预测结果确定待检测应用程序存在故障问题,或者,出现故障问题的概率或故障指标高于相应阈值时,可以发送预警信息,并将对应的运行日志文本进行标记和存储,以便于开发人员进一步定位、分析和解决相应的故障问题。举例来说,可以将运行日志文本输入故障问题分类模型,以对可能出现的故障问题进行类型识别等。
基于上述部分或全部实施方式,本申请实施例还提供一种目标故障预测模型的训练方法,请参考图7,图7示出了本申请实施例提供的一种目标故障预测模型的训练方法的流程示意图,如图7所示,训练方法可以包括:
S501:获取样本训练集,样本训练集中包括多个、与预设时间窗口对应的样本日志文本集,以及与样本日志文本集匹配的故障标签。
在实际应用中,每个样本日志文本集对应的时长为预设时间窗口,举例来说,若预设时间窗口为1h,则每个样本日志文本集中的生成时间最早的样本日志文本与生成时间最晚的样本日志文本间的时间间隔为1h。样本日志文本集与故障标签一一对应。该故障标签用于表征样本日志文本集对应的预设时间窗口内,待检测应用程序出现运行故障的可能性,可以是待检测应用程序是否存在故障问题,也可以是待检测应用程序可能出现故障问题的概率或故障指标等,故障指标可以为0到1间的数值。可以理解的,概率值或故障指标越大,表示出现故障问题的可能性越大或待检测应用程序的缺陷越严重。
在实际应用中,步骤S501可以包括:
S5011:获取用户基于线上问题提交的线上问题反馈数据,以及与线上问题反馈数据的提交时间对应的样本日志文本。
在实际应用中,样本日志文本可以是对与线上问题的提交时间对应的运行日志数据进行预处理得到的,该预处理方式与前述步骤S403中的实施方式相类似,在此不再赘述。
S5012:基于时序并以预设时间窗口为聚合窗口,对样本日志文本进行聚合处理,得到所述预设时间窗口对应的样本日志文本集。
在实际应用中,可以基于时序对样本日志本文进行排序,以预设时间窗口对获取到的样本日志文本进行分时段聚合,生成多个样本日志文本集。
S5013:对样本日志文本集对应的线上问题反馈数据进行聚合处理,得到反馈数据聚合结果。
在实际应用中,可以基于样本日志文本与线上问题反馈数据的对应关系,确定每个样本日志文本集中各样本日志文本对应的线上问题反馈数据,并对其及进行聚合处理。或者也可以基于样本日志文本集对应的预设时间窗口,确定该预设时间窗口对应的时间段内的线上问题反馈数据,并对其及进行聚合处理。反馈数据的聚合处理可以例如为统计线上问题反馈数据的总数量或均值等。
如前述的,线上问题反馈数据包括但不限于用户的主观评测(如对线上问题严重程度的评分或等级评定)和描述文本信息等。在一些实施例中,也可以对描述文本信息进行数值化处理,以得到对应线上问题的严重程度评分、等级或分类等,具体的,数值化处理方式可以包括但不限于情感分析、主题分析和深度学习的打分方案等,本申请在此不做限制。
在一些情况下,样本日志文本集对应的反馈数据聚合结果为线上问题反馈数据的总反馈数量,该数量可以为样本日志文本集对应的预设时间窗口内用户的总提交次数,即实际的线上问题反馈数据的总反馈数量;或者该数量也可以为基于上述得到的各个提交的线上问题的严重程度评分或等级对提交次数或反馈数据数量的加权求和,可以理解的,严重程度评分或等级越高,相应的权重系数越高,对总反馈数量的贡献越大。
在另一些情况下,反馈数据聚合结果为线上问题反馈数据的反馈数量均值,如单位时间的反馈数据数量,相类似的,也可以采用实际数量或加权平均数量,在此不再赘述。或者该均值也可以是线上问题的严重程度评分或等级的均值或加权均值,或者是结合反馈数量和严重程度评分/等级得到的结果。
S5014:根据反馈数据聚合结果生成与样本日志文本集匹配的故障标签。
在实际应用中,当反馈数据聚合结果为反馈数量时,可以将得到的多个样本日志文本集对应的各反馈数据聚合结果进行赋值化处理或归一化处理等,以得到反馈数据聚合结果与是否存在线上问题、出现故障问题的概率或故障指标等的对应关系,进而得到故障标签。当反馈数据聚合结果为评分或等级时,可以将反馈数据结果作为该故障标签。
S503:对样本日志文本集中的各样本日志文本进行分词处理和标注处理,得到各样本日志文本对应的各样本分词序列。
在实际应用中,步骤S503可以包括:
S5031:根据反馈数据聚合结果标注对应的样本日志文本集中的各样本日志文本,得到对应的各标注日志文本。
在实际应用中,可以以反馈数据聚合结果直接对各样本日志文本进行标注,如标注其反馈数量或均值等。也可以采用根据反馈数据聚合结果得到故障标签对各样本日志文本进行标注。可以理解的,同一样本日志文本集中的各样本日志文本的标注相同。在一些实施例中,可以利用[CLS]对样本日志文本做标注,如将该标注作为样本日志文本的第一个词。
S5032:对对应的各标注日志文本进行分词处理,得到各样本日志文本对应的各样本分词序列。
在实际应用中,标注日志文本的分词处理与前述步骤S303相类似,在此不再赘述。需要说明的是,也可以先对样本日志文本进行分词处理,然后再对得到的分词序列进行标注处理,以生成样本分词序列。在一些实施例中,样本分词序列第一个分词为[CLS]标注对应的分词。
在实际应用中,可以基于单独的工具或分词模型实现上述步骤S503,也可以在初始预测模型中设置分词网络,实现上述的步骤S503。例如,初始预测模型为BERT模型,可以在BERT模型中设置分词网络,基于WordPiece Tokenization方式,将样本日志文本拆成更小粒度的样本日志分词,利用[CLS]做标注结果, [UNK]作为词典外的新词,[PAD]做Batch补充等。在预测过程中,不需要对日志文本进行上下文预测或漏词预测等,因此分词网络可以不使用[SEP]做文本串间隔,或利用[MASK]做漏字任务处理等。如此,即使样本日志文本中出现未在字典中记录的词,也能够对该词进行有效处理,提高分词处理的适应性和鲁棒性。
S505:以各样本分词序列作为初始预测模型的输入,以对应的故障标签作为初始预测模型的期望输出,对初始预测模型进行故障预测的约束训练,得到目标故障预测模型。
在实际应用中,将故障标签作为模型因变量,样本分词序列作为模型自变量,对初始预测模型进行约束训练,并利用分类模型的相关评价指标,如ROC曲线(接受者操作特性曲线,receiver operating characteristic curve)或AUC值(Area Under Curve,ROC曲线下的面积)等对模型参数进行评估,将模型参数满足预设收敛条件的模型作为目标故障预测模型,并将最终生成的模型文件进行部署。
在一些实施例中,可以基于交叉墒计算模型训练过程中的损失,以对模型参数进行更新。相应的损失函数如下述公式(四)所示,其中,y表征故障标签,p表征模型输出的预测值。
Figure 694310DEST_PATH_IMAGE002
在一些实施例中,方法还可以包括目标故障预测模型的更新步骤,具体可以包括:
S601:定期获取更新的线上问题反馈数据和对应的更新的样本日志文本。
S603:基于更新的线上问题反馈数据和更新的样本日志文本,生成多个更新样本日志文本集和对应的故障标签。
S605:对更新样本日志文本集中的各更新样本日志文本进行分词处理和标注处理,得到对应的更新样本分词序列。
S607:以更新样本分词序列作为目标故障预测模型的输入,以对应的故障标签作为目标故障预测模型的期望输出,对目标故障预测模型进行更新。
在实际应用中,线上问题反馈数据不断更新和变化,利用更新的线上问题反馈数据和对应的样本日志文本进行模型更新,能够提高目标故障预测模型的预测准确率。
本申请实施例中,请参考图8,图8示出了本申请实施例提供的应用程序的故障预测方法的整体框架示意图,如图8所示,本申请利用待检测应用程序上线初期通过用户反馈得到的与线上问题对应的线上问题反馈数据和通过日志上报得到的运行日志数据进行初始预测模型的训练,以得到目标故障预测模型,并将目标故障预测模型部署,用以搭载到待检测应用程序后续的日志分析中,对后续通过自动日志上报得到的运行日志数据对应的运行日志文本进行自动化的故障预测,能够在用户无感的情况下,实现线上问题预警,辅助开发人员进行线上问题的及时检测和排查,并且在应用程序升级或扩展后,依然能够进行故障预测和预警,有效降低线上问题的发现和处理周期,提高用户体验。并且,在应用程序***产生大量繁杂冗余日志或程序更新扩展的情况下,开发人员无需耗费大量的时间专注于***监控,极大地提高应用程序***修复、优化和迭代的效率,有效辅助***开发人员尽快发现问题并防患于未然,防止线上问题扩散,缩减大量人工成本。
本申请实施例还提供了一种应用程序的故障预测装置700,如图9所示,装置包括:
日志文本获取模块710:用于获取待检测应用程序的预设时间窗口对应的目标运行日志文本。
分词处理模块720:用于对目标运行日志文本进行分词处理,得到目标运行日志文本对应的日志文本分词序列。
故障预测模块730:用于调用目标故障预测模型对日志文本分词序列进行故障预测,得到待检测应用程序的故障预测结果。
其中,目标故障预测模型为基于预设时间窗口对应的样本日志文本集和匹配的故障标签对初始预测模型进行故障预测的约束训练得到的模型;样本日志文本集和故障标签为基于预设时间窗口对应的线上问题反馈数据以及与线上问题反馈数据对应的样本日志文本生成的。
在一些实施例中,故障预测模块730可以包括:
编码处理单元:用于利用目标故障预测模型的嵌入网络对日志文本分词序列进行编码处理,得到日志文本分词序列对应的日志分词向量序列。
自注意力处理单元:用于利用目标故障预测模型的特征编码器对日志分词向量序列进行自注意力处理,得到日志分词向量序列对应的自注意力向量。
前向传播单元:用于对自注意力向量进行前向传播处理对自注意力向量进行前向传播处理,得到故障预测结果。
在一些实施例中,嵌入网络包括第一嵌入层和第二嵌入层,编码处理单元可以包括:
词嵌入处理子单元:用于通过第一嵌入层对日志文本分词序列中的各日志分词进行词嵌入处理,得到各日志分词的词向量。
位置嵌入处理子单元:用于通过第二嵌入层,基于各日志分词在日志文本分词序列中的位置对各日志分词进行位置嵌入处理,得到各日志分词的位置向量。
向量相加处理子单元:用于对各日志分词的词向量和位置向量进行融合处理,得到日志分词向量序列。
在一些实施例中,特征编码器包括向量变换层和自注意力层,相应的,自注意力处理单元可以包括:
权重矩阵转换子单元:用于利用向量变换层对日志分词向量序列中的各分词向量进行权重矩阵转换,得到特征向量序列。
多头自注意力处理子单元:用于利用自注意力层对特征向量序列进行自注意力处理,得到自注意力向量。
在一些实施例中,所述自注意力层为基于多头自注意力机制构建的网络层,相应的,多头自注意力处理子单元可以具体用于:利用自注意力层,将特征向量序列中的各特征向量分别拆分为预设数量的特征子向量,并基于多头自注意力机制对各特征向量对应的各特征子向量进行多头自注意力计算,得到各特征子向量的自注意力值,以及,根据各特征子向量的自注意力值生成自注意力向量。
在一些实施例中,日志文本获取模块710可以包括:
日志数据获取单元:用于获取待检测应用程序的运行日志数据。
流处理单元:用于对运行日志数据进行流处理,得到预设时间窗口对应的目标运行日志文本。
在一些实施例中,装置还包括:
样本训练集获取模块:用于在获取待检测应用程序的预设时间窗口对应的目标运行日志文本之前,获取样本训练集,样本训练集中包括多个、与预设时间窗口对应的样本日志文本集,以及与样本日志文本集匹配的故障标签。
样本分词序列生成模块:用于对样本日志文本集中的各样本日志文本进行分词处理和标注处理,得到各样本日志文本对应的各样本分词序列。
模型训练模块:用于以各样本分词序列作为初始预测模型的输入,以对应的故障标签作为初始预测模型的期望输出,对初始预测模型进行故障预测的约束训练,得到目标故障预测模型。
在一些实施例中,样本训练集获取模块可以包括:
数据获取单元:用于获取用户基于线上问题提交的线上问题反馈数据,以及与线上问题反馈数据的提交时间对应的样本日志文本。
日志文本聚合处理单元:用于基于时序并以预设时间窗口为聚合窗口,对样本日志文本进行聚合处理,得到所述预设时间窗口对应的样本日志文本集。
反馈数据聚合处理单元:用于对样本日志文本集对应的线上问题反馈数据进行聚合处理,得到反馈数据聚合结果。
故障标签生成单元:用于根据反馈数据聚合结果生成与样本日志文本集匹配的故障标签。
在一些实施例中,样本分词序列生成模块包括:
日志文本标注单元:用于根据反馈数据聚合结果标注对应的样本日志文本集中的各样本日志文本,得到对应的各标注日志文本。
分词处理单元:用于对对应的各标注日志文本进行分词处理,得到各样本日志文本对应的各样本分词序列。
上述装置实施例中的装置与方法实施例基于同样的申请构思。
本申请实施例提供了一种应用程序的故障预测设备,该应用程序的故障预测设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的应用程序的故障预测方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、功能所需的应用程序等;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图10是本申请实施例提供的一种应用程序的故障预测方法的服务器的硬件结构框图。如图10所示,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(Central Processing Units,CPU)810(处理器810可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器830,一个或一个以上存储应用程序823或数据822的存储介质820(例如一个或一个以上海量存储设备)。其中,存储器830和存储介质820可以是短暂存储或持久存储。存储在存储介质820的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器810可以设置为与存储介质820通信,在服务器800上执行存储介质820中的一系列指令操作。服务器800还可以包括一个或一个以上电源860,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口840,和/或,一个或一个以上操作***821,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口840可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器800的通信供应商提供的无线网络。在一个实例中,输入输出接口840包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口840可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图10所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器800还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。
本申请的实施例还提供了一种存储介质,存储介质可设置于服务器之中以保存用于实现方法实施例中一种图像的加噪处理方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的图像的加噪处理方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
由上述本申请提供的应用程序的故障预测方法、装置、设备、服务器或存储介质的实施例可见,本申请通过获取待检测应用程序的预设时间窗口对应的目标运行日志文本;对目标运行日志文本进行分词处理,得到目标运行日志文本对应的日志文本分词序列;并调用目标故障预测模型对日志文本分词序列进行故障预测,得到待检测应用程序的故障预测结果,能够自动化地在线上问题大规模暴露以前就实现相应的故障预测和预警,能够辅助开发人员在用户无感的情况下预先定位和排查线上问题,提高用户体验。并且,基于应用程序自身的线上问题反馈数据和对应的样本日志文本生成模型训练数据,标记数据的获取方式简便且与线上问题具有强相关性,也无需构建大量的支撑规则和复杂的知识图谱,能够有效提高模型预测的准确性和训练效率。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种应用程序的故障预测方法,其特征在于,所述方法包括:
获取待检测应用程序的预设时间窗口对应的目标运行日志文本;
对所述目标运行日志文本进行分词处理,得到所述目标运行日志文本对应的日志文本分词序列;
调用目标故障预测模型对所述日志文本分词序列进行故障预测,得到所述待检测应用程序的故障预测结果;
其中,所述目标故障预测模型为基于所述预设时间窗口对应的样本日志文本集和匹配的故障标签对初始预测模型进行故障预测的约束训练得到的模型;所述样本日志文本集和所述故障标签为基于所述预设时间窗口对应的线上问题反馈数据以及与所述线上问题反馈数据对应的样本日志文本生成的。
2.根据权利要求1所述的方法,其特征在于,所述目标故障预测模型包括嵌入网络和特征编码器,相应的,所述调用目标故障预测模型对所述日志文本分词序列进行故障预测,得到所述待检测应用程序的故障预测结果包括:
利用所述目标故障预测模型的嵌入网络对所述日志文本分词序列进行编码处理,得到所述日志文本分词序列对应的日志分词向量序列;
利用所述目标故障预测模型的特征编码器对所述日志分词向量序列进行自注意力处理,得到所述日志分词向量序列对应的自注意力向量;
对所述自注意力向量进行前向传播处理,得到所述故障预测结果。
3.根据权利要求2所述的方法,其特征在于,所述嵌入网络包括第一嵌入层和第二嵌入层,相应的,所述利用所述目标故障预测模型的嵌入网络对所述日志文本分词序列进行编码处理,得到所述日志文本分词序列对应的日志分词向量序列包括:
通过所述第一嵌入层对所述日志文本分词序列中的各日志分词进行词嵌入处理,得到所述各日志分词的词向量;
通过所述第二嵌入层,基于所述各日志分词在所述日志文本分词序列中的位置对所述各日志分词进行位置嵌入处理,得到所述各日志分词的位置向量;
对所述各日志分词的词向量和位置向量进行融合处理,得到所述日志分词向量序列。
4.根据权利要求2所述的方法,其特征在于,所述特征编码器包括向量变换层和自注意力层,相应的,所述利用所述目标故障预测模型的特征编码器对所述日志分词向量序列进行自注意力处理,得到所述日志分词向量序列对应的自注意力向量包括:
利用所述向量变换层对所述日志分词向量序列中的各分词向量进行权重矩阵转换,得到特征向量序列;
利用所述自注意力层对所述特征向量序列进行自注意力处理,得到所述自注意力向量。
5.根据权利要求4所述的方法,其特征在于,所述自注意力层为基于多头自注意力机制构建的网络层,相应的,所述利用所述自注意力层对所述特征向量序列进行自注意力处理,得到所述自注意力向量包括:
利用所述自注意力层,将所述特征向量序列中的各特征向量分别拆分为预设数量的特征子向量,并基于所述多头自注意力机制对所述各特征向量对应的各特征子向量进行多头自注意力计算,得到所述各特征子向量的自注意力值,以及,根据所述各特征子向量的自注意力值生成所述自注意力向量。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述获取待检测应用程序的预设时间窗口对应的目标运行日志文本包括:
获取所述待检测应用程序的运行日志数据;
对所述运行日志数据进行流处理,得到所述预设时间窗口对应的目标运行日志文本。
7.根据权利要求1-5中任一项所述的方法,其特征在于,在获取待检测应用程序的预设时间窗口对应的目标运行日志文本之前,所述方法还包括:
获取样本训练集,所述样本训练集中包括多个、与所述预设时间窗口对应的样本日志文本集,以及与所述样本日志文本集匹配的故障标签;
对所述样本日志文本集中的各样本日志文本进行分词处理和标注处理,得到所述各样本日志文本对应的各样本分词序列;
以所述各样本分词序列作为初始预测模型的输入,以对应的故障标签作为所述初始预测模型的期望输出,对所述初始预测模型进行故障预测的约束训练,得到所述目标故障预测模型。
8.根据权利要求7所述的方法,其特征在于,所述获取样本训练集包括:
获取用户基于线上问题提交的线上问题反馈数据,以及与所述线上问题反馈数据的提交时间对应的样本日志文本;
基于时序并以所述预设时间窗口为聚合窗口,对所述样本日志文本进行聚合处理,得到所述预设时间窗口对应的样本日志文本集;
对所述样本日志文本集对应的线上问题反馈数据进行聚合处理,得到反馈数据聚合结果;
根据所述反馈数据聚合结果生成与所述样本日志文本集匹配的故障标签。
9.根据权利要求8所述的方法,其特征在于,所述对所述样本日志文本集中的各样本日志文本进行分词处理和标注处理,得到所述各样本日志文本对应的各样本分词序列包括:
根据所述反馈数据聚合结果标注对应的样本日志文本集中的各样本日志文本,得到对应的各标注日志文本;
对所述对应的各标注日志文本进行分词处理,得到所述各样本日志文本对应的各样本分词序列。
10.一种应用程序的故障预测装置,其特征在于,所述装置包括:
日志文本获取模块:用于获取待检测应用程序的预设时间窗口对应的目标运行日志文本;
分词处理模块:用于对所述目标运行日志文本进行分词处理,得到所述目标运行日志文本对应的日志文本分词序列;
故障预测模块:用于调用目标故障预测模型对所述日志文本分词序列进行故障预测,得到所述待检测应用程序的故障预测结果;
其中,所述目标故障预测模型为基于所述预设时间窗口对应的样本日志文本集和匹配的故障标签对初始预测模型进行故障预测的约束训练得到的模型;所述样本日志文本集和所述故障标签为基于所述预设时间窗口对应的线上问题反馈数据以及与所述线上问题反馈数据对应的样本日志文本生成的。
CN202110633968.8A 2021-06-07 2021-06-07 一种应用程序的故障预测方法和装置 Active CN113094200B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110633968.8A CN113094200B (zh) 2021-06-07 2021-06-07 一种应用程序的故障预测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110633968.8A CN113094200B (zh) 2021-06-07 2021-06-07 一种应用程序的故障预测方法和装置

Publications (2)

Publication Number Publication Date
CN113094200A true CN113094200A (zh) 2021-07-09
CN113094200B CN113094200B (zh) 2021-08-24

Family

ID=76666077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110633968.8A Active CN113094200B (zh) 2021-06-07 2021-06-07 一种应用程序的故障预测方法和装置

Country Status (1)

Country Link
CN (1) CN113094200B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113743110A (zh) * 2021-11-08 2021-12-03 京华信息科技股份有限公司 一种基于微调生成式对抗网络模型的漏词检测方法及***
CN114036293A (zh) * 2021-11-03 2022-02-11 腾讯科技(深圳)有限公司 数据处理方法、装置及电子设备
CN114462018A (zh) * 2022-01-10 2022-05-10 电子科技大学 一种基于Transformer模型和深度强化学习的密码猜测***及方法
CN114490751A (zh) * 2021-12-29 2022-05-13 深圳优地科技有限公司 机器人故障的确定方法、装置、设备以及可读存储介质
CN114880206A (zh) * 2022-01-13 2022-08-09 南通大学 一种移动应用程序代码提交故障预测模型的可解释性方法
CN115270125A (zh) * 2022-08-11 2022-11-01 江苏安超云软件有限公司 Ids日志分类预测方法、装置、设备及存储介质
CN115480946A (zh) * 2022-10-11 2022-12-16 中国电信股份有限公司 故障检测模型的建模方法、防护实现方法及相关设备
CN115509789A (zh) * 2022-09-30 2022-12-23 中国科学院重庆绿色智能技术研究院 一种基于组件调用分析的计算***故障预测方法和***
CN115687031A (zh) * 2022-11-15 2023-02-03 北京优特捷信息技术有限公司 一种告警描述文本的生成方法、装置、设备及介质
CN115913989A (zh) * 2022-11-08 2023-04-04 广州鲁邦通物联网科技股份有限公司 一种云管理平台的资源保护方法及相关装置
CN116016122A (zh) * 2022-12-05 2023-04-25 中国联合网络通信集团有限公司 网络故障解决方案的预测方法、装置、设备及存储介质
CN116010896A (zh) * 2023-02-03 2023-04-25 南京南瑞继保电气有限公司 基于对抗训练与Transformer的风力发电机故障诊断方法
CN116402219A (zh) * 2023-03-29 2023-07-07 中科航迈数控软件(深圳)有限公司 一种基于预测模型的全生命周期运维策略方法及装置
CN117349129A (zh) * 2023-12-06 2024-01-05 广东无忧车享科技有限公司 车辆销售过程服务***的异常优化方法及***

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262255B2 (en) * 2013-03-14 2016-02-16 International Business Machines Corporation Multi-stage failure analysis and prediction
CN105653444A (zh) * 2015-12-23 2016-06-08 北京大学 基于互联网日志数据的软件缺陷故障识别方法和***
US20160210659A1 (en) * 2014-12-31 2016-07-21 Anto Chittilappilly Managing digital media spend allocation using calibrated user-level response data
WO2018005489A1 (en) * 2016-06-27 2018-01-04 Purepredictive, Inc. Data quality detection and compensation for machine learning
US9959158B2 (en) * 2015-10-13 2018-05-01 Honeywell International Inc. Methods and apparatus for the creation and use of reusable fault model components in fault modeling and complex system prognostics
US20190213893A1 (en) * 2018-01-05 2019-07-11 Syracuse University Smart products lifecycle management platform
CN110569909A (zh) * 2019-09-10 2019-12-13 腾讯科技(深圳)有限公司 基于区块链的故障预警方法、装置、设备及存储介质
WO2020075019A1 (en) * 2018-10-09 2020-04-16 International Business Machines Corporation Prediction model enhancement
CN111045939A (zh) * 2019-12-09 2020-04-21 山西大学 Weibull分布的故障检测开源软件可靠性建模方法
CN111078479A (zh) * 2019-09-26 2020-04-28 腾讯科技(深圳)有限公司 一种内存检测模型训练的方法、内存检测的方法及装置
CN111178378A (zh) * 2019-11-07 2020-05-19 腾讯科技(深圳)有限公司 一种设备的故障预测方法、装置、电子设备及存储介质
CN111542846A (zh) * 2018-01-19 2020-08-14 株式会社日立制作所 故障预测***和故障预测方法
CN111813587A (zh) * 2020-05-28 2020-10-23 国网山东省电力公司 一种软件接口评估及故障预警方法及***
US10884842B1 (en) * 2018-11-14 2021-01-05 Intuit Inc. Automatic triaging

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262255B2 (en) * 2013-03-14 2016-02-16 International Business Machines Corporation Multi-stage failure analysis and prediction
US20160210659A1 (en) * 2014-12-31 2016-07-21 Anto Chittilappilly Managing digital media spend allocation using calibrated user-level response data
US9959158B2 (en) * 2015-10-13 2018-05-01 Honeywell International Inc. Methods and apparatus for the creation and use of reusable fault model components in fault modeling and complex system prognostics
CN105653444A (zh) * 2015-12-23 2016-06-08 北京大学 基于互联网日志数据的软件缺陷故障识别方法和***
WO2018005489A1 (en) * 2016-06-27 2018-01-04 Purepredictive, Inc. Data quality detection and compensation for machine learning
US20190213893A1 (en) * 2018-01-05 2019-07-11 Syracuse University Smart products lifecycle management platform
CN111542846A (zh) * 2018-01-19 2020-08-14 株式会社日立制作所 故障预测***和故障预测方法
WO2020075019A1 (en) * 2018-10-09 2020-04-16 International Business Machines Corporation Prediction model enhancement
US10884842B1 (en) * 2018-11-14 2021-01-05 Intuit Inc. Automatic triaging
CN110569909A (zh) * 2019-09-10 2019-12-13 腾讯科技(深圳)有限公司 基于区块链的故障预警方法、装置、设备及存储介质
CN111078479A (zh) * 2019-09-26 2020-04-28 腾讯科技(深圳)有限公司 一种内存检测模型训练的方法、内存检测的方法及装置
CN111178378A (zh) * 2019-11-07 2020-05-19 腾讯科技(深圳)有限公司 一种设备的故障预测方法、装置、电子设备及存储介质
CN111045939A (zh) * 2019-12-09 2020-04-21 山西大学 Weibull分布的故障检测开源软件可靠性建模方法
CN111813587A (zh) * 2020-05-28 2020-10-23 国网山东省电力公司 一种软件接口评估及故障预警方法及***

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114036293B (zh) * 2021-11-03 2023-06-06 腾讯科技(深圳)有限公司 数据处理方法、装置及电子设备
CN114036293A (zh) * 2021-11-03 2022-02-11 腾讯科技(深圳)有限公司 数据处理方法、装置及电子设备
CN113743110B (zh) * 2021-11-08 2022-02-11 京华信息科技股份有限公司 一种基于微调生成式对抗网络模型的漏词检测方法及***
CN113743110A (zh) * 2021-11-08 2021-12-03 京华信息科技股份有限公司 一种基于微调生成式对抗网络模型的漏词检测方法及***
CN114490751A (zh) * 2021-12-29 2022-05-13 深圳优地科技有限公司 机器人故障的确定方法、装置、设备以及可读存储介质
CN114490751B (zh) * 2021-12-29 2024-06-04 深圳优地科技有限公司 机器人故障的确定方法、装置、设备以及可读存储介质
CN114462018A (zh) * 2022-01-10 2022-05-10 电子科技大学 一种基于Transformer模型和深度强化学习的密码猜测***及方法
CN114880206A (zh) * 2022-01-13 2022-08-09 南通大学 一种移动应用程序代码提交故障预测模型的可解释性方法
CN114880206B (zh) * 2022-01-13 2024-06-11 南通大学 一种移动应用程序代码提交故障预测模型的可解释性方法
CN115270125A (zh) * 2022-08-11 2022-11-01 江苏安超云软件有限公司 Ids日志分类预测方法、装置、设备及存储介质
CN115509789B (zh) * 2022-09-30 2023-08-11 中国科学院重庆绿色智能技术研究院 一种基于组件调用分析的计算***故障预测方法和***
CN115509789A (zh) * 2022-09-30 2022-12-23 中国科学院重庆绿色智能技术研究院 一种基于组件调用分析的计算***故障预测方法和***
CN115480946A (zh) * 2022-10-11 2022-12-16 中国电信股份有限公司 故障检测模型的建模方法、防护实现方法及相关设备
CN115480946B (zh) * 2022-10-11 2024-07-05 中国电信股份有限公司 故障检测模型的建模方法、防护实现方法及相关设备
CN115913989A (zh) * 2022-11-08 2023-04-04 广州鲁邦通物联网科技股份有限公司 一种云管理平台的资源保护方法及相关装置
CN115913989B (zh) * 2022-11-08 2023-09-19 广州鲁邦通物联网科技股份有限公司 一种云管理平台的资源保护方法
CN115687031A (zh) * 2022-11-15 2023-02-03 北京优特捷信息技术有限公司 一种告警描述文本的生成方法、装置、设备及介质
CN116016122A (zh) * 2022-12-05 2023-04-25 中国联合网络通信集团有限公司 网络故障解决方案的预测方法、装置、设备及存储介质
CN116010896A (zh) * 2023-02-03 2023-04-25 南京南瑞继保电气有限公司 基于对抗训练与Transformer的风力发电机故障诊断方法
CN116402219A (zh) * 2023-03-29 2023-07-07 中科航迈数控软件(深圳)有限公司 一种基于预测模型的全生命周期运维策略方法及装置
CN117349129A (zh) * 2023-12-06 2024-01-05 广东无忧车享科技有限公司 车辆销售过程服务***的异常优化方法及***
CN117349129B (zh) * 2023-12-06 2024-03-29 广东无忧车享科技有限公司 车辆销售过程服务***的异常优化方法及***

Also Published As

Publication number Publication date
CN113094200B (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
CN113094200B (zh) 一种应用程序的故障预测方法和装置
CN110597991B (zh) 文本分类方法、装置、计算机设备及存储介质
CN111859960B (zh) 基于知识蒸馏的语义匹配方法、装置、计算机设备和介质
US20190188573A1 (en) Training of artificial neural networks using safe mutations based on output gradients
CN110866119B (zh) 一种文章质量的确定方法、装置、电子设备及存储介质
CN110705255B (zh) 检测语句之间的关联关系的方法和装置
US11720857B2 (en) Autonomous suggestion of issue request content in an issue tracking system
US20220100967A1 (en) Lifecycle management for customized natural language processing
CN112749556B (zh) 多语言模型的训练方法和装置、存储介质和电子设备
CN113704410A (zh) 情绪波动检测方法、装置、电子设备及存储介质
CN113128196A (zh) 文本信息处理方法及其装置、存储介质
Zhang et al. Putracead: Trace anomaly detection with partial labels based on GNN and Pu Learning
CN116719683A (zh) 异常检测方法、异常检测装置、电子设备及存储介质
CN114610613A (zh) 一种面向在线实时的微服务调用链异常检测方法
CN112989024B (zh) 文本内容的关系提取方法、装置、设备及存储介质
US10614100B2 (en) Semantic merge of arguments
CN114330483A (zh) 数据处理方法及模型训练方法、装置、设备、存储介质
CN117312562A (zh) 内容审核模型的训练方法、装置、设备及存储介质
CN111967253A (zh) 一种实体消歧方法、装置、计算机设备及存储介质
CN114969334B (zh) 异常日志检测方法、装置、电子设备及可读存储介质
CN113821418B (zh) 故障根因分析方法及装置、存储介质和电子设备
CN116795978A (zh) 一种投诉信息处理方法、装置、电子设备及介质
CN113627197B (zh) 文本的意图识别方法、装置、设备及存储介质
CN113627514A (zh) 知识图谱的数据处理方法、装置、电子设备和存储介质
CN112698977A (zh) 服务器故障定位方法方法、装置、设备及介质

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40049213

Country of ref document: HK