運用環境での推論のエンドポイント

適用対象:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

機械学習モデルまたはパイプラインをトレーニングした後、またはモデル カタログから適切なモデルを見つけたら、それらを運用環境にデプロイして、他のユーザーが 推論に使用できるようにする必要があります。 推論とは、新しい入力データを機械学習モデルまたはパイプラインに適用して出力を生成するプロセスです。 通常、これらの出力は "予測" と呼ばれますが、推論では、分類やクラスタリングなどの他の機械学習タスクの出力を生成できます。 Azure Machine Learningでは、endpoints を使用して推論を実行します。

エンドポイントとデプロイ

エンドポイントは、モデルの要求または呼び出しに使用できる安定した永続的な URL です。 エンドポイントに必要な入力を指定し、出力を受け取ります。 Azure Machine Learningでは、標準のデプロイ、オンライン エンドポイント、バッチ エンドポイントがサポートされます。 エンドポイントは次の機能を提供します。

  • 安定した永続的な URL ( endpoint-name.region.inference.ml.azure.com など)
  • 認証メカニズム
  • 承認メカニズム

デプロイは、実際の推論を実行するモデルまたはコンポーネントをホストするために必要なリソースとコンピューティングのセットです。 エンドポイントにはデプロイが含まれています。 オンライン エンドポイントとバッチ エンドポイントの場合、1 つのエンドポイントに複数のデプロイを含めることができます。 デプロイでは、独立した資産をホストし、資産のニーズに基づいてさまざまなリソースを使用できます。 エンドポイントには、任意のデプロイに要求を送信できるルーティング メカニズムもあります。

Azure Machine Learningの一部の種類のエンドポイントは、デプロイで専用リソースを使用します。 これらのエンドポイントを実行するには、Azure サブスクリプションのコンピューティング クォータが必要です。 ただし、一部のモデルではサーバーレスデプロイがサポートされているため、サブスクリプションからのクォータを使用できません。 サーバーレス展開の場合、使用量に基づいて課金されます。

直感

写真から車の種類と色を予測するアプリケーションに取り組んでいるとします。 このアプリケーションでは、特定の資格情報を持つユーザーが URL への HTTP 要求を行い、要求の一部として自動車の画像を提供します。 その代わりに、ユーザーは車の種類と色を文字列値として含む応答を受け取ります。 このシナリオでは、URL はエンドポイントとして機能 します

エンドポイントの概念を示す図。

次に、データ サイエンティストの Alice がアプリケーションを実装しているとします。 Alice には豊富な TensorFlow エクスペリエンスがあり、TensorFlow Hub の ResNet アーキテクチャを使用して Keras シーケンシャル分類子を使用してモデルを実装することにしました。 モデルをテストした後、Alice はその結果に満足し、モデルを使用して車の予測問題を解決することにしました。 モデルは大きく、実行するには 4 コアの 8 GB のメモリが必要です。 このシナリオでは、Alice のモデルと、モデルを実行するために必要なリソース (コードやコンピューティングなど) が エンドポイントの下にデプロイを構成します

デプロイの概念を示す図。

数か月後、組織は、照明条件の悪い画像に対してアプリケーションのパフォーマンスが低下していることを検出します。 もう 1 人のデータ サイエンティストである Bob は、モデルがこの要素の堅牢性を構築するのに役立つデータ拡張手法に関する専門知識を持っています。 ただし、Bob は PyTorch を使用してモデルを実装し、PyTorch で新しいモデルをトレーニングすることを好みます。 Bob は、組織が古いモデルを廃止する準備ができるまで、運用環境でこのモデルを段階的にテストしたいと考えています。 新しいモデルは GPU にデプロイするとパフォーマンスも向上するため、デプロイには GPU を含める必要があります。 このシナリオでは、Bob のモデルと、モデルを実行するために必要なリソース (コードやコンピューティングなど) が 、同じエンドポイントの下に別のデプロイを構成します

複数のデプロイを含むエンドポイントの概念を示す図。

エンドポイント: 標準デプロイ、オンライン、バッチ

Azure Machine Learningでは、標準デプロイオンライン エンドポイント、および batch エンドポイントがサポートされます。

標準デプロイオンライン エンドポイント は、リアルタイム推論用に設計されています。 エンドポイントを呼び出すと、エンドポイントの応答で結果が返されます。 標準デプロイでは、サブスクリプションからのクォータは使用されません。代わりに、標準請求で課金されます。

バッチ エンドポイントは、 実行時間の長いバッチ推論用に設計されています。 バッチ エンドポイントを呼び出すと、実際の作業を実行するバッチ ジョブが生成されます。

標準デプロイ、オンライン、バッチ エンドポイントを使用する場合

標準デプロイ:

標準的なデプロイメントを使用して、大規模な基本モデルを、市販されているリアルタイム推論や、そのようなモデルの微調整に利用します。 すべてのモデルを標準デプロイにデプロイできるわけではありません。 次の場合は、このデプロイ モードを使用することをお勧めします。

  • モデルは、標準デプロイで使用できる基本モデルまたは微調整された基本モデルです。
  • クォータのないデプロイを利用できます。
  • モデルの実行に使用する推論スタックをカスタマイズする必要はありません。

オンライン エンドポイント:

オンライン エンドポイントを使用して、同期的な低待機時間要求でリアルタイム推論のモデルを運用化します。 次の場合に使用することをお勧めします。

  • モデルは基本モデルまたは基本モデルの微調整されたバージョンですが、標準デプロイではサポートされていません。
  • 待機時間が短い要件があります。
  • モデルは、比較的短時間で要求に応答できます。
  • モデルの入力は、要求の HTTP ペイロードに収まります。
  • 要求の数の観点からスケールアップする必要があります。

バッチ エンドポイント:

バッチ エンドポイントを使用して、実行時間の長い非同期推論のモデルまたはパイプラインを運用化します。 次の場合に使用することをお勧めします。

  • 実行に時間がかかるコストの高いモデルまたはパイプラインがあります。
  • 機械学習パイプラインを運用化し、コンポーネントを再利用したいと考えています。
  • 複数のファイルに分散されている大量のデータに対して推論を実行する必要があります。
  • 待機時間が短い要件はありません。
  • モデルの入力は、ストレージ アカウントまたはAzure Machine Learningデータ資産に格納されます。
  • 並列化を利用できます。

標準デプロイ、オンライン、バッチ エンドポイントの比較

すべての標準デプロイ、オンライン エンドポイント、バッチ エンドポイントはエンドポイントの概念に基づいているため、1 つから他方に簡単に移行できます。 オンライン エンドポイントとバッチ エンドポイントでは、同じエンドポイントに対して複数のデプロイを管理することもできます。

エンドポイント

次の表は、標準デプロイ、オンライン エンドポイント、およびエンドポイント レベルでのバッチ エンドポイントで使用できるさまざまな機能の概要を示しています。

機能 標準デプロイ オンライン エンドポイント Batch エンドポイント
安定性のある呼び出し URL はい はい はい
複数の展開のサポート いいえ はい はい
デプロイメントのルーティング なし トラフィックの負荷分散 既定値に切り替える
安全なロールアウトのためにトラフィックをミラー化する いいえ はい いいえ
Swagger のサポート はい はい いいえ
認証 キー キーとMicrosoft Entra ID (プレビュー) Microsoft Entra ID
プライベート ネットワークのサポート (レガシ) いいえ はい はい
管理されたネットワークの分離 はい はい はい (必要な追加構成を参照)
カスタマー マネージド キー Na はい はい
コスト基準 エンドポイントごと、分あたり1 なし なし

11 分あたりの標準デプロイには、小さな分数が課金されます。 使用量に関連する料金については、「 デプロイ 」セクションを参照してください。これはトークンごとに課金されます。

展開

次の表は、デプロイ レベルで標準デプロイ、オンライン エンドポイント、バッチ エンドポイントで使用できるさまざまな機能の概要を示しています。 これらの概念は、エンドポイントの下の各デプロイ (オンラインおよびバッチ エンドポイントの場合) に適用され、標準デプロイ (デプロイの概念がエンドポイントに組み込まれている) に適用されます。

機能 標準デプロイ オンライン エンドポイント Batch エンドポイント
デプロイの種類 モデル モデル モデルとパイプライン コンポーネント
MLflow モデルのデプロイ いいえ。カタログ内の特定のモデルのみ はい はい
カスタム モデルのデプロイ いいえ。カタログ内の特定のモデルのみ はい(スコア付けスクリプトを使用) はい(スコア付けスクリプトを使用)
推論サーバー 2 Azure AI モデル推論 API - Azure Machine Learning推論サーバー
-トリトン
- カスタム (BYOC を使用)
バッチ推論
使用されたコンピューティング リソース なし (サーバーレス) インスタンスまたは詳細なリソース クラスタ インスタンス
コンピューティングの種類 なし (サーバーレス) マネージド コンピューティングと Kubernetes マネージド コンピューティングと Kubernetes
優先順位の低いコンピューティング Na いいえ はい
コンピューティングをゼロにスケーリングする 組み込み いいえ はい
オートスケーリング コンピューティング3 組み込み はい (リソースの使用に基づく) はい(ジョブ数に基づく)
過剰な能力の管理 スロットリング スロットリング キューイング
コスト基準4 トークンごと デプロイごと: 実行中のコンピューティング インスタンス ジョブごと: ジョブで使用されたコンピューティング インスタンス (クラスターのインスタンスの最大数に制限されます)
デプロイのローカル テスト いいえ はい いいえ

2推論サーバー は、要求を受け取り、処理し、応答を作成するサービス テクノロジを指します。 推論サーバーでは、入力の形式と予想される出力も指定されます。

3自動スケール は、負荷に基づいてデプロイの割り当てられたリソースを動的にスケールアップまたはスケールダウンする機能です。 オンラインデプロイとバッチデプロイでは、自動スケーリングにさまざまな戦略が使用されます。 オンライン デプロイはリソース使用率 (CPU、メモリ、要求など) に基づいてスケールアップおよびスケールダウンされますが、バッチ エンドポイントは作成されたジョブの数に基づいてスケールアップまたはスケールダウンされます。

4 オンラインデプロイとバッチデプロイの両方が、消費されたリソースによって課金されます。 オンラインデプロイでは、デプロイ時にリソースがプロビジョニングされます。 バッチ デプロイでは、リソースはデプロイ時ではなく、ジョブの実行時に消費されます。 そのため、バッチ デプロイ自体に関連するコストは発生しません。 同様に、キューに登録されたジョブもリソースを消費しません。

開発者インターフェイス

エンドポイントは、組織がAzure Machine Learningで運用レベルのワークロードを運用化できるように設計されています。 エンドポイントは堅牢でスケーラブルなリソースであり、MLOps ワークフローを実装するための最適な機能を提供します。

複数の開発者ツールを使用して、バッチ エンドポイントとオンライン エンドポイントを作成および管理できます。

  • Azure CLI SDK と Python SDK
  • Azure Resource Manager/REST API
  • Azure Machine Learning スタジオ Web ポータル
  • Azure ポータル (IT/管理者)
  • Azure CLI インターフェイスおよび REST/ARM インターフェイスを使用した CI/CD MLOps パイプラインのサポート