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

重要

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

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

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

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

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

前提条件

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

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

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

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

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

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

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

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

    プロンプト フロー エディターの [展開] ボタンのスクリーンショット。

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

    展開ウィザードの [基本設定] ページのスクリーンショット。

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

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

    設定の確認ページのスクリーンショット。

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

    進行中のデプロイ状態のスクリーンショット。

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

    Note

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

    デプロイの詳細ページのスクリーンショット。

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

    デプロイ エンドポイントとコード サンプルのスクリーンショット。

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

ヒント

ベース モデルをデプロイする方法については、「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 が使われます。

フローの生の yaml ファイル内で基本イメージを指定するスクリーンショット。

フローの要件テキスト ファイルのスクリーンショット。

基本設定

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

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

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

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

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

エンドポイントの詳細設定のスクリーンショット。

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

デプロイの詳細設定のスクリーンショット。

認証の種類

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

ID の種類

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

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

システム割り当て

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

ユーザー割り当て

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

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

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

省略可能

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

重要

フローで Microsoft Entra ID ベース認証の接続を使う場合は、システム割り当て ID を使うかユーザー割り当て ID を使うかに関わらず、常にマネージド ID に対して対応するリソースの適切なロールを付与して、マネージド ID がそのリソースに対する API 呼び出しを行えるようにする必要があります。 たとえば、Azure OpenAI 接続で Microsoft Entra ID ベースの認証を使う場合は、エンドポイント マネージド ID に対して、対応する Azure OpenAI リソースの Cognitive Services OpenAI ユーザーまたは Cognitive Services OpenAI 共同作成者ロールを付与する必要があります。

詳細設定 - 出力と接続

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

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

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

出力と接続の詳細設定のスクリーンショット。

Note

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

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

Application Insights 診断 (プレビュー) をオンにすることでトレースを有効にする

これを有効にすると、推論時の (トークン数、フロー待機時間、フロー要求などの) トレース データとシステム メトリックが、ワークスペースにリンクされた Application Insights へと収集されます。 詳細については、「トレース データとメトリックを提供するプロンプト フロー」を参照してください。

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

重要

アクセス許可の付与 (ロールの割り当ての追加) は、特定の Azure リソースの所有者のみ有効です。 Azure サブスクリプション所有者 (IT 管理者の場合もあります) に問い合わせる必要がある場合があります。

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

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

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

  2. [アクセス制御] を選び、[ロール割り当ての追加] を選びます。 [ロールの割り当ての追加] が強調表示されているアクセスの制御のスクリーンショット。

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

    Note

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

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

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

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

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

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

    ストレージとコンテナー レジストリが強調表示されている概要ページのスクリーンショット。

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

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

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

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

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

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

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

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

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

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

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

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

エンドポイントを使う

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

エンドポイントを使用するサンプル コードのスクリーンショット。

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

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

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

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

Note

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

次のステップ

  • Azure AI Studio でできることについて、詳細を確認します
  • Azure AI の FAQ の記事で、よくあるご質問とその回答を確認します
  • [トレースを有効にして、デプロイのフィードバックを収集する](./develop/trace-production-sdk.md)