ネットワーク・エッジへの機械学習モデルのデプロイ
機械学習は、多くの業界でますます重要な役割を果たしています。機械学習モデルはデータ・サイエンティストによって構築およびトレーニングされ、業務データに基づく予測やスコアを提供するようにデプロイされます。たとえば、プロセスの効率性の向上、問題や異常の検出と対応、主要業績評価指標(KPI)や品質指標の評価などに使用されます。
- このモデルでは、リモート・サイトと中央の場所が収容できる帯域幅よりも大量のデータを必要とします。
- リモート・サイトと中央の場所との間に断続的な接続が発生します。
- モデル・ランタイム・データのフィード、スコアまたは予測の生成、そのスコアまたは予測の処理に関する非常に低レイテンシ要件があります。
アーキテクチャ
このアーキテクチャは、機械学習モデルをデータ・ソースと本番システムに近くにデプロイするための基盤です。次の図に示します。

図deploy-ml-edge-architecture.pngの説明
deploy-ml-edge-architecture: oracle.zip
- 本番プロセスでは、データが生成され、Oracle Cloudのストリーミング・サービスにストリーミングされます。ストリーミング・サービスは、受信したstreams.Thisファンクションを処理するファンクションをトリガーし、受信データを処理または変換した後など、自律型データ・ウェアハウス(ADW)に格納します。
- データ・サイエンティストは、ADWのデータに基づいて機械学習(ML)モデルを定期的に再構築します。これらのモデルがテストされ、古いモデルで改善することが確認されると、デプロイメント用に保存され(ONNXフォームなど)、後続のフェッチで使用できるようにオブジェクト・ストレージにプッシュされます。正しいモデルが正しいサイトに確実に配信されるように、ローカル・サイトごとに個別のオブジェクト・ストレージ・バケットをお薦めします。モデル・カタログにはOCI外からアクセスできず、Oracle Data ScienceはOracle Cloudにのみデプロイできるため、モデル・カタログにモデルを格納し、後でモデル・デプロイメントとしてデプロイする通常のOracle Data Scienceプロセスは使用されません。
- ローカル・サイトでは、特定のオブジェクト・ストレージ・バケットをチェックインして、MLモデルの更新を定期的にチェックしてフェッチします。新しいモデルが使用可能になると、ローカル・サイトによってフェッチ、デプロイおよび使用が開始されます。
- 本番では、スコア、予測、アラートなどを生成するために、本番データがMLランタイムに渡されます。
- オンプレミス・ロケーション
1つ以上のリモート本番サイトが、Site-to-Site VPNを使用してOracle Cloudに接続されます。これらのサイトは、生産プロセスからのデータ・ストリームに関する低レイテンシの機械学習が必要な製造施設である場合があります。
- 生産機械
各リモート・サイトでは、本番データまたはIoTストリーム(あるいはその両方)を生成する1つ以上の本番システム、品質管理システム、MES、SCADAシステムなどが実行されています。これらのシステムからのデータは、MLモデルのデータへのレスポンスに基づいて、スコアリング、予測またはアラートのためにMLランタイムに提供されます。
- ML実行環境
各リモート・サイトでは、機械学習の実行環境が動作しています。このコアは、ONNXランタイムなどのMLランタイムで構成され、Webサービスとして実行され、IoTゲートウェイにスコアリングおよび予測機能を提供します。ML実行環境の正確な構成は、特定の地域の状況および要件によって異なります。
- テナント
テナンシは、OCIにサインアップするときにOracleがOracle Cloud内に設定するセキュアで分離されたパーティションです。テナンシ内のOracle Cloudでリソースを作成、編成および管理できます。テナンシは、会社または組織と同義です。通常、会社は単一のテナンシを持ち、そのテナンシ内の組織構造を反映します。通常、単一のテナンシは単一のサブスクリプションに関連付けられ、単一のサブスクリプションには1つのテナンシのみが含まれます。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義のネットワークです。VCNは、従来のデータ・センター・ネットワークと同様に、ネットワーク環境の完全な制御を可能にします。VCNには重複しない複数のCIDRブロックを含めることができ、VCNの作成後にそれらを変更できます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。
- サービス・ゲートウェイ
サービス・ゲートウェイは、VCNからOracle Cloud Infrastructure Object Storageなどの他のサービスへのアクセスを提供します。The traffic from the VCN to the Oracle service travels over the Oracle network fabric and never traverses the internet.このアーキテクチャでは、Service GatewayはVPN経由でOracle Cloudサービスにローカルにピアリングされたアクセスを提供します
- オブジェクト・ストレージ
オブジェクト・ストレージでは、データベースのバックアップ、分析データ、イメージやビデオなどのリッチ・コンテンツなど、あらゆるコンテンツ・タイプの構造化データおよび非構造化データにすばやくアクセスできます。インターネットから直接またはクラウド・プラットフォーム内から、安全かつセキュアにデータを格納し、取得できます。パフォーマンスやサービスの信頼性を損なうことなく、シームレスにストレージを拡張できます。迅速、即時、頻繁にアクセスする必要があるホット・ストレージには、標準ストレージを使用します。長期間保持し、ほとんどまたはほとんどアクセスしないコールド・ストレージには、アーカイブ・ストレージを使用します。このアーキテクチャでは、オブジェクト・ストレージは、データ・サイエンティストによって生成される場合に、モデルおよび関連スクリプトへの更新を格納するために使用されます。
- Autonomous Data Warehouse
Oracle Autonomous Data Warehouseは、データ・ウェアハウスのワークロード用に最適化された、自動運転、自己保護および自己修復が可能なデータベース・サービスです。ハードウェアの構成や管理、ソフトウェアのインストールを行う必要はありません。Oracle Cloud Infrastructureでは、データベースの作成、およびデータベースのバックアップ、パッチ適用、アップグレードおよびチューニングが処理されます。このアーキテクチャでは、ADWは生(または処理済)本番サイトのIoTデータを格納し、後でデータ・サイエンティストが処理します。
- サイト間VPN
サイト間VPNは、オンプレミス・ネットワークとOracle Cloud InfrastructureのVCN間でIPSec VPN接続を提供します。IPSecプロトコル・スイートは、パケットがソースから宛先に転送される前にIPトラフィックを暗号化し、到着時にトラフィックを復号化します。
- 関数
Oracle Functionsは、完全に管理された、マルチテナントのスケーラビリティが高いオンデマンドのFunctions-as-a-Service (FaaS)プラットフォームです。これは、Fn Projectのオープン・ソース・エンジンによって機能します。ファンクションを使用すると、コードをデプロイし、直接コールするか、イベントに応答してトリガーできます。Oracle Functionsでは、Oracle Cloud Infrastructure RegistryでホストされているDockerコンテナが使用されます。このアーキテクチャでは、Functionsは、JDBCコネクタを中心に構築された関数を使用して、ストリーミングされたデータをADWに格納するために使用されます。
- ストリーミング
Oracle Cloud Infrastructure Streamingは、リアルタイムで消費と処理が可能な連続した大量のデータ・ストリームを収集するための、スケーラブルで耐久性の高い完全管理型のストレージ・ソリューションです。Streamingを使用すると、アプリケーション・ログ、運用テレメトリ、Webクリック・ストリーム・データなど、大量のデータを取り込むことができます。また、パブリッシュ/サブスクライブのメッセージング・モデルで、データが連続して順番に生成され、処理される他のユースケースでも使用できます。このアーキテクチャではストリーミングを使用して、本番データのストリームを永続性をADWにルーティングします。ストリーミング・プロセスの一部として、これらのデータの処理とエンリッチメントを導入することもできますが、ここには表示されません
- Oracleデータ・サイエンス
Oracle Data Scienceは、データ・サイエンティスト・チームがPythonやオープン・ソース・ツールを使用して機械学習モデルを作成、トレーニング、デプロイおよび管理するための完全管理型のプラットフォームです。自動パイプライン、モデル・デプロイメント、モデル・モニタリングなどのMLOps機能が含まれますが、これらの機能はOracle Cloudでのモデル・デプロイメントに制限され、このアーキテクチャでは使用されません。このアーキテクチャでは、データ・サイエンティストはOracle Data Scienceを使用して、データ上のモデルを効率的に分析および構築し、そのモデルのデプロイ可能なバージョン(ONNXフォームなど)を作成します。
- Oracleサービス・ネットワーク
Oracleサービス・ネットワーク(OSN)は、Oracleサービス用に予約されているOracle Cloud Infrastructureの概念的なネットワークです。これらのサービスには、インターネットを介してアクセスできるパブリックIPアドレスがあります。Oracle Cloud外部のホストは、Oracle Cloud Infrastructure FastConnectまたはVPN接続を使用してOSNにプライベートにアクセスできます。VCNのホストは、サービス・ゲートウェイを介してOSNにプライベートにアクセスできます。
推奨事項
- VCN
(サイト間VPNで接続されている)リモート・サイトからのトラフィックをサービス・ネットワークで実行されているサービスにルーティングするには、DRGとサービス・ゲートウェイがアタッチされているVCNが必要です。このVCNでは、選択したOracle Cloudリージョン内のサービスにバインドされているすべてのトラフィックをサービス・ゲートウェイ経由でルーティングするために、ルート表のエントリが必要です。このアーキテクチャでは、リモート・サイトとサービス・ネットワーク間のすべてのトラフィックが、リモート・サイトからサービス・ネットワークへのリクエストによってトリガーされます。
- セキュリティ
Oracle Cloud Guardを使用して、Oracle Cloud Infrastructure内のリソースのセキュリティを事前にモニターおよびメンテナンスします。クラウド・ガードでは、ディテクタ・レシピを使用して、リソースでセキュリティの弱点を調べ、オペレータおよびユーザーにリスクのあるアクティビティを監視するために定義できます。構成の誤りやセキュアでないアクティビティが検出されると、クラウド・ガードは修正アクションを推奨し、定義できるレスポンダ・レシピに基づいてそれらのアクションの実行を支援します。
- クラウド・ガード
Oracleによって提供されるデフォルトのレシピをクローニングおよびカスタマイズして、カスタム・ディテクタおよびレスポンダ・レシピを作成します。これらのレシピを使用すると、警告を生成するセキュリティ違反のタイプと、そのレシピに対して実行できるアクションを指定できます。たとえば、可視性がpublicに設定されているオブジェクト・ストレージ・バケットを検出できます。
クラウド・ガードをテナンシ・レベルで適用して、範囲を広げ、複数の構成を維持する管理上の負担を軽減します。
管理対象リスト機能を使用して、特定の構成をディテクタに適用することもできます。
- セキュリティ・ゾーン
最大限のセキュリティが必要なリソースの場合、Oracleではセキュリティ・ゾーンを使用することをお薦めします。セキュリティ・ゾーンは、ベスト・プラクティスに基づくセキュリティ・ポリシーのOracle定義レシピに関連付けられたコンパートメントです。たとえば、セキュリティ・ゾーン内のリソースにはパブリック・インターネットからアクセスできず、顧客管理キーを使用して暗号化する必要があります。セキュリティ・ゾーンでリソースを作成して更新すると、Oracle Cloud Infrastructureでは、セキュリティ・ゾーン・レシピのポリシーに対して操作が検証され、ポリシーに違反する操作が拒否されます
- ネットワーク・セキュリティ・グループ(NSG)
NSGを使用して、特定のVNICに適用されるイングレスおよびエグレス・ルールのセットを定義できます。NSGではVCNのサブネット・アーキテクチャをアプリケーションのセキュリティ要件から分離できるため、セキュリティ・リストではなくNSGを使用することをお薦めします。
考慮事項
このリファレンス・アーキテクチャをデプロイする場合は、次の点を考慮してください。
- パフォーマンス
パフォーマンスの主な問題は、本番プロセスによって生成されるデータの量に関連しています。
本番データに応答するために機械学習ランタイムが起動されるML実行環境は、生成されるデータの量を処理するためにディメンション化されます。これはリモート・サイト設定の問題であり、このアーキテクチャの範囲外です。
本番プロセスで生成されるデータは、OCIへのストリーミングに使用可能な帯域幅が圧倒される可能性があるほど十分に大きくなる可能性があります。このような場合、帯域幅の要求が減るように、無関係なデータの破棄、データの集計、データの圧縮などを行うために、データをローカルで前処理することをお勧めします。
MLランタイムをデータ・ソースの近くに移動することで、MLレイテンシが削減されます。
- 可用性
リモート・サイトとOracle Cloud間の接続が断続的である場合、データをローカルのKafkaインストールにストリーミングし、Oracle Streamingにストリーミングできます。このようにして、ネットワークの停止が発生した場合、ローカルのKafkaインストールでデータをバッファできます。