“轻舟已过万重山团队”荣获本届挑战赛亚军,该团队来自华为集团IT-UniAI 产品和openEuler系统智能团队。
方案介绍
自ChatGPT问世以来,AI迎来了奇点iPhone时刻,这一年来大模型深入影响企业办公,金融,广告,营销等很多领域,也给运维领域的挑战带来新的解题思路。我们洞察发现大模型给AIOps带来新机遇:已有云厂商利用大模型对运维事故进行根因定位并给出故障缓解措施建议,近7成以上运维人员对LLM的分析结果满意(>3分)。我们认为AIOps需要拥有三大能力,首先,需要拥有针对运维领域海量知识快速获取、辅助诊断和故障分析能力;其次需要拥有针对多模态数据进行快速高效准确的异常检测能力;最后需要拥有针对多源复杂部署的运维数据进行快速根因定位能力。
针对这次开放式赛题,我们的详细方案如上图所示,针对主办方提供的Log, Metric, Trace三类运维数据我们分别构建了异常检测基础模型,一旦系统接受到异常即会通知LLM主管Agent,主管Agent对异常问题进行决策与子领域Agent进行桥接,多个子领域Agent协同工作,实现运维故障自动诊断和多个任务模型的编排,提升运维效率。
我们针对不同的数据源分别打造了三个基础模型,首先是metric异常检测,我们对不同对象不同采集频率的运维数据进行分组,然后根据指标变化曲线提取不同窗口的差分特征,第三步是将同类型的指标时序进行融合后利用多个异常检测器进行异常检测和时间聚类,一旦发现异常则通知LLM主管Agent进行决策,检测Agent收到详细检测的指令则进一步利用多个异常检测器进行细致的异常检测。
其次是Log异常检测,今年的Log类型可以分为两大类:Redis GC和Access日志,针对Redis GC日志首先使用结构分类模型检测是否需要语义信息,如果需要语义信息,那么我们会使用运维领域的预训练语言模型如BigLog等,之后是由Deep SVDD进行半监督异常检测;检测出不需要语义信息的部分则使用DRAIN进行模板提取后使用sADR进行半监督异常检测,最终对时间进行聚类后输出故障发生的时段和关键异常日志文本信息;针对Access日志我们使用结构化提取成时间序列后进行异常检测,对时间聚类后最终输出故障发生的时段和状态码信息。
针对Trace数据我们有两部分输出,一部分是根据Trace信息实时生成动态拓扑作为根因定位的输入,另一部分针对调用链节点之间的时长构成调用链时间序列进行异常检测。
结合大模型的技术演进趋势,从zero-shot->one-shot->few-shot,从Chain of thought->Tree of thought->Graph of thought,从Single-Agent增强到Multi-Agent协同,Multi-Agent在激发大模型能力的同时也带来了新的技术挑战,近期业界实践已发现Multi-Agent架构如果缺少合理的组织管理与协同沟通方法时,Multi-Agent的效果可能会比Single-Agent更差,我们认为在通过大模型通往AGI的道路上,我们需要将Agent当作平等的人类非工具来看待,因此多Agent的组织管理与协同需要借鉴管理“人”的方法,我们希望在基于Agents组织架构上,探索一套基于企业组织管理方法的多Agent协同框架,例如通过KPI树方法分解任务,通过PDCA方法反馈循环提高Agent工作效率,通过企业高效会议管理方法来合理组织运维War Room的Agent进入和退出,实现多Agent的高效协同诊断。
这里我们用一张流程图详细阐述多Agent是如何协同工作的。系统发现Weblogic16和17发现异常,主管Agent收到异常通知后,从企业内源的知识库中获取到这两个节点是关键节点,组织检测Agent、根因定位Agent、故障分析Agent等开始工作。检测Agent这时候根据故障知识树首先执行磁盘检测发现异常程度高,得到高优先级结论,不用进一步检查CPU指标,检测Agent会输出详细的针对这两个节点的所有异常指标,异常发生时间,异常程度等。根因Agent根据详细检测的结果分析出根因节点为Weblogic 16, 故障分类Agent根据根因节点信息及异常指标的描述异常程度判断为磁盘故障,故障分析Agent这时候会给出针对这个故障的详细的分析报告,包含故障爆炸半径以及修复建议等。
最后,我们方案创新地提出基于企业组织管理方法的多Agent协同框架,复杂运维任务处理更高效;使用多Agent协同完成运维主流程:异常检测->根因定位->故障分类->故障分析->修复建议;构建的多模态异常检测基础模型,包含Trace、Metric、Log数据处理能力,开箱即用;框架与算法不依赖具体特定应用场景,结合大模型实现较强的泛化能力;故障诊断报告体现可解释的故障爆炸半径,为实际生产运维故障快速恢复提供有力依据;各模块松耦合可插拔,可以全面应用于各类场景故障快速恢复需求,已在公司内部多场景落地。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。