跳到主要内容

利用大语言模型进行零样本异常检测:GPT-4 在表格数据上的表现

· 阅读需 8 分钟
Mike Thrift
Mike Thrift
Marketing Manager

我上个月读过的 AuditCopilot 论文通过在标记的异常数据上进行微调,对大语言模型(LLM)在会计分录欺诈检测方面的表现进行了基准测试。从那时起,我就一直很好奇零样本提示(zero-shot prompting)是否能完成大部分工作——即不需要标记的异常数据,也不需要特定领域的微调。这正是 Li、Zhao、Qiu、Kloft、Smyth、Rudolph 和 Mandt 的论文《利用大语言模型进行表格数据异常检测》(Anomaly Detection of Tabular Data Using LLMs,arXiv:2406.16308,2024 年年中研讨会论文)所承诺的。其核心结论——GPT-4 的表现足以媲美 ECOD 等经典传导式方法——听起来甚至好得令人难以置信,所以我仔细研读了它。

论文核心

2026-06-21-anomaly-detection-tabular-data-llms

核心思路被作者称为“批次级”(batch-level)异常检测。与其在训练数据上拟合模型然后对单个测试点进行评分,不如在推理时向大语言模型展示一批 N 行的数据,并让它识别哪些行相对于同一批次中的其他行是异常的。在任何批次中,异常都是稀疏的,因此足够强大的模型应该能隐式地识别出大多数模式并标记出离群值。无需重新训练,无需标记示例——只需依靠大语言模型预训练的世界知识和上下文推理。

他们在 32 个数据集的 ODDS 基准测试上进行了评估,这是衡量现实世界表格数据异常检测问题的标准集合。由于上下文窗口的限制,他们将每个评估批次限制在 150 行和 10 列。特征按维度逐一序列化,模板为 "Data i is x_i.",并提示大语言模型分别列出每个维度上的异常索引;一行的最终异常评分由它被标记的维度数量汇总而成。

对于闭源模型,他们测试了零样本表现。对于开源模型(Llama2-7B, Llama2-70B, Mistral-7B),零样本表现较差,因此他们还建议在由高斯混合分布和分类分布生成的 5,000 个合成数据集批次上进行微调——这不需要真实的异常标签。微调后的变体被称为 Llama2-AD 和 Mistral-AD。

关键观点

  • GPT-4 零样本在 32 个 ODDS 数据集上实现了 74.1 的平均 AUROC,相比之下,ECOD(最佳传统基准)为 75.5,KNN 为 70.7。GPT-3.5 则落后于 68.3。
  • Llama2-7B 零样本评分仅为 51.1——本质上是随机的——但在合成数据上进行微调后提高到 60.0,提升了 +8.9 点。Mistral-7B 从 62.4 提高到 69.1(+6.7 点)。
  • “批次级”框架是一个有趣的构想:大语言模型充当批次上的隐式密度估计器,而不是被训练用于分离类别的判别器。
  • 微调仅在合成的高斯和分类数据上使用 LoRA——无需真实的异常注释。如果这种方法可以推广,那将具有重大的实践优势。
  • 开源模型的输出解析非常脆弱;作者强制执行语法约束并使用正则表达式模式来提取异常索引。

哪些结论站得住脚,哪些站不住脚

基准测试的覆盖范围是最大的问题。论文仅与两个传统基准进行了对比:KNN 和 ECOD。完全缺失了孤立森林(Isolation Forest)、LOF、单类 SVM 以及任何深度学习异常检测方法。ECOD 恰好是 ODDS 上的一个强力基准——但 GPT-4 并没有明显超越它(74.1 对 75.5),Mistral-AD 也没有(69.1)。如果面对更广泛的基准测试,GPT-4 是否能保持其地位尚不明确。

150 行/10 列的上限也是一个论文未充分解决的严重约束。现实中的会计账本有成千上万条交易和更多的特征。这种批次级方法是否能够扩展,或者是否会因为异常在模式更多样化的大型批次中变得更难区分而失效,这些都未经过测试。

方差数据令人担忧。GPT-3.5 在 breastw 数据集上的 AUROC 为 63.1 ± 34.4。当单次运行的评分可能在 30 到 98 之间浮动时,这种方法是无法部署的。GPT-4 的表现更稳定(在 breastw 上为 98.7 ± 0.5),但在其他数据集上显示出类似的方差。

特征独立性假设是另一个漏洞。大语言模型分别查询每个特征维度并汇总评分。它无法推理联合特征模式——例如,一个金额、交易对手和账户代码组合不寻常的交易,在任何单一维度上看起来可能都是正常的。多维异常可以说是会计中最常见且在经济上最重要的类型,如果没有重大的重新设计,这种方法是无法捕捉到它们的。

后续文献证实了这些担忧。来自 Amazon Science 的 AnoLLM (ICLR 2025) 采取了不同的方法:它不再通过提示语请求异常索引,而是通过微调大语言模型来建模数据分布,并使用负对数似然作为异常评分,从而完全避免了脆弱的输出解析环节。CausalTAD (arXiv:2602.07798, 2026 年 2 月) 发现了本文和 AnoLLM 共同存在的另一个缺陷:序列化过程中的列排序是随机的,忽略了特征之间的因果关系。重新排列列顺序以遵循因果结构后,在六个基准测试上的平均 AUC-ROC 从 ~0.80 提高到 0.83。

为什么这对金融 AI 很重要

尽管存在局限性,零样本方向对于 Beancount 账本异常检测确实非常有趣。AuditCopilot 论文需要对标记的异常示例进行微调——这在实践中很难获得,因为真实的欺诈案例非常罕见、敏感,且标记工作需要资深会计师参与。而本文的合成微调方法(Llama2-AD, Mistral-AD)回避了这一点:你可以生成包含人工异常的逼真交易批次,并在不触及真实账本的情况下进行微调。

批次级机制自然地对应了会计师的实际思维方式:“在本月的交易中,哪些分录相对于其他分录看起来不寻常?”这正是审计中分录测试的直觉。挑战在于真实的账本异常往往是多维的——一笔金额正常但在时间、交易对手和账户代码组合上异常的付款。像本文这样独立查询每个特征是无法抓取到这些情况的。

我希望看到这种方法的一个进化版本:对整行进行嵌入(embedding)并进行整体评分——更接近 AnoLLM 的分布建模方法——并应用于 Beancount 交易数据的真实样本。合成微调的想法值得认真探索;生成带有注入异常(错误账户、重复分录、不合理金额)的合成 Beancount 账本批次非常简单,在这些数据上微调一个 7B 模型可以产生一个有用的零样本审计器,而无需任何真实的标记数据。

延伸阅读

  • AnoLLM: Large Language Models for Tabular Anomaly Detection — ICLR 2025, OpenReview ID 7VkHffT5X2;这项工作最直接的扩展,使用基于似然的评分而非提示索引预测。
  • CausalTAD: Injecting Causal Knowledge into Large Language Models for Tabular Anomaly Detection — arXiv:2602.07798;通过使序列化与因果结构对齐,解决了列排序的缺陷。
  • AD-LLM: Benchmarking Large Language Models for Anomaly Detection — arXiv:2412.11142, ACL Findings 2025;一个更广泛的基准测试,涵盖了 NLP 异常检测任务,有助于理解大语言模型在哪些方面作为异常检测器是可靠或不可靠的。