生成 AI アプリケーションのモデルの監視 (プレビュー)
運用環境でモデルを監視することは、AI ライフサイクルに不可欠な作業です。 データやコンシューマーの行動の変化は、時間の経過と共に生成 AI アプリケーションに影響を与える可能性があり、その結果、システムが時代遅れになり、ビジネス成果に悪影響を及ぼし、組織をコンプライアンス、経済、評判のリスクにさらすことになります。
重要
生成 AI アプリケーションのモデルモニタリングは現在パブリック プレビュー段階です。 これらのプレビューは、サービス レベル アグリーメントなしで提供されており、運用ワークロードにはお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
生成 AI アプリケーションの Azure Machine Learning モデルの監視を使用すると、運用環境の LLM アプリケーションの安全性と品質の定期的な監視が容易になり、ビジネスにもたらされる最大限の効果を確保できます。 監視は最終的に、生成 AI アプリケーションの品質と安全性を維持するのに役立ちます。 機能と統合には、次のものが含まれます。
- モデル データ コレクターを使用して運用データを収集する。
- 現実性、一貫性、流暢性、関連性、類似性などの責任ある AI 評価メトリック。これは、Azure Machine Learning プロンプト フロー評価メトリックと相互運用可能。
- 組織のターゲットに基づいて違反のアラートを構成し、監視を定期的に実行する機能
- Azure Machine Learning スタジオのワークスペース内のリッチ ダッシュボードで結果を使用する。
- Azure Machine Learning プロンプト フロー評価メトリックとの統合、収集された運用データの分析によるタイムリーなアラートの提供、時間の経過に伴うメトリックの視覚化。
モデルの監視全体の基本的な概念については、「Azure Machine Learning を使用したモデルの監視 (プレビュー)」を参照してください。 この記事では、マネージド オンライン エンドポイントによってサポートされる生成 AI アプリケーションを監視する方法について説明します。 これを実行する手順は次のとおりです。
評価メトリック
メトリックは、シーケンス間タスクの評価モデルとして機能する特定の評価命令 (プロンプト テンプレート) で構成された次の最新の GPT 言語モデルによって生成されます。 この手法は、標準的な生成 AI 評価メトリックと比較すると、強力な経験結果と、人間の判断との高い相関関係を示しています。 プロンプト フロー評価の詳細については、「一括テストを送信してフローを評価する (プレビュー)」を参照してください。
次の GPT モデルがサポートされており、これらは Azure OpenAI リソースとして構成されます。
- GPT-3.5 Turbo
- GPT-4
- GPT-4-32k
次のメトリックがサポートされています。 各メトリックの詳細については、「監視評価メトリックの説明とユース ケース」を参照してください
- 現実性: モデルで生成された回答が入力ソースからの情報とどの程度合致しているかを評価します。
- 関連性: モデルで生成された応答が、与えられた質問に対してどの程度適切で、直接的な関連性があるかを評価します。
- 一貫性: 言語モデルがどの程度、出力フローをスムーズに生成できるか、自然に読み取ることができるか、人間の言語に近づけることができるかを評価します。
- 流暢性: 生成 AI の予測された回答の言語熟練度を評価します。 これは、生成されたテキストが文法規則、統語構造、語彙の適切な使用にどの程度準拠しており、言語的に正しくかつ自然な応答になっているかを評価します。
- 類似性: グラウンド トゥルース センテンス (またはドキュメント) と AI モデルによって生成された予測センテンスの類似性を評価します。
メトリックの構成要件
生成の安全性と品質を測定するには、次の入力 (データ列名) が必要です。
- プロンプト テキスト - 指定された元のプロンプト ("入力" または "質問" とも呼ばれます)
- 完了テキスト - API 呼び出しから返される最終的な完了 ("出力" または"応答" とも呼ばれます)
- コンテキスト テキスト - 元のプロンプトと共に API 呼び出しに送信されるコンテキスト データ。 たとえば、特定の認定された情報ソースまたは Web サイトからのみ検索結果を取得する場合、評価ステップで定義できます。 これは、プロンプト フローを通じて構成できる省略可能なステップです。
- グラウンド トゥルース テキスト - "信頼できるソース" としてのユーザー定義のテキスト (省略可能)
次の表に示すように、データ資産でどのパラメーターが構成されているかによって、生成できるメトリックが決まります。
メトリック | Prompt | Completion | Context | グランド トゥルース |
---|---|---|---|---|
一貫性 | 必須 | 必須 | - | - |
流暢性 | 必須 | 必須 | - | - |
現実性 | 必須 | 必須 | 必須 | - |
関連性 | 必須 | 必須 | 必須 | - |
Similarity | 必須 | 必須 | - | 必須 |
前提条件
- Azure OpenAI リソース: 十分なクォータを使用して作成された Azure OpenAI リソースが必要です。 このリソースは、評価エンドポイントとして使用されます。
- マネージド ID: ユーザー割り当てマネージド ID (UAI) を作成し、「CLI v2 を使ってユーザー割り当てマネージド ID をアタッチする」のガイダンスに従い、次の手順で定義する十分なロール アクセス権を使用して、その ID をワークスペースにアタッチします。
- ロールのアクセス権 ロールに必要なアクセス許可を割り当てるには、リソースの "所有者" または Microsoft.Authorization/roleAssignments/write アクセス許可が必要です。 接続とアクセス許可の更新が有効になるまでに数分かかる場合があります。 これらの追加ロールを UAI に割り当てる必要があります。
- リソース: ワークスペース
- ロール: Azure Machine Learning データ科学者
- ワークスペース接続: こちらのガイダンスに従って、監視メトリックの計算に使用される Azure OpenAI エンドポイントへの資格情報を表すマネージド ID を使用します。 フローで使用した接続は削除しないでください。
- API バージョン: 2023-03-15-preview
- プロンプト フローのデプロイ:こちらのガイダンスに従ってプロンプト フロー ランタイムを作成し、フローを実行し、この記事をガイドとしてデプロイを構成します
- フローの入力と出力: フロー出力に適切な名前を付け、モニターの作成時に、これらの列名を覚えておく必要があります。 この記事では、次の名前を使用します。
- 入力 (必須): "prompt"
- 出力 (必須): "completion"
- 出力 (省略可能): "context" | "ground truth"
- データ収集: [デプロイ] (プロンプト フローのデプロイ ウィザードの手順 #2) で、モデル データ コレクターを使用して、'推論データ収集' トグルを有効にする必要があります
- 出力: [出力] (プロンプト フローのデプロイ ウィザードの手順 #3) で、メトリックの構成要件を満たす上記の必須出力 (たとえば、completion | context | ground_truth) が選択されていることを確認します
- フローの入力と出力: フロー出力に適切な名前を付け、モニターの作成時に、これらの列名を覚えておく必要があります。 この記事では、次の名前を使用します。
Note
コンピューティング インスタンスが VNet の背後にある場合、「プロンプト フローのネットワークの分離」を参照してください。
モニターを作成する
基本監視設定を構成する
監視作成ウィザードで、スクリーンショットの (A) に示すように、[モデル タスクの種類] を [プロンプトと完了] に変更します。
データ資産を構成する
モデル データ コレクターを使用している場合は、2 つのデータ資産 (入力と出力) を選択します。
監視シグナルを選択する
- ワークスペース接続を構成します (スクリーンショットの (A))。
- Azure OpenAI エバリュエーターのデプロイ名を入力します (B)。
- (省略可能) 運用データの入力と出力を結合します。運用モデルの入力と出力は、監視サービスによって自動的に結合されます (C)。 これは、必要に応じてカスタマイズできますが、何もする必要はありません。 既定では、結合列は Correlationid です。
- (省略可能) メトリックのしきい値を構成します。インスタンスごとの許容スコアは、3/5 に固定されています。 許容される全体の合格率 (%) は、範囲 [1,99] % の間で調整できます
プロンプト フローの列名を手動で入力します (E)。 標準の名前は ("prompt" | "completion" | "context" | "ground_truth") ですが、データ資産に応じて構成できます。
(省略可能) サンプリング レートを設定します (F)
通知の構成
特に操作は必要ありません。 必要に応じて、追加の受信者を構成できます。
監視シグナルの構成を確認する
監視状態を確認する
正常に構成されると、監視パイプライン ジョブは、次のように表示されます。
結果を使用する
モニターの概要ページ
モニターの概要には、シグナルのパフォーマンスの概要が表示されます。 詳細については、シグナルの詳細ページで確認できます。
シグナルの詳細ページ
シグナルの詳細ページでは、時間の経過に伴うメトリック (A) と、分布のヒストグラム (B) を表示できます。
アラートの解決
シグナルのしきい値の調整のみを行うことができます。 許容されるスコアは 3/5 に固定されており、調整できるのは、[許容される全体の合格率 (%)] フィールドのみです。