9 月 13 号挂上 arXiv 的 TriCalRAG,编号 2609.14762。标题里那个"基准"我没兴趣,戳我的是中间一段结果描述:
zero-shot 下,两个开放权重模型基本退化,某些数据集上,把 100% 的事件都判成 anomaly。
一条不漏地报警,等于一条都没报。做日志的人对这个失败模式不陌生,但它出现在一个正经 benchmark 里,后面还跟着 bootstrap 置信区间白纸黑字写出来,分量就不一样了。
我第一反应是去翻它指令怎么写的。zero-shot、few-shot、RAG 三种策略,差别全在提示层,模型、数据集、评价口径一个没动。
有意思的就在这:few-shot 没救回来。格式范例给了,输入输出长什么样也给了,模型照样把整片日志判成异常。那问题就不在【没看懂要它干嘛】,在【没有先验可以依赖】。
日志这类数据的异常率天然低,正常事件是绝大多数,异常是零头。模型的世界模型里没有"HDFS 的异常率是几个百分点"这种条目。它只能猜。猜往哪边偏?往用力的那边:宁可错杀。它是在执行【找出异常】这四个字,执行得非常尽责。
所以修法不是把指令写得更谨慎。如果交给我改,第一版大概是这个:
请仔细判断以下日志中是否存在异常事件,注意不要误报。
白改。模型不会因为挨了一句叮嘱就长出分布感。【不要误报】听着像约束,其实是一句态度词顶替了先验该占的位置。
真正的换法不是换形容词,是换给它的东西:
以下是一批已标注的历史事件(带标签),参照它们的分布,判断下面的日志。
两版字数差不多,差的是给的是态度还是分布。它给的是 RAG:把已标注的历史事件当检索源,让模型看到的不是一句指令,是一批实物和它们的标签。照着实物的比例下判断,不再是空手分堆。
这条的诗眼落在【已标注】三个字上。只有事件没有标签,等于没给;标签本身带着比例,模型接住的才是分布,不是格式。
先涨的是校准,不是分数
平均 F1 从 0.10 到 0.27。这个数多半会被拿去当标题,我一开始也以为提分是 RAG 的主业。
顺序看下去不对。论文里更重的一句是:RAG 让"预测为正类的比例"回到接近真实类别分布。先修的是校准,那 0.1 到 0.27 是校准修好之后的副产品。
这个顺序值得掰扯。只盯 F1 的增量,很容易得出"检索能提分,值得加",然后抄进自己的 pipeline——最重要的信息恰恰是这么丢的。校准崩掉的时候,F1 这个数本身就不太有意义:全判异常,召回率满分,精确率贴着地板,最后算出来一个不温不火的数字,看着像"还能用"。一个全报的模型和一个判断准的模型,指标上有时差得没那么远,可用性上是两回事。
我对这篇的读法:检索在这里干的活是给模型一个立足点,不是补知识。给格式范例没用,给分布才有用。这句我打算在自己那套日志分析 prompt 上试一次。
中间其实还有一版可以插进来琢磨:直接在指令里报一个比例,告诉它"异常大约占百分之几"。这版我拿不准——写死的先验一旦不准,比不写还糟;给实物,模型自己会从标签里数。
谁分高,和谁不抽风,是两件事
模型那侧也有嚼头。Mistral-Small 的宏平均 F1 是 0.644,Qwen2.5-14B 是 0.560。
分高的那个,十二个配置里有七个出现校准失败;Qwen 是五个。Mistral-Small 的吞吐还只有 Qwen 的一半。
看到这我停了一下。前半篇刚说校准比分数重要,这条就是它的直接推论:选型时 F1 只能当一半依据,另一半看它在不同提示条件下预测比例稳不稳。
论文自己的说法是,选哪个取决于部署目标——追峰值准确率,还是追跨提示条件的可预测行为。技术上新意不大,但套在"本地部署 AIOps 根因分析"这个约束下面,它就是一道真选择题,不是客套。
工程那侧的账顺手记一下
单张 96GB 显存的工作站,vLLM 起开放权重模型。这个部署形态决定了检索内容没那么贵:消融里批处理在单卡上把吞吐拉了 41 倍,4-bit 量化把延迟降了 20%,没有观测到可测的准确率损失。
合起来看,往上下文里多塞几条历史事件的代价被这 41 倍摊薄了。如果检索是唯一能把校准拉回来的手段,那这 41
