重要
この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
プロンプト フローを構築し、適切にテストした後、それをオンライン エンドポイントとしてデプロイすることが必要な場合があります。 デプロイはエンドポイント内でホストされ、クライアントからデータを受信し、リアルタイムで応答を送信できます。
エンドポイントを呼び出して、チャット、副操縦、または別の生成 AI アプリケーションのリアルタイム推論を行うことができます。 プロンプト フローでは、フローまたは一括テスト実行からのエンドポイントのデプロイがサポートされます。
この記事では、リアルタイム推論を行うためにフローをマネージド オンライン エンドポイントとしてデプロイする方法について説明します。 これを実行する手順は次のとおりです。
- フローをテストし、デプロイの準備をします。
- オンライン デプロイを作成します。
- エンドポイントにアクセス許可を付与します。
- エンドポイントをテストします。
- エンドポイントを消費します。
前提条件
注
この機能には ハブ ベースのプロジェクト を使用する必要があります。 Foundry プロジェクトはサポートされていません。 「 自分が持っているプロジェクトの種類を確認する方法 」と 「ハブ ベースのプロジェクトを作成する」を参照してください。
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください。
- ない場合は、 ハブ ベースのプロジェクトを作成します。
プロンプト フローをオンライン エンドポイントとしてデプロイするには、次のような内容が必要です。
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
- Azure AI Foundry プロジェクト。
- 選択したサブスクリプションに登録されている
Microsoft.PolicyInsights
リソース プロバイダー。 リソース プロバイダーを登録する方法の詳細については、「リソース プロバイダー の登録」を参照してください。
オンライン デプロイを作成する
フローを構築して適切にテストしたら、リアルタイム推論用のオンライン エンドポイントを作成します。
Azure AI Foundry ポータルでプロンプト フローをオンライン エンドポイントとしてデプロイするには:
デプロイ用のプロンプト フローを準備します。 ない場合は、「プロンプト フローの開発」を参照してください。
省略可能: [チャット] を選択して、フローが正しく機能しているかテストします。 デプロイの前にフローをテストすることをお勧めします。
フロー エディターで [デプロイ] を選択します。
デプロイ ウィザードの [基本設定] ページで、要求された情報を入力します。
[確認および作成] を選んで、設定を確認し、デプロイを作成します。 それ以外の場合は、[ 次へ ] を選択して詳細設定ページに進みます。
[作成] を選択して、プロンプト フローをデプロイします。
デプロイの状態を表示するには、左側のウィンドウで [モデルとエンドポイント ] を選択します。 デプロイが正常に作成されたら、デプロイを選択して詳細情報を表示します。
[ 使用 ] タブを選択すると、アプリケーションでデプロイされたモデルを使用するために使用できるコード サンプルが表示されます。
このページでは、エンドポイントの使用に使用できるエンドポイント URL も表示されます。
REST エンドポイントを直接使用することも、ここに示すサンプルの 1 つを開始することもできます。
基本モデルをデプロイする方法については、「 Azure AI Foundry を使用してモデルをデプロイする」を参照してください。
設定と構成
テキスト ファイルの要件
必要に応じて、 requirements.txt
で必要な追加のパッケージを指定できます。 requirements.txt
は、フロー フォルダーのルート フォルダーにあります。 UI のマネージド オンライン エンドポイントにプロンプト フローを展開すると、既定では、デプロイでは、 flow.dag.yaml
で指定された基本イメージと、フローの requirements.txt
で指定された依存関係に基づいて作成された環境が使用されます。
flow.dag.yaml
で指定された基本イメージは、プロンプト フローの基本イメージ mcr.microsoft.com/azureml/promptflow/promptflow-runtime-stable:<newest_version>
に基づいて作成する必要があります。 最新バージョンは、この Web サイトで確認できます。 flow.dag.yaml
で基本イメージを指定しない場合、デプロイでは既定の基本イメージ mcr.microsoft.com/azureml/promptflow/promptflow-runtime-stable:latest
が使用されます。
基本設定
この手順では、フロー エディターで [デプロイ ] を選択するときに基本設定を構成します。
プロパティ | 説明 |
---|---|
エンドポイント | 新しいエンドポイントをデプロイするか、既存のエンドポイントを更新するかを選択します。 [新規] を選択した場合は、エンドポイント名を指定する必要があります。 |
デプロイ名 | - 同じエンドポイント内で、デプロイ名は一意である必要があります。 - 既存のエンドポイントを選択し、既存のデプロイ名を入力すると、そのデプロイは新しい構成で上書きされます。 |
仮想マシン | デプロイに使用する仮想マシンのサイズ。 |
インスタンス数 | デプロイに使用するインスタンスの数。 想定されるワークロードに値を指定します。 高可用性を実現するために、この値を少なくとも 3 に設定することをお勧めします。 アップグレードを実行するために追加で20%を予約します。 |
推論データの収集 | この設定を有効にした場合、フローの入力と出力は Azure Machine Learning データ資産で自動収集されます。 後で監視するために使用できます。 |
基本設定が完了したら、[ 確認と作成 ] を選択して作成を完了します。 [ 次へ ] を選択して詳細設定を構成することもできます。
詳細設定: エンドポイント
エンドポイントに次の設定を指定できます。
詳細設定ワークフローでは、デプロイ タグを指定し、カスタム環境を選択することもできます。
認証の種類
この設定は、エンドポイントの認証方法を識別します。 キーベースの認証により、有効期限のない主キーとセカンダリ キーが提供されます。 Azure Machine Learning トークンベースの認証により、定期的に自動更新されるトークンが提供されます。
IDの種類
エンドポイントは、推論のために、Azure Container Registry や Azure AI Foundry ハブ接続などの Azure リソースにアクセスする必要があります。 エンドポイントに Azure リソースへのアクセス許可を許可するには、そのマネージド ID にアクセス許可を付与します。
システム割り当て ID は、エンドポイントの作成後に自動的に作成されます。 ユーザーは、ユーザー割り当て ID を作成します。 詳細については、マネージド ID の概要に関するページを参照してください。
システム割り当て済み
[ 接続シークレットへのアクセスを強制する (プレビュー)]オプションに注目してください。 フローで接続が使用される場合、エンドポイントは推論を実行するために接続にアクセスする必要があります。 このオプションは既定で有効になっています。
接続シークレット閲覧者アクセス許可がある場合は、接続に自動的にアクセスするための Azure Machine Learning ワークスペース接続シークレット閲覧者ロールがエンドポイントに付与されます。 このオプションを無効にする場合は、このロールをシステム割り当て ID に手動で付与するか、管理者にヘルプを依頼する必要があります。 詳細については、「 エンドポイント ID にアクセス許可を付与する」を参照してください。
ユーザー割り当て済み
デプロイを作成すると、Azure は Azure AI Foundry ハブのコンテナー レジストリからユーザー コンテナー イメージをプルしようと試み、ユーザー モデルとコード成果物をハブのストレージ アカウントからユーザー コンテナーにマウントします。
ユーザー割り当て ID オプションを使用して関連付けられたエンドポイントを作成した場合、デプロイの作成前に、ユーザー割り当て ID に次のロールを付与する必要があります。 それ以外の場合、デプロイの作成は失敗します。
範囲 | 役割 | 必要な理由 |
---|---|---|
Azure AI Foundry プロジェクト | [Azure Machine Learning ワークスペース接続シークレット閲覧者] ロールまたは Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action を使用してカスタマイズされたロール |
プロジェクト接続を取得します。 |
Azure AI Foundry プロジェクト コンテナー レジストリ | ACR のプル | コンテナーイメージを取得します。 |
Azure AI Foundry プロジェクトの既定のストレージ | ストレージ BLOB データ閲覧者 | ストレージからモデルを読み込みます。 |
Azure AI Foundry プロジェクト | Azure Machine Learning メトリック ライター (プレビュー) | エンドポイントをデプロイした後、CPU、GPU、ディスク、メモリの使用率などのエンドポイント関連のメトリックを監視する場合は、ID にこのアクセス許可を付与します。 省略可。 |
エンドポイント ID にアクセス許可を付与する方法の詳細については、「エンドポイントへの アクセス許可の付与」を参照してください。
重要
システム割り当て ID またはユーザー割り当て ID のどちらを使用する場合でも、フローで Microsoft Entra ID に基づく認証接続を使用する場合は、そのリソースに対して API 呼び出しを実行できるように、対応するリソースの適切なロールをマネージド ID に付与する必要があります。 たとえば、Azure OpenAI 接続で Microsoft Entra ID ベースの認証が使用されている場合は、対応する Azure OpenAI リソースの Cognitive Services OpenAI ユーザーまたは Cognitive Services OpenAI 共同作成者ロールをエンドポイントマネージド ID に付与する必要があります。
詳細設定: 出力と接続
この手順では、すべてのフロー出力を表示し、デプロイするエンドポイントの応答に含める出力を指定できます。 既定では、すべてのフロー出力が選択されます。
また、エンドポイントが推論を実行するときに使用される接続を指定することもできます。 既定では、フローから継承されます。
上記のすべての手順を構成して確認したら、[ 確認と作成 ] を選択して作成を完了します。
エンドポイントの作成には 15 分以上かかることが予想されます。 ステージには、エンドポイントの作成、モデルの登録、デプロイの作成が含まれます。
デプロイの作成の進行状況は、 プロンプト フローのデプロイで始まる通知を送信します。
Application Insights 診断を有効にしてトレースを有効にする (プレビュー)
この機能を有効にすると、推論時間中のトレース データとシステム メトリック (トークン数、フロー待機時間、フロー要求など) がワークスペースにリンクされた Application Insights に収集されます。 詳細については、 トレース データとメトリックを提供するプロンプト フローを参照してください。
エンドポイントにアクセス許可を付与する
重要
アクセス許可の付与 (ロールの割り当ての追加) は、特定の Azure リソースの所有者にのみ有効になります。 Azure サブスクリプションの所有者にヘルプを求める必要がある場合があります。 このユーザーは IT 管理者である可能性があります。
エンドポイントの作成が完了したらすぐに、ユーザー割り当て ID にロールを付与することをお勧めします。 付与されたアクセス許可が有効になるまでに 15 分以上かかる場合があります。
Azure portal UI で必要なアクセス許可を付与するには、次の手順に従います。
Azure portal の Azure AI Foundry プロジェクトの概要ページに移動 します。
[アクセス制御 (IAM)] を選択したら、[ロール割り当ての追加] を選択します。
[Azure Machine Learning ワークスペース接続シークレット 閲覧者] を選択し、[次へ] を選択します。
Azure Machine Learning ワークスペース接続シークレット閲覧者ロールは、ハブ接続を取得するアクセス許可を持つ組み込みロールです。
カスタマイズされたロールを使用する場合は、カスタマイズされたロールに
Microsoft.MachineLearningServices/workspaces/connections/listsecrets/action
のアクセス許可があることを確認します。 詳細については、カスタム ロールの作成方法に関する記事を参照してください。[マネージド ID] を選択し、[メンバー] を選択します。
- システム割り当て ID: [システム割り当てマネージド ID] で、 Machine Learning オンライン エンドポイント を選択し、エンドポイント名で検索します。
- ユーザー割り当て ID: ユーザー割り当てマネージド ID を選択し、ID 名で検索します。
ユーザー割り当て ID の場合は、ハブ コンテナー レジストリとストレージ アカウントにアクセス許可を付与する必要があります。 コンテナー レジストリとストレージ アカウントは、Azure portal のハブの概要ページで確認できます。
ハブ コンテナー レジストリの概要ページに移動し、 アクセス制御>ロールの割り当ての追加を選択します。 エンドポイント ID に ACR プル を割り当てます。
ハブの既定のストレージの概要ページに移動し、 アクセス制御>ロールの割り当ての追加を選択します。 ストレージ BLOB データ 閲覧者をエンドポイント ID に割り当てます。
省略可能: ユーザー割り当て ID の場合、CPU/GPU/ディスク/メモリ使用率などのエンドポイント関連のメトリックを監視する場合は、ハブの ワークスペース メトリック ライター ロールを ID に付与する必要があります。
エンドポイントの状態を確認する
展開ウィザードが完了すると、通知が表示されます。 エンドポイントとデプロイが正常に作成されたら、デプロイの 詳細 ページへの通知で [詳細の表示] を選択します。
左側のウィンドウの [モデル + エンドポイント ] ページに直接移動し、デプロイを選択して、状態を確認することもできます。
エンドポイントをテストする
デプロイの詳細ページで、[ テスト ] タブを選択します。
標準フローからデプロイされたエンドポイントの場合は、フォーム エディターまたは JSON エディターで値を入力してエンドポイントをテストできます。
チャット フローからデプロイされたエンドポイントをテストする
チャット フローからデプロイされたエンドポイントの場合は、イマーシブ チャット ウィンドウでテストできます。
chat_input
メッセージは、チャット フローの開発中に設定されました。 入力ボックスに chat_input
メッセージを配置できます。 フローに複数の入力がある場合は、右側の [chat_input
で、 メッセージ以外の入力の値を指定できます。
エンドポイントを使用します
デプロイの詳細ページで、[ 使用 ] タブを選択します。REST エンドポイントと、エンドポイントを使用するキー/トークンを見つけることができます。 さまざまな言語でエンドポイントを使用するためのサンプル コードも用意されています。
RequestBody
または data
と api_key
の値を入力する必要があります。 たとえば、フローに ___location
と url
の 2 つの入力がある場合は、次の例のようにデータを指定する必要があります。
{
"___location": "LA",
"url": "<the_url_to_be_classified>"
}
リソースをクリーンアップする
このチュートリアルを完了した後にエンドポイントを使用しない場合は、エンドポイントを削除します。 完全に削除されるまで約 20 分かかる場合があります。
関連コンテンツ
- Azure AI Foundry でできることについて、詳細を確認します。
- よく寄せられる質問に対する回答については、 Azure AI Foundry に関する FAQ を参照してください。
- トレースを有効にし、デプロイに関するフィードバックを収集します。