Share via


リアルタイム推論のフローをデプロイする

Note

Azure AI Studio は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

プロンプト フローを構築し、適切にテストした後、それをオンライン エンドポイントとしてデプロイすることが必要な場合があります。 デプロイはエンドポイント内でホストされ、クライアントからデータを受信して、リアルタイムで応答を返信できます。

チャット、コパイロット、または別の生成 AI アプリケーションのリアルタイム推論のためにエンドポイントを呼び出すことができます。 プロンプト フローは、フローからのエンドポイントのデプロイ、または一括テストの実行をサポートします。

この記事では、リアルタイム推論を行うためにフローをマネージド オンライン エンドポイントとしてデプロイする方法について説明します。 これを実行する手順は次のとおりです。

  • フローをテストし、デプロイの準備をします。
  • オンライン デプロイを作成します。
  • エンドポイントにアクセス許可を付与します。
  • エンドポイントをテストします。
  • エンドポイントを使用します。

前提条件

プロンプト フローをオンライン エンドポイントとしてデプロイするには、次のような内容が必要です。

  • Azure サブスクリプション。 お持ちでない場合は、開始する前に無料アカウントを作成してください。
  • Azure AI Studio プロジェクト。

オンライン デプロイを作成する

フローを構築し、適切にテストしたら、リアルタイム推論を行うためのオンライン エンドポイントを作成します。

Azure AI Studio でプロンプト フローをオンライン エンドポイントとしてデプロイするには、次の手順に従います。

  1. デプロイ用のプロンプト フローを準備します。 お持ちでない場合は、「プロンプト フローの作成方法」を参照してください。

  2. 省略可能: [チャット] を選択して、フローが正しく機能しているかテストします。 デプロイ前にフローをテストすることが推奨されるベスト プラクティスです。

  3. フロー エディターで [デプロイ] を選択します。

    Screenshot of the deploy button from a prompt flow editor.

  4. デプロイ ウィザードの [基本設定] ページで、要求された情報を入力します。

    Screenshot of the basic settings page in the deployment wizard.

  5. [確認および作成] を選んで、設定を確認し、デプロイを作成します。 それ以外の場合は、[次へ] を選択して詳細設定ページに進むことができます。

  6. [作成] を選択して、プロンプト フローをデプロイします。

    Screenshot of the review settings page.

  7. デプロイの状態を表示するには、左側のナビゲーションから [デプロイ] を選択します。 デプロイが正常に作成されたら、デプロイを選択すると詳細を表示できます。

    Screenshot of the deployment state in progress.

  8. [使用] タブを選択すると、デプロイされたモデルをアプリケーションで使用するために使用できるコード サンプルが表示されます。

    Note

    このページでは、エンドポイントを利用するために使用できるエンドポイント URL も確認できます。

    Screenshot of the deployment details page.

  9. REST エンドポイントを直接使用することも、ここに示すサンプルの 1 つを開始することもできます。

    Screenshot of the deployment endpoint and code samples.

詳細については、以下のセクションを参照してください。

ヒント

ベース モデルをデプロイする方法については、「Azure AI Studio を使用したモデルのデプロイ」を参照してください。

設定と構成

テキスト ファイルの要件

オプションで、requirements.txt で必要な追加のパッケージを指定できます。 requirements.txt は、フロー フォルダーのルート フォルダーにあります。 UI でマネージド オンライン エンドポイントにプロンプト フローをデプロイする場合、デプロイの既定ででは、flow.dag.yaml で指定した基本イメージとフローの requirements.txt で指定した依存関係に基づいて作成された環境が使われます。

Note

flow.dag.yaml で指定した基本イメージは、プロンプト フローの基本イメージ mcr.microsoft.com/azureml/promptflow/promptflow-runtime-stable:<newest_version> に基づいて作成する必要があります。最新バージョンについては、こちらを参照してください。 flow.dag.yaml で基本イメージを指定しない場合、デプロイには既定の基本イメージ mcr.microsoft.com/azureml/promptflow/promptflow-runtime-stable:latest が使われます。

Screenshot of specifying base image in raw yaml file of the flow.

Screenshot of a flow's requirements text file.

基本設定

この手順では、デプロイの基本設定を構成できます。

プロパティ 説明
エンドポイント 新しいエンドポイントをデプロイするか、既存のエンドポイントを更新するかを選択できます。
[新規] を選択した場合は、エンドポイント名を指定する必要があります。
デプロイ名 - 同じエンドポイント内では、デプロイ名は一意である必要があります。
- 既存のエンドポイントを選択し、既存のデプロイ名を入力した場合、そのデプロイは新しい構成で上書きされます。
仮想マシン デプロイに使用する VM サイズ。
インスタンス数 デプロイに使用するインスタンスの数。 想定されるワークロードに値を指定します。 高可用性を実現するために、この値を少なくとも 3 に設定することをお勧めします。 アップグレードを実行するために 20% 余分に予約されています。
推論データの収集 これを有効にすると、フローの入力と出力が Azure Machine Learning データ資産で自動的に収集され、後で監視するために使用できます。
Application Insights の診断 これを有効にすると、推論時間中のシステム メトリック (トークン数、フロー待機時間、フロー要求など) が Azure AI ハブ リソースの既定の Application Insights に収集されます。

基本設定が完了したら、[確認および作成] を直接選択して作成を完了するか、[次へ] を選択して詳細設定を構成できます。

詳細設定 - エンドポイント

エンドポイントに次の設定を指定できます。

Screenshot of the advanced endpoint settings.

詳細設定ワークフローでは、デプロイ タグを指定し、カスタム環境を選択することもできます。

Screenshot of the advanced deployment settings.

認証の種類

エンドポイントの認証方法。 キーベースの認証により、有効期限のない主キーとセカンダリ キーが提供されます。 Azure Machine Learning トークンベースの認証により、定期的に自動更新されるトークンが提供されます。

ID の種類

推論するには、エンドポイントから Azure Container Registry や Azure AI ハブ リソース接続などの Azure リソースにアクセスする必要があります。 マネージド ID にアクセス許可を付与することで、Azure リソースにアクセスできるアクセス許可をエンドポイントに付与することができます。

システム割り当て ID はエンドポイントの作成後に自動作成されますが、ユーザー割り当て ID はユーザーが作成します。 マネージド ID の詳細を確認してください。

システム割り当て

接続シークレットへのアクセスを実施する (プレビュー) かどうかのオプションがあることがわかります。 フローで接続が使用される場合、エンドポイントは推論を実行するために接続にアクセスする必要があります。 このオプションは既定で有効になっています。接続シークレット閲覧者アクセス許可がある場合、接続に自動的にアクセスするための Azure Machine Learning ワークスペース接続シークレット閲覧者ロールがエンドポイントに付与されます。 このオプションを無効にする場合は、自分でシステム割り当て ID にこのロールを手動で付与するか、管理者に支援を求める必要があります。詳しくは、エンドポイント ID にアクセス許可を付与する方法をご覧ください

ユーザー割り当て

デプロイの作成中に、Azure では、Azure AI ハブ リソースの Azure Container Registry (ACR) からユーザー コンテナー イメージをプルし、ユーザー モデルとコード成果物を Azure AI ハブ リソース ストレージ アカウントからユーザー コンテナーにマウントしようとします。

ユーザー割り当て ID に関連付けられたエンドポイントを作成した場合、デプロイの作成前に、次のロールがユーザー割り当て ID に付与されている必要があります。そうしないと、デプロイの作成が失敗します。

Scope ロール 必要な理由
Azure AI プロジェクト [Azure Machine Learning Workspace Connection Secrets Reader]\(Azure Machine Learning ワークスペース接続シークレット閲覧者\) ロールまたはMicrosoft.MachineLearningServices/workspaces/connections/listsecrets/action を使用してカスタマイズされたロール。 Azure AI プロジェクト接続を取得する
Azure AI プロジェクト コンテナー レジストリ ACR のプル コンテナー イメージのプル
Azure AI プロジェクトの既定のストレージ ストレージ BLOB データ閲覧者 ストレージからのモデルの読み込み
Azure AI プロジェクト ワークスペース メトリック ライター エンドポイントをデプロイした後、CPU、GPU、ディスク、メモリ使用率などのエンドポイント関連のメトリックを監視する場合は、このアクセス許可を ID に付与する必要があります。

省略可能

エンドポイント ID にアクセス許可を付与する方法の詳細なガイダンスについては、「エンドポイントにアクセス許可を付与する」を参照してください。

詳細設定 - 出力と接続

この手順では、すべてのフロー出力を表示し、デプロイするエンドポイントの応答に含める出力を指定できます。 既定では、すべてのフロー出力が選択されます。

また、推論を実行するときにエンドポイントで使用される接続を指定することもできます。 既定では、フローから継承されます。

上記のすべての手順を構成して確認したら、[確認および作成] を選んで作成を完了できます。

Screenshot of the advanced output and connections settings.

Note

エンドポイントの作成、モデルの登録、デプロイの作成など、いくつかのステージが含まれるため、エンドポイントの作成には約 15 分以上かかります。

通知によるデプロイ作成の進行状況は、プロンプト フローのデプロイから始まることを理解できます。

エンドポイントにアクセス許可を付与する

重要

アクセス許可の付与 (ロールの割り当ての追加) は、特定の Azure リソースの所有者のみ有効です。 IT 管理者に支援を求める必要がある場合があります。

デプロイの作成の前にユーザー割り当て ID にロールを付与することをお勧めします。 付与されたアクセス許可が有効になるまでに 15 分以上かかる場合があります。

以下の手順で、Azure portal UI ですべてのアクセス許可を付与できます。

  1. Azure portal の Azure AI プロジェクト概要ページにアクセスします。

  2. [アクセス制御] を選び、[ロール割り当ての追加] を選びます。 Screenshot of Access control with add role assignment highlighted.

  3. [Azure Machine Learning Workspace Connection Secrets Reader]\(Azure Machine Learning ワークスペース接続シークレット閲覧者\) を選択し、[次へ] に進みます。

    Note

    Azure Machine Learning ワークスペース接続シークレット閲覧者ロールは、Azure AI ハブ リソース接続を取得するためのアクセス許可がある組み込みロールです。

    カスタマイズされたロールを使用する場合は、カスタマイズされたロールに Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action のアクセス許可があることを確認してください。 詳細については、カスタム ロールの作成方法に関する記事を参照してください。

  4. [マネージド ID] を選び、メンバーを選びます。

    システム割り当て ID の場合は、[システム割り当てマネージド ID][Machine learning online endpoint] (機械学習オンライン エンドポイント) を選び、エンドポイント名で検索します。

    ユーザー割り当て ID の場合は、[ユーザー割り当てマネージド ID] を選び、ID 名で検索します。

  5. ユーザー割り当て ID の場合、Azure AI ハブ リソース コンテナー レジストリとストレージ アカウントにもアクセス許可を付与する必要があります。 コンテナー レジストリとストレージ アカウントは、Azure portal の Azure AI ハブ リソースの概要ページで確認できます。

    Screenshot of the overview page with storage and container registry highlighted.

    Azure AI ハブ リソース コンテナー レジストリの概要ページに移動し、[アクセス制御] を選び、[ロールの割り当ての追加] を選んで、[ACR プル | コンテナー イメージのプル] をエンドポイント ID に割り当てます。

    Azure AI ハブ リソースの既定のストレージの概要ページに移動し、[アクセス制御] を選び、[ロールの割り当ての追加] を選んで、[ストレージ BLOB データ閲覧者] をエンドポイント ID に割り当てます。

  6. (省略可能) ユーザー割り当て ID の場合、CPU、GPU、ディスク、メモリ使用率などのエンドポイント関連のメトリックを監視する場合は、Azure AI ハブ リソースのワークスペース メトリック ライター ロールも ID に付与する必要があります。

エンドポイントの状態を確認する

デプロイ ウィザードが完了すると、通知を受け取ります。 エンドポイントとデプロイが正常に作成されたら、デプロイの詳細ページへの通知で [詳細の表示] を選択できます。

左側のナビゲーションから [デプロイ] ページに直接移動して、デプロイを選択し、状態を確認することもできます。

エンドポイントをテストする

デプロイの詳細ページで [テスト] タブに切り替えます。

標準フローからデプロイされたエンドポイントについては、フォーム エディターまたは JSON エディターで値を入力してテストできます。

チャット フローからデプロイされたエンドポイントをテストする

チャット フローからデプロイされたエンドポイントの場合は、イマーシブ チャット ウィンドウでテストできます。

chat_input はチャット フローの開発時に設定したものです。 入力ボックスに chat_input のメッセージを入力できます。 フローに複数の入力がある場合、右側の [入力] パネルで chat_input 以外の他の入力値を指定することができます。

エンドポイントを使う

デプロイの詳細ページで [使用] タブに切り替えます。REST エンドポイントと、エンドポイントを使うためのキーとトークンが表示されます。 さまざまな言語でエンドポイントを使うためのサンプル コードもあります。

Screenshot of sample code of consuming endpoints.

RequestBody または dataapi_key の値を入力する必要があります。 たとえば、フローに 2 つの入力 locationurl がある場合、次のようにデータを指定する必要があります。

 {
"location": "LA",
"url": "<the_url_to_be_classified>"
}

リソースをクリーンアップする

このチュートリアルの完了後にエンドポイントを使う予定がない場合は、エンドポイントを削除してください。

Note

完全に削除されるまで約 20 分かかる場合があります。

次のステップ