メインコンテンツまでスキップ

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も イメージに同梱されているため、設定を1行変更するだけで切り替えられます → 時系列インサイト

動作原理: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 · Good90以上
B · Caution75以上
C · Warning60以上
D · Critical60未満

減点方式のため、「なぜこのスコアなのか」を減点内容から説明できます。 観測データが不足している場合は、 スコアとは別にグレードを付けず、Insufficient data とします。データがない状態を「正常」と 解釈しないためです。


フィーチャーストアの役割​

異常検知と予測を毎回リアルタイムで実行すると、処理に時間がかかります。フィーチャーストアは、これらの結果を事前に計算して保存します。

┌─────────────────────────────────┐
│ 피처 스토어 스케줄러 │
│ │
│ 매시간: 설비별 건강점수 계산 │
│ 매일: 종합 분석 LLM 컨텍스트 │
│ 임베딩 벡터 생성 │
└──────────────┬──────────────────┘
│
▼
┌──────────────────────────────────┐
│ 사용자 질문: "이 설비 상태 어때?" │
│ │
│ → 사전 계산된 피처 즉시 반환 │
│ → 실시간 계산 대기 없음! │
│ → 응답 시간: 수백 ms │
└──────────────────────────────────┘