理解 AI 模型算法
异常检测 — IBM Granite TSPulse
什么是 TSPulse?
TSPulse(Time-Series Pulse)是 IBM 开发的时序异常检测基础模型。它从传感器数据等按时间顺序传入的数据中学习正常模式,并将偏离模式的区间检测为异常。
工作原理:基于重构误差
TSPulse 基于以下原理运行:“如果能够准确还原正常数据,那么无法还原的区间就是异常。”
① 학습 (정상 패턴 학습)
입력 시계열: [23.1, 23.2, 23.0, 23.3, 23.1, ...] ← 정상 온도 패턴
│
▼
┌──────────────┐
│ 인코더 │ 데이터를 압축된 표현으로 변환
│ (Encoder) │
└──────┬───────┘
│
┌──────┴───────┐
│ 잠재 공간 │ 핵심 패턴만 남긴 압축 표현
│ (Latent) │
└──────┬───────┘
│
┌──────┴───────┐
│ 디코더 │ 압축 표현에서 원래 데이터 복원
│ (Decoder) │
└──────┬───────┘
│
▼
재구성 출력: [23.0, 23.2, 23.1, 23.2, 23.1, ...] ← 거의 같음!
재구성 오류 = |원본 - 재구성| = [0.1, 0.0, 0.1, 0.1, 0.0] ← 매우 작음 → 정상
② 이상 탐지
입력 시계열: [23.1, 23.2, 87.5, 23.3, 23.1, ...] ← 갑자기 87.5도!
│
▼
[인코더 → 잠재 공간 → 디코더]
│
▼
재구성 출력: [23.0, 23.2, 23.4, 23.2, 23.1, ...] ← 87.5를 복원 못함
재구성 오류 = [0.1, 0.0, 64.1, 0.1, 0.0]
↑
이상 점수 높음! → 이상 탐지됨
核心概念
| 概念 | 说明 | 类比 |
|---|---|---|
| 重构误差 | 原始数据与还原数据之间的差异 | 复印机可以准确复印原稿,但无法复印异常部分 |
| 校准分数 | 重构误差偏离常态(基准区间)波动幅度的倍数 — 稳健 z 分数 | “波动比平时大 5 倍” |
| 阈值 (threshold) | 判定异常的校准分数基准值 — 设备传感器默认值为 5.0 | 用于区分“此范围内正常,超出则异常”的基准线 |
threshold=0 并非“自动”旧版文档曾说明,设置为 0 时会自动确定阈值。当前设备传感器分数采用基准
中位数为 0 的尺度,因此设置为 0 后,只要略高于常态就会全部计为异常。如无特殊原因,
请省略 threshold,使用默认值(5.0)。
基准取自“分析窗口之前”
在同一次调用中,使用分析窗口之前区间的重构误差计算中位数和 MAD。因此,每台设备、 每个标签都会分别确定各自的“常态”。如果标签的基准区间过短,则不计算分数,而是留空并说明 原因,不会填充为 0。
- 状态标签(运行/停止等)不纳入分析对象。
- 对于计数器标签,不使用累计值,而是查看每 5 个间隔增量的平均值,生产停止会体现为增量 0。
- 设备传感器的聚合与平滑窗口为 8 / 4。
在 PlantPulse 中的应用
센서 데이터 (최근 N분)
│
▼
TSPulse 모델에 입력
│
▼
각 시점별 재구성 오류 계산
│
▼
임계값 초과 구간 = 이상 구간
│
├──▶ 이상 메트릭 상위 K개 추출 (top_k)
├──▶ 이상 점수 및 시간 정보 반환
└──▶ 최근 N초 이내 이상 여부 판정 (recent_seconds)
时序预测 — TinyTimeMixer (TTM)
什么是 TTM?
TinyTimeMixer 是 IBM 开发的轻量级时序预测模型。它通过学习历史数据模式来预测未来值。正如“Tiny”这一名称所示,即使使用较少的资源也能实现较高的性能。
PlantPulse 随附的是 Granite-TTM R3(512-96-dec-512-r3),这是将趋势与残差
分离后进行预测的分解预测(TinyTimeMixerForDecomposedPrediction)版本。镜像中还同时包含上一代 R2,
只需修改一行配置即可切换回 R2 →
时序洞察
工作原理:Mixer 架构
TTM 是一种将 MLP-Mixer 架构应用于时序数据的模型。
과거 데이터 (Context Window) 예측 (Prediction Window)
┌──────────────────────────┐ ┌──────────────────┐
│ t-512 t-511 ... t-1 t │ → │ t+1 t+2 ... t+96 │
└──────────────────────────┘ └──────────────────┘
입력 (512 스텝) 출력 (96 스텝)
预测过程
① 시간축 믹싱 (Time Mixing)
"과거 패턴에서 시간적 관계를 파악"
- 새벽에는 온도가 낮고, 낮에는 높다 (일주기)
- 월요일에 가동률이 높다 (주주기)
- 점점 온도가 올라가는 추세 (트렌드)
② 채널 믹싱 (Channel Mixing)
"여러 센서 간의 관계를 파악"
- 전력 소비가 올라가면 → 온도도 올라간다
- 진동이 커지면 → 알람 빈도도 높아진다
③ 예측 생성
시간 패턴 + 센서 관계를 종합하여 미래 값 예측
신뢰구간(상한/하한)도 함께 제공
核心概念
| 概念 | 说明 | 类比 |
|---|---|---|
| 上下文长度 | 用于预测的历史数据量 | 根据过去几天的数据预测明天天气 |
| 预测长度 | 要预测未来多少个步长 | 预测未来几天的天气 |
| 置信区间 | 预测值的上限/下限范围 | “明天气温将在 20~25 度之间” |
| 多变量 | 同时考虑多个传感器 | 综合温度、压力和振动进行预测 |
预测结果示例
시간 │ 실제값 │ 예측값 │ 하한 │ 상한
─────────┼────────┼────────┼───────┼───────
14:00 │ 23.1 │ - │ - │ - ← 과거 (실제 데이터)
14:10 │ 23.3 │ - │ - │ -
14:20 │ 23.2 │ - │ - │ -
─────────┼────────┼────────┼───────┼───────
14:30 │ ? │ 23.4 │ 22.8 │ 24.0 ← 미래 (예측)
14:40 │ ? │ 23.5 │ 22.6 │ 24.4
14:50 │ ? │ 23.7 │ 22.5 │ 24.9
异常检测 + 预测联动应用
PlantPulse AI 将异常检测与预测联动,提供更有价值的洞察。
현재 상태 파악 (TSPulse 이상 탐지)
│
│ "현재 온도 센서에서 이상 패턴 감지됨"
│
▼
미래 추세 예측 (TTM 예측)
│
│ "앞으로 6시간 내 임계값 초과 예상"
│
▼
종합 판단
│
│ "현재 이상 + 악화 추세 → 즉시 점검 권고"
│
▼
관련 문서 검색 (RAG)
│
│ "해당 설비 정비 매뉴얼 3장 참조"
│
▼
종합 리포트 생성 (AURA LLM)
各应用场景的模型组合
| 场景 | TSPulse(异常检测) | TTM(预测) | 判断 |
|---|---|---|---|
| 正常运行 | 无异常 | 保持正常范围 | 正常 — 持续监控 |
| 初期异常 | 检测到异常 | 正常范围 | 注意 — 需要观察趋势 |
| 恶化趋势 | 检测到异常 | 预计超过阈值 | 警告 — 建议立即巡检 |
| 突发异常 | 异常分数较高 | 急剧恶化 | 紧急 — 需要立即处理 |
设备健康分数 (Health Score)
采用从 100 分开始扣分的方式,计算 0~100 分的健康分数。不包含预测(TTM), 只计算截至当前已经发生的情况。
건강 점수 = 100 − 이상 감점 − 알람 감점 − 비가동 감점 (0~100 로 자름)
이상 감점 최대 40 센서·OEE·RAM·EMS·알람의 이상 비율을 가중평균
알람 감점 최대 30 + 10 최근 24시간 알람(우선순위 가중) + 아직 안 풀린 알람
비가동 감점 최대 20 가동 정보가 있을 때만
| 等级 | 分数 |
|---|---|
| A · Good | 90 及以上 |
| B · Caution | 75 及以上 |
| C · Warning | 60 及以上 |
| D · Critical | 低于 60 |
由于采用扣分方式,可以通过扣分明细说明“为什么是这个分数”。 如果观测数据不足,
则无论分数如何都不评定等级,而是设为 Insufficient data,以避免将“没有数据”
误判为“健康”。
特征存储的作用
每次实时执行异常检测和预测都需要一定时间。特征存储会预先计算并保存这些结果。
┌─────────────────────────────────┐
│ 피처 스토어 스케줄러 │
│ │
│ 매시간: 설비별 건강점수 계산 │
│ 매일: 종합 분석 LLM 컨텍스트 │
│ 임베딩 벡터 생성 │
└──────────────┬──────────────────┘
│
▼
┌──────────────────────────────────┐
│ 사용자 질문: "이 설비 상태 어때?" │
│ │
│ → 사전 계산된 피처 즉시 반환 │
│ → 실시간 계산 대기 없음! │
│ → 응답 시간: 수백 ms │
└──────────────────────────────────┘