モデルをサーバーレス API としてデプロイする
この記事では、従量課金制トークン ベースの課金を使用して、モデル カタログからモデルをサーバーレス API としてデプロイする方法について説明します。
モデル カタログ内の特定のモデルは、従量課金制請求でサーバーレス API としてデプロイできます。 この種類のデプロイは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。 このデプロイ オプションでは、サブスクリプションからのクォータを必要としません。
この記事では、説明のために Meta Llama モデル デプロイを使用します。 ただし、同じ手順を使用して、サーバーレス API のデプロイで使用できるモデルカタログ内の任意のモデルをデプロイできます。
前提条件
有効な支払い方法を持つ Azure サブスクリプション。 無料または試用版の Azure サブスクリプションは機能しません。 Azure サブスクリプションを持っていない場合は、始めるために有料の Azure アカウントを作成してください。
Azure AI Studio での操作に対するアクセスを許可するには、Azure ロールベースのアクセス制御 (Azure RBAC) を使います。 この記事の手順を実行するには、ご自分のユーザー アカウントに、リソース グループの Azure AI 開発者ロールを割り当てる必要があります。 アクセス許可について詳しくは、「Azure AI Studio でのロールベースのアクセス制御」をご覧ください。
Azure AI Studio を使用するには、次のソフトウェアをインストールする必要があります。
互換性のある任意の Web ブラウザーを使用して、Azure AI Studio 内を移動できます。
モデル カタログでモデルとモデル ID を見つける
Azure AI Studio にサインインします。
Azure Marketplace を通じて提供されるモデルの場合は、リソース グループに対する Azure AI 開発者ロールのアクセス許可がアカウントにあることを確認するか、モデル オファリングのサブスクライブに必要なアクセス許可を満たしていることを確認します。
Microsoft 以外のプロバイダー (Llama モデルや Mistral モデルなど) によって提供されるモデルは、Azure Marketplace を通じて課金されます。 このようなモデルの場合は、プロジェクトを特定のモデル オファリングにサブスクライブする必要があります。 Microsoft によって提供されるモデル (Phi-3 モデルなど) は、課金方法が異なるので、この要件はありません。 モデル カタログ内のモデルのサーバーレス デプロイ用の課金の詳細については、「サーバーレス API の課金」を参照してください。
左側のサイドバーから [モデル カタログ] を選び、デプロイするモデルのモデル カードを見つけます。 この記事では、Meta-Llama-3-8B-Instruct モデルを選択します。
Azure CLI、Python、または 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 オファリングへの固有のサブスクリプションがあり、それを使って支出を管理および監視できます。
ヒント
Phi-3 ファミリのモデルからモデルをデプロイする場合は、この手順をスキップします。 サーバーレス API エンドポイントにモデルを直接デプロイします。
Note
Azure Marketplace を通じて提供されるモデルは、特定のリージョンのサーバーレス API エンドポイントへのデプロイに使用できます。 サーバーレス API デプロイのモデルとリージョンの可用性を確認して、使用可能なモデルとリージョンを確認します。 必要なものが一覧にない場合は、サポートされているリージョンのワークスペースにデプロイし、別のワークスペースからサーバーレス API エンドポイントを使用できます。
モデルのマーケットプレース サブスクリプションを作成します。 サブスクリプションを作成するときは、モデル オファーに関連付けられている使用条件に同意します。
モデルの [詳細] ページで、[デプロイ] を選択します。 [デプロイ オプション] ウィンドウが開き、サーバーレス API のデプロイとマネージド コンピューティングを使用したデプロイのどちらかを選択できます。
Note
サーバーレス API のデプロイ経由でのみデプロイできるモデルの場合、モデルの [詳細] ページから [デプロイ] を選択した直後にサーバーレス API デプロイ ウィザードが開きます。
[Azure AI Content Safety を使用したサーバーレス API (プレビュー)] を選択してサーバーレス API デプロイ ウィザードを開きます。
モデルをデプロイするプロジェクトを選びます。 サーバーレス API モデル デプロイ オファリングを使用するには、プロジェクトが、特定のモデルに対するサーバーレス デプロイのサポート対象リージョンのいずれかに属している必要があります。
このプロジェクトの Azure Marketplace サブスクリプションが既にあることを示すメモが表示される場合は、サブスクリプションを既に持っているため、サブスクリプションを作成する必要はありません。 サーバーレス API エンドポイントへのモデルのデプロイに進むことができます。
デプロイ ウィザードで、[Azure Marketplace の使用条件] へのリンクを選び、使用条件の詳細を確認します。 また、選択したモデルの価格を参照するには、[利用料金および使用条件] タブを選択します。
[サブスクライブしてデプロイ] を選択します。
特定の Azure Marketplace オファリングのプロジェクトにサブスクライブすると、"同じ" プロジェクト内の "同じ" オファリングの以降のデプロイで再度サブスクライブする必要はありません。
プロジェクトが現在サブスクライブされているモデル オファーは、いつでも確認できます。
Azure ポータルにアクセスします。
プロジェクトが属するリソース グループに移動します。
[種類] フィルターで、[SaaS] を選択します。
現在サブスクライブしているすべてのオファリングが表示されます。
詳細を表示するには、リソースを選びます。
サーバーレス API エンドポイントにモデルをデプロイする
Microsoft 以外のモデルのサブスクリプションを作成したら、関連付けられているモデルをサーバーレス API エンドポイントにデプロイできます。 Microsoft モデル (Phi-3 モデルなど) の場合、サブスクリプションを作成する必要はありません。
サーバーレス API エンドポイントは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。 このデプロイ オプションでは、サブスクリプションからのクォータを必要としません。
このセクションでは、meta-llama3-8b-qwerty という名前のエンドポイントを作成します。
サーバーレス エンドポイントを作成する
モデル オファリングへのサブスクライブを必要としない Microsoft モデルをデプロイするには:
- [デプロイ] を選択し、[Azure AI Content Safety を使用したサーバーレス API] (プレビュー) を選んでデプロイ ウィザードを開きます。
- モデルをデプロイするプロジェクトを選びます。 すべてのリージョンがサポートされているわけではないことに注意してください。
または、モデル サブスクリプションを必要とする Microsoft 以外のモデルの場合、前のセクションでプロジェクトをモデル オファーにサブスクライブしたばかりであれば、引き続き [デプロイ] を選択します。 または、[デプロイを続行する] を選択します (デプロイ ウィザードに、"このプロジェクトには既に Azure Marketplace サブスクリプションがあります" というメモが表示される場合)。
デプロイに名前を付けます。 この名前は、デプロイ API URL の一部になります。 この URL は、Azure リージョンごとに一意である必要があります。
ヒント
[コンテンツ フィルター (プレビュー)] オプションは、既定で有効になっています。 サービスの既定の設定をそのままにして、ヘイト、自傷行為、性的コンテンツ、暴力コンテンツなどの有害なコンテンツを検出します。 コンテンツ フィルタリングの詳細については、「Azure AI Studio でのコンテンツのフィルター処理」を参照してください。
展開 を選択します。 デプロイの準備ができるまで待つと、[デプロイ] ページにリダイレクトされます。
いつでも、プロジェクトにデプロイされたエンドポイントを確認できます。
プロジェクトに移動します。
セクション [デプロイ] を選択します
サーバーレス API エンドポイントが表示されます。
作成されたエンドポイントは、承認にキー認証を使用します。 特定のエンドポイントに関連付けられているキーを取得するには、次の手順を使用します。
[デプロイ] ページに戻ってデプロイを選び、エンドポイントのターゲット URI とキーを記録できます。 これらを使用してデプロイを呼び出し、予測を生成します。
Note
Azure portal を使用するときは、リソース グループにサーバーレス API エンドポイントが既定では表示されません。 リソース グループに表示するには、[非表示の種類を表示] オプションを使用します。
これで、エンドポイントを使用する準備ができました。
別のプロジェクトまたはハブからこのデプロイを使用する必要がある場合、またはプロンプト フローを使用してインテリジェントなアプリケーションを構築する予定の場合は、サーバーレス API デプロイへの接続を作成する必要があります。 新しいプロジェクトまたはハブで既存のサーバーレス API エンドポイントを構成する方法については、別のプロジェクトまたはプロンプト フローのデプロイ済みサーバーレス API エンドポイントの使用に関する説明を参照してください。
ヒント
配置がデプロイされたのと同じプロジェクトまたはハブでプロンプト フローを使用している場合でも、接続を作成する必要があります。
サーバーレス API エンドポイントを使用する
サーバーレス API エンドポイントの Azure Machine Learning と Azure AI Studio にデプロイされたモデルは、Azure AI Model Inference API をサポートします。これは、基本モデルの一般的な機能セットを公開していて、さまざまなモデル セットからの予測を一定かつ一貫した方法で利用するために開発者が使用できます。
この API の機能と、アプリケーションを構築するときのその使用方法について詳細を確認してください。
ネットワークの分離
サーバーレス API としてデプロイされたモデルのエンドポイントは、デプロイが存在するプロジェクトがある AI Studio ハブの公衆ネットワーク アクセス (PNA) のフラグ設定に従います。 MaaS エンドポイントをセキュリティで保護するには、AI Studio ハブで PNA フラグを無効にします。 ハブのプライベート エンドポイントを使用して、クライアントからエンドポイントへの受信通信をセキュリティで保護できます。
Azure AI Studio ハブの PNA フラグを設定するには:
- Azure ポータルにアクセスします。
- ハブが属しているリソース グループを検索し、そのリソース グループに対して表示されているリソースから Azure AI ハブを選択します。
- 左側のメニューのハブ [概要] ページで、[設定]>[ネットワーク] を選択します。
- [パブリック アクセス] タブで、公衆ネットワーク アクセス フラグの設定を構成できます。
- 変更を保存。 変更が反映されるまでに最大 5 分かかる場合があります。
エンドポイントとサブスクリプションを削除する
モデルのサブスクリプションとエンドポイントを削除できます。 モデル サブスクリプションを削除すると、関連付けられているエンドポイントは [異常] になり、使用できなくなります。
サーバーレス API エンドポイントを削除するには、次の操作を行います。
Azure AI Studio に移動します。
[コンポーネント]>[デプロイ] の順に移動します。
削除するデプロイを開きます。
[削除] を選択します。
関連付けられているモデル サブスクリプションを削除するには、次のようにします。
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 AI Studio での操作に対するアクセスを許可するには、Azure ロールベースのアクセス制御 (Azure RBAC) を使います。 この記事の手順を実行するには、ユーザー アカウントに、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 AI Studio でのロールベースのアクセス制御」をご覧ください。