基于 Amazon Chronos-2 (120M参数) 零样本时序大模型 + 4种检测方法融合,对时序数据自动发现异常点,生成专业分析报告。
至少包含两列:时间戳 和 数值指标。
text
timestamp,value
2024-01-01 00:00,120.5
2024-01-01 01:00,118.3
2024-01-01 02:00,135.7
...
支持多列数据,会自动识别时间列和数值列。也支持:
若用户提供文件路径 → 直接使用。若用户粘贴数据 → 保存为临时 CSV。若用户描述数据来源(如 API)→ 帮助实现数据获取。若用户未提供 → 引导用户提供数据。
数据要求:
向用户确认(或使用默认值):
参数默认值说明zscore_threshold2.5Z-score 阈值,超过即标记mad_threshold3.0改进Z-score(MAD) 阈值iqr_multiplier1.5IQR 乘数context_length2048Chronos-2 上下文窗口长度
大多数情况下默认值即可满足需求。若用户数据波动较大,可适当提高阈值减少误报。
调用核心脚本 scripts/anomaly_detect.py:
bash
python scripts/anomaly_detect.py --input <data.csv> --output <results_dir>
可选参数:
bash
python scripts/anomaly_detect.py \
--input data.csv \
--output results/ \
--zscore-threshold 2.5 \
--mad-threshold 3.0 \
--iqr-multiplier 1.5 \
--context-length 2048
脚本执行流程:
anomaly_data.json、 anomalies.csv、 time_series_with_detection.csv调用 scripts/report_gen.py:
bash
python scripts/report_gen.py --data <results_dir>/anomaly_data.json --output <report.html>
报告包含:
用 preview_url 打开 HTML 报告,并梳理关键发现:
计算每个残差的 Z-Score = |残差 - 均值| / 标准差。适用于正态分布数据。
使用中位数和 MAD(中位数绝对偏差)代替均值和标准差,对离群值更鲁棒。
基于 Q1 - 1.5×IQR 到 Q3 + 1.5×IQR 的区间判断。
对比实际值与局部移动平均的偏离程度,检测趋势突变和水平偏移。
需要至少 2 种方法 同时标记才确认为异常点,有效降低误报率。
类型说明示例point 点异常单个时间点异常CPU 瞬时飙升至 100%contextual 上下文异常在特定上下文中异常凌晨 3 点的正常流量在工作时间就异常collective 集体异常连续多个点异常连续 1 小时的服务降级level_shift 水平偏移数值整体水平变化系统升级后 QPS 永久下降 30%
等级条件含义P0 严重Z-Score > 3.5 或 IQR 比率 > 3.0极端异常,需立即处理P1 警告Z-Score > 2.5 或 IQR 比率 > 1.5明显异常,需关注P2 轻微其他确认异常轻微异常,可观察
首次运行自动安装:
HF_ENDPOINT=https://hf-mirror.com