本届挑战赛季军方案:构建由大模型辅助的基于多模态数据融合的异常检测、根因诊断和故障报告生成系统

DDopS团队荣获本届挑战赛季军。该团队来自中山大学计算机学院Intelligent DDS 实验室。实验室主要方向为云计算、智能运维(AIOps)、软件定义网络、分布式软件资源管理与优化、eBPF 性能监控与优化等。

选题分析

基于对竞赛数据的洞察和对时代趋势的考量,我们尝试应对两大主要挑战:融合多模态数据以及结合大模型辅助分析,并将选题确定为:构建由大模型辅助的基于多模态数据融合的异常检测、根因诊断和故障报告生成系统。

图片

小组拟定的赛题及解决方案达到以下运维能力,力求在解决热点问题的同时做出创新,且贴合赛题场景:

  • 故障检测能力。从多模态数据源中检测系统是否存在异常
  • 故障分类能力。在异常检测能力的基础上,分析出大致的异常类型。本次方案中能识别到的异常类型包括:耗时异常、流量异常(某事件触发次数增加)、业务逻辑异常(表现为断链)
  • 根因定位能力。即在众多异常中,找到问题根本原因 故障报告生成能力。即根据分析结果生成故障报告和恢复建议
  • 识别用户自然语言提问的能力。用户可以使用自然语言进行提问,模型会理解用户语义并分析出用户给出的任务

整体方案介绍

在这里插入图片描述
上图显示了我们所设计方案的整体架构,我们的方案主要包括以下四部分:

  • LLM-based交互层:此模块用于理解用户的query instruction,提取出用户给出的基础任务和参数。我们使用ChatGLM2作为base model,在源文件代码中加入self-consistency 、CoT 和 in-context learning的逻辑,使模型更能理解我们的场景并能更好地做出回答。
  • Multi-agent异常检测:由于涉及多种模态的数据源,采用单一检测模块难以获得高准确率且容易产生假阳性,因此我们采用multi-agent的检测方案。我们针对trace、log、metric三种模态数据均设计了异常检测agent。
  • 基于多模态数据融合的根因分析模型:算法将调用链、日志和指标等多模态数据转换成统一的事件表达,利用无监督的频繁项集挖掘的方法找出故障模式,在资源和代码块级别定位细粒度根因。同时该方法还能通过对比故障前后的模式变化对故障进行解释。
  • LLM-based故障分析器:采用多LLM Agent轮询问答的方式,不同的LLM Session作为不同角色,生成故障报告工单。

模块介绍与效果

接下来分别介绍各个模块的方案原理及效果。

LLM-Based交互层

在这里插入图片描述

LLM-based交互层模块的设计动机主要是期望用户能聊天式地用自然语言与系统交互,而不需要很高的学习成本来使用本系统。

对应方法论的主要流程图如上,我们将理解用户指令拆解为任务分类和参数分析两个阶段,每个阶段都与注入了思维链、ICL和自我集成逻辑的本地化大模型进行交互,最终输出结构化指令。

考虑到没有相关的benchmark进行评估,我们在确保指令质量和多样性的前提下,手动设计并打标了50个测试数据进行评估。结果显示我们在分类任务上达到92%的准确率,在解析任务上达到了90%的准确率。

我们认为这种较好的表现是因为LLM本身具有较强的语义理解能力,也因为分类任务和解析任务都不涉及复杂的推理过程:分类任务实质是一个二分类任务,而解析任务实质是文本摘要提取任务。我们通过majority vote的方式进行自我集成,即self-consistency,进而更加避免了错误结果的产生。下图是一个推理例子。

在这里插入图片描述

基于统计的指标异常检测

对于指标的异常检测,为了更全面地进行分析,我们分别设计了基于统计和基于神经网络两种指标异常检测器。对于基于统计的指标异常检测,我们采用类似计算同环比的思想。对于某一待检测值,我们首先找到正常数据中同一时间段的与之最相近的数据,做差计算余项,再进行esd检验,判断是否出现异常。

图片

检验结果如下,可以看到发生漂移的异常点均被成功检测。

图片

图片

基于神经网络的指标异常检测

然而基于统计的方法存在缺点,无法学习指标时序波形或趋势,因此我们引入基于神经网络的异常检测模块。我们选择了ltsf-linear模型,该模型仅采用两个单层线性感知机,就能达到比较好的检测效果。我们通过模型估计待检测时段的正常模式,并用实际模式与正常模式进行比较,来检测异常。

图片

检测结果如下,可以看到我们的方法能较好地检测出异常点,且对正常模式的误报率低。

图片

日志异常检测

对于日志异常检测模块。我们观察到本次比赛日志数据数量较大,但格式较简单,因此不需要做很复杂的日志解析工作。我们引入llm生成解析正则表达式和异常词,在检测阶段进行解析并校验是否存在异常词,以检测异常。

图片

调用链异常检测

对于调用链异常检测模块。我们首先进行预处理和采样,预处理首先将span拼接成链,并去掉不完整trace,防止污染数据。

由于全量分析时空耗时太大,我们会根据trace时延和是否存在错误码进行采样,再进行分析。

分析过程主要包括:首先对正常时间段内的调用链数据进行汇聚,构建包括接口——服务——事件的多层正常模版。在检测阶段,对于每一条待检测调用链,我们首先找到与之最相近的正常模版链,再对二者的结构、状态信息进行详细匹配比较,以定位和分析根因。

图片

检测结果如上,可以看到我们能识别出不同的异常类型如时延异常、断链等,并输出详细的告警事件单。

基于多模态数据融合的根因诊断

接下来是多模态融合根因分析模块。前面各个模态对应的异常检测器生成metric、log、trace告警后,多模态根因分析模块首先会对他们进行融合。我们会将metric告警单和log告警单根据发生时间和位置嵌入到trace中,形成统一的事件表征。然后进入根因分析算法逻辑,大致流程如下:我们在构建阶段和生产阶段分别构建事件图,分别挖掘无故障时的期望模式和有故障时的实际模式,并根据支持度计算得分,对根因进行排序,最终输出根因列表。

图片

LLM-based 故障报告生成

最后是LLM-based故障报告生成模块,我们主要使用多LLM agent轮询问答来实现这个模块。

图片

我们同时开启四个LLM sessions,作为四个具有不同角色的agent。

第一个agent的角色是receiver,其接收上游输入的根因列表并拆解成多个自然语言描述的根因。

第二个agent是summarizer,根据拆解得到的多个根因描述,汇聚形成根因摘要。

第三个agent是advisor,对每个单独的根因进行分析,并给出对应的故障恢复方案。

第四个agent是scorer,对方案进行评价,如果不满足预期,则重复进行新的一轮pipeline。

图片

最终输出一个报告单,报告单会包括根因摘要和恢复方案。

总结与思考

最后是我们的一些总结和思考。在我们本次的方案中,我们并非仅用LLM去搭建一个完整的端到端大模型,而是采用大小模型的思路,让LLM去做一些不太涉及具体系统本身但是需要按人类思维分析的任务,对垂向问题的专业任务交给小模型,这样更能利用大模型的general知识,减轻LLM幻觉带来的危害。同时也注意到LLM在Ops中应用的一些挑战。一个是很容易会面临冷启动问题,另一个是生产微服务系统是高速迭代和不断变化的,用于训练的知识可能很快会过时甚至成为噪声,我们认为这些挑战都是在运维领域用好大模型需要去认真思考和回应的。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

苹果Vision Pro芯片级拆解:339S01186传感器协处理器,电源管理芯片:343S00627、343S00628、343S00629

2月2日,苹果官方发售Vision Pro后,引发了抢购潮,产品“秒光”,甚至将起售价 3499 美元一度炒到近 9 万元人民币的代购价。 日前知名维修网站iFixit又一次“首拆”了苹果Vision Pro,每一块电路板、每一颗螺丝钉、每一颗…

阿里云4核16G服务器多少钱?幻兽帕鲁配置报价

2024阿里云幻兽帕鲁专用服务器价格表:4核16G幻兽帕鲁专用服务器26元一个月、149元半年,默认10M公网带宽,8核32G幻兽帕鲁服务器10M带宽价格90元1个月、271元3个月。阿里云提供的Palworld服务器是ECS经济型e实例,CPU采用Intel Xeon …

FPGA高端项目:FPGA基于GS2971的SDI视频接收转HDMI输出,提供3套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI图像缩放应用本方案的SDI纯verilog图像缩放视频拼接应用本方案的SDI HLS图像缩放视频拼接应用本方案的SDI视频编码动态字符叠加输出应用本方案的SDI视频编码多路视频融合视频叠加应用本方案的SDI视频…

npm 最新淘宝镜像配置 + nrm工具配置及使用

一、前言 npm 淘宝镜像已经从 registry.npm.taobao.org 切换到了 registry.npmmirror.com (HTTPS 证书到期不能用了) 二、直接命令配置 1、执行以下命令即可切换淘宝源 npm config set registry https://registry.npmmirror.com/2、执行以下命令即可…

学不动系列-eslint

ESLint 介绍在最简单的项目使用eslint,包括eslint的vscode插件的使用,自动化格式代码,自动化修复代码,和webpack,vite的配合使用 单独使用 第一步:构建一个空项目 npm init -y 在根目录新建文件./src/app.js&#…

C++重点---STL简介

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 一、STL简介 STL(Standard Template Library)是C标准库中的一个重要组成部分,它提供了…

跳跃游戏Ⅱ

问题 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i] i j < n 返回到达 nums[n - …

SpringBoot整合rabbitmq-直连队列,没有交换机(一)

说明&#xff1a;本文章只是springboot和rabbitmq的直连整合&#xff0c;只使用队列生产和消费消息&#xff0c;最简单整合&#xff01; 工程图&#xff1a; A.总体pom.xml <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://…

压力测试工具Jmeter的下载与使用

1、进入官网下载Jmeter https://jmeter.apache.org/ 国内镜像&#xff08;下载的慢的话可以用国内镜像下载&#xff09; https://mirrors.cloud.tencent.com/apache/jmeter/binaries/ 2、跳转到下载页面 3、根据不同系统下载相应版本的Jmeter压缩包&#xff0c;Linux系统下载…

精品springboot校园失物招领系统

《[含文档PPT源码等]精品基于springboot校园失物招领系统[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; Java——涉及技术&#xff1a; 前端使用技术&#xff1a;HTML5,…

机器学习——CBOW基于矩阵(手动实操)

基于矩阵的CBOW基础算法&#xff0c;其实是负采样的前提算法。 主要是根据 预测准确率为22%左右 说实话。。。我已经很满意了&#xff0c;至少这个东西是可以去预测的&#xff0c;至于预测为什么不正确&#xff0c;我目前猜测主要还是跟词频有关。 在结果中&#xff0c;an…

前端架构: 脚手架之多package项目管理和架构

多package项目管理 1 &#xff09;多package项目管理概述 通常来说&#xff0c;当一个项目变大了以后&#xff0c;我们就要对这个项目进行拆分在前端当中&#xff0c;对于项目进行拆分的方式&#xff0c;通常把它称之为javascript包管理需要使用一个工具叫做 npm (Node Packag…

OpenCV实现目标追踪

目录 准备工作 语言&#xff1a; 软件包&#xff1a; 效果演示 代码解读 &#xff08;1&#xff09;导入OpenCV库 &#xff08;2&#xff09;使用 cv2.VideoCapture 打开指定路径的视频文件 &#xff08;3&#xff09;使用 vid.read() 读取视频的第一帧&#xff0c;ret…

clickhouse 随心所欲的聚合模型-AggregatingMergeTree

clickhouse 强大的 MergeTree 系列引擎令人信服&#xff0c;其 ReplacingMergeTree、SummingMergeTree 在数据唯一性和汇总场景中表现非凡。但你是否还有保留最小(大)、平均等预聚合需求&#xff0c;甚至在一个模型中既有唯一性语意也有汇总、最小、最大、平均值语意该如何处理…

JVM——JVM与Java体系结构

文章目录 1、Java及JVM简介1.1、Java是跨平台的语言1.2、JVM是跨语言的平台 2、Java发展里程碑3、Open JDK和Oracle JDK4、虚拟机与JVM4.1、虚拟机4.2、JVM 5、JVM整体结构6、Java代码执行流程7、JVM的架构模型7.1、基于栈式架构的特点7.2、基于寄存器架构的特点 8、JVM的生命周…

Freesia项目介绍

项目介绍 这是一个Spring Boot Vue的前后端分离项目&#xff0c;实现的是一个通用的后台管理系统。 框架使用 前端使用了layui-vue和layui-vue-admin&#xff0c;分别提供了组件和前端整体架构的支持。 后端使用Spring Boot框架管理 项目技术使用 前端 Layui-vue、Layui…

飞天使-学以致用-devops知识点3-安装jenkins

文章目录 构建带maven环境的jenkins 镜像安装jenkinsjenkins yaml 文件安装插件jenkins 配置k8s创建用户凭证 构建带maven环境的jenkins 镜像 # 构建带 maven 环境的 jenkins 镜像 docker build -t 192.168.113.122:8858/library/jenkins-maven:jdk-11 .# 登录 harbor docker …

Socket网络编程(三)——TCP快速入门

目录 概述TCP连接可靠性1. 三次握手过程2. 四次挥手过程3. 为什么挥手需要四次&#xff1f; 传输可靠性TCP核心APITCP传输初始化配置&建立连接客户端创建Socket建立连接服务端创建ServerSocket监听连接ServerSocket 和 Socket的关系 Socket基本数据类型传输客户端数据传输服…

阿里云A10推理qwen

硬件配置 vCPU&#xff1a;32核 内存&#xff1a;188 GiB 宽带&#xff1a;5 Mbps GPU&#xff1a;NVIDIA A10 24Gcuda 安装 wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-rhel7-12-1-local-12.1.0_530.30.02-1.x86_64.rpm s…

php docx,pptx,excel表格上传阿里云,腾讯云存储后截取第一页生成缩略图

php把word转图片的方法:首先给服务器安装libreoffice;然后使用exec函数来调用命令行操作;最后通过“exec(“soffice --headless --invisible…””方法把word转图片即可。 服务器环境:centos7 *集成环境:宝塔 我们开始给服务器安装libreoffice 直接执行下面的代码就可以…