ストリーミング不正検出について学習
このソリューション・プレイブックでは、NVIDIA Morpheusサイバーセキュリティ・フレームワークを使用して、GPUアクセラレーテッドMorpheusパイプラインを使用してリアルタイムのAI駆動型不正検出をデプロイし、Compute Cloud@Customerを使用して結果を公開する方法を学習します。このソリューションは、バッチ・ジョブを待たずに瞬時の不正検出を可能にし、エッジでローカルに処理することでデータを安全に保ちます。
開始する前に
- オペレーティング・システム: Ubuntu 24.04 LTS
- プラットフォーム: NVIDIA L40S GPUを搭載した単一ノードOracle Compute Cloud@Customerインスタンス上のNVIDIA AI Enterprise。
開始する前に、次のツールがホスト・マシンにインストールされていることを確認します。
- DockerおよびDocker作成(
docker compose V2
) - GitおよびGit LFS (
git-lfs
) - Python 3および
Pip
ワークフロー
このワークフローでは、NVIDIA Morpheusのサイバーセキュリティ・フレームワークを活用して、財務取引データのストリームに対してGPU加速推論を実行します。
次の図は、ホスト環境、Apache KafkaおよびMorpheusパイプラインの3つのスイムレーンを介したワークフローを示しています。
パイプラインは、Apache Kafkaを介してライブ・トランザクション・データを取り込み、事前トレーニング済のグラフ・サンプルおよび集計(GraphSAGE)モデルを使用してグラフベースのコンテキスト分析を実行し、XGBoostを使用して最終的な不正分類を実行します。すべてのステージは、NVIDIA RAPIDSライブラリ(cuDF、cuML)を使用して高速化され、ワークフロー全体のGPUが高スループットのために最適化されます。次に、プロセスのフローを示します。
Transaction data (.csv)
は、Pythonプロデューサによって生成されます。- データは、Kafkaのトピック
INPUT
ストリームに移動します。 - データは、Kafkaソースからの読取り、デシリアライズ、グラフの構築、Graph Neural Network (GNN)インタフェース(
GraphSAGE
)とのインタフェース、XGBoost
による分類、結果のシリアライズおよびKafkaシンクへの書込みのMorpheusパイプラインを介して処理されます。 - 結果は、Kafkaトピックの
OUTPUT
ストリームに送信されます。 - Pythonコンシューマは出力を受信し、ライブ不正予測を提供します。
モデルの来歴
このアーキテクチャの中核となる推論パイプラインでは、2つの事前トレーニング済機械学習モデル(GraphSAGE GNNおよびXGBoost分類子)を使用します。これらのモデルは、参照用にMorpheusリポジトリに含まれている個別のトレーニング・パイプラインを使用して生成されました。
- トレーニング・スクリプトの場所:
examples/gnn_fraud_detection_pipeline/training.py
。 - プロセス:スクリプトは、ラベル付き履歴データセットを処理して、グラフベースの機能でGNNをトレーニングし、結果の埋込みで
XGBoost
モデルをトレーニングします。
このソリューションでは、事前トレーニング済モデルがすでに提供されているため、トレーニング・スクリプトを実行する必要はありません。リアルタイム推論パイプラインのデプロイと実行に重点を置きます。
このアーキテクチャでは、次のコンポーネントがサポートされています。
- Oracle Compute Cloud@Customer
Oracle Compute Cloud@Customerは、OCI Computeをどこでも使用できる、完全に管理されたラックスケールのインフラストラクチャです。Compute Cloud@Customerでストレージおよびネットワーキング・サービスを使用してOCI ComputeおよびGPUシェイプを実行することで、データセンターでクラウドの自動化と経済性のメリットを享受できます。データ・センター内のクラウド・インフラストラクチャでアプリケーションを実行し、GenAIのパワーを活用しながら、ローカル・リソースへのデータ・レジデンシー、セキュリティ、および低レイテンシの接続やリアルタイム操作に対応できます。
- RAPIDS cuDF/cuML
RAPIDS cuDF/cuMLは、Morpheusパイプライン内の高パフォーマンスなデータ操作および機械学習ユーティリティのためのGPUアクセラレーテッド・ライブラリ・スイートです。
- Docker + Conda
Docker + Condaは、OSレベルの分離にDockerを使用し、コンテナ内の複雑なPython環境を管理するためにCondaを使用して、依存関係管理への階層化されたアプローチを提供します。
本番環境の考慮事項
このソリューションを本番環境に実装する場合は、Kubernetesが提供するスケーラビリティと自己回復性を考慮してください。次の方法で、このソリューションをOCI Kubernetes Engine (OKE)に移行できます:
- プロデューサおよびコンシューマ・ヘルパー・スクリプトのコンテナ化。
- 本番グレードのKubernetes演算子を使用してKafkaをデプロイします。
- KubernetesジョブまたはデプロイメントとしてMorpheusパイプラインをデプロイします。
必要なサービスおよびロールについて
このソリューションには、次のサービスおよびロールが必要です。
- Oracle Compute Cloud@Customer
- NVIDIA AIエンタープライズ 6.0
-
Ubuntu Linux(または互換性のあるLinuxディストリビューション)
- Docker
- NVIDIA Morpheus氏 25.02
各サービスに必要なロールは次のとおりです。
サービス名: ロール | 必須対象... |
---|---|
Oracle Compute Cloud@Customer: administrator |
NVIDIA AI Enterprise仮想マシン・インスタンスを構成およびデプロイし、ネットワーク・リソースを管理して、NVIDIA L40S GPUへのアクセスを確保します。 |
Ubuntu Linux: root またはsudo 権限を持つユーザー
|
前提条件となるソフトウェア(Docker、Git)をインストールし、システム・サービスを管理して、Dockerコマンドを実行します。 |
NVIDIA AI Enterprise: アカウント・ユーザー | NVIDIA GPU Cloud (NGC)カタログから、必要なNVIDIA Morpheusコンテナ・イメージを引き出します。 |
必要なものを取得するには、Oracle製品、ソリューションおよびサービスを参照してください。