AI と機械学習コンピューティングをオンプレミスとエッジにデプロイする

Azure Container Registry
Azure IoT Edge
Azure Machine Learning
Azure Stack Edge

このリファレンス アーキテクチャにより、Azure Stack Edge を使用して、迅速な機械学習推論をクラウドからオンプレミスまたはエッジのシナリオに拡張する方法を示します。 Azure Stack Hub により、コンピューティング、ストレージ、ネットワーク、ハードウェアアクセラレータによる機械学習などの Azure の機能を任意のエッジ ロケーションに提供できます。

アーキテクチャ

Architecture diagram: on-premises data training a model in Azure Machine Learning, with model deployed back to the edge for inference.

このアーキテクチャの Visio ファイルをダウンロードします。

ワークフロー

このアーキテクチャは、次のステップで構成されています。

  • Azure Machine Learning 。 Machine Learning を使用すると、クラウドベースの環境で機械学習モデルを構築、トレーニング、デプロイ、管理できます。 その後、これらのモデルは、Azure Container Instances、Azure Kubernetes Service (AKS)、Azure Functions などの Azure サービスにデプロイできます。
  • Azure Container Registry 。 Container Registry は、Docker レジストリを作成および管理するサービスです。 Container Registry では、Docker コンテナー イメージを構築、保存、管理し、コンテナー化された機械学習モデルを保存できます。
  • Azure Stack Edge 。 Azure Stack Edge は、エッジでの機械学習推論用に設計されたエッジ コンピューティング デバイスです。 データは、Azure に転送される前に、エッジで前処理されます。 Azure Stack Edge には、エッジでの AI 推論のパフォーマンスを向上させることを目的としたコンピューティング アクセラレーション ハードウェアが含まれています。
  • ローカル データ。 ローカル データは、機械学習モデルのトレーニングで使用されるすべてのデータを参照します。 このデータは、Azure Arc のデプロイをはじめとする任意のローカル ストレージ ソリューションに配置できます。

コンポーネント

シナリオの詳細

考えられるユース ケース

このソリューションは通信業界に最適です。 推論を拡張する一般的な用途には、次を行う必要がある場合が含まれます。

  • データに対する機械学習推論を、その取り込み時にローカルで迅速に実行する必要があり、かつオンプレミスのハードウェア フットプリントが大きい場合。
  • 既存のオンプレミス データをクリーニングしてモデルの生成に使用する、長期的な研究ソリューションを作成する。 その後、モデルはオンプレミスとクラウドの両方で使用され、新しいデータが到着すると、定期的に再トレーニングされます。
  • 物理的な場所とオンラインの両方で、ユーザーについて推論する必要があるソフトウェア アプリケーションを構築する。

Recommendations

ローカルに保存されたデータの取り込み、変換、転送

Azure Stack Edge では、ローカル ストレージから取得したデータを Azure に転送する前に、そのデータを変換できます。 この変換は、Azure Stack Edge デバイスに展開されている Azure IoT Edge デバイスによって実行されます。 これらの IoT Edge デバイスは、Azure クラウド プラットフォーム上の Azure IoT Hub リソースに関連付けられています。

各 IoT Edge モジュールは、取り込み、変換、転送ワークフローで特定のタスクを実行する Docker コンテナーです。 たとえば、ある IoT Edge モジュールでは、Azure Stack Edge ローカル共有からデータを収集し、そのデータを機械学習に対応する形式に変換します。 その後、変換済みのデータは、このモジュールによって Azure Stack Edge クラウド共有に転送されます。 カスタムまたは組み込みモジュールを IoT Edge デバイスに追加することも、カスタム IoT Edge モジュールを開発することもできます。

注意

IoT Edge モジュールは、Docker コンテナー イメージとして Container Registry に登録されます。

Azure クラウド プラットフォーム上の Azure Stack Edge リソースにおいて、クラウド共有は Azure Blob Storage アカウント リソースによってサポートされます。 クラウド共有内のすべてのデータは、関連付けられたストレージ アカウントに自動的にアップロードされます。 ローカルまたはクラウド共有をマウントするか、Azure Storage アカウントを走査することで、データ変換を検証して転送できます。

モデルのトレーニングとデプロイ

データを準備して Blob Storage に保存したら、Azure Storage に接続する Machine Learning データセットを作成できます。 データセットは、Machine Learning によって直接参照されるストレージに存在する、データの単一のコピーを表します。

Machine Learning コマンド ライン インターフェイス (CLI)R SDKPython SDKデザイナー、または Visual Studio Code を使用して、モデルのトレーニングに必要なスクリプトを作成できます。

モデルをトレーニングし、デプロイする準備ができたら、次のものをはじめとするさまざまな Azure サービスにデプロイできます。

注意

このリファレンス アーキテクチャでは、オンプレミスでの推論にモデルを使用できるように、モデルは Azure Stack Edge にデプロイされます。 また、多種多様な Azure サービスでモデルを推論に使用できるように、モデルは Container Registry にもデプロイされます。

新しくデプロイされたモデルでの推論

Azure Stack Edge では、組み込みのコンピューティング アクセラレーション ハードウェアを使用することにより、オンプレミスのデータに対して機械学習モデルをローカルですばやく実行できます。 この評価は、完全にエッジで実行されます。 その結果、パブリック クラウド リージョンよりデータ ソースに近いハードウェアを使用することにより、データの分析情報を迅速に得ることができます。

また、ローカルに保存されているデータに対して既に実行されているモデルに関連付けられている機械学習パイプラインを使用して、継続的な再トレーニングと改善を行うために、Azure Stack Edge によって Machine Learning にデータが転送され続けます。

考慮事項

以降の考慮事項には、ワークロードの品質向上に使用できる一連の基本原則である Azure "Well-Architected Framework" の要素が組み込まれています。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。

可用性

  • Azure Stack Edge リソースを、これアクセスする他の Azure サービスと同じ Azure リージョンに配置することをご検討ください。 アップロードのパフォーマンスを最適化するには、アプライアンスのネットワーク接続が最良であるリージョンに Azure Blob Storage アカウントを配置することを検討します。
  • デバイスと Azure の間の安定した冗長接続を実現するために、Azure ExpressRoute を検討してください。

管理の容易性

  • 管理者は、ローカル ストレージからのデータ ソースが Azure Stack Edge リソースに正しく転送されたことを確認できます。 確認を行うには、サーバー メッセージ ブロック (SMB) またはネットワーク ファイル システム (NFS) ファイル共有をマウントするか、Azure Storage Explorer を使用して関連付けられている BLOB ストレージ アカウントに接続することができます。
  • Machine Learning データセットを使用して、モデルのトレーニング中に Blob Storage のデータを参照します。 ストレージを参照することにより、シークレット、データ パス、または接続文字列をトレーニング スクリプトに埋め込む必要がなくなります。
  • Machine Learning ワークスペースで ML モデルを登録および追跡すると、さまざまな時点でのモデル間の違いを追跡できます。 Container Registry にデプロイする Docker コンテナー イメージに使用するタグのメタデータのバージョン管理と追跡を同様にミラー化できます。

DevOps

  • Machine Learning の MLOps ライフサイクル管理手法を確認してください。 たとえば、GitHub または Azure Pipelines を使用すると、モデルのトレーニングと再トレーニングを自動的に実行する継続的インテグレーション プロセスを作成できます。 トレーニングは、新しいデータがデータセットに挿入されたとき、またはトレーニング スクリプトが変更されたときにトリガーできます。
  • Azure Machine Learning ワークスペースでは、機械学習モデルの Docker コンテナー イメージと IoT Edge モジュールが自動的に登録され、管理されます。

コスト最適化

コストの最適化とは、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳しくは、コスト最適化の柱の概要に関する記事をご覧ください。

次のステップ

製品ドキュメント

Microsoft Learn モジュール: