Azure AI Studio を使用して生成 AI アプリを評価する方法
重要
この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
大量のデータセットに適用された際に、ご利用の生成 AI アプリケーションのパフォーマンスを徹底的に評価するために、評価プロセスを開始することができます。 この評価中、ご利用のアプリケーションは指定されたデータセットを使用してテストされ、そのパフォーマンスは数学ベースのメトリックおよび AI 支援メトリックの両方を使用して、定量的に測定されます。 この評価の実行では、そのアプリケーションの機能と制限事項に関する、包括的な分析情報が提供されます。
この評価を実行するには、ご利用の生成 AI モデルのパフォーマンスと安全性を評価するためのツールと機能を提供する包括的なプラットフォームである、Azure AI Studio 内の評価機能を利用することができます。 AI Studio 内では、詳細な評価メトリックをログに記録、表示、分析することができます。
この記事では、Azure AI Studio UI から組み込みの評価メトリックを使用して、テスト データセットまたはフローから評価の実行を作成する方法について説明します。 柔軟性をさらに高めるために、カスタムの評価フローを確立し、カスタム評価機能を使用することができます。 または、目的がバッチの実行を行うだけで、何も評価をしない場合は、カスタム評価機能を利用することもできます。
前提条件
AI 支援メトリックを使用した評価を実行するには、次の準備が必要です。
- これらの形式のいずれかのテスト データセット:
csv
またはjsonl
。 - Azure OpenAI 接続。
- これらのモデルのいずれかのデプロイ: GPT 3.5 モデル、GPT 4 モデル、Davinci モデル。
組み込みの評価メトリックを使用して評価を作成する
評価の実行を使用すると、ご利用のテスト データセット内のデータ行ごとに、メトリック出力を生成することができます。 1 つ以上の評価メトリックを選択して、さまざまな側面からの出力を評価することができます。 AI Studio 内の評価ページとプロンプト フロー ページから、評価の実行を作成することができます。 それから評価の作成ウィザードが表示され、評価の実行を設定するプロセスが案内されます。
[評価] ページから
折りたたみ可能な左側のメニューから、[評価]>[+ 新しい評価] を選択します。
[フロー] ページから
折りたたみ可能な左側のメニューから、[プロンプト フロー]>[評価]>[組み込みの評価] を選択します。
基本情報
[評価] ページから評価を開始する場合は、最初に評価ターゲットを決定する必要があります。 適切な評価ターゲットを指定することで、ご利用のアプリケーションの特定の性質に合わせて評価を調整し、正確で関連性の高いメトリックを確保することができます。 現在、次の 2 種類の評価ターゲットがサポートされています。
データセット: モデルによってテスト データセットに出力が生成されています。 プロンプト フロー: フローを作成し、フローからの出力を評価します。
評価の作成ウィザードに入ったら、その評価の実行のオプションの名前を指定し、ご利用のアプリケーションの目的に最も合うシナリオを選択します。 現在、次のシナリオのサポートが提供されています。
- コンテキストを含む質問応答: このシナリオは、コンテキスト情報を含むユーザー クエリへの回答および応答の提供を含むアプリケーション向けに設計されています。
- コンテキストを含まない質問応答: このシナリオは、コンテキストを含まないユーザー クエリへの回答および応答の提供を含むアプリケーション向けに設計されています。
ヘルプ パネルを使用してよくあるご質問を確認し、ウィザードに従って進みます。
プロンプト フローを評価する場合は、評価するフローを選択できます。 [フロー] ページから評価を開始する場合、評価するフローは自動的に選択されます。 別のフローを評価する場合は、別のフローを選択することができます。 フロー内には複数のノードがあり、それぞれのノードが独自のバリアント セットを持つ場合があることに注意することが重要です。 そのような場合は、評価プロセス中に評価するノードとバリアントを指定する必要があります。
テスト データの構成
既存のデータセットから選択する、または特定の評価のために新しいデータセットをアップロードすることもできます。 前の手順でフローが選択されていない場合、そのテスト データセットではモデルによって生成された出力を評価に使用する必要があります。
既存のデータセットを選択する: ご利用の確立されたデータセット コレクションからテスト データセットを選択することができます。
新しいデータセットを追加する: ご利用のローカル ストレージからファイルをアップロードします。
.csv
および.jsonl
ファイル形式のみをサポートします。フローのデータ マッピング: 評価するフローを選択する場合、バッチ実行を実行して評価用の出力を生成するためにフローに必要な入力に合わせてデータ列が構成されていることを確認します。 その後、評価はフローからの出力を使用して行われます。 その後、次の手順で評価入力用のデータ マッピングを構成します。
メトリックを選択してください
Microsoft は、アプリケーションの包括的な評価を容易にするために Microsoft によってキュレーションされた 2 種類のメトリックをサポートしています。
- パフォーマンスと品質のメトリック: これらのメトリックは、生成されたコンテンツの全体的な品質と一貫性を評価します。
- リスクと安全性に関するメトリック: これらのメトリックは、潜在的なコンテンツのリスクを特定し、生成されたコンテンツの安全性を確保することに焦点を当てています。
各シナリオ内でサポートされるメトリックのすべてのリストについては、表をご参照ください。 各メトリックの定義とその計算方法のさらに詳しい情報については、「評価と監視に関するメトリック」をご確認ください。
シナリオ | パフォーマンスと品質に関するメトリック | リスクと安全性に関するメトリック |
---|---|---|
コンテキストを含む質問と回答 | 根拠性、関連性、一貫性、流暢さ、GPT 類似性、F1 スコア | 自傷行為に関連するコンテンツ、ヘイトフルで不公平なコンテンツ、暴力的コンテンツ、性的コンテンツ、保護された素材、間接攻撃 |
コンテキストを含まない質問と回答 | 一貫性、流暢さ、GPT 類似性、F1 スコア | 自傷行為に関連するコンテンツ、ヘイトフルで不公平なコンテンツ、暴力的コンテンツ、性的コンテンツ、保護された素材、間接攻撃 |
パフォーマンスと品質に関する評価に AI 支援メトリックを使用する場合は、その計算プロセス用の GPT モデルを指定する必要があります。 計算には、GPT-3.5、GPT-4、または Davinci モデルのいずれかを使用する Azure OpenAI 接続とデプロイを選択します。
リスクと安全性に関するメトリックについては、接続とデプロイを提供する必要はありません。 Azure AI Studio の安全性評価バックエンド サービスは、コンテンツ リスクの重大度スコアと推論を生成できる GPT-4 モデルをプロビジョニングし、アプリケーションでコンテンツの損害を評価できるようにします。
しきい値を設定して、コンテンツの有害メトリック (自傷関連コンテンツ、ヘイトフルで不公平なコンテンツ、暴力的コンテンツ、性的コンテンツ) の瑕疵率を計算できます。 欠陥率は、重大度レベル (非常に低い、低、中、高) がしきい値を超えるインスタンスの割合を求めることによって計算されます。 既定では、しきい値は "Medium" に設定されます。
保護されたマテリアルと間接攻撃の場合、欠陥率は、出力が "true" であるインスタンスの割合として計算されます (欠陥率 = (#trues/#instances) × 100)。
Note
AI 支援によるリスクと安全性に関するメトリックは、Azure AI Studio の安全性評価バックエンド サービスによってホストされ、米国東部 2、フランス中部、英国南部、スウェーデン中部のリージョンでのみご使用になれます
評価のデータ マッピング: 評価内で必要な入力に対応する、ご利用のデータセット内のデータ列を指定する必要があります。 評価メトリックが異なると、正確な計算のために異なる種類のデータ入力が必要になります。
Note
データからの評価を行う場合、"answer" はデータセット内の answer 列 ${data$answer}
にマップされる必要があります。 フローからの評価を行う場合は、"answer" はフロー出力 ${run.outputs.answer}
から取得する必要があります。
各メトリックの特定のデータ マッピング要件に関するガイダンスは、次の表の情報をご参照ください。
質問への回答のメトリック要件
メトリック | Question | Answer | Context | グランド トゥルース |
---|---|---|---|---|
現実性 | 必須: Str | 必須: Str | 必須: Str | 該当なし |
一貫性 | 必須: Str | 必須: Str | 該当なし | 該当なし |
流暢性 | 必須: Str | 必須: Str | 該当なし | 該当なし |
関連性 | 必須: Str | 必須: Str | 必須: Str | 該当なし |
GPT 類似性 | 必須: Str | 必須: Str | 該当なし | 必須: Str |
F1 スコア | 必須: Str | 必須: Str | 該当なし | 必須: Str |
自傷行為に関連するコンテンツ | 必須: Str | 必須: Str | 該当なし | 該当なし |
ヘイトフルで不公平なコンテンツ | 必須: Str | 必須: Str | 該当なし | 該当なし |
暴力的なコンテンツ | 必須: Str | 必須: Str | 該当なし | 該当なし |
性的なコンテンツ | 必須: Str | 必須: Str | 該当なし | 該当なし |
保護済み素材 | 必須: Str | 必須: Str | 該当なし | 該当なし |
間接攻撃 | 必須: Str | 必須: Str | 該当なし | 該当なし |
- 質問: 質問と回答のペア内で、そのユーザーが尋ねた質問
- 回答: モデルが回答として生成した、質問への応答
- コンテキスト: 応答が生成されるソース (つまり、基になるドキュメント)
- グラウンド トゥルース: 真の答えとしてユーザー/人間によって生成された、質問への応答
レビューして終了する
必要なすべての構成が完了すると、確認して [送信] の選択に進み、評価の実行を送信することができます。
カスタム評価フローを使用して評価を作成する
以下のように、独自の評価手法を開発することができます。
フロー ページから: 左側の折りたたみメニューから、[プロンプト フロー]>[評価]>[カスタム評価] を選択します。
エバリュエーター ライブラリでエバリュエーターを表示して管理する
エバリュエーター ライブラリは、エバリュエーターの詳細と状態を確認できる一元化された場所です。 Microsoft によってキュレーションされたエバリュエーターを表示して管理できます。
ヒント
カスタム エバリュエーターは、プロンプト フロー SDK を介して使用できます。 詳細については、「プロンプト フロー SDK を使用して評価する」を参照してください。
エバリュエーター ライブラリでは、バージョン管理も実現できます。 作業内容のさまざまなバージョンを比較し、必要に応じて以前のバージョンを復元し、他の人とより簡単に共同作業を行うことができます。
AI Studio でエバリュエーター ライブラリを使用するには、プロジェクトの [評価] ページに移動し、[エバリュエーター ライブラリ] タブを選択します。
エバリュエーター名を選択すると、さらなる詳細を表示できます。 名前、説明、およびパラメーターを表示し、エバリュエーターに関連付けられているすべてのファイルを確認できます。 以下に Microsoft によってキュレーションされたエバリュエーターの例をいくつか示します。
- Microsoft によってキュレーションされたパフォーマンスおよび品質のエバリュエーターについては、詳細ページで注釈プロンプトを表示できます。 プロンプト フロー SDK を使用して自身のデータと目的に応じてパラメーターまたは条件を変更することで、これらのプロンプトを独自のユース ケースに適応させることができます。 たとえば、Groundedness-Evaluator を選択し、メトリックの計算方法を示す Prompty ファイルを確認できます。
- Microsoft によってキュレーションされたリスクと安全性のエバリュエーターについては、メトリックの定義を確認できます。 たとえば、Self-Harm-Related-Content-Evaluator を選択し、それが意味するものと、Microsoft がこの安全性メトリックのさまざまな重大度レベルをどのように決めているかを確認できます
次のステップ
ご利用の生成 AI アプリケーションを評価する方法の詳細については、次をご参照ください。