バッチ実行を送信してフローを評価する

大きなデータセットでのフローのパフォーマンスを評価するには、バッチ実行を送信し、プロンプト フローに組み込まれている評価方法を使用できます。

この記事では、次の内容について説明します。

  • バッチ実行を送信し、組み込みの評価方法を使用する
  • 評価結果とメトリックを表示する
  • 評価の新しいラウンドを開始する
  • バッチ実行履歴の確認し、メトリックを比較する
  • 組み込みの評価メトリックを理解する
  • フローのパフォーマンスを向上させる方法
  • 参考資料: Copilot の品質保証に使用されるゴールデン データセットの作成に関するガイダンス

こちらのバッチ実行の送信とフローの評価に関するビデオ チュートリアルのようにして、フローのテストと評価を簡単に始めることができます。

前提条件

バッチ実行を実行して評価方法を使うには、次の準備が必要です。

  • バッチ実行用のテスト データセット。 データセットは、.csv.tsv、または .jsonl のいずれかの形式である必要があります。 データには、フローの入力名と一致するヘッダーも含まれている必要があります。 参考資料: 独自のコパイロットを構築する場合は、Copilot 品質保証に使用されるゴールデン データセットの作成に関するガイダンスを参照することをお勧めします。
  • バッチ実行の実行に使用できるランタイム。 ランタイムは、フローを実行して出力を生成するクラウドベースのリソースです。 ランタイムについて詳しくは、ランタイムに関する記事をご覧ください。

バッチ実行を送信し、組み込みの評価方法を使用する

バッチ実行を使用すると、大きなデータセットでフローを実行して、データ行ごとに出力を生成できます。 また、評価方法を選んで、フローの出力を特定の条件および目標と比較することもできます。 評価方法は、さまざまな側面に基づいてフローの出力のメトリックを計算する特別な種類のフローです。 評価実行は、バッチ実行と共に送信されると、メトリックを計算するために実行されます。

評価を含むバッチ実行を開始するには、フロー ページの右上隅にある [評価] ボタンを選択します。

バッチ実行が強調されている Web 分類のスクリーンショット。

バッチ実行を送信するには、フローのテストに使うデータセットを選びます。 評価方法を選んで、フロー出力のメトリックを計算することもできます。 評価方法を使わない場合は、このステップをスキップして、メトリックを計算せずにバッチ実行を実行できます。 後で新しい評価ラウンドを始めることもできます。

まず、バッチ実行にわかりやすい名前を付ける必要があります。 また、説明を記述し、バッチ実行にタグ (キーと値のペア) を追加することもできます。 構成が済んだら、[次へ] を選んで続けます。

バッチ実行名と説明を指定するバッチ実行の設定のスクリーンショット。

次に、フローのテストに使うデータセットを選ぶかアップロードする必要があります。 また、このバッチ実行を実行するために使用可能なランタイムを選択する必要もあります。 プロンプト フローでは、フロー入力をデータセット内の特定のデータ列にマッピングすることもサポートしています。 つまり、列を特定の入力に割り当てることができます。 ${data.XXX} 書式で参照することで、列を入力に割り当てることができます。 定数値を入力に割り当てる場合は、その値を直接入力できます。

テスト データセットを選択するバッチ実行の設定のスクリーンショット。

次の手順では、評価メソッドを使用してこの実行のパフォーマンスをすぐに、あるいは後で検証できます。 完了したバッチ実行の場合でも、新しい評価ラウンドを追加できます。

[次へ] ボタンを直接選択すると、この手順をスキップして、評価方法を使用せずにバッチ実行を実行してメトリックを計算できます。 このようにして、このバッチ実行ではデータセットの出力のみが生成されます。 出力を手動で調べたり、他の方法でさらに分析するためにエクスポートしたりできます。

そうではなくて、今すぐ評価を含むバッチ実行を実行する場合は、指定された説明に基づいて 1 つ以上の評価方法を選択できます。 [More detail]\(その他の詳細\) ボタンを選択すると、生成されるメトリックや、必要な接続と入力など、評価方法に関する詳細情報を表示できます。

組み込みの評価方法を選択できる評価設定のスクリーンショット。

次の手順に進み、評価設定を構成します。 [Evaluation input mapping]\(評価入力マッピング\) セクションで、評価方法に必要な入力データのソースを指定する必要があります。 たとえば、グラウンド トゥルース列はデータセットから取得できます。 既定では、評価にはテスト実行に提供されたテスト データセットと同じデータセットが使用されます。 ただし、対応するラベルまたはターゲットのグラウンド トゥルース値が別のデータセット内にある場合は、そのデータセットに簡単に切り替えることができます。

したがって、評価を実行するには、これらの必要な入力のソースを示す必要があります。 これを行うため、評価を送信するときに [Evaluation input mapping]\(評価入力マッピング\) セクションが表示されます。

  • 実行の出力がデータ ソースの場合、ソースは "${run.output.[出力の名前]}" と示されます
  • テスト データセットがデータ ソースの場合、ソースは "${data.[列の名前]}" と示されます

評価入力のマッピングのスクリーンショット。

Note

評価でデータセットのデータが必要ない場合は、入力マッピング セクションのデータセット列を参照する必要はありません。これは、データセットの選択がオプションの構成であることを示します。 データセットの選択は評価結果には影響しません。

フロー応答のパフォーマンスを測定するために評価方法で大規模言語モデル (LLM) が使われている場合は、評価方法で LLM ノードの接続を設定する必要もあります。

評価方法の接続を構成できる接続のスクリーンショット。

Note

一部の評価方法では、GPT-4 または GPT-3 を実行する必要があります。 これらの評価方法の場合、使う前に有効な接続を指定する必要があります。 評価プロセスによっては多くのトークンを使用する場合があるため、>=16k トークンをサポートできるモデルを使用することをお勧めします。

入力のマッピングが済んだら、[次へ] を選んで設定を確認し、[送信] を選んで評価を含むバッチ実行を始めます。

Note

バッチ実行の最大期間は 10 時間です。 この上限を超えたバッチ実行は終了され、失敗としてマークされます。 スロットリングを回避するために、大規模言語モデル (LLM) の容量を監視することをお勧めします。 必要であれば、データのサイズを小さくすることを検討してください。 問題が引き続き発生する場合や、さらにサポートが必要な場合は、フィードバック フォームまたはサポート リクエストを通じて遠慮なく製品チームまでお問い合わせください。

評価結果とメトリックを表示する

送信後、送信されたバッチ実行は、プロンプト フロー ページの [実行リスト] タブで確認できます。 実行を選択して、実行の詳細ページに移動します。

バッチ実行を確認できるプロンプト フローの実行リスト ページのスクリーンショット。

実行の詳細ページで、[詳細] を選択して、このバッチ実行の詳細を確認できます。

詳細情報を表示するバッチ実行の詳細ページのスクリーンショット。

詳細パネルでは、この実行のメタデータを確認できます。 また、バッチ実行の詳細ページの [出力] タブに移動して、指定したデータセットを使ってフローにより生成された出力と応答を確認することもできます。 [エクスポート] を選び、出力を .csv ファイルにエクスポートしてダウンロードすることもできます。

バッチ実行の出力を調べる、バッチ実行の詳細ページの [出力] タブのスクリーンショット。

ドロップダウン ボックスから評価実行を選ぶと、テーブルの末尾に、データの行ごとの評価結果を示す列が追加されます。 出力列 "grade" で誤って予測された結果を見つけることができます。

評価結果が追加されたバッチ実行の詳細ページの [出力] タブのスクリーンショット。

全体的なパフォーマンスを見るには、メトリック タブを選んで、各バリアントの品質を示すさまざまなメトリックを確認できます。

全体的なパフォーマンスを調べる、バッチ実行の詳細ページの [メトリック] タブのスクリーンショット。

組み込まれている評価方法によって計算されるメトリックについて詳しくは、「組み込みの評価メトリックを理解する」をご覧ください。

評価の新しいラウンドを開始する

バッチ実行を既に完了した場合は、別の評価ラウンドを開始し、新しい評価実行を送信して、フローを再度実行することなく出力のメトリックを計算できます。 これは便利であり、次の場合に、フローを再実行するコストを節約できます。

  • バッチ実行の送信時にはメトリックを計算する評価方法を選んでおらず、今それを行うことを決定した。
  • 評価方法を使ってメトリックを既に計算してある。 別の評価ラウンドを始めて、別のメトリックを計算できます。
  • 評価実行は失敗したが、フローの出力は正常に生成された。 評価をもう一度送信できます。

[評価する] を選んで、別の評価ラウンドを開始できます。

新しいラウンドの評価を開始するバッチ実行の詳細ページのスクリーンショット。

構成を設定した後、この新しい評価ラウンドの [送信] を選択できます。 送信した後、プロンプト フロー実行リストで新しいレコードを確認できます。

評価実行が完了したら、同じように、バッチ実行の詳細パネルの [出力] タブで評価の結果をチェックできます。 結果を表示するには、新しい評価実行を選ぶ必要があります。

新しい評価出力を調べているバッチ実行の詳細ページの [出力] タブのスクリーンショット。

1 つのバッチ実行に対して複数の異なる評価実行を送信したら、バッチ実行の詳細ページの [メトリック] タブに移動して、すべてのメトリックを比較できます。

バッチ実行履歴を確認し、メトリックを比較する

シナリオによっては、フローを変更してパフォーマンスを向上させます。 複数のバッチ実行を送信し、異なるバージョンでフローのパフォーマンスを比較できます。 また、異なる評価方法で計算されたメトリックを比較して、フローに適したメトリックを確認することもできます。

フローのバッチ実行の履歴を調べるには、フロー ページの右上隅にある [バッチ実行の表示] ボタンを選びます。 このフローに対して送信したバッチ実行の一覧が表示されます。

[view bulk runs] (一括実行の表示) ボタンが選ばれている Web 分類のスクリーンショット。

各バッチ実行を選んで、詳細を調べることができます。 また、複数のバッチ実行を選択し、[出力の視覚化] を選択すると、これらのバッチ実行のメトリックと出力を比較することもできます。

履歴を示すバッチ実行のスクリーンショット。

[出力の視覚化] パネルの [実行とメトリック] テーブルには、選んだ実行の情報が強調表示されます。 選択した実行の出力を入力として受け取る他の実行も一覧表示されます。

[出力] テーブルでは、選択したバッチ実行をサンプルの各行ごとに比較できます。 [実行とメトリック] テーブルで目の [視覚化] アイコンを選ぶと、その実行の出力が対応する基本実行に追加されます。

複数のバッチ実行のメトリックの比較のスクリーンショット。

組み込みの評価メトリックを理解する

プロンプト フローには、フロー出力のパフォーマンスを測定するのに役立つ複数の組み込み評価方法が用意されています。 各評価方法では、異なるメトリックが計算されます。 使用できる 9 つの組み込み評価方法の概要については、次の表をご覧ください。

評価方法 メトリック 説明 接続が必要 必要な入力 スコアの値
分類の精度の評価 精度 出力を実測値と比較することで、分類システムのパフォーマンスを測定します。 いいえ 予測、実測値 0 から 1 の範囲内。
QnA 関連性スコアのペアごとの評価 スコア、勝敗 質問応答システムによって生成された回答の品質を評価します。 ユーザーの質問との一致の程度に基づく各回答への関連性スコアの割り当て、ベースラインの回答に対するさまざまな回答の比較、結果を集計したメトリック (平均勝率や関連性スコアなど) の生成が含まれます。 はい 質問、回答 (実測値またはコンテキストなし) スコア: 0 から 100、勝敗: 1/0
QnA 現実性評価 現実性 モデルで予測された回答が入力ソースにおいてどの程度現実的なものかを測定します。 LLM の応答が true の場合でも、ソースに対して検証できない場合は、現実的ではありません。 はい 質問、回答、コンテキスト (実測値なし) 1 から 5、1 が最低、5 が最高。
QnA GPT 類似性評価 GPT 類似性 GPT モデルを使用して、ユーザーが提供した実測値の回答とモデルで予測された回答の類似性を測定します。 はい 質問、回答、実測値 (コンテキストは不要) 1 から 5、1 が最低、5 が最高。
QnA 関連性評価 関連性 モデルで予測された回答が質問とどの程度関連しているかを測定します。 はい 質問、回答、コンテキスト (実測値なし) 1 から 5、1 が最低、5 が最高。
QnA 一貫性評価 一貫性 モデルで予測された回答内のすべての文の品質と、それらの自然な適合具合を測定します。 はい 質問、回答 (実測値またはコンテキストなし) 1 から 5、1 が最低、5 が最高。
QnA 流暢性評価 流暢性 モデルで予測された回答の文法的および言語的な正しさを測定します。 はい 質問、回答 (実測値またはコンテキストなし) 1 から 5、1 が最低、5 が最高
QnA f1 スコア評価 F1 スコア モデルの予測と実測値の間で共有されている単語数の割合を測定します。 いいえ 質問、回答、実測値 (コンテキストは不要) 0 から 1 の範囲内。
QnA Ada 類似性評価 Ada 類似性 Ada 埋め込み API を使って、実測値と予測の両方について、文 (ドキュメント) レベルの埋め込みを計算します。 次に、それらの間のコサイン類似度を計算します (1 つの浮動小数点数) はい 質問、回答、実測値 (コンテキストは不要) 0 から 1 の範囲内。

フローのパフォーマンスを向上させる方法

評価から組み込みメトリックを調べた後、次の方法でフローのパフォーマンスを向上させることができます。

  • 出力データを調べて、フローの潜在的な障害をデバッグします。
  • フローを変更してパフォーマンスを向上させます。 これには次のものが含まれますが、これらだけではありません。
    • プロンプトを変更する
    • システム メッセージを変更する
    • フローのパラメーターを変更する
    • フローのロジックを変更する

プロンプトの構築は難しい場合があります。 「プロンプト エンジニアリングの概要」は、目標を達成できるプロンプトの構築の概念を理解するのに役立ちます。 また、目標を達成できるプロンプトの構築方法の詳細については、「プロンプト エンジニアリングの手法」を参照してください。

システム メッセージ (メタプロンプトまたはシステム プロンプトと呼ばれることもあります) は、AI システムの動作のガイドとして、またシステム パフォーマンスを向上させるために使用できます。 システム メッセージを使ってフローのパフォーマンスを向上させる方法については、「大規模言語モデル (LLM) のシステム メッセージのフレームワークとテンプレートに関する推奨事項」をご覧ください。

参考資料: Copilot の品質保証に使用されるゴールデン データセットの作成に関するガイダンス

大規模言語モデル (LLM) を使用するコパイロットの作成には、通常、ソース データセットを使用して実際にモデルを基礎にする必要があります。 ただし、LLM で顧客のクエリに対して最も正確で有用な応答が提供されるようにするには、"ゴールデン データセット" が必要です。

ゴールデン データセットは、現実的な顧客の質問と専門的に作成された回答のコレクションです。 これは、お使いのコパイロットで使用される LLM の品質保証ツールとして機能します。 ゴールデン データセットは、LLM のトレーニングや、LLM プロンプトへのコンテキストの挿入には使用されません。 代わりに、LLM によって生成された回答の品質を評価するために使用されます。

シナリオにコパイロットが含まれている場合、または独自のコパイロットを構築中である場合は、より詳細なガイダンスとベスト プラクティスについて、この専用ドキュメント「ゴールデン データセットの生成: Copilot 品質保証に使用されるゴールデン データセットの作成に関するガイダンス」を参照することをお勧めします。

次のステップ

このドキュメントでは、バッチ実行を送信し、組み込みの評価方法を使って、フローの出力の品質を測定する方法について説明しました。 また、評価結果とメトリックを表示する方法と、異なる方法またはバリアントのサブセットを使って新しい評価ラウンドを開始する方法についても説明しました。 このドキュメントが、フローのパフォーマンスを向上させ、プロンプト フローを使って目標を達成するのに役立つことを願っています。