モデルをサーバーレス API エンドポイントとしてデプロイする
この記事では、従量課金制トークン ベースの課金を使用して、モデル カタログからモデルをサーバーレス API としてデプロイする方法について説明します。
モデル カタログ内の特定のモデルは、従量課金制請求でサーバーレス API としてデプロイできます。 この種類のデプロイは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。 このデプロイ オプションでは、サブスクリプションからのクォータを必要としません。
前提条件
有効な支払い方法を持つ Azure サブスクリプション。 無料または試用版の Azure サブスクリプションは機能しません。 Azure サブスクリプションを持っていない場合は、始めるために有料の Azure アカウントを作成してください。
Azure ロールベースのアクセス制御 (Azure RBAC) は、Azure Machine Learning の操作に対するアクセスを許可するために使用されます。 この記事の手順を実行するには、ご自分のユーザー アカウントに、リソース グループの Azure AI 開発者ロールを割り当てる必要があります。 アクセス許可について詳しくは、Azure Machine Learning でのロールベースのアクセス制御に関する記事をご覧ください。
Azure Machine Learning を使用するには、次のソフトウェアをインストールする必要があります。
-
[ スタジオ](#tab/azure-studio) - Azure CLI
- Python SDK
- ARM
互換性のある任意の Web ブラウザーを使用して、Azure Machine Learning 内を移動できます。
-
モデル オファリングに対してワークスペースをサブスクライブする
Azure Marketplace 経由で提供されるモデルについては、それらをサーバーレス API エンドポイントにデプロイして予測を使用できます。 ワークスペースにモデルを初めてデプロイする場合は、Azure Marketplace から特定のモデル オファリングに対してワークスペースをサブスクライブする必要があります。 ワークスペースごとに、モデルの特定の Azure Marketplace オファリングへの固有のサブスクリプションがあり、それを使って支出を管理およびモニターできます。
Note
Azure Marketplace 経由で提供されるモデルは、特定のリージョンのサーバーレス API エンドポイントへのデプロイに使用できます。 サーバーレス API エンドポイントでのモデルに対するリージョンの可用性に関する記事を確認して、利用可能なリージョンを確認します。 必要なものが一覧にない場合は、サポートされているリージョンのワークスペースにデプロイし、別のワークスペースからサーバーレス API エンドポイントを使用できます。
Azure Machine Learning Studio にサインインします。
リソース グループに対する Azure AI 開発者ロールのアクセス許可がアカウントにあること、またはモデル オファリングをサブスクライブするために必要なアクセス許可を満たしていることを確認します。
ワークスペースに移動します。
左側のサイドバーから [モデル カタログ] を選び、デプロイするモデルのモデル カードを見つけます。 この記事では、Meta-Llama-3-8B-Instruct モデルを選びます。
- Azure CLI、Python SDK、または ARM を使用してモデルをデプロイする場合は、モデル ID をコピーします。
重要
モデル ID をコピーするときにバージョンを含めないでください。 サーバーレス API エンドポイントは、常に使用可能なモデルの最新バージョンをデプロイします。 たとえば、モデル ID
azureml://registries/azureml-meta/models/Meta-Llama-3-8B-Instruct/versions/3
の場合は、azureml://registries/azureml-meta/models/Meta-Llama-3-8B-Instruct
をコピーします。モデルのマーケットプレース サブスクリプションを作成します。 サブスクリプションを作成するときに、モデル オファーに関連付けられているご契約条件に同意します。
-
[ スタジオ](#tab/azure-studio) - Azure CLI
- Python SDK
- ARM
モデルの [詳細] ページで、[デプロイ] を選択し、[サーバーレス API] を選択してデプロイ ウィザードを開きます。
Microsoft の購入ポリシーに同意するチェック ボックスをオンにします。
「You already have an Azure Marketplace subscription for this workspace (このワークスペースの Azure Marketplace サブスクリプションが既にある)」というメモが表示される場合は、サブスクリプションを既に持っているため、作成する必要はありません。 サーバーレス API エンドポイントへのモデルのデプロイに進むことができます。
デプロイ ウィザードで、[Azure Marketplace の使用条件] へのリンクを選び、使用条件の詳細を確認します。 [Pricing and terms] (価格と条件) タブを選択して、選択したモデルの価格について確認することもできます。
デプロイ ウィザードで、リンク [Azure Marketplace の使用条件] を選択して、使用条件の詳細を確認します。 [Marketplace オファーの詳細] タブを選択して、選択したモデルの価格について確認することもできます。
[サブスクライブしてデプロイ] を選択します。
-
特定の Azure Marketplace オファリングにワークスペースをサインアップすると、"同じ" ワークスペース内の "同じ" オファリングの以降のデプロイで再度サブスクライブする必要はありません。
ワークスペースが現在サブスクライブしているモデル オファーは、いつでも確認できます。
-
[ スタジオ](#tab/azure-studio) - Azure CLI
- Python SDK
- ARM
Azure portal に移動します
ワークスペースが属するリソース グループに移動します。
[種類] フィルターで、[SaaS] を選択します。
現在サブスクライブしているすべてのオファリングが表示されます。
詳細を表示するには、リソースを選びます。
-
サーバーレス API エンドポイントにモデルをデプロイする
モデルのサブスクリプションを作成したら、関連付けられているモデルをサーバーレス API エンドポイントにデプロイできます。 サーバーレス API エンドポイントは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。 このデプロイ オプションでは、サブスクリプションからのクォータを必要としません。
この記事では、meta-llama3-8b-qwerty という名前のエンドポイントを作成します。
サーバーレス エンドポイントを作成する
-
[ スタジオ](#tab/azure-studio) - Azure CLI
- Python SDK
- ARM
前のウィザードで [デプロイ] (直前のセクションでワークスペースをモデル オファーに対してサブスクライブした場合) を選択するか、[Continue to deploy] (デプロイに進む) (デプロイ ウィザードに「You already have an Azure Marketplace subscription for this workspace (このワークスペースの Azure Marketplace サブスクリプションが既にある)」というメモがある場合) を選びます。
デプロイに名前を付けます。 この名前は、デプロイ API URL の一部になります。 この URL は、Azure リージョンごとに一意である必要があります。
展開 を選択します。 デプロイの準備ができるまで待つと、[デプロイ] ページにリダイレクトされます。
-
いつでも、ワークスペースにデプロイされたエンドポイントを確認できます。
-
[ スタジオ](#tab/azure-studio) - Azure CLI
- Python SDK
- ARM
ワークスペースに移動します。
[エンドポイント] を選択します。
[Serverless endpoints] (サーバーレス エンドポイント) タブを選択して、サーバーレス API エンドポイントを表示します。
-
作成されたエンドポイントは、承認にキー認証を使用します。 次の手順を使用して、特定のエンドポイントに関連付けられているキーを取得します。
-
[ スタジオ](#tab/azure-studio) - Azure CLI
- Python SDK
- ARM
- デプロイのページに戻るには、サーバーレス エンドポイントの一覧からエンドポイントの名前を選びます。
- エンドポイントの [ターゲット URI] と [キー] をメモします。 これらを使用してデプロイを呼び出し、予測を生成します。
Note
Azure portal を使用するときは、リソース グループにサーバーレス API エンドポイントが既定では表示されません。 リソース グループに表示するには、[非表示の種類を表示] オプションを使用します。
-
この時点で、エンドポイントを使用する準備ができました。
異なるワークスペースからこのデプロイを使用する必要がある場合、またはプロンプト フローを使用してインテリジェントなアプリケーションを構築する予定の場合は、サーバーレス API デプロイへの接続を作成する必要があります。 新しいプロジェクトまたはハブに既存のサーバーレス API エンドポイントを構成する方法については、デプロイされたサーバーレス API エンドポイントを異なるワークスペースから、またはプロンプト フローから使用する方法に関する記事を参照してください。
ヒント
デプロイがデプロイされたのと同じワークスペースでプロンプト フローを使用する場合でも、接続を作成する必要があります。
サーバーレス API エンドポイントを使用する
サーバーレス API エンドポイントの Azure Machine Learning と Azure AI Studio にデプロイされたモデルは、Azure AI Model Inference API をサポートします。これは、基本モデルの一般的な機能セットを公開していて、さまざまなモデル セットからの予測を一定かつ一貫した方法で利用するために開発者が使用できます。
この API の機能と、アプリケーションを構築するときのその活用方法について詳細を確認してください。
エンドポイントとサブスクリプションを削除する
モデルのサブスクリプションとエンドポイントを削除できます。 モデル サブスクリプションを削除すると、関連付けられているエンドポイントは [異常] になり、使用できなくなります。
-
[ スタジオ](#tab/azure-studio) - Azure CLI
- Python SDK
- ARM
サーバーレス API エンドポイントを削除するには、次のようにします。
[Azure Machine Learning Studio] に移動します。
左側のサイドバーで [エンドポイント] を選びます。
[Serverless endpoints] (サーバーレス エンドポイント) タブを選択して、サーバーレス API エンドポイントを表示します。
削除するエンドポイントを開きます。
[削除] を選択します。
関連付けられているモデル サブスクリプションを削除するには、次のようにします。
Azure portal に移動します
ワークスペースが属するリソース グループに移動します。
[種類] フィルターで、[SaaS] を選択します。
削除するサブスクリプションを選択します。
[削除] を選択します。
サーバーレス API エンドポイントとしてデプロイされるモデルのコストとクォータに関する考慮事項
サーバーレス API エンドポイントとしてデプロイされたモデルは、Azure Marketplace 経由で提供され、使用するために Azure Machine Learning と統合されます。 モデルをデプロイまたはモデルを微調整するときに、Azure Marketplace の価格を確認できます。
ワークスペースが Azure Marketplace から特定のオファーにサブスクライブするたびに、その使用に関連するコストを追跡するための新しいリソースが作成されます。 推論と微調整に関連するコストを追跡するために同じリソースが使用されますが、各シナリオを個別に追跡するために複数の測定値を使用できます。
コストを追跡する方法の詳細については、「Azure Marketplace を通じて提供されるモデルのコストを監視する」を参照してください。
クォータはデプロイごとに管理されます。 各デプロイのレート制限は、1 分あたり 200,000 トークン、1 分あたり 1,000 個の API 要求です。 ただし現在、ワークスペースのモデルごとにデプロイを 1 つに制限しています。 現在のレート制限がシナリオに十分でない場合は、Microsoft Azure サポートにお問い合わせください。
モデル オファリングをサブスクライブするために必要なアクセス許可
Azure ロールベースのアクセス制御 (Azure RBAC) は、Azure Machine Learning の操作に対するアクセスを許可するために使用されます。 この記事の手順を実行するには、ユーザー アカウントに、Azure サブスクリプションの所有者、共同作成者、または Azure AI 開発者ロールを割り当てる必要があります。 別の方法として、アカウントに、次のアクセス許可を持つカスタム ロールを割り当てることができます。
Azure サブスクリプションで - ワークスペースを Azure Marketplace オファリングにサブスクライブするため、各ワークスペースに対して 1 回、オファリングごと:
Microsoft.MarketplaceOrdering/agreements/offers/plans/read
Microsoft.MarketplaceOrdering/agreements/offers/plans/sign/action
Microsoft.MarketplaceOrdering/offerTypes/publishers/offers/plans/agreements/read
Microsoft.Marketplace/offerTypes/publishers/offers/plans/agreements/read
Microsoft.SaaS/register/action
リソース グループで - SaaS リソースを作成して使用するため:
Microsoft.SaaS/resources/read
Microsoft.SaaS/resources/write
ワークスペースで - エンドポイントをデプロイするため (Azure Machine Learning データ サイエンティスト ロールには、既に次のアクセス許可が含まれています):
Microsoft.MachineLearningServices/workspaces/marketplaceModelSubscriptions/*
Microsoft.MachineLearningServices/workspaces/serverlessEndpoints/*
アクセス許可の詳細については、「Azure Machine Learning ワークスペースへのアクセスの管理」を参照してください。
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示