AIOps探索 | 基于大模型构建高效的运维知识及智能问答平台(1)

2023-12-20 02:36

本文主要是介绍AIOps探索 | 基于大模型构建高效的运维知识及智能问答平台(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原作者:擎创科技产品专家 布博士

    提升运维效率对于任何组织都至关重要。在追求高效运维的过程中,一个关键步骤就是建立丰富的知识共享平台,它能够为团队成员提供一个共享经验、解决方案和最佳实践。通过知识共享,团队可以更快地解决问题并成长,提高企业内部运行运营的整体效率。

平台对运维效率提升的重要性和挑战

运维效率的提升很大一部分,在于不同角色的运维人员在不同的场景(故障处置、IT服务工作台、应急分析及处置等)中对知识的快速应用,其对提升运维效率非常重要,同时也面临很多挑战。

重要性

  • 知识复用:同样的数据库故障,在不同的应用系统下事件管理员需要同样的分析过程和咨询原厂商的过程,难以在事件再次发生的情况下有效识别,并进行知识复用。

  • 专家经验工具化:专家在处理问题时,通常都具有很强的专业背景和经验,这些知识如何有效的工具化,使一线的值班人员在处理简单、重复的问题时,可以在不同的场景直接获得专家的经验知识,快速解决问题,降低成本,让专家专注在更高效地提升客户体验上。

  • 快速问题解决 :运维知识及智能问答平台可以促进团队随时随地的知识使用和学习需求,使团队可以不断学习和改进运维流程和工具,最终快速问题解决,提高运维效率。

挑战

  • 知识有效利用:由于缺乏智能化手段(或成本高昂),老旧的知识库和自动问答系统只能作为存储和搜索数据库,难以有效利用存储在知识库中的知识。这也导致了对知识库的维护意愿不高。

  • 知识运用场景化:使用知识需要登录到知识库系统查询相关知识,而不是在不同的应用场景中。这导致了使用成本较高,例如在事件或应急场景下,是否能够在推送告警事件或应急场景时,同时推荐相关事件的知识或解决方案。

  • 知识反馈流程化:一旦知识进入系统,就很难发现其中的问题,因为无法有效利用。即使发现了问题,也需要经过冗长的流程和填写大量表单,这让大多数人望而却步。在场景化应用中,应该能够在使用流程的各个环节中遇到问题时进行实时且高效的反馈,润物细无声,而非刻意要去做某件事情。

基于大模型的平台建设解决方案

由于最近一年来大模型的智能化能力在知识及智能问答领域的突飞猛进,使得之前力不从心的知识及自动问答系统有了更好的技术手段可以满足人们对其的应用需求。

使用场景说明

故障排除与问题解决
  • 告警处置方案知识化:当事件管理员在告警管理工作台处置告警时,其对告警的最终分析处置解决方案可以同步知识库做为故障处置的知识存储。

  • 告警产生知识推荐:当事件管理员在告警管理工作台看到新产生的告警时,大模型可以直接推送针对该告警可能的解决方案知识信息,加速分析及处置效率。

应急场景

  • 应急手册:大型企业都会对一些重要的业务系统进行应急演练,并配置相应的应急手册,当出现故障时可以按应急预案进行操作,因此应急手册成为应急场景下的重要知识来源。

  • 应急知识推荐:在故障应急状态下,系统本身已经收集了应急的相关数据,这时可以根据应急状态下产生的告警信息由大模型分析之后,推荐应急操作预案、推荐针对单个告警的处置方案、甚至故障的成因也一并推送出来,这时可以辅助应急决策人员进行快速的应急处置和业务恢复。

已知故障
  • 厂商手册:应用研发厂商、技术组件厂商(开源或商业)一般会准备一些快速的故障排查及处置手册,这些会成为运维领域知识的重要组成部分,大模型通过对故障关键字的匹配可以精确找到故障的解决方案。

  • 运维专家或SRE工程师对故障的总结:这两个重要的角色在日常运维的过程中针对发现和处置的故障进行总结之后,会形成已知故障场景库,当再次发到类似的故障之后,可以直接推送针对当前故障的分析方法、处置恢复方案,减少专家介入和排查的时间成本。

运维管理规范
  • 也是重要的知识内容,当出现应急或重大事件的场景下,一般运维人员会采用各种方法找捷径去恢复业务,但是捷径代表不可预知的风险,因此在故障场景下,不仅要让当前的处置事件的工程师获取处置事件的知识、建议,同样也要告诉到他针对这类事件的处置要遵守某种操作规范。

工单处置结果
  • 工单处置结果知识化:来自工单系统的对某个工单的处置结果同样也可以做为知识的一部分,当处置完成之后这些信息会同步知识库。

  • 工单知识推荐:当某个工程师被分配工单之后,针对工单上所描述之故障的推荐知识也会随之提供出来。

IT服务台
  • 服务台客户服务知识化:日常服务台响应和回答用户或客户的问题,是最好的一问一答格式,可以经过审核和优化之后的标准答案做为知识库存储起来。

  • 服务台客户服务知识推荐:不论是来自电话语音还是文字的客户沟通问题,都实时转译为文字通过大模型从知识库中匹配最佳的答案提供客服人员或智能问答机器人进行快速的回复。

运维知识体系构建

图片

针对运维知识体系的构建,我们分成三个重要的组成部分:
  • 运维知识供献场景层:蓝色的部分,为运维领域的一些主要场景,其在进行业务开展的过程中会产生大量的知识,这些知识需要通过某种标准化的手段(自动的、模板化的)进入到传统知识管理层,对这些知识进行分门别类的管理。

  • 传统知识管理层:橙色的部分,知识构建和管理的过程同老旧的知识管理没有什么分别,可以用一些老版的管理工具,如wiki、conflunce甚至wordpress这种工具都可以很好地管理起来,在这里不再详述。

  • 基于大模型的知识库层:灰色的部分,这是同传统的知识体系应用不太一样的地方,传统上的应用会定时将这些知识存储到ES类的系统中以方便进行全文检索,然后提供算法对检索的内容进行排序,而基于大模型的知识检索和知识问答则需要将知识库中的信息转换为纯文本信息,然后再对文本进行分割(分割知识块),然后通过特定的算法将文本向量化之后存储在向量数据库中。(这个过程在互联网上大家可以找到非常多的内容来详细了解,在此不再详细描述)

针对知识的创建主要分为两类:
  • 手工知识创建:该过程可以让运维人员自行登录知识库系统并建立知识。

  • 基于场景化的知识创建:在运维的不同场景中结合场景来自动化创建相应的知识,如事件处理完成之后,对事件的总结性回顾的内容可以日终批量同步到知识库系统中,包括问题、问题描述及日志、问题产生的原因、解决方案这四个关键字段内容。

运维知识体系应用

图片

在收集了知识信息之后,剩下的部分就是知识的应用了,在“使用场景说明”章节中,已经详细介绍了在运维领域可能的使用场景,集成工作无非就是api嵌入到使用场景中,结合业务流程来进行使用,通过大模型的核心能力基于对应场景上下文信息,提供知识,满足场景使用需求。

以告警工作台为例,说明一下大模型场景下整个系统交互的处理流程:

首先,事件管理员在告警工作台看到了一条告警,对于这条告警自己也没有遇到过,这时当他打开这条告警进行分析时,系统会自动根据告警内容抛出一个“查询/提问”,如:针对下方这条告警系统要能够自动归纳出这是“CPU使用率异常”问题。

【次要告警(xx数据中心)】应用监控平台[APM],by10xxxxx,Linux服务器1分钟CPU负载高(实例:CPU),当前值:1.25,阈值:1 - 9999999,发生时间:09/17/2020 18:38:25 【详细信息:Cpu Number:8; 1 Min Load Average:9.99; D Process Number:0】【生产地址:*.168.1.*;所属资源池:暂无,序列号:210xxxxxxxxx0218】

1. 针对查询/提问的内容“cpu使用率异常”进行有效性检验,一般验证查询或提问的内容是否为空。

2. 针对查询/提问的内容进行向量化转换(大模型通用的一种实现方案将文本或知识进行向量化存储,同时查询也会先向量化,具体可以通过google了解一下技术细节)。

3. 通过向量化之后,需要到向量数据库进行查询跟该向量结果相似的内容,注意这一步一般是本地的算法工程来完成,找到跟该内容相似的所有内容,而不是将整个库提供给大模型,大模型是在此基础上进行推理。

4. 在基于向量的知识库中查询之后,会将满足条件的相似内容提交给大模型处理。

5. 在正式发送给大模型之前,需要Prompt处理,其实是让大模型进行角色扮演的指令,如针对上面一条告警生成的prompt建议如下:

你现在是一名运维领域的专家,主要处理一些重要的告警。请根据告警的问题“CPU使用率异常”,帮助推荐给出问题出现的大致原因和解决方案。

6. 这时调用大模型的接口对该prompt进行处理,注意在这里大模型可以是openAI提供的也可以是国内不同的企业所开发的大模型,由大模型针对查询的问题和相似的内容做出推理判断。

7. 针对大模型判断的结果输出给告警工作台,如下图所示:

图片

系统集成边界

图片

针对已有自动问答系统和知识库的企业用户,可以参照上图为系统集成边界,参照如上方式可以最大限度的保障企业已有的资产:

  • 核心的推理引擎:采用openAI或其它的大模型来增强智能问答或知识检索系统的效果。

  • 向量化知识库:传统的知识信息存储在关系数据库或ES这类系统中,而基于大模型的应用,则需要将其存放到向量数据库中,因此需要从传统知识库中同步相关的知识进向量化知识库,而对知道的管理过程,则保持不同。

  • 知识管理:知识管理过程,知道的采集、审核、保存,如果企业已有现成的系统,则可以不必替换。只是需要将信息同步到向量化知识库中。

  • 智能问答系统:老旧的智能问答系统一般已经完成了同部分使用场景的结合,这时不必对该系统进行全部替换,只是替换其核心的大模型推理引擎即可,如上图中利用openAI的部分,增强其知识的推理能力。

  • 用户提问:即使用场景的部分,需要将其提供的方式参照大模型的Promp标准进行提问即可。

注意:为了未来对大模型进行效果微调,在系统设计时,要记录相应的调用日志,或在业务流程中对大模型回馈的结果进行评价,这样可以做为人工标注的数据,可以优化模型。

(未完待续)

这篇关于AIOps探索 | 基于大模型构建高效的运维知识及智能问答平台(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/514531

相关文章

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

Python利用PySpark和Kafka实现流处理引擎构建指南

《Python利用PySpark和Kafka实现流处理引擎构建指南》本文将深入解剖基于Python的实时处理黄金组合:Kafka(分布式消息队列)与PySpark(分布式计算引擎)的化学反应,并构建一... 目录引言:数据洪流时代的生存法则第一章 Kafka:数据世界的中央神经系统消息引擎核心设计哲学高吞吐

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

Python如何实现高效的文件/目录比较

《Python如何实现高效的文件/目录比较》在系统维护、数据同步或版本控制场景中,我们经常需要比较两个目录的差异,本文将分享一下如何用Python实现高效的文件/目录比较,并灵活处理排除规则,希望对大... 目录案例一:基础目录比较与排除实现案例二:高性能大文件比较案例三:跨平台路径处理案例四:可视化差异报

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Java整合Protocol Buffers实现高效数据序列化实践

《Java整合ProtocolBuffers实现高效数据序列化实践》ProtocolBuffers是Google开发的一种语言中立、平台中立、可扩展的结构化数据序列化机制,类似于XML但更小、更快... 目录一、Protocol Buffers简介1.1 什么是Protocol Buffers1.2 Pro

Java高效实现Word转PDF的完整指南

《Java高效实现Word转PDF的完整指南》这篇文章主要为大家详细介绍了如何用Spire.DocforJava库实现Word到PDF文档的快速转换,并解析其转换选项的灵活配置技巧,希望对大家有所帮助... 目录方法一:三步实现核心功能方法二:高级选项配置性能优化建议方法补充ASPose 实现方案Libre

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据