LoginSignup
7
4

OCIサンプルアーキテクチャ "Anomaly Detection 同期検出・非同期検出"

Last updated at Posted at 2023-11-30

背景

OCI Anomaly Detectionを用いて、異常検出システムを構築する際にデータの連携、ストレージ、検知結果の表示に関して様々なアーキテクチャのパターンが考えられます。
この記事では、モデルの作成と同期検出・非同期検出のサンプルアーキテクチャをいくつか紹介し、その用途や違いをまとめました。

OCI Anomaly Detectionとは

OCI Anomaly Detectionは、多変量または単変量の時系列データに対し、リアルタイムおよびバッチの異常処理をするAIサービスです。異常検出のモデル作成やトレーニングが簡単にできるフルマネージドサービスです。
OCI Anomaly Detectionの詳しい説明はこちらの記事をご参考ください。

異常検出の方法

OCI Anomaly Detectionの異常検出には、「同期検出」と「非同期検出」の2つの検出結果の取得方法があります。ワークロードとデータポイントの数に合わせて2つの方法を選択できます。データポイントとは、シグナル数×行数の値です。

同期検出とは

アプリケーションやデバイスから取得されたデータに対して、異常が検出され結果がすぐに取得される、同期的に実行される検出です。
OCI Anomaly Detectionでは30,000データポイントより小さい場合に同期検出が可能です。

非同期検出とは

検出用のデータに対して、異常が検出され、後で検出結果が取得される非同期で実行される検出です。非常に大きなデータセットに対してより正確な結果を出力します。OCI Anomaly Detectionでは30,000データポイント以上の場合は、ジョブを使った非同期検出のみ可能です。

異常検出のデザインパターン

次に異常検出のデザインパターンについて紹介します。異常検出のアーキテクチャにはワークロードに応じて様々なデザインパターンを選択することができます。

image.png

今回は異常検出モデル作成と同期・非同期検出のサンプルアーキテクチャを紹介します。あくまでサンプルの構成例です。ワークロードの要件に合わせて、アーキテクチャを組み替えてください。では、さっそく紹介していきます。

異常検出モデル作成のアーキテクチャ

まず異常検出のモデルを学習するためのアーキテクチャの例を紹介します。

image.png

異常検出モデルの作成に関しては同期検出・非同期検出において、アーキテクチャに大きな違いはありません。
異常検出のモデルを作成するサンプルアーキテクチャのそれぞれの役割をフローごとに簡単に説明します。

「データソース」
デバイスやDatabaseのデータを用意します。モデル作成時のデータは正常時のデータを用います。

「データ収集」
データソースからData Integrationを使ってObject Storageにデータを保存します。直接Object Storageに吐き出したり、StreamingとService Connector Hubを用いて保存することも可能です。

データ連携サービス:Data Integration, Streaming, Connector Hub,
ストレージ:Object Storage, Autonomous Transaction Processing, Influx DB

「データ加工」
Object Storageのデータを、Anomaly Detectionで使用できるようデータ形式を加工します。Anomaly Detectionの学習データの要件は最初の列にtimestamp、その後に他の数値属性、シグナルおよびセンサーを含む列である必要があります。
詳細は「トレーニングおよび検出データの要件」をご確認ください。

サービス:Virtual Machine, OKE, Data Science, Data Flow

「分析(Modeling)」
Anomaly Detectionを使ってObject Storageの学習用データを使いデータ・アセットを作成します。データ・アセットを使い異常検出モデルを作成します。

以上が異常検出モデルのサンプルアーキテクチャの説明です。

同期検出システムのサンプルアーキテクチャ

次に同期検出のサンプルアーキテクチャの例を紹介します。

image.png

同期検出は検出データセットが30,000データポイントより小さく、時間依存のワークロードで使用します。
同期検出のサンプルアーキテクチャのそれぞれの役割を説明します。

「データソース」
デバイスやセンサーなどの検知対象のデータを取得します。

「データ収集」
ストリーミングサービスを使いリアルタイムに送信されたデータをFunctionsへ送信します。

データ連携:Streaming, Connector Hub

「データ加工」
Connector Hubを通じて送信されたデータをAnomaly Detectionで用いるためtimestampと数値データ型に加工します。

サービス:Functions

「分析(Detect)」
FunctionsからAnomaly Detectionを呼び出し、異常検出を実行します。

サービス:Functions, Anomaly Detection

「アクション」
異常が検出された場合、Oracle Analytics Cloud(OAC)のダッシュボードで表示をしたり、異常検出をトリガーにVM上のアプリケーションで次のアクションを行ったりできます。

サービス:Oracle Analytics Cloud(OAC), Virtual Machine, Notification, etc...

以上が同期検出のサンプルアーキテクチャの説明です。

非同期検出システムのアーキテクチャ

次に非同期検出のサンプルアーキテクチャの例を紹介します。
image.png

非同期検出は検出データセットが30,000データポイントより多く、時間の制約がない場合に使用します。
非同期検出のサンプルアーキテクチャのそれぞれの役割を説明します

「データソース」
DatabaseやLogなどの検知対象のデータを取得します。

「データ収集」
Streamingサービスを使い送信されたデータをObject Storageへ保存します。

データ連携サービス:Streaming, Connector Hub
ストレージ:Object Storage, Autonomous Transaction Processing, Influx DB

「データ加工」
Object Storageに保存されているデータをAnomaly Detectionで用いるためtimestampと数値データ型に加工します。

サービス:Virtual Machine, Functions, Data Flow, Data Science

「分析(Detect)」
FunctionsからAnomaly Detectionを呼び出し、異常検出のジョブを作成します。ジョブが実行され非同期で検出結果を取得できます。

サービス:Functions, Anomaly Detection

「アクション」
異常が検出された場合、Oracle Analytics Cloud(OAC)のダッシュボードで表示をしたり、異常検出をトリガーにVM上のアプリケーションで次のアクションを行うことができます。

サービス:Oracle Analytics Cloud(OAC), Virtual Machine, Notification, etc...

以上が非同期検出のサンプルアーキテクチャの説明です。

まとめ

今回はAnomaly Detectionのサンプルアーキテクチャを紹介しました。しかし、このアーキテクチャが正解ではなく、扱うデータ、ワークロードやプロジェクトの予算によって選択すべきサービスは変わってきます。様々なアーキテクチャパターンを知り、状況に応じたアーキテクチャを組めることがこの記事の目的になります。

参考

Oracle Cloud Infrastructureドキュメント 異常検知
Oracle Cloud Infrastructure Anomaly Detectionを使って簡単に異常検出をしてみる

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4