RCAgent:云故障根因分析的自主智能体工具增强型大模型

人工智能咨询培训老师叶梓 转载标明出处

由于云上计算部署的不断扩展,手动在线异常RCA工作流程,如创建故障排除工具,常常使网站可靠性工程师(SRE)应接不暇。为了提高云服务可靠性效率,一系列人工智能运维(AIOps)方法已被广泛应用于RCA,以减少平均解决时间(MTTR)。

本文介绍了RCAgent,这是一个工具增强型大型语言模型(LLM)自主智能体框架,用于实际和注重隐私的工业RCA使用。RCAgent在内部部署的模型上运行,而不是GPT家族模型,能够进行自由形式的数据收集和全面分析。该框架结合了多种增强功能,包括独特的行动轨迹自我一致性(Self-Consistency),以及一系列用于上下文管理、稳定化和导入领域知识的方法。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具(限时免费)。

1小时实战课程,您将学习到如何轻松上手并有效利用 Llama Factory 来微调您的模型,以发挥其最大潜力。

CSDN教学平台录播地址:https://edu.csdn.net/course/detail/39987

方法

为了系统化和可靠地提示大模型作为工具增强型自主智能体进行云计算的故障根因分析(RCA),提出了RCAgent,这是一个增强型推理和行动框架。Figure 1 展示了决策循环级别的方法论概览。为了清晰起见,将具有思考-行动-观察循环提示的大模型智能体命名为控制器智能体,负责协调行动,而RCAgent还额外使用了称为专家智能体的大模型作为工具,用于特定领域的功能。

与典型的ReAct工具智能体提示框架一致,控制器智能体被注入了三个基本提示:(i)描述思考-行动-观察循环的框架规则,(ii)包含基本云知识的RCA任务指令的任务要求,以及(iii)描述所有可调用工具的工具文档。由于其灵活性和可读性,JSON被选为所有大模型行动步骤中的数据交换格式。还定义了一个名为‘finalize’的工具作为退出点,允许模型自由决定何时以可解析格式报告发现结果。值得注意的是,与原始的ReAct相比,RCAgent因为上下文长度有限而丢弃了少数样本示例。

从ReAct的工具智能体版本开始,提出了几项增强功能,以解决在云RCA中使用工具增强型大模型智能体的挑战。

  1. 为了应对上下文长度挑战,首先发明了一种压缩令牌使用的观察管理方法。
  2. 由于大模型本身无法访问并且没有足够的关于云系统领域特定知识,为RCAgent构建了包括大模型增强工具在内的工具。
  3. 为了解决行动有效性问题,RCAgent具有稳定化方法。
  4. 最后,为了提高RCAgent的性能,因为使用的是能力较弱的本地托管大模型,所以采用了聚合方法。
观察快照键

在全面的云环境中构建自主智能体时,上下文长度是一个基本挑战。智能体提示中的观察内容,包含大量日志、表项等,是提示膨胀的最主要部分。为了克服从截断和总结观察中丢失信息的问题,提出了观察快照键(OBSK)。Figure 1 展示了OBSK的工作流程。在这个流程中,只向控制器智能体显示观察的头部,并留下一个快照密钥(snapshot key)用于后续引用。构建了一个键值存储,将快照密钥映射到实际观察。当在解析的行动中找到快照密钥时,RCAgent通过键值存储查询并返回相应的观察。这确保了在控制长度的同时,为控制器智能体提供必要的支持信息。

工具准备

数据查询功能被用作信息收集工具,基于大模型的专家智能体作为分析工具,类似于人类SRE执行的数据收集和分析过程。

信息收集工具被设计为易于使用的方式,隐藏了访问云系统数据时的所有无关细节。例如,这些工具只接受简单的参数,如实体的ID。这种语义最小化的工具设置将降低大模型采取有效行动的门槛,防止在大型数据仓库中进行无用探索。此外,为了避免智能体的无效分析,去除了相似信息,并排除了WARNING级别以下的消息。

分析工具被提出以扩展由大模型增强的控制器智能体的领域知识和能力。这种分析工具被称为专家智能体,如Figure 1所示。为RCAgent提供了两个专家智能体作为补充知识工具,称为代码分析工具和日志分析工具。两者都通过零样本链式思考(Chain-of-Thought, CoT)和答案提取指令生成分析和聚合。

代码分析工具以递归方式工作,如Figure 2所示。给定一个类名,代码分析工具在代码库中搜索相应的文件。在大模型读取和分析代码文件后,它被提示建议任何其他有助于分析的类作为支持信息。这些建议将存储在任务队列中,管理所有待处理任务。通过这种穷尽搜索,当没有更多感兴趣的代码文件被推荐,或者所有剩余推荐的文件都是外部依赖时,代码分析工具停止解析。然后,利用大模型总结所有代码文件,其结果作为观察呈现给控制器智能体。

日志分析工具在适应长日志数据的上下文RAG范式中运行。Algorithm 1描述了完整的机制。日志被分割成行,并构建边,边的权重是随着文档距离指数衰减的余弦相似度。这产生了一个加权无向密集图,其中行作为顶点,描述了行之间的相关性,当其他行插入中间时,这种相关性会减弱。然后使用Louvain社区检测对图进行聚类,并通过贪婪切换最小数量的聚类标签来去除聚类之间的重叠。这种聚类作为语义分区,结果的日志块随后以每个块一轮的方式输入到日志智能体中,执行检索增强生成(Retrieval-Augmented Generation, RAG)。此外,指导专家智能体通过直接复制日志内容来输出支持其分析的证据,防止分析示例而非分区块的幻觉。如果大模型列出的证据不能与块进行模糊匹配,则丢弃分析结果。因此,确保了对长非自然语言的可靠RAG。

稳定化

为了克服由噪声数据和能力较弱的本地大模型引起的行动有效性退化,引入了两种稳定化方法。

JSON修复

在工具增强型大模型自主智能体的实际应用中,结构化推断可解析数据(例如JSON)是一个重要问题。采用了一种直观有效的方法来生成结构化交换数据,名为JsonRegen。在大模型推断之前,所有可能对应JSON中控制符号的敏感字符都被替换为不敏感的字符,以获得干净的提示。当简单的清理无法使JSON样式字符串可解析时,将执行再生过程。为了强制大模型理解JSON结构,指导它将内容转换为YAML。然后提示大模型用相同的结构和内容重新生成JSON。再生过程进行几轮,直到解析出有效的JSON。

错误处理

先前的工作表明,工具调用中的大模型倾向于传播错误,限制了探索性行动。这些问题在能力较弱的大模型中更加明显。使用预定义的标准将问题行动或状态标记为错误。向控制器智能体提供错误消息和建议,包括这些情况:使用相同参数集对无状态工具的重复调用,对专家智能体的琐碎输入,以及未经彻底调查就提前完成。这些错误消息可以通过提醒控制器智能体减少无意义行动的频率。

自我一致性聚合

自我一致性(SC)已在各种封闭的NLP任务中证明了其有效性,而在大模型智能体中聚合采样的开放式多步生成(如RCA)尚未充分探索。因此,提出将SC范式应用于大模型自主智能体的自由形式生成。

在实验中,使用了两种方法来将SC应用于文本数据:

  • 投票与嵌入:推广了无权重SC(多数投票)的理念,这在所有任务中表现最佳。投票可以重写为arg max𝑖(Sim(a𝑖,1𝐾Í𝐾𝑗(a𝑗))),其中𝐾是样本数量,a𝑖是一个一热向量,代表第𝑖个样本结果,每个位置作为一个候选选择或数值结果。将a替换为文本输出的语义嵌入。直观地说,意味着选择最接近多数的文本结果。

  • 用大模型聚合:考虑到生成内容的多样性,提示大模型聚合候选项,并以相似的形式和长度输出。

SC已在CoT推理路径上进行了全面测试,并且可以自然地应用于ReAct风格的轨迹。然而,直接采样多个思考-行动-观察周期可能会很昂贵。当某些行动,如激活专家智能体,需要大量消耗时,这尤其昂贵。此外,没有任何历史行动或少数样本示例的随机采样会导致错误泛滥,例如连续调用不存在的工具。因此,提出了一种名为轨迹级自我一致性(Trajectory-level Self-Consistency, TSC)的中间采样方法,如Figure 3所示。具体来说,只有在控制器智能体进入最终确定阶段时,才开始采样。这种采样策略在轨迹样本之间共享了大部分初步步骤,并减少了不必要的消耗。此外,来自贪婪解码的更稳定的行动历史提供了示例,而无需额外消耗上下文长度的少数样本示例,从而抑制了采样的有效性下降。这种方法在完整过程SC和单步CoT SC之间取得了平衡。

实验 

在阿里巴巴云的实时计算平台上开发和评估了RCAgent,该平台是一个基于Apache Flink的企业级、高性能系统,能够进行实时流数据计算。在高峰时段,该系统每秒可以处理1亿条数据记录。

模型配置

实现基于Vicuna-13B-V1.5-16K模型,使用单个NVIDIA A100 SXM4 GPU(80 GB)上的vLLM后端。默认使用贪婪解码策略,以获得更好的可重复性和稳定性。在需要随机采样的自我一致性过程中,使用Vicuna的默认配置。使用的嵌入模型是GTE-LARGE,因为它在MTEB上的结果略优于text-embedding-ada-002,提供了一个内部可部署的替代品。对于自我一致性结果,默认使用10个输出样本。采用逐步自我一致性(SC),只接受在贪婪解码轨迹后同步完成的样本,不允许额外的行动步骤。

数据集准备

为了根因分析,收集了一个月云系统历史中的15,616个异常作业数据,包括无法恢复的失败或在6分钟内无法启动的作业。过滤数据后,获得约5,000个具有实质性日志内容的非平凡异常作业。使用从经验丰富的SRE领域知识中提炼出的大型规则集Flink Advisor,为这些作业创建分析结果。由于异常的不平衡性,即大部分异常具有相同的根本原因,将成功分析的作业减少到161个离线数据集。减少是按照类别平衡约束进行的,即不超过两个作业具有相同的根本原因。这些作业所需的注释包含四个项目:根本原因、解决方案、证据和责任确定。首先使用大模型从Flink Advisor中总结分析结果,并输出上述四个项目。然后SRE团队进行校对和注释目标输出。保证注释不显示像“此异常的根本原因是...”这样的无信息模式,这会导致一些语义得分不可靠。

可用的数据源,为大模型智能体构建信息收集工具,包括:

  • 三个级别的日志数据:平台、运行时和基础设施,存储在阿里巴巴云的SLS(简单日志服务)中。
  • 包含顾问服务历史的数据库。
  • 包含顾问服务代码的仓库。

对于日志和数据库条目,只能检索到异常检测时间之前的数据,防止分析未来信息,遵循实际使用。

Table 1 和 Table 2 展示了在Flink作业上根本原因预测和解决方案生成的结果。RCAgent在所有方面的综合RCA中优于原始的ReAct,包括根本原因、解决方案和证据预测。性能优势在所有指标中都是明显和一致的,包括在根本原因和解决方案预测子任务中与ReAct相比,METEOR分别提高了+8.71和+6.52。采用LLM总结的TSC聚合,RCAgent的整体性能得到了进一步提升,特别是在解决方案预测方面,METEOR提高了+3.51,BLEURT提高了+4.50,G-Helpfulness提高了2.28%。这种提升可以解释为解决方案采样的多样性更广。

评估指标

除了包括METEOR、NUBIA(6维)、BLEURT和BARTScore(F-Score, CNNDM)的语义指标分数外,还使用了额外的嵌入分数(EmbScore),即实验中默认嵌入模型的余弦相似度。还遵循使用更强大的模型来估计模型预测的常见做法。使用贪婪解码的gpt-4-0613,这是GPT4的一个冻结版本,以获得更好的可重复性。提示模型判断根本原因和解决方案预测的准确性和有用性,分别标记为G-Correctness和G-Helpfulness,并给出0到10的分数。

Table 3 展示了方法的证据的语义分数。RCAgent在所有方面的综合RCA中优于原始的ReAct,包括根本原因、解决方案和证据预测。性能优势在所有指标中都是明显和一致的。

Table 4 展示了不同设置的动作轨迹统计数据。RCAgent实现了99.38%的通过率和7.93%的无效率,意味着几乎完美的稳定性和显著的优势。当LLM专家或OBSK被移除时,控制器智能体仍然保持超过90%的通过率,而两者的缺失都导致了错误倾向的探索,将其一些行动转向冗余的工具调用。移除JsonRegen显著损害了稳定性,因为无效的数据交换激增。

Figure 4 展示了不同规模和方法的自我一致性性能。统计数据显示,每种自我一致性方法都一致地提高了RCAgent在BARTScore和NUBIA方面的性能。当样本数量达到20时,这种增强似乎趋于平稳。在所有指标中,TSC由于其多样化的行动采样而带来优越性。随着样本数量的增加,LLM聚合比嵌入投票表现得更好,并且随着候选池的增长,这种差距扩大,说明了LLM聚合能够提供更全面的结果。

论文链接:https://arxiv.org/pdf/2310.16340

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

PET-文件包含-FINISHED

include发生错误报warning,继续执行。require发生错误直接error,不继续执行 无视扩展名,只要能解析,就能当可执行文件执行,哪怕文件后缀或没后缀 1 条件竞争 pass17 只需要知道tmp的路径。把xieshell.jpg上传&…

基于Java+SpringBoot+Vue前后端分离课程管理系统

一、作品包含 源码数据库设计文档全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据库&…

学术界的秘密武器:Zotero7大插件推荐

还在为海量文献管理头疼吗?还在为找不到合适的插件犯愁吗?别急,今天我就要带你解锁Zotero的终极武器 - 那些让你爱不释手的必备插件! 作为一个从小白到文献管理达人的过来人,我可以负责任地说:没有这些插件,你的Zotero只能发挥一半功力!安装了这些插件,你的效率绝对能飙升! …

Linux·进程信号

信号是一种用户、OS、其他进程,向目标进程发送异步事件的一种方式。 在系统中信号是OS出场时程序员就内置好了的,因此任何进程都认识所有信号,信号产生之前,信号的处理方案就已经设定好了,一般有三种 1. 默认行为 2.…

BizDevOps:从理念到实践,贯通企业全链路协同

👆 点击蓝字 关注我们 引言 BizDevOps的概念由DevOps发展和进化而来,其目标超越了开发和运维的协同,进一步实现业务、研发和运维的全链条协作,让业务作为价值的起点及核心目标。 BizDevOps的核心驱动力在于解决效率和正确性上的割…

工厂方法模式和抽象工厂模式

序 本文主要是记录学习设计模式当中的工厂方法和抽象工厂时碰到的疑惑和对答案的探讨 刚接触时的工厂方法模式和抽象工厂模式 工厂方法模式 类图 代码 //工厂public interface TVFactory {TV produce(); }public class TclTVFactory implements TVFactory{Overridepublic T…

NVR小程序接入平台EasyNVR多品牌NVR管理工具/设备:RTMP协议摄像头的接入

随着安防技术的不断进步,越来越多的摄像头开始支持RTMP(Real Time Messaging Protocol)协议,这种协议使得视频流的实时传输和分发变得更加高效和便捷。NVR小程序接入平台EasyNVR作为一款功能强大的流媒体服务器,支持多…

硬件基础20 数模转换器D/A DAC

目录 一、DAC基本原理 二、倒T形电阻网络D/A转换器 三、权电流型D/A转换器 四、重要技术指标与参数 1、分辨率/位数 2、转换精度 (1)、比例系数误差 (2)、失调误差 3、转换速度 4、温度系数 五、DAC的应用 1、数字式可…

Memory consistency model 梳理目录

(图片来源:https://mp.weixin.qq.com/s/uz4fZgJSRNm-MIRdXgBMmw) 闲聊内存模型(Memory Model)https://blog.csdn.net/zhangshangjie1/article/details/143743250?sharetypeblogdetail&sharerId143743250&sharereferPC&sharesourcezhangshangjie1&…

WPF Prism框架

Prism 是一个开源框架,专门用于开发可扩展、模块化和可测试的企业级 XAML 应用程序,适用于 WPF(Windows Presentation Foundation)和 Xamarin Forms 等平台。它基于 MVVM(Model-View-ViewModel)设计模式&am…

智能零售柜商品识别

项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于CNN-RNN的影像报告生成】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实现…

SSH远程连接工具详解

SSH远程连接工具指的是基于SSH(Secure Shell)协议进行远程连接和管理的工具。SSH是一种加密的网络协议,用于在不安全的网络环境中安全地传输数据,并实现远程访问和管理。以下是对远程SSH工具的详细解释: 一、SSH协议概…

卷积层的堆叠、Stacking堆叠法

3个3x3的卷积层串联的效果则相当于1个7x7的卷积层。那为什么选择使用3个3x3的卷积层而不是使用1个7x7的卷积层呢? (1)3个串联的3x3的卷积层,拥有比1个7x7的卷积层更少的参数,参数量是后者的(3x3x3 ) /&…

【模块一】kubernetes容器编排进阶实战之containerd安装及nerdctl客户端⼯具

安装containerd apt/yum安装 #验证仓库版本 [rootk8s-node3 ~]#apt-cache madison containerd containerd | 1.7.12-0ubuntu2~22.04.1 | https://mirrors.aliyun.com/ubuntu jammy-updates/main amd64 Packages containerd | 1.6.12-0ubuntu1~22.04.3 | https://mirrors.aliy…

公司电脑加全屏水印怎么加(怎么打水印满屏)?4个方法精选!包教包会!

在企业管理中,为了保护公司机密信息的安全,给公司电脑添加全屏水印已成为一种常见的安全措施。 全屏水印不仅可以震慑潜在的窥探者,还能在信息不慎泄露时提供追溯线索。 那么,如何给公司电脑添加全屏水印呢? 以下是4…

public or static包下的 html 丢了(404)? 你快回来! 我一人承受不来

没想到吧,我把html还是放到了jar包中~ 环境: Spring Boot 版本 2.XJava 版本 1.8.0 及以上 问题: public or static包下的 html 丢了(404)? 话不多说先上图 我的目录结构是这样的 src └─…

使用多种机器学习调参模型进行二分类建模的全流程,代做分析辅导

使用多种机器学习调参模型进行二分类建模的全流程教程 机器学习全流程分析各个模块用到的总的参数文件 0. 分析参数文件 参数文件名称:total_analysis_params_demo.xlsx ,很多分析模块都是这个总的参数文件,我的这个总的参数文件如果有更新…

国家博物馆数据的爬取(包括xlsx文件、csv文件、图片爬取)

1、请求html数据 右键检查这里静态的数据被注释掉了,只能读取一条数据 import json import pandas as pd import requests from bs4 import BeautifulSoup import csv from urllib.parse import quote # 起始网址 header={User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; …

云技术基础介绍

云技术介绍 一、云技术历史 二、云服务 三、公有云服务商 四、云分类 1. 服务层级 IaaS (基础设施即服务) PaaS (平台即服务) SaaS (软件即服务) 2. 云部署模式的分类 公有云 (Public Cloud) 私有云 (Private Cloud) 混合云 (Hybrid Cloud) 社区云 (Community Clo…

常用的c++新特性-->day09

原子变量 C11提供了一个原子类型std::atomic,通过这个原子类型管理的内部变量就可以称之为原子变量,我们可以给原子类型指定bool、char、int、long、指针等类型作为模板参数(不支持浮点类型和复合类型)。 原子变量会把线程对数据的…