随着软件系统变得日益复杂,IT运维的人工智能(AIOps)方法已广泛应用于软件系统故障管理,以确保大规模分布式软件系统的高可用性和可靠性。然而,这些方法仍面临诸多挑战,例如缺乏跨平台的通用性和跨任务的灵活性。幸运的是,近年来大型语言模型(LLMs)的进展可以显著解决这些挑战,已经有许多方法被提出以探索这一领域。然而,目前尚无全面综述讨论基于LLM的AIOps与传统AIOps方法之间的差异。因此,本文对LLM时代的故障管理AIOps技术进行了全面综述。内容包括AIOps故障管理任务的详细定义、AIOps的数据源以及用于AIOps的LLM方法。此外,该综述还探讨了AIOps子任务、适用于不同AIOps子任务的具体LLM方法,以及该领域的挑战和未来发展方向,旨在推动其发展和应用。
如今,软件系统变得日益复杂。这些系统通常为数以亿计的用户提供服务,即使是轻微的软件故障也会因服务中断或服务质量下降而导致重大损失。因此,大规模分布式软件系统需要确保24/7不间断服务,具备高可用性和可靠性。然而,由于其庞大的规模和复杂的操作逻辑,这些软件系统经常会遇到难以检测、定位和诊断的故障。一旦发生故障,分析和调试系统错误变得更加困难。因此,提高故障诊断效率,快速识别系统故障,定位根本原因,并及时修复它们,对于确保大规模分布式软件系统的高可用性和可靠性至关重要。 随着人工智能(AI)的发展,Gartner在2016年首次提出了IT运维的人工智能(AIOps)[103]。AIOps利用机器学习(ML)或深度学习(DL)算法分析来自各种操作工具和设备的大量数据,实时自动检测和响应系统问题,从而增强了信息技术(IT)运维的能力和自动化水平。因此,AIOps故障管理(FM)已成为确保软件系统高可用性和可靠性的主流方法。
尽管上述基于ML或DL的AIOps故障管理方法在软件系统运维方面有了显著的帮助,但它们仍面临以下几个挑战:
需要复杂的特征提取工程:这些AIOps方法通常需要广泛的预处理和特征工程从原始数据中提取有用信息。它们在理解和处理数据方面能力有限,特别是在处理日志和追踪等非结构化数据时,表现相对较弱。
缺乏跨平台通用性:传统AIOps模型通常专门为特定的软件系统进行调优和训练。一旦采用不同的软件系统,甚至对原系统进行微小的更改,模型的性能会显著下降,即使执行相同的任务也是如此。
缺乏跨任务灵活性:由于模型知识和输出的单一性,AIOps模型一次只能执行一个任务。例如,在根本原因分析(RCA)任务中,一些工作旨在识别问题的原因[79, 119, 141],而其他工作则集中在识别涉及的软件组件[50, 93, 126]。在实际场景中,必须同时运行多个模型才能完成整个RCA任务。
模型适应性有限:随着软件系统的变化,基于深度学习的AIOps方法通常需要频繁的模型训练和更新以适应新的数据和环境。虽然有许多在线学习方法[1, 42, 72, 86]可用于解决这个问题,但这一过程不仅耗费时间和精力,还可能导致模型在处理突发事件时响应延迟。
自动化水平受限:当前基于深度学习的AIOps方法在自动化操作和智能决策方面表现出相对有限的能力。虽然某种程度的自动化是可实现的,但仍需要大量的人工干预和配置。特别是在自动修复方面,目前的努力主要停留在事件分诊[114, 142]或解决方案推荐[78, 127, 158]。
预训练于自然语言理解任务的大型语言模型(LLMs)为解决这些限制提供了一个有前途的途径。(1) 由于其强大的自然语言处理能力,LLMs可以有效处理和理解非结构化数据,往往无需先前的特征提取。(2) 基于大量跨平台数据进行训练,LLMs具备很强的通用性和逻辑推理能力。(3) 由于输出自然语言,LLMs提供了很大的灵活性,使其能够同时执行多个AIOps任务,例如识别问题的原因和涉及的软件组件。(4) 利用其预训练,LLMs展示了强大的适应能力,并且可以通过检索增强生成(RAG)等方法不断吸收外部更新的知识,通常无需重新训练。(5) 由于其强大的脚本生成能力和自动调用外部工具的能力,LLMs可以实现更高水平的自动化。
众多文献综述总结了AIOps的研究。这些工作要么基于传统的机器学习或深度学习算法,而不使用基于LLM的方法[19, 97, 107, 131],要么没有对AIOps故障管理全过程中的所有任务进行系统总结[118]。一些综述甚至可能没有专门关注AIOps领域内的故障管理[23, 30, 151]。
总而言之,针对LLM时代AIOps故障管理的综合研究是缺乏的。然而,如1.1节所示,基于LLM的方法为AIOps任务提供了显著的优势。在本研究中,我们提出了第一个全面的综述,涵盖了大型语言模型背景下AIOps故障管理的整个过程。本综述包括AIOps故障管理任务的详细定义、AIOps的数据源以及用于AIOps的LLM方法。此外,我们深入探讨了AIOps子任务及其适用于不同AIOps子任务的具体LLM方法。此综述旨在为研究人员提供对LLM方法在AIOps中的深入理解,促进不同方法之间的比较和对比。同时,它也为有兴趣应用基于LLM的AIOps方法的用户提供指导,帮助他们在不同应用场景中选择合适的算法。
本综述的结构如下:第2节介绍了必要的基础知识,包括AIOps任务的数据源、AIOps的LLM方法及故障管理的AIOps任务。第3至第6节根据AIOps任务的具体分类,详细描述了LLM时代四类AIOps任务的新特征和方法:数据预处理、故障感知、根本原因分析和自动修复。第7节探讨了基于LLM的AIOps在故障管理中的持续挑战和潜在的未来研究方向。第8节对本综述进行总结。