モデルをサーバーレス API エンドポイントとしてデプロイする
この記事では、従量課金制トークン ベースの課金を使用して、モデル カタログからモデルをサーバーレス API としてデプロイする方法について説明します。
モデル カタログ内の特定のモデルは、従量課金制請求でサーバーレス API としてデプロイできます。 この種類のデプロイは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。 このデプロイ オプションでは、サブスクリプションからのクォータを必要としません。
この記事では、説明のために Meta Llama モデル デプロイを使用します。 ただし、同じ手順を使用して、サーバーレス 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 内を移動できます。
-
モデル カタログでモデルとモデル ID を見つける
Azure Machine Learning Studio にサインインします。
Azure Marketplace を通じて提供されるモデルの場合は、リソース グループに対する Azure AI 開発者ロールのアクセス許可がアカウントにあることを確認するか、モデル オファリングのサブスクライブに必要なアクセス許可を満たしていることを確認します。
Microsoft 以外のプロバイダー (Llama モデルや Mistral モデルなど) によって提供されるモデルは、Azure Marketplace を通じて課金されます。 このようなモデルの場合は、ワークスペースを特定のモデル オファリングにサブスクライブする必要があります。 Microsoft によって提供されるモデル (Phi-3 モデルなど) は、課金方法が異なるので、この要件はありません。 モデル カタログ内のモデルのサーバーレス デプロイ用の課金の詳細については、サーバーレス API の課金に関するページを参照してください。
ワークスペースに移動します。 サーバーレス API モデルデプロイ オファリングを使用するには、ワークスペースが、デプロイする特定のモデルに対してサーバーレス デプロイのサポート対象リージョンのいずれかに属している必要があります。
左側のサイドバーから [モデル カタログ] を選び、デプロイするモデルのモデル カードを見つけます。 この記事では、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
をコピーします。
次のセクションでは、モデル オファリングにワークスペースをサブスクライブする手順について説明します。 Microsoft モデルをデプロイする場合は、このセクションをスキップし、「サーバーレス API エンドポイントにモデルをデプロイする」に進めます。
モデル オファリングに対してワークスペースをサブスクライブする
サーバーレス API エンドポイントは、Microsoft と Microsoft 以外が提供する両方のモデルをデプロイできます。 Microsoft モデル (Phi-3 モデルなど) の場合、Azure Marketplace サブスクリプションを作成する必要はなく、それらをサーバーレス API エンドポイントに直接デプロイし、予測を使用することができます。 Microsoft 以外のモデルの場合は、最初にサブスクリプションを作成する必要があります。 ワークスペースにモデルを初めてデプロイする場合は、Azure Marketplace から特定のモデル オファリングに対してワークスペースをサブスクライブする必要があります。 ワークスペースごとに、モデルの特定の Azure Marketplace オファリングへの固有のサブスクリプションがあり、それを使って支出を管理およびモニターできます。
Note
Azure Marketplace 経由で提供されるモデルは、特定のリージョンのサーバーレス API エンドポイントへのデプロイに使用できます。 サーバーレス API エンドポイントでのモデルに対するリージョンの可用性に関する記事を確認して、利用可能なモデルとリージョンを確認します。 必要なものが一覧にない場合は、サポートされているリージョンのワークスペースにデプロイし、別のワークスペースからサーバーレス API エンドポイントを使用できます。
モデルのマーケットプレース サブスクリプションを作成します。 サブスクリプションを作成するときに、モデル オファーに関連付けられているご契約条件に同意します。 Microsoft が提供するモデル (Phi-3 など) に対してこの手順を実行する必要はありません。
-
[ スタジオ](#tab/azure-studio) - Azure CLI
- Python SDK
- ARM
モデルの [詳細] ページで、[デプロイ] を選択します。 [デプロイ オプション] ウィンドウが開き、サーバーレス API のデプロイとマネージド コンピューティングを使用したデプロイのどちらかを選択できます。
Note
サーバーレス API のデプロイ経由でのみデプロイできるモデルの場合、モデルの [詳細] ページから [デプロイ] を選択した直後にサーバーレス API デプロイ ウィザードが開きます。
[Azure AI Content Safety を使用したサーバーレス API (プレビュー)] を選択して、サーバーレス 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 エンドポイントにモデルをデプロイする
Microsoft 以外のモデルのサブスクリプションを作成したら、関連付けられているモデルをサーバーレス API エンドポイントにデプロイできます。 Microsoft モデル (Phi-3 モデルなど) の場合、サブスクリプションを作成する必要はありません。
サーバーレス API エンドポイントは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。 このデプロイ オプションでは、サブスクリプションからのクォータを必要としません。
このセクションでは、meta-llama3-8b-qwerty という名前のエンドポイントを作成します。
サーバーレス エンドポイントを作成する
-
[ スタジオ](#tab/azure-studio) - Azure CLI
- Python SDK
- ARM
モデル オファリングをサブスクライブする必要のない Microsoft モデルをデプロイするには、[デプロイ] を選択し、[Azure AI Content Safety を使用したサーバーレス API] (プレビュー) を選択してデプロイ ウィザードを開きます。
または、モデル サブスクリプションを必要とする Microsoft 以外のモデルの場合、前のセクションでワークスペースをモデル オファーにサブスクライブしたばかりの場合は、[デプロイ] の選択に進みます。 または、デプロイ ウィザードに、このワークスペースの Azure Marketplace サブスクリプションが既にあることを示すメモが含まれている場合は、[Continue to deploy]\(デプロイに進む\) を選択します。
デプロイに名前を付けます。 この名前は、デプロイ API URL の一部になります。 この URL は、Azure リージョンごとに一意である必要があります。
ヒント
[コンテンツ フィルター (プレビュー)] オプションは、既定で有効になっています。 サービスの既定の設定をそのままにして、ヘイト、自傷行為、性的、暴力コンテンツなどの有害なコンテンツを検出します。 コンテンツ フィルタリングの詳細については、「サーバーレス API を使用してデプロイされたモデルのコンテンツの安全性」を参照してください。
展開 を選択します。 デプロイの準備ができるまで待つと、[デプロイ] ページにリダイレクトされます。
-
いつでも、ワークスペースにデプロイされたエンドポイントを確認できます。
-
[ スタジオ](#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 エンドポイントとしてデプロイされるモデルのコストとクォータに関する考慮事項
クォータはデプロイごとに管理されます。 各デプロイのレート制限は、1 分あたり 200,000 トークン、1 分あたり 1,000 個の API 要求です。 ただし現在、ワークスペースのモデルごとにデプロイを 1 つに制限しています。 現在のレート制限がシナリオに十分でない場合は、Microsoft Azure サポートにお問い合わせください。
Microsoft モデルのコスト
価格情報は、Microsoft モデル (Phi-3 モデルなど) をサーバーレス API エンドポイントとしてデプロイするときに、デプロイ ウィザードの [利用料金および使用条件] タブで確認できます。
Microsoft 以外のモデルのコスト
サーバーレス API エンドポイントとしてデプロイされた Microsoft 以外のモデルは、Azure Marketplace を通じて提供され、使用するために Azure AI Studio と統合されます。 これらのモデルをデプロイまたはモデルを微調整するときに、Azure Marketplace の価格を確認できます。
ワークスペースが Azure Marketplace から特定のオファーにサブスクライブするたびに、その使用に関連するコストを追跡するための新しいリソースが作成されます。 推論と微調整に関連するコストを追跡するために同じリソースが使用されますが、各シナリオを個別に追跡するために複数の測定値を使用できます。
コストを追跡する方法の詳細については、「Azure Marketplace を通じて提供されるモデルのコストを監視する」を参照してください。
モデル オファリングをサブスクライブするために必要なアクセス許可
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 ワークスペースへのアクセスの管理」を参照してください。