1、大模型在日志运维场景的应用实践分享主题饶琛琳 日志易产品副总裁目录Contents大模型在日志场景的应用方向实践运用大模型的路径大模型在金融企业应用案例更快捷的分析海量日志更智能的解读和预测故障理想 vs 现实:估算资源构建高质量的训练数据模型的评估和迭代优化产品设计“扬长避短”背景:某金融企业大量业务日志难点:关键字复杂多变方案:实现知识库增强的自然语言查询效果:故障排查时间缩短40%02.03.01.10更快捷的分析海量日志更智能的解读和预测故障理想 vs 现实:估算资源大模型在日志场景的应用方向谷歌Sec-PaLM的日志概要效果日志问答方案(1):超大窗口问题 1:窗口不会无限大,日志却
2、无限多。问题 2:对于长文本中部的内容,LLM 不太敏感。日志问答方案(2):AgentChain问题 1:运维知识理解的要求较高问题 2:agent/function call能力要求较高日志问答方案(3):模式提问+分段选择资源消耗估算场景看起来很美好,但实际部署时存在一定成本压力。我们进行了一些简单的资源估算:1000条SSH日志大概包含5-6万个tokens。对于这个长度,LLM 推理速度较慢,需要10多秒。使用最新的 Yi-6b-200k 模型测试,24GB显存仅能处理约3k tokens,相当于50行日志。按ChatGLM规模预估,80G显存的单卡最多只能处理200行SSH日志。并
3、行计算时,8块80G卡也只能同时处理约1600行。结论:直接进行日志问答,在理论上可行,但算力需求巨大。该方案实际成本过高,目前的硬件条件难以支撑实际应用。生成和调用现有分析工具相对更现实。20构建高质量的训练数据模型的评估和迭代优化产品设计“扬长避短”实践运用大模型的路径Text2SPL场景介绍/背景Text to SQL任务是 NLP 领域的经典课题之一。常见的数据集有:WikiSQL,维基百科数据集主要是单表查询,语句比较简单。Spider,数据集包含join 等多表和嵌套,语句比较复杂。在 seq2seq 之前,模板技术一般评分 20+;bert/T5 之前,一般评分 60+;Chat
4、GPT 将评分提升到 85+。CoSQL,在 Spider 的基础上添加了模糊语义多轮对话。目前评分在 50+。BIRD:新一代数据集,不光考虑表结构,还要考虑脏数据、执行效率。目前 ChatGPT 评分为 40。SPL 对比 SQL 的差异:没有预知的 table schema。要自行判断 prompt 里哪些名词疑似字段名。无法直接套用 ChatGPT,SPL 目前只是概念通用,语法层无标准:日志易 SPL 语法和 splunk/kusto/esql/ppl/humio有差别。日志易内置字段也和CIM/ECS有差别。通用大模型的表现(1):GPT对比T5的飞跃自然语言提问splunk-go
5、ogle-t5ChatGPTsearch for the terms error,fail failure,failed,or severe in the events that also mention buttercupgamesindex=_internal fail*not search index=_internal error,fail*errorsearch(error OR fail OR failure OR failed OR severe)AND buttercupgamessearch the sourcetype field for any values that b
6、egin with access_,status 200,and action purchase.use the chart command to count the number of purchases.the search specifies the purchases made for each product by using categoryId.The difference is that the count of purchases is now an argument of the sparkline()function.index=access_*status=200 ac
7、tion=purchase|chart count(price)就这一条是可以直接运行的,还和期望输出有差距search sourcetype=access_*status=200 action=purchase|chart count(action)by categoryId|eval purchases=sparkline(count)就这一条是不能直接用的。两次追加提示后改对:search sourcetype=access_*status=200 action=purchase|chart sparkline(count(action)by categoryIdsearch the s
8、ourcetype field for any values that begin with access_,get events with status 200,and action purchase.then compute the most common categoryId values.sourcetype=access_*status=200 actionpurchase|top categoryIdsearch sourcetype=access_*status=200 action=purchase|top categoryIdsearch the sourcetype fie
9、ld for any values that begin with access_,get events with status 200,and action purchase.then compute the one most common clientip.sourcetype=access_*status=200 actionpurchase|top clientipsearch sourcetype=access_*status=200 action=purchase|top 1 clientipsearch the sourcetype field for any values th
10、at begin with access_,the get price as Price by productName,then rename productName column as Product Namesourcetype=access_.|stats values(price)as price by productName|search sourcetype=access_*|eval Price=price|stats values(Price)by productName|rename productName as Product Name两次追加提示后改的更高效,并且能记住:
11、search sourcetype=access_*|stats values(price)as Price by productName|rename productName as Product Name通用大模型的表现(2):提示工程不是万能的问题 1:基础模型较差时,复杂逻辑完全无法处理问题 2:模型的预训练知识在细节处有严重干扰训练数据筹备(1):内外网数据搜集原始数据来源n 指令说明文档n 手动编写,含多轮对话n 内部应用配置:图表标题及SPL语句n github上公开的常用日志关键字n github上公开的es/splunk/kusto安全分析规则训练数据筹备(2):问答类数据增
12、强ChatGPT成n alpaca 式的 self_instruct 方案:通过 GPT-3.5 接口,自动生成部分微调数据。n 添加 prompt 声明圈定问答范围:Act as a Splunk Expert to write SPL。n 然后人工复核,调整数据。训练数据筹备(3):丰富提问方式StarChat扮演n starcoder 是开源 LLM 中编码能力最强的。实验发现他甚至能给出具体的 splunk 文档 url。n 通过 A/B 角色扮演,让 starcoder 说出对应 SPL 语句的提问。n 效果一般,清洗后去掉了三分之二的数据。训练数据筹备(4):加入其他产品知识档问答
13、n 利用 pandoc 工具将 word 文档转为 markdown 纯文本。n 来自北交大 transGPT 交通大模型的LLMforDialogDataGenerate 方法,基于文本生成问答。模型的评估与迭代尝试不同基础模型的效果:baichuan2 的 loss 长期不收敛尝试不同数据配比的效果:1:2 1:5 1:1尝试构建除文本匹配以外的验证方案:引入 SPLparser API 语法校验对比索引实际响应内容有趣的是:和 Splunk 得到了相似的结论。扬长避短的产品设计浏览器插件形式:兼容全部主产品版本、独立迭代锚定搜索页:获取数据集、字段列表等即时知识敏感数据拦截:注重数据安全
14、,避免个人隐私外发30背景:金融企业大量业务日志难点:关键字复杂多变方案:实现知识库增强的自然语言查询效果:故障排查时间缩短40%大模型在金融企业应用案例案例背景.找到返回码了,不过你问的是什么错误提示呢?.业务系统上千个返回码,人只记得住最常见的10 来个。其他的中文含义对应啥返回码?.金融企业通常有 200-600 个业务系统,口头叫法大同小异,但开发商输出到日志里,实际用的是什么标识符?ChatSPL效果ChatSPL客户收益在“争分夺秒”的故障定位过程中,相比复杂的向量数据库召回方案,ChatSPL场景设计简单易行。查找错误类的用时下降 40%。业务线运维均可通过 ChatSPL 进行关键字查询、分组统计、趋势分析,极大的解放了维护平台的高级运维人员。将人力投入到可观测性等高阶能力建设中。未来展望后续版本的功能计划英文版本查询结果可视化针对日志/告警的解读主动推荐可选提问:5W1H针对日志生成 grok 正则期待开源大模型的成长!