当前位置: 首页 > news >正文

Can Large Language Models be Anomaly Detectors for Time Series? 解读

代码:SIGLLM https://github. com/sintel-dev/sigllm
出版:2024 IEEE 11th International Conference on Data Science and Advanced Analytics (DSAA)

在这里插入图片描述

个人评价:

  1. 工作非常的有见解,提供了很多实验上的经验。
  2. 基本说明,现在LLM4TSAD探索的空间还很大。

背景:

最近的研究展示了LLM模型的许多功能,包括执行时间序列预测。在本文中,我们提出了一项关于大型语言模型的新研究,这些模型用于时间序列异常检测这一具有挑战性的任务。这个问题具体涉及 LLM 的两个新方面:

  1. 首先,模型需要能够将输入序列的一部分(或多个部分)识别为异常;
  2. 其次,模型需要处理时间序列数据,而不是文本输入。

本文介绍了 SIGLLM,这是一个使用大型语言模型进行时间序列异常检测的框架。我们的框架包括一个时间序列到文本的转换模块,以及提示语言模型执行时间序列异常检测的端到端管道。我们研究了两种范式来测试大型语言模型执行检测任务的能力。

  1. 首先,我们提出了一种基于提示的检测方法PROMPTER,该方法直接要求语言模型指示输入的哪些
    元素是异常的。
  2. 其次,我们利用大型语言模型的预测功能来指导异常检测过程DETECTOR
  3. 此外,在我们的两种方法之间,DETECTOR 优于 PROMPTER,F1 分数提高了 135%,因为后者存在误报。

在这里插入图片描述

方法

  1. 处理数据:为了使时间序列为 LLM 做好准备,我们将单变量时间序列 X 转换为标记化的值序列。我们遵循一系列可逆的步骤,从缩放、量化和使用滚动窗口将时间序列处理成段开始,到每个窗口的标记结束。我们在下面详细介绍这些步骤。(只用于单变量)
  2. Scaling:把最小值作为0标准。不使用Max-min是为了防止范围在0到1有信息损失。
    在这里插入图片描述
  3. Quantization:时序的词汇表是无限的。采用千分位round,取整数。例如:
    在这里插入图片描述
  4. Rolling windows:时间窗口。没什么好说的。和之前一样。
  5. Tokenization:不同的分词方案在处理数值的方式上有所不同。一些开源 LLM,如 LLAMA-2 [27] 和 MISTRAL [29],使用 SentencePiece 字节对编码分词器 [27],将数字分割成单个数字。但是,GPT 分词器倾向于将数字分割成可能与单个数字不直接对应的块。
    作者的处理思路:给每个数字一个单间,用空格分开。,例如:
    在这里插入图片描述

整体思路框架

在这里插入图片描述
两种不同的方法,A是基于提示。B是基于预测。

PROMPTER: Finding Anomalies through Prompting

把提示词作为输入,把时序文本拼接。案例5:
在这里插入图片描述
更多的提示词案例:
在这里插入图片描述
作者发现:MISTRAL有时候不会给出有效输出。

DETECTOR: Finding Anomalies through Forecasting

  1. Pre-processing.把时序转换成文本表达,和前面一致。
    时间窗口为:
    在这里插入图片描述

  2. Forecasting:给定时间窗口,预测h个时间点。

  3. Post-processing:作者采用stride=1的方式预测,因此对于一个时间点会产生多个输出。用中值替代最终的预测结果。

实验

  1. 使用的数据集:SMAP和MSL,Yahoo S5,
    NAB
  2. 实验设置,有点抽象。说GPT因为成本只用5%数据。

Are large language models effective anomaly detectors for univariate time series?

在这里插入图片描述
结论:DETECTOR最好,基于提示的不行。MISTRAL比GPT更好。说明:

  1. 基础模型的影响。
  2. 还是不如直接预测。现在用文本有点拉垮。

How does the SIGLLM compare to existing approaches?

在这里插入图片描述

  1. 比AT更好。但是只有detector的方式。
  2. Our methods achieved an F1 score 14.6% higher than that of MAvg, and only 10.9% lower than that of ARIMA which is a reasonable model. 比经典方法好,但是甚至不如ARIMA
  3. AER是最好的方法,没有给引用。作者认为:Moreover, LLMs do not hold the highest score for any dataset. It is clear that there is a significant gap here, and an opportunity for improvement. 非常的客观!

What are the success and failure cases and why?

在这里插入图片描述

  1. 图6,PROMPTER 将一些局部极值确定为异常值。奇怪的是,它还遗漏了一些全局异常值。
  2. PROMPTER 引发了大量误报,平均精度为 0.219。使用第 IV-A 节中描述的过滤方法并不能消除误报。另一种策略可能是使用对数概率作为筛选置信度的度量。我们建议在未来的工作中探索这条途径。

讨论

  1. Prompting Challenges.:在三个月的实验期间,采用了各种提示,如表 I 所示。很明显,GPT 和 MISTRAL 都无法产生所需的响应,除非应用将角色分配给用户和系统的聊天模板。此外,为了确保数值在生成的响应中的排他性,除了在提示中指定 “just return numbers” 之外,我们还调整了非数字标记出现在 LLM 生成的输出中的可能性。
    在“find indices”提示下,GPT 可能会生成索引列表;然而,这些指数经常超过序列长度。相反,当使用相同的提示时,MISTRAL 会生成值而不是索引。因此,在我们的实验中,我们将提示更改为包含“find values”而不是“find indices”。
  2. Addressing Memorization(记忆泄漏问题):大型语言模型使用大量数据进行训练。大多数模型的训练数据(例如 OpenAI 提供的模型)对公众来说是完全未知的,这使得评估这些模型成为一个微妙的问题。鉴于大型语言模型,尤其是 GPT 模型 [33],因记住训练数据而臭名昭著 [34],我们如何确保所使用的基准数据集没有数据和标签泄漏?我们假设我们将时间序列数据转换为其字符串表示形式是唯一的,本质上使输入时间序列与其原始形式不同,并减少了公然记忆的机会。此外,与预测任务不同,异常检测任务并不是所使用的训练约定所固有的,即下一个标记预测。

在这里插入图片描述
3. 实际应用:使用 LLM 完成此任务的吸引力在于它们能够用于zero-shot,而无需任何微调。但是,此属性受到延迟时间的瓶颈。图 8 说明了每种建议方法使用 LLM 所需的平均时间。等待半小时到两个小时。深度学习模型训练时间不到一个小时时。由于这些实验是在离线环境中运行的,因此我们可以预期实时部署会更明智,特别是因为上下文大小要小得多,无需滚动窗口。在其他情况下,单个窗口就足够了,根据窗口大小,大约需要 5 秒来推断。

在这里插入图片描述
4. 成本消耗:总的来说,使用 gpt-3.5-turbo-instruct 版本运行 PROMPTER 实验的成本约为 834.11 USD,平均每个信号 1.69 USD。对于 DETECTOR,我们运行了一个小规模实验,我们对数据的 22 个信号进行了采样,大约占 5%。总费用达到 95.08 美元——平均每个信号 4.3 美元——这使得 DETECTOR 成为比 PROMPTER 更昂贵的方法。(效果好也要更多钱💰)

总结

在本文中,我们向大型语言模型提出了一项新的、具有挑战性的任务:在没有事先学习的情况下检测时间序列数据中的异常。为此,我们提出了两种方法,PROMPTER 和 DETECTOR,分别涵盖了提示和预测范式。我们证明,LLM 可以通过预测范式(DETECTOR 方法)比通过 PROMPTER 方法更准确地发现异常。我们提出了 SIGLLM,这是一个将信号转换为文本的框架,使 LLM 能够处理时间序列数据。LLM 的一个主要弱点是其有限的上下文窗口大小。在 SIGLLM 中,我们依靠滚动窗口将时间序列切成更小的段。这既低效又昂贵。此外,它严重挑战了扩展框架以使用多变量时间序列的可能性。随着 LLM 的快速发展,更多的模型可以处理更大的上下文大小;但是,它们尚不具备在不进行分段的情况下处理时间序列数据的能力。即使功能有限,LLM 也能够击败众所周知的变压器方法,并在对 492 个信号进行测试时接近经典方法的性能。它们比深度学习模型低 ⇥1.2 倍。在异常检测中,后处理策略对于揭示异常位置至关重要。在未来的工作中,我们计划研究可以帮助 PROMPTER 过滤误报的后处理功能。同样,我们计划对带出 DETECTOR 异常的误差函数进行彻底探索。


http://www.mrgr.cn/news/95805.html

相关文章:

  • Docker 镜像构建与优化
  • uv - Guides 指南 [官方文档翻译]
  • C语言 【实现电脑关机小游戏】非常好玩
  • 1.NextJS基础
  • WHAM 人体3d重建部署笔记 vitpose
  • Harbor镜像仓库迁移与高可用集群搭建HTTPS实现实战指南
  • C++11QT复习(二)
  • 数据结构之优先级队列
  • Atlas 800I A2 双机直连部署DeepSeek-R1-w8a8
  • Go常见问题与回答(下)
  • poetry安装与使用
  • 华为交换相关
  • vmwaretools解压失败|vmware tools distrib cannot mkdir read only file system|bug汇总
  • Linux 练习一 NFS和DNS
  • Floyd 算法--多源最短路
  • 利用dify打造命令行助手
  • Spring Boot整合Activiti工作流详解
  • 【Redis实战专题】「技术提升系列」​RedisJSON核心机制与实战应用解析(入门基础篇)
  • 调语音类大模型必备-音频录制小妙招-自制工具-借助浏览器录一段单声道16000采样率wav格式音频
  • 华为OD机试 - 核酸最快检测效率 - 动态规划、背包问题(Java 2024 E卷 200分)