论文复现:LILAC: Log Parsing using LLMs with Adaptive Parsing Cache(LILAC:使用 LLM 和自适应解析缓存的日志解析)
代码链接:https://github.com/logpai/LILAC
模型框架:
LILAC(Log parsIng framework using LLMs with Adaptive parsing Cache)是一个使用大型语言模型 (LLM) 结合自适应解析缓存的日志解析框架。该框架主要由两个核心组件构成:
-
ICL-enhanced Parser (ICL增强解析器): 该组件利用 LLM 的上下文学习 (In-Context Learning, ICL) 能力,通过提供少量示例来引导 LLM 理解日志解析任务,而无需进行耗时的模型微调。
-
Adaptive Parsing Cache (自适应解析缓存): 该组件用于存储和管理已解析的日志模板,并根据新的解析结果进行自适应更新。目的是解决 LLM 在日志解析中存在的效率问题和结果不一致性问题。
模型算法流程:
-
输入: 一条待解析的日志消息。
-
缓存匹配 (Cache Matching):
- 首先,LILAC 会在自适应解析缓存中查找是否已存在与该日志消息对应的模板。
- 如果找到匹配的模板,则直接使用该模板作为解析结果,跳过 LLM 查询,提高效率。
-
ICL增强解析器:如果缓存中找不到匹配的模板,则执行以下步骤:
- 候选集采样 (Candidate Sampling):
- 该算法旨在从大量的历史日志数据中选取一小部分具有代表性的日志消息作为候选集,用于后续的演示示例选择。
- LILAC 采用了分层抽样算法,首先根据日志消息的常见词语进行粗粒度聚类,再根据特殊字符进行细粒度聚类,最后从每个聚类中抽取一定数量的候选日志消息。
- 演示示例选择 (Demonstration Selection):
- 根据待解析的日志消息,从候选集中选择 k 个最相似的日志消息作为演示示例。
- 相似度计算基于词语和特殊格式,采用 K 近邻(k-Nearest Neighbors, kNN)算法。
- 提示构建 (Prompt Construction):
- 将指令 (Instruction)、演示示例 (Demonstration Examples) 和待解析的日志消息 (Queried Log) 按照特定的格式组合成一个完整的提示。
- LLM 查询 (LLM Query):
- 将构建好的提示输入 LLM,要求 LLM 生成待解析日志消息的模板。
- 候选集采样 (Candidate Sampling):
-
缓存更新 (Cache Updating):
- 将 LLM 生成的模板与缓存中相关的模板进行比较。
- 如果 LLM 生成的模板与缓存中的某个模板非常相似,则认为它们可能来自相同的基本模板,然后更新缓存中的模板以确保结果的一致性。
- 如果 LLM 生成的模板与缓存中的任何模板都不相似,则将其作为一个新的模板添加到缓存中。
-
输出: 解析后的日志模板。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下