2025第八届西湖论剑第2名作品
《**LogFlow基于大模型的双重匹配与多权重调节的智能增压日志解析系统**》
这个是参加 2025 第八届西湖论剑:创新赛获得第二名的作品
(实际上我的算法,无论是时间效率,还是解析精度都远高于第一名。这个是我和第一名交流后确认的:第一名的使用的聚类存在过拟合问题和时间效率的问题。评委想法不得而知…)
项目背景
需求总结:海量日志解析中存在”解析效率”、”解析精度”、”扩展性”的矛盾
解决方法:(以下只说了需要重点关注的优缺点)
- 1 部署轻量化模型:不断提高单日志的解析效率(训练特定场景下的模型)
- eg:聚类、频繁模式挖掘
- 优点:扩展性比较好,可用于异构日志,人工参与很少
- 缺点:极高的计算开销、难以实现高精度
- 2 使用高精度规则:代替模型解析日志
- 优点:速度快、精度高
- 缺点:规则的维护(日志格式、场景改变,需要大量的人工工作)
- (当日志格式变动时需要大量的工作)
- 1 部署轻量化模型:不断提高单日志的解析效率(训练特定场景下的模型)
因此重点需要关注的有三方面问题:
- 1:计算开销(时空效率)
- 2:高精度(需求高精度的解析)
- 3:扩展性(日志格式、场景变动时需要高扩展性)
规则可以满足 12,难以满足扩展性
轻量化模型可以满足 3,但是 12 都不能满足
效果:
- 我提出的方法,可以同时兼顾 123
- 1 在单日志平均解析时间不超过 130ms 的前提下
- 2 甚至超越了人工写的规则进行人日志解析的精度
- 3 具有超高的扩展性
- 3.1 在格式变动不大的亿级日志场景下,不需要任何改动
- 3.2 需要扩展到格式完全不一样的异构日志时:只需要少量标注日志数据即可快速收敛
- 标注数据量: 数百条
- 收敛时间:12 小时内
- 我提出的方法,可以同时兼顾 123
规则生成部分
- 问题 1:大模型生成高精度数据存在精度上限
- 1.1:多重增压的 prompt 列表
- 当生成规则无法完全匹配,通过提示词列表逐渐增加模型压力
- 1.2:优化提示词
- 针对日志匹配中的疑难问题,增加额外的 prompt 提示
- 1.3:最优模块算法
- 保留解析效率最好的规则
- 1.1:多重增压的 prompt 列表
- 问题 2:未登录词与复杂结构日志问题
- 三源规则:大模型生成动态粗粒度规则、大模型生成动态细粒度规则、大模型生成的静态细粒度规则
规则择优部分
- 问题 1:面对待匹配日志,如何选择其最佳的规则
- 1:三维打分的多权重算法(其中用到了本地训练的的小模型处理相关评分)
- 问题 2:高精度的要求,总存在极端情况,有部分日志格式无法匹配
- 2:双重匹配算法,结合三源规则
展望
- 实现日志解析的终极目标,无疑是——异常识别(攻击检测)
- 对此,我提出了基于本项目的相关算法, 有想法的师傅欢迎交流
- 问题:目前的系统还存在一个问题
- 少数日志会存在相同 key,有多个对应 value 的问题
- 我也提出了相关算法可以解决该问题,只是最近比较忙,没时间实现
联系方式
有疑问,或者需要交流,欢迎邮件:382855266@qq.com.