Time Series Foundation Model for Anomaly Detection
0
stars
10
commits
Python
primary language
May 12, 2026
updated
基于时序基础模型的边缘异常检测研究项目。
利用预训练的时序基础模型进行少样本边缘异常检测,通过参数高效微调实现高性能异常检测。
在 SMD 数据集上的结果:
| 方法 | F1 | Precision | Recall | AUC-ROC |
|---|---|---|---|---|
| Chronos Frozen | 36.6% | 48.3% | 28.7% | 70.6% |
| Chronos LoRA | 37.6% | 41.8% | 34.3% | 70.9% |
| GPT-2 (GPT4TS) | 84.3% | 87.0% | 81.7% | 70.9% |
关键发现:
# 快速验证(3 epochs)
python scripts/run_gpt4ts_validation.py --dataset SMD --epochs 3 --threshold_method best_f1
# 完整训练(10 epochs)
python scripts/run_gpt4ts_validation.py --dataset SMD --epochs 10 --threshold_method best_f1
我们支持多种阈值选择方法,默认使用 One Fits All 论文的方法:
# 1. One Fits All 方法(默认,推荐)
# 使用 train+test 分数的百分位数,基于先验 anomaly_ratio
python scripts/run_e2e_validation_fast.py --threshold_method anomaly_ratio --anomaly_ratio 0.25
# 2. 最佳 F1(oracle,与很多 baseline 一致)
python scripts/run_e2e_validation_fast.py --threshold_method best_f1
# 3. 固定百分位数
python scripts/run_e2e_validation_fast.py --threshold_method percentile_99
anomaly_ratio 方法(One Fits All),或标注 "best F1 (oracle)"TSFM_Anomaly_Detection/
├── docs/ # 文档
├── data/ # 数据
├── models/ # 模型
├── scripts/ # 脚本
├── utils/ # 工具
├── configs/ # 配置
├── checkpoints/ # 权重
├── logs/ # 日志
└── results/ # 结果
pip install -r requirements.txt
# 查看可用数据集
python scripts/download_data.py --list
# 下载单个数据集
python scripts/download_data.py --dataset SMD
# 下载所有数据集
python scripts/download_data.py --dataset all
# 快速验证脚本
python scripts/run_e2e_validation_fast.py --dataset SMD --epochs 5
# 或使用改进的训练脚本
python scripts/run_improved_training.py --dataset SMD --epochs 10
from data.data_loader import TSFMADDataLoader
from torch.utils.data import DataLoader
# 初始化数据加载器
loader = TSFMADDataLoader(config={
'window_size': 100,
'stride': 100, # 建议与 window_size 一致
'val_ratio': 0.2,
})
# 加载数据集
datasets = loader.load_dataset('SMD')
# 创建 DataLoader
train_loader = DataLoader(datasets['train_dataset'], batch_size=64, shuffle=True)
val_loader = DataLoader(datasets['val_dataset'], batch_size=64, shuffle=False)
test_loader = DataLoader(datasets['test_dataset'], batch_size=64, shuffle=False)
# 从 YAML 配置文件加载
loader = TSFMADDataLoader(config='configs/data_config.yaml')
datasets = loader.load_dataset('SMD')
# 训练
python scripts/train.py --config configs/smd.yaml
# 评估
python scripts/evaluate.py --checkpoint checkpoints/best.pt
10 commits
Python
97.7%
TeX
2.3%
Time Series Foundation Model for Anomaly Detection
0
stars
10
commits
Python
primary language
May 12, 2026
updated
基于时序基础模型的边缘异常检测研究项目。
利用预训练的时序基础模型进行少样本边缘异常检测,通过参数高效微调实现高性能异常检测。
在 SMD 数据集上的结果:
| 方法 | F1 | Precision | Recall | AUC-ROC |
|---|---|---|---|---|
| Chronos Frozen | 36.6% | 48.3% | 28.7% | 70.6% |
| Chronos LoRA | 37.6% | 41.8% | 34.3% | 70.9% |
| GPT-2 (GPT4TS) | 84.3% | 87.0% | 81.7% | 70.9% |
关键发现:
# 快速验证(3 epochs)
python scripts/run_gpt4ts_validation.py --dataset SMD --epochs 3 --threshold_method best_f1
# 完整训练(10 epochs)
python scripts/run_gpt4ts_validation.py --dataset SMD --epochs 10 --threshold_method best_f1
我们支持多种阈值选择方法,默认使用 One Fits All 论文的方法:
# 1. One Fits All 方法(默认,推荐)
# 使用 train+test 分数的百分位数,基于先验 anomaly_ratio
python scripts/run_e2e_validation_fast.py --threshold_method anomaly_ratio --anomaly_ratio 0.25
# 2. 最佳 F1(oracle,与很多 baseline 一致)
python scripts/run_e2e_validation_fast.py --threshold_method best_f1
# 3. 固定百分位数
python scripts/run_e2e_validation_fast.py --threshold_method percentile_99
anomaly_ratio 方法(One Fits All),或标注 "best F1 (oracle)"TSFM_Anomaly_Detection/
├── docs/ # 文档
├── data/ # 数据
├── models/ # 模型
├── scripts/ # 脚本
├── utils/ # 工具
├── configs/ # 配置
├── checkpoints/ # 权重
├── logs/ # 日志
└── results/ # 结果
pip install -r requirements.txt
# 查看可用数据集
python scripts/download_data.py --list
# 下载单个数据集
python scripts/download_data.py --dataset SMD
# 下载所有数据集
python scripts/download_data.py --dataset all
# 快速验证脚本
python scripts/run_e2e_validation_fast.py --dataset SMD --epochs 5
# 或使用改进的训练脚本
python scripts/run_improved_training.py --dataset SMD --epochs 10
from data.data_loader import TSFMADDataLoader
from torch.utils.data import DataLoader
# 初始化数据加载器
loader = TSFMADDataLoader(config={
'window_size': 100,
'stride': 100, # 建议与 window_size 一致
'val_ratio': 0.2,
})
# 加载数据集
datasets = loader.load_dataset('SMD')
# 创建 DataLoader
train_loader = DataLoader(datasets['train_dataset'], batch_size=64, shuffle=True)
val_loader = DataLoader(datasets['val_dataset'], batch_size=64, shuffle=False)
test_loader = DataLoader(datasets['test_dataset'], batch_size=64, shuffle=False)
# 从 YAML 配置文件加载
loader = TSFMADDataLoader(config='configs/data_config.yaml')
datasets = loader.load_dataset('SMD')
# 训练
python scripts/train.py --config configs/smd.yaml
# 评估
python scripts/evaluate.py --checkpoint checkpoints/best.pt
10 commits
Python
97.7%
TeX
2.3%