次の方法で共有


モデルをサーバーレス API エンドポイントとしてデプロイする

この記事では、従量課金制トークン ベースの課金を使用して、モデル カタログからモデルをサーバーレス API としてデプロイする方法について説明します。

モデル カタログ内の特定のモデルは、従量課金制請求でサーバーレス API としてデプロイできます。 この種類のデプロイは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。 このデプロイ オプションでは、サブスクリプションからのクォータを必要としません。

前提条件

  • 有効な支払い方法を持つ Azure サブスクリプション。 無料または試用版の Azure サブスクリプションは機能しません。 Azure サブスクリプションを持っていない場合は、始めるために有料の Azure アカウントを作成してください。

  • Azure Machine Learning ワークスペース

  • Azure ロールベースのアクセス制御 (Azure RBAC) は、Azure Machine Learning の操作に対するアクセスを許可するために使用されます。 この記事の手順を実行するには、ご自分のユーザー アカウントに、リソース グループの Azure AI 開発者ロールを割り当てる必要があります。 アクセス許可について詳しくは、Azure Machine Learning でのロールベースのアクセス制御に関する記事をご覧ください。

  • Azure Machine Learning を使用するには、次のソフトウェアをインストールする必要があります。

    互換性のある任意の Web ブラウザーを使用して、Azure Machine Learning 内を移動できます。

モデル オファリングに対してワークスペースをサブスクライブする

Azure Marketplace 経由で提供されるモデルについては、それらをサーバーレス API エンドポイントにデプロイして予測を使用できます。 ワークスペースにモデルを初めてデプロイする場合は、Azure Marketplace から特定のモデル オファリングに対してワークスペースをサブスクライブする必要があります。 ワークスペースごとに、モデルの特定の Azure Marketplace オファリングへの固有のサブスクリプションがあり、それを使って支出を管理およびモニターできます。

Note

Azure Marketplace 経由で提供されるモデルは、特定のリージョンのサーバーレス API エンドポイントへのデプロイに使用できます。 サーバーレス API エンドポイントでのモデルに対するリージョンの可用性に関する記事を確認して、利用可能なリージョンを確認します。 必要なものが一覧にない場合は、サポートされているリージョンのワークスペースにデプロイし、別のワークスペースからサーバーレス API エンドポイントを使用できます。

  1. Azure Machine Learning Studio にサインインします。

  2. リソース グループに対する Azure AI 開発者ロールのアクセス許可がアカウントにあること、またはモデル オファリングをサブスクライブするために必要なアクセス許可を満たしていることを確認します。

  3. ワークスペースに移動します。

  4. 左側のサイドバーから [モデル カタログ] を選び、デプロイするモデルのモデル カードを見つけます。 この記事では、Meta-Llama-3-8B-Instruct モデルを選びます。

    1. 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 をコピーします。

    モデルの詳細ページを示すスクリーンショット。

  5. モデルのマーケットプレース サブスクリプションを作成します。 サブスクリプションを作成するときに、モデル オファーに関連付けられているご契約条件に同意します。

    1. モデルの [詳細] ページで、[デプロイ] を選択し、[サーバーレス API] を選択してデプロイ ウィザードを開きます。

    2. Microsoft の購入ポリシーに同意するチェック ボックスをオンにします。

      サーバーレス API オプションでモデルをデプロイする方法を示すスクリーンショット。

    3. 「You already have an Azure Marketplace subscription for this workspace (このワークスペースの Azure Marketplace サブスクリプションが既にある)」というメモが表示される場合は、サブスクリプションを既に持っているため、作成する必要はありません。 サーバーレス API エンドポイントへのモデルのデプロイに進むことができます。

    4. デプロイ ウィザードで、[Azure Marketplace の使用条件] へのリンクを選び、使用条件の詳細を確認します。 [Pricing and terms] (価格と条件) タブを選択して、選択したモデルの価格について確認することもできます。

    5. デプロイ ウィザードで、リンク [Azure Marketplace の使用条件] を選択して、使用条件の詳細を確認します。 [Marketplace オファーの詳細] タブを選択して、選択したモデルの価格について確認することもできます。

    6. [サブスクライブしてデプロイ] を選択します。

  6. 特定の Azure Marketplace オファリングにワークスペースをサインアップすると、"同じ" ワークスペース内の "同じ" オファリングの以降のデプロイで再度サブスクライブする必要はありません。

  7. ワークスペースが現在サブスクライブしているモデル オファーは、いつでも確認できます。

    1. Azure portal に移動します

    2. ワークスペースが属するリソース グループに移動します。

    3. [種類] フィルターで、[SaaS] を選択します。

    4. 現在サブスクライブしているすべてのオファリングが表示されます。

    5. 詳細を表示するには、リソースを選びます。

サーバーレス API エンドポイントにモデルをデプロイする

モデルのサブスクリプションを作成したら、関連付けられているモデルをサーバーレス API エンドポイントにデプロイできます。 サーバーレス API エンドポイントは、組織が必要とする企業レベルのセキュリティとコンプライアンスを維持しながら、サブスクリプションでホストせずに API としてモデルを使用する方法を提供します。 このデプロイ オプションでは、サブスクリプションからのクォータを必要としません。

この記事では、meta-llama3-8b-qwerty という名前のエンドポイントを作成します。

  1. サーバーレス エンドポイントを作成する

    1. 前のウィザードで [デプロイ] (直前のセクションでワークスペースをモデル オファーに対してサブスクライブした場合) を選択するか、[Continue to deploy] (デプロイに進む) (デプロイ ウィザードに「You already have an Azure Marketplace subscription for this workspace (このワークスペースの Azure Marketplace サブスクリプションが既にある)」というメモがある場合) を選びます。

      既にオファリングに対してサブスクライブしているワークスペースを示すスクリーンショット。

    2. デプロイに名前を付けます。 この名前は、デプロイ API URL の一部になります。 この URL は、Azure リージョンごとに一意である必要があります。

      作成対象のデプロイの名前を指定する方法を示すスクリーンショット。

    3. 展開 を選択します。 デプロイの準備ができるまで待つと、[デプロイ] ページにリダイレクトされます。

  2. いつでも、ワークスペースにデプロイされたエンドポイントを確認できます。

    1. ワークスペースに移動します。

    2. [エンドポイント] を選択します。

    3. [Serverless endpoints] (サーバーレス エンドポイント) タブを選択して、サーバーレス API エンドポイントを表示します。

  3. 作成されたエンドポイントは、承認にキー認証を使用します。 次の手順を使用して、特定のエンドポイントに関連付けられているキーを取得します。

    1. デプロイのページに戻るには、サーバーレス エンドポイントの一覧からエンドポイントの名前を選びます。
    2. エンドポイントの [ターゲット URI][キー] をメモします。 これらを使用してデプロイを呼び出し、予測を生成します。

    Note

    Azure portal を使用するときは、リソース グループにサーバーレス API エンドポイントが既定では表示されません。 リソース グループに表示するには、[非表示の種類を表示] オプションを使用します。

  4. この時点で、エンドポイントを使用する準備ができました。

  5. 異なるワークスペースからこのデプロイを使用する必要がある場合、またはプロンプト フローを使用してインテリジェントなアプリケーションを構築する予定の場合は、サーバーレス API デプロイへの接続を作成する必要があります。 新しいプロジェクトまたはハブに既存のサーバーレス API エンドポイントを構成する方法については、デプロイされたサーバーレス API エンドポイントを異なるワークスペースから、またはプロンプト フローから使用する方法に関する記事を参照してください。

    ヒント

    デプロイがデプロイされたのと同じワークスペースでプロンプト フローを使用する場合でも、接続を作成する必要があります。

サーバーレス API エンドポイントを使用する

サーバーレス API エンドポイントの Azure Machine Learning と Azure AI Studio にデプロイされたモデルは、Azure AI Model Inference API をサポートします。これは、基本モデルの一般的な機能セットを公開していて、さまざまなモデル セットからの予測を一定かつ一貫した方法で利用するために開発者が使用できます。

この API の機能と、アプリケーションを構築するときのその活用方法について詳細を確認してください。

エンドポイントとサブスクリプションを削除する

モデルのサブスクリプションとエンドポイントを削除できます。 モデル サブスクリプションを削除すると、関連付けられているエンドポイントは [異常] になり、使用できなくなります。

サーバーレス API エンドポイントを削除するには、次のようにします。

  1. [Azure Machine Learning Studio] に移動します。

  2. 左側のサイドバーで [エンドポイント] を選びます。

  3. [Serverless endpoints] (サーバーレス エンドポイント) タブを選択して、サーバーレス API エンドポイントを表示します。

  4. 削除するエンドポイントを開きます。

  5. [削除] を選択します。

関連付けられているモデル サブスクリプションを削除するには、次のようにします。

  1. Azure portal に移動します

  2. ワークスペースが属するリソース グループに移動します。

  3. [種類] フィルターで、[SaaS] を選択します。

  4. 削除するサブスクリプションを選択します。

  5. [削除] を選択します。

サーバーレス 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 ワークスペースへのアクセスの管理」を参照してください。