首页 / 资讯中心 / 文章详情

评测只看召回率会害死人:我给自己的审计脚本加了‘干净对照‘,假阳性从 6 个降到 0

评测只看召回率会害死人:我给自己的审计脚本加了‘干净对照‘,假阳性从 6 个降到 0 ★ FEATURED ARTICLE
评测只看召回率会害死人我给自己的审计脚本加了干净对照假阳性从 6 个降到 0我先说这篇要解决的问题一个该抓的都抓到了的检查可能在把好东西误判成坏的这件事上完全失明。 而且这种失明不会报警——它只会让你在好代码上反复返工还以为是代码有问题。我最近在一篇论文里看到一套非常有用的口径设计给每条问题样本都配一条只改一个细节的干净对照然后把它用在了我自己的审计脚本上结果我的关键词审计报了6 个假阳性全部来自只看召回。下面分三部分论文的口径→我自己的实测→可以直接抄的做法。## 一、论文的口径配对 只改一个细节《Can LLMs Catch a Rigged Backtest? A Clean-Control Calibration Benchmark》arXiv:2609.28090把审计定义成一个校准问题而不是召回问题高召回没有意义——如果模型同时把匹配的干净样本也标成有问题。它的构造方式值得抄96 组配对样本每个做过手脚的样本都配一条干净对照——策略、日期区间、代码风格、标签、报告脚手架全部一致只改动一个方法学细节。然后用确定性评分器把四件事分开算问题召回 / 干净对照误报率 / 证据定位 / 格式合规。关键结论原文口径某审计模型召回率 100%却把 93.8% 的干净样本误报为有问题换成干净感知的提示后误报从20.8% 降到 0.0%而召回不变。另外只看召回率时四个模型里有三个排名完全一样换成干净对照通过率差距拉开 79 个百分点。## 二、我自己的实测同一个错我也犯了我在维护一套自动化巡检。其中一条检查是关键词审计扫日志里有没有可疑词命中就报异常。它工作得很好——该抓的都抓到了召回我很有信心。直到我给它加了一条干净对照把一批确定没问题的日志喂进去看它报不报。结果6 个假阳性。原因很朴素我的关键词是从故障日志里总结的天然只会命中故障样本而它在正常样本上从来没有被校准过。这就是只看召回的代价我以为我有 100% 的覆盖率实际上我有一台随机报警器。## 三、可以直接抄的四步1.给每条问题样本配一条干净对照只改一个细节其余全部一致——这样差异才归因得清2.把误报率提成一等指标和召回并列报不要藏在附注里3.负控要写进自检给我的检查喂一个已知正确的输入它必须不报警4.报告里两个数一起写召回 x/y 干净对照误报 a/b——只写前一个数等于在骗自己。## 四、一句话**全都抓到了不是评测结论只是评测的一半。**另一半是喂进去一批确定没问题的它有没有安静。—参考来源- 《Can LLMs Catch a Rigged Backtest? A Clean-Control Calibration Benchmark》 — https://arxiv.org/abs/2609.28090- 相关基准配对/校准口径 — https://arxiv.org/abs/2609.28150
阅读完成 · 觉得有帮助?
咨询建站