Skip to content

仮想時刻による過去データ検証基盤 #20

Description

@takaeda

概要

過去の蓄積データを使って、任意の時刻範囲での運用シナリオを再現・検証できる基盤機能の提案です。

背景・動機

現在のIF-HUBは「新しいデータが取り込まれる」というイベントをトリガーとして動作します。
しかし、パイプライン設計や運用ルールの妥当性を検証するには、過去データを使って
「当時どう動いたか/動くべきだったか」を再現する必要があります。

リアルタイムのイベント駆動を過去に対して再現するのは複雑なため、
発想を転換し「任意の基準時刻を指定して、その時点で見えていたデータを取得・処理する」
というアプローチを提案します。

提案する機能

1. Fetcherの拡張:reference_timeパラメータ

GET /api/fetch?
    reference_time=2024-03-15T14:00:00&
    window=1hour&
    tags=tag1,tag2

「reference_time時点で見えていたデータ」を取得できるようにする。

2. 検証セッション管理

  • シナリオ定義(YAML)の読み込み
  • イベントタイムライン(モデル構築、追加プロット等)の生成
  • 検証ループの実行

3. 仮想時刻→toorPIAマップID対応表の管理

toorPIA側は実時刻でマップを管理するため、IF-HUB側で
「検証上の仮想時刻」と「toorPIA側のマップID」の対応を保持する。

model_timeline:
  - virtual_time: "2024-03-01T02:00:00"
    toorpia_map_id: "map_abc123"
  - virtual_time: "2024-03-02T02:00:00"
    toorpia_map_id: "map_def456"

4. 検証結果の保存

各プロット時刻での逸脱度、使用モデル、既知イベントとの対応を記録。

シナリオ定義例

validation:
  period:
    from: "2024-03-01"
    to: "2024-03-31"
  
  model:
    rebuild_schedule: "daily@02:00"
    training_window: "1month"
  
  plot:
    schedule: "hourly"
    lookback: "1hour"
  
  pipeline:
    steps:
      - moving_average: { window: "10min" }
  
  known_events:
    - time: "2024-03-15T14:30:00"
      label: "ベアリング異常"

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions