KnowLog:基于知识增强的日志预训练语言模型|顶会ICSE 2024论文

在这里插入图片描述
徐波 东华大学副教授
东华大学计算机学院信息技术系副系主任,复旦大学知识工场实验室副主任,智能运维方向负责人。入选“上海市青年科技英才扬帆计划”。研究成果发表在IJCAI、ICDE、ICSE、ISSRE、ICWS、CIKM、COLING等国际会议上,曾获中国数据库学术会议(NDBC 2014)优秀论文奖。主持及参与国家重点研发计划、国家自然科学基金等科研项目10余项。

论文分享:
KnowLog: Knowledge Enhanced Pre-trained Language Model for Log Understanding(ICSE 2024)
KnowLog:基于知识增强的日志预训练语言模型


本文根据东华大学副教授徐波老师在2023 CCF国际AIOps挑战赛决赛暨“大模型时代的AIOps”研讨会闪电论文分享环节上的演讲整理成文。


今天分享的主题是“懂运维语言的小模型”。从今天上午的汇报来看,小模型依然很重要。即使大家都在做多智能体的协同,但是他们的底座智能体还是在用小模型来做,这可能是考虑到成本和质量的问题。此次报告将从4个方面进行分享。

众所周知,日志在运维系统中占据非常大的比重,日志分析是一个非常重要的工作,每分钟都会有几十万上百万的日志产生,这个时候用大模型肯定是不行的。而以前的小模型,针对不同的任务,设计不同的框架去单独解决,缺乏一个统一的处理框架。

在这里插入图片描述

而在NLP领域,“预训练+微调”已经成为了自然语言处理的统一范式。那么能不能把这种自然语言的统一范式应用到日志里面,构建日志的预训练模型呢?

图片

我们把这种类似BERT的预训练语言模型放到日志里面去,发现其实它并不是很work,原因是什么?分析结论是,自然语言中的高频词和在日志中使用的高频词其实是不一样的。这里就会产生三个具体挑战:

在这里插入图片描述

第一,通用的预训练语言模型不理解日志中的特定术语,比如OSPF或者SYSLOG等等,这些领域的特定缩写经过Bert编码后会被变成unknown,这就会非常影响后续的处理。

第二,从整体来讲,通用的预训练语言模型不理解日志到底在说什么,就像给非专业人士看日志文档,事实上也是看不懂的。

第三,不同厂商描述同一个日志打的Log也是不一样的。

在这里插入图片描述
针对这三个挑战,我们受专家解决问题的思路启发提出了知识增强的方案,会去从领域手册里查询补全知识。

在这里插入图片描述

如果局部知识不懂,就看缩略词表,把局部知识补全。如果是全局知识不懂,就看全局知识描述的文档。基于以上,我们提出了知识增强的日志预训练模型的框架,该框架主要分为三部分:

图片

第一,如何把局部知识灌到大模型里,这里设计了缩略词预测任务,把缩略词遮住之后让大模型复原,如果它知道是缩略词,就认为模型已经理解缩略词。

第二,针对全局知识的增强,建立日志模板和日志描述的对应关系。

最后,为了支持不同厂商的日志?使用了对比学习的思路,通过构造各种的数据增强方式,去对同一个日志做不同表达,使其能够满足不同的表示方法。

在这里插入图片描述

基于这个方法,我们构造了很多的实验,从华为、思科、华三等一些厂家提取日志模板。注意这里做了一个改进,就是我们没有去理解日志,而是去理解日志模板,因为日志很多,但是模板并不多。我们这边拿了10万条的日志模板,然后构造了一些下游任务,从而得到了几个结论:

在这里插入图片描述

首先,通过知识增强的日志预训练模型确实显著优于通用预训练模型。

在这里插入图片描述

然后,在低资源场景下实验,这个实验很实用,因为企业内部的数据并不是太多,通过实验可以看出,把整个的训练集砍掉了一半,甚至只保留30%,模型下降的程度并不高,而通用模型的下降幅度就比较大。

在这里插入图片描述

另外,在跨厂商迁移方面,我们用华为的日志训练完应用到华三日志上面,或者用华三日志训练完去用到思科日志上面,发现都有非常好的效果。

在这里插入图片描述

同时,通过可视化展开可以看到,在没有做知识增强之前,原始日志和它的描述其实是红点和绿点区分得非常开,但通过了我们的知识增强对齐之后,把日志和它的描述对应的比较紧密了。

在这里插入图片描述

总结一下,我们事实上是提了一个基于领域知识增强的框架。目前这一版的缺陷就是必须先有文档,才能做日志理解。后续还有工作就是不需要有文档,直接用ChatGPT生成。通过实验我们发现用ChatGPT,只要精心设计提示词,规范好生成结果,它也是能达到跟日志文档一样甚至更好的效果。

以上就是我的分享内容,谢谢大家。

观看完整演讲视频,请关注“CCF OpenAIOps社区”视频号
在这里插入图片描述

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

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

相关文章

Tauri 进阶使用与实践指南

Tauri 进阶使用与实践指南 调试技术 在 Tauri 应用开发中,调试分为两大部分:Web 端与 Rust 控制台。 Web 端调试 在 Web 端界面,可以直接采用浏览器内置的开发者工具进行调试。在 Windows 上,可以通过快捷键 Ctrl Shift i 打…

【turtle海龟先生】神奇的“圆”,画,太极圈,铜钱古币

turtle画圆三步法 步骤: 1、导入turtle库 2、确定半径,画圆(circle ) 3、结束(done ) turtle 库中提供一个直接画圆的函数 turtle.circle(半径)#半径单位为像素 例: turtle.circle ( 100 ) 表示绘制一个半径为100像素长度的圆形 …

基于ROS的地图发布和加载(GAZEBO仿真)

文章目录 环境配置启动仿真运动控制地图保存地图加载Q&A环境配置 cd ~/catkin_ws/src git clone https://github.com/wh200720041/warehouse_simulation_toolkit.git cd .. catkin_make source ~/catkin_ws/devel/setup.bash启动仿真 roslaunch warehou

js项目中常用的方法汇总

做了很多项目,发现有很多公用的js方法可以总结出来,不同的项目却可以使用这些通用的方法去解决业务上面的问题; 时间常用方法和冷门方法 请参考timeUtil 获取去当前网址url export function GetCurrentProjectUrl(pathname: string) {const location …

PostgreSQL备份还原数据库

1.切换PostgreSQL bin目录 配置Postgresql环境变量后可以不用切换 pg_dump 、psql都在postgresql bin目录下&#xff0c;所以需要切换到bin目录执行命令 2.备份数据库 方式一 语法 pg_dump -h <ip> -U <pg_username> -p <port> -d <databaseName>…

一、c++代码中的安全风险-strlen

一、函数 strlen 在C语言中,strlen是一个函数,计算字符串长度,遇见 \0 停止。如果没有 \0 将在内存中一直寻找,直到寻找到了\0停止。所以strlen还是存在很大的风险的。而且参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了…

2023年第三届 “联想杯”全国高校程序设计在线邀请赛暨第五届上海理工大学程序设计竞赛(同步赛)

A-3的倍数 首先求出sum&#xff0c;如果sum为3的倍数&#xff0c;那么直接可以降序 如果sum%31&#xff0c;那么优先删除一个对3取模余1的数&#xff0c;如果没有则删除两个对3取模余2的数 如果sum%32&#xff0c;那么优先删除一个对3取模余2的数&#xff0c;如果没有则删除…

【软件工程】详细设计(二)

这里是详细设计文档的第二部分。前一部分点这里 4. 学生端模块详细设计 学生端模块主要由几个组件构成&#xff1a;学生登录界面&#xff0c;成绩查询界面等界面。因为学生端的功能相对来说比较单一&#xff0c;因此这里只给出两个最重要的功能。 图4.1 学生端模块流程图 4.…

软考高级架构师:性能评价方法概念和例题

一、AI 讲解 性能评价是衡量计算机系统或其组件在指定条件下执行预期任务的有效性的一种方式。性能评价的方法主要可以分为几种&#xff0c;每种方法都有其特点和适用场景。 性能评价方法 方法描述时钟频率法通过计算机的时钟频率来评估性能&#xff0c;时钟频率越高&#x…

大话设计模式之状态模式

状态模式是一种行为设计模式&#xff0c;它允许对象在其内部状态发生变化时改变其行为。在状态模式中&#xff0c;对象将其行为委托给当前状态对象&#xff0c;从而在不同的状态下执行不同的行为&#xff0c;而不必在对象自身的代码中包含大量的条件语句。 通常&#xff0c;状…

mysql 相关链接与子查询的练习,以及索引视图的简单概述

4月1日 索引与视图 一 销售查询问题复习链接和子查询 1&#xff09;子查询相关sql语句 -- 结果返回一个值 select 查询字段 from 表 where 字段 [ > < <>] (子查询的内容)-- 单列多行 select 查询字段 from 表 where 字段 in (子查询)-- 多列多行 select 查询字…

06 监听器

文章目录 SessionAttListenerDemo.javaSessionListenerDemo.javaProductController.java SessionAttListenerDemo.java package com.aistart.listener;import javax.servlet.ServletContext; import javax.servlet.annotation.WebListener; import javax.servlet.http.HttpSess…

Tensorboard使用教程

Pytorch(九) —— Tensorboard(当有了tensorboard日志文件怎么可视化它)(同时显示多个模型)(vscode的tensorboard)(TensorboardX)_tensorboard --logdir-CSDN博客文章浏览阅读9.7k次&#xff0c;点赞10次&#xff0c;收藏56次。tensorboard.pyfrom tensorboardX import Summary…

NVIDIA Jetson Xavier NX增加swap分区大小

NVIDIA Jetson Xavier NX增加swap分区大小 1. 输入jtop查看swap空间大小 2. 依次输入命令 #1&#xff09;新增swapfile文件大小自定义 sudo fallocate -l 6G /var/swapfile #2&#xff09;配置该文件的权限 sudo chmod 600 /var/swapfile #3&#xff09;建立交换分区 sudo m…

最大子数组和-动态规划

53. 最大子数组和 问题&#xff1a;最大子数组和&#xff0c;找出数组中具有最大和的连续子数组。 思路&#xff1a; 暴力解法&#xff1a;通过两重循环遍历&#xff0c;得到所有子数组和。时间和空间复杂度都为O(n^2): class Solution {public int maxSubArray(int[] nums…

RuntimeError: Error compiling objects for extension虚拟环境和系统环境——添加、删除、修改环境变量

前言&#xff1a;因为一个报错RuntimeError: Error compiling objects for extension 没有配置cl.exe环境变量&#xff0c;我的应用场景是需要搞定虚拟环境变量配置 RuntimeError: Error compiling objects for extension手把手带你解决&#xff08;超详细&#xff09;-CSDN博…

爬虫 红网时刻 获取当月指定关键词新闻 并存储到CSV文件

目标网站&#xff1a;红网 爬取目的&#xff1a;为了获取某一地区更全面的在红网已发布的宣传新闻稿&#xff0c;同时也让自己的工作更便捷 环境&#xff1a;Pycharm2021&#xff0c;Python3.10&#xff0c; 安装的包&#xff1a;requests&#xff0c;csv&#xff0c;bs4&…

如何在pgAdmin中用替换的值更新jsonb列?(二)

上一篇提到怎么替换jsonb&#xff0c;链接如下&#xff1a; 如何在pgAdmin中用替换的值更新jsonb列&#xff1f;-CSDN博客 那么当jsonb嵌套jsonb应该怎么替换呢&#xff1f;像这样&#xff0c;类型依然是jsonb&#xff0c;只不过嵌套一层&#xff0c;JsonData&#xff1a;&qu…

网络安全 | 什么是DDoS攻击?

关注WX&#xff1a;CodingTechWork DDoS-介绍 DoS&#xff1a;Denial of Service&#xff0c;拒绝服务。DDoS是通过大规模的网络流量使得正常流量不能访问受害者目标&#xff0c;是一种压垮性的网络攻击&#xff0c;而不是一种入侵手段。NTP网络时间协议&#xff0c;设备需要…

Springboot整合Milvus向量库

1. Milvus的Maven依赖&#xff0c; 配置如下 <dependency><groupId>io.milvus</groupId><artifactId>milvus-sdk-java</artifactId><version>2.3.4</version><exclusions><exclusion><artifactId>log4j-slf4j-imp…