本届挑战赛亚军方案:基于大模型和多AGENT协同的运维

“轻舟已过万重山团队”荣获本届挑战赛亚军,该团队来自华为集团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数据处理能力,开箱即用;框架与算法不依赖具体特定应用场景,结合大模型实现较强的泛化能力;故障诊断报告体现可解释的故障爆炸半径,为实际生产运维故障快速恢复提供有力依据;各模块松耦合可插拔,可以全面应用于各类场景故障快速恢复需求,已在公司内部多场景落地。

【参考文献】

Zhang S, Pan Z, Liu H, et al. Efficient and Robust Trace Anomaly Detection for Large-Scale Microservice Systems. ISSRE, 2023.
Li D, Zhang S, Sun Y, et al. An Empirical Analysis of Anomaly Detection Methods for Multivariate Time Series. ISSRE, 2023.
Wang Z, Liu Z, Zhang Y, et al. RCAgent: Cloud Root Cause Analysis by Autonomous Agents with Tool-Augmented Large Language Models. arXiv, 2023.
Jin P, Zhang S, Ma M, et al. Assess and Summarize: Improve Outage Understanding with Large Language Models. ESEC/FSE, 2023.
Chen Y, Xie H, Ma M, et al. Empowering Practical Root Cause Analysis by Large Language Models for Cloud Incidents. arXiv, 2023.
Zhou X, Li G, Sun Z, et al. D-Bot: Database Diagnosis System using Large Language Models. arXiv, 2023.
Zhou X, Li G, Liu Z. Llm as dba. arXiv, 2023.
Wen Q, Gao J, Song X, et al. RobustSTL: A robust seasonal-trend decomposition algorithm for long time series. AAAI, 2019.
Liu Y, Tao S, Meng W, et al. LogPrompt: Prompt Engineering Towards Zero-Shot and Interpretable Log Analysis. arXiv, 2023.
Tao S, Liu Y, Meng W, et al. Biglog: Unsupervised large-scale pre-training for a unified log representation. IWQoS, 2023.
Ma L, Yang W, Xu B, et al. KnowLog: Knowledge Enhanced Pre-trained Language Model for Log Understanding. ICSE, 2023.
Zhong Z, Fan Q, Zhang J, et al. A Survey of Time Series Anomaly Detection Methods in the AIOps Domain. arXiv, 2023.
Wu H, Hu T, Liu Y, et al. Timesnet: Temporal 2d-variation modeling for general time series analysis. ICLR, 2023.
Yu G, Chen P, Li P, et al. Logreducer: Identify and reduce log hotspots in kernel on the fly. ICSE, 2023.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/710431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

打造去中心化透明储蓄罐:Solidity智能合约的又一实践

一、案例背景 传统的储蓄罐通常是由个人或家庭使用,用于存放硬币或小额纸币。然而,这样的储蓄罐缺乏透明性,用户无法实时了解储蓄情况,也无法确保资金的安全性。 通过Solidity智能合约,我们可以构建一个去中心化…

转前端了!!

大家好,我是冰河~~ 没错,为了更好的设计和开发分布式IM即时通讯系统,也为了让大家能够直观的体验到分布式IM即时通讯系统的功能,冰河开始转战前端了。也就是说,整个项目从需求立项到产品设计,从架构设计到…

leetcode 热题 100_字母异位词分组

题解一: 排序:对两个字母异位词,二者排序后的字符串完全一样,因此可以对所给字符串进行排序,以排序后的字符串作为HashMap哈希表的键值,将排序前的字符串作为值进行存储分组,最后返回。 import…

Opencv基础与学习路线

Opencv Opencv每一篇目具体: Opencv(1)读取与图像操作 Opencv(2)绘图与图像操作 Opencv(3)详解霍夫变换 Opencv(4)详解轮廓 Opencv(5)平滑处理 具体Opencv相关demo代码欢迎访问我的github仓库(包含python和c代码) demo代码 文章目录 Opencv一…

3d图形学基础(一):向量与坐标系

文章目录 1.1 向量与坐标系1.1.1 向量与坐标系的应用1.1.2 完整测试代码 1.1 向量与坐标系 1.1.1 向量与坐标系的应用 零向量: 零向量是没有方向的向量; 负向量: 负向量是与原向量方向相反、长度相等的向量; 向量的模&#xf…

一些好玩的小游戏

​ 入口 比较好玩(作者亲测) 别忘了点赞o( ̄▽ ̄)ブ ​

docker-compose搭建php开发环境

Docker Compose简介 Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。而DockerCompose作为一种容器编排工具&…

学不动系列-git-hooks和husky+lintstage

git-hooks 为了保证提交的代码符合规范,可以在上传代码时进行校验。常用husky来协助进行代码提交时的eslint校验。husky是基于git-hooks来实现,在使用husky之前,我们先来研究一下git-hooks。 构建git-hooks测试项目 需要使用git-hooks就需…

Java与JavaScript:深入剖析两种语言之间的相似性与差异

大家都知道JavaScript这个名字,听起来就像是Java的“小弟”或者“跟班”,但实际上,它们之间的关系远比这复杂。你可能会想,Java是大哥,JavaScript是小弟,那它们肯定有很多相似之处吧?错了!错了!错了!这完全是个误会。 JavaScript其实是个“蹭热点”的家伙。当Java这…

C++的设计模式:工厂方法模式(Factory Method)

工厂方法模式(Factory Method)是一种常用的创建型设计模式,它提供了一种创建对象的最佳方式。在工厂方法模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 意图 …

Git LFS提交大文件到GitHub

一、前言 关于 GitHub 上的大文件 GitHub Enterprise Cloud 限制存储库中允许的文件大小。 如果尝试添加或更新大于 50 MiB 的文件,您将从 Git 收到警告。 更改仍将成功推送到仓库,但您可以考虑删除提交,以尽量减少对性能的影响。 GitHub Ent…

QPaint绘制自定义仪表盘组件03

网上视频抄的&#xff0c;用来自己看一下&#xff0c;看完就删掉 ui mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QDebug> #include <QtMath> #include <QDialog> #include <QPainter> #include …

网络安全概述(一)

目录 资产保护 资产的类型 资产损失类型 资产保护考虑因素 安全强度、安全代价和侵入可能性的关系 信息安全技术发展 单机系统的信息保密阶段 信息保障阶段 信息保障技术框架IATF PDRR模型 网络攻击类型 阻断攻击、截取攻击、篡改攻击、伪造攻击 被动攻击和主动攻…

C#,双向链表(Doubly Linked List)归并排序(Merge Sort)算法与源代码

1 双向链表 双向链表也叫双链表&#xff0c;是链表的一种&#xff0c;它的每个数据结点中都有两个指针&#xff0c;分别指向直接后继和直接前驱。所以&#xff0c;从双向链表中的任意一个结点开始&#xff0c;都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循…

用来检查 CUDA、Conda 和 PyTorch 的版本的python文件

提供的 Python 代码片段包括几个语句&#xff0c;用来检查 CUDA、Conda 和 PyTorch 的版本&#xff0c;以及一些与 CUDA 相关的系统配置。让我们分解一下&#xff1a;PyTorch 版本和配置&#xff1a;torch.__config__.show()&#xff1a;显示 PyTorch 的构建配置。 torch.__ver…

LNMP架构介绍及配置--部署Discuz社区论坛与wordpress博客

一、LNMP架构定义 1、LNMP定义 LNMP&#xff08;Linux Nginx Mysql Php&#xff09;是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写&#xff1b;Linux系统下NginxMySQLPHP这种网站服务器架构。 Linux是一类Unix计算机操作系统的统称&#xff0c;是目…

基于单片机负载控制的无人机电气设备监测系统设计

摘要:为深入分析无人机电气设备的电子负载性能,实现对传输电子量的合理性监管与控制,设计基于单片机负载控制的无人机电气设备监测系统;利用电气信号发生电路,构建负载网络控制器与以太网模块运行所需的电气设备负载环境,借助PCB监控板建立PLC扩展负载模块与核心监控主机…

nftables 测试一拒绝所有流量

要配置 nftables 先拒绝所有流量&#xff0c;然后再添加允许的规则&#xff0c;您可以按照以下步骤操作&#xff1a; 创建一个空的 nftables 配置文件&#xff08;例如 /etc/nftables.conf&#xff09;并添加如下内容&#xff1a; flush rulesettable inet filter {chain input…

Java学习—Stream流

Java 8引入的Stream API是对集合操作的一种高级抽象。Stream API不仅使代码更加简洁易读&#xff0c;还引入了函数式编程的强大功能&#xff0c;使得对集合的操作更加灵活和强大。让我们更详细地探讨Stream的核心概念、操作以及它在实际编程中的应用。 核心概念 Stream&#…

王者荣耀,急于补齐内容短板

问十个人&#xff0c;有九个人知道《王者荣耀》&#xff1b;但如果再问十个知道《王者荣耀》的人&#xff0c;这款游戏到底讲了一个什么故事&#xff0c;每个角色又有怎样的背景&#xff0c;可能十个人都不知道。 整个新年档口&#xff0c;《王者荣耀》都很忙碌。 1月&#x…