VS Codeのエージェントモードを拡張するには、を試してください!

モデル、プロンプト、エージェントを評価する

モデル、プロンプト、エージェントは、出力と正解データを比較し、評価メトリックを計算することで評価できます。AI Toolkit はこのプロセスを効率化します。最小限の労力でデータセットをアップロードし、包括的な評価を実行できます。

Screenshot showing the start of an evaluation in AI Toolkit.

プロンプトとエージェントの評価

Agent Builder でプロンプトとエージェントを評価するには、評価タブを選択します。評価する前に、データセットに対してプロンプトまたはエージェントを実行してください。一括実行の詳細については、データセットの操作方法をご覧ください。

プロンプトまたはエージェントを評価するには

  1. Agent Builder で、評価タブを選択します。
  2. 評価するデータセットを追加して実行します。
  3. 親指の上下のアイコンを使用して応答を評価し、手動評価の記録を保持します。
  4. 評価を追加するには、新しい評価を選択します。
  5. F1 スコア、関連性、一貫性、類似性などの組み込み評価リストから評価を選択します。

    GitHub ホスト型モデルを使用して評価を実行する場合、レート制限が適用される場合があります。

  6. 必要に応じて、評価の審査モデルとして使用するモデルを選択します。
  7. 評価の実行を選択して評価ジョブを開始します。

Screenshot showing the Evaluation tab in Agent Builder with options to select evaluators, judging models, and run evaluation against a dataset.

バージョン管理と評価比較

AI Toolkit はプロンプトとエージェントのバージョン管理をサポートしているため、異なるバージョンのパフォーマンスを比較できます。新しいバージョンを作成すると、評価を実行し、以前のバージョンと比較できます。

プロンプトまたはエージェントの新しいバージョンを保存するには

  1. Agent Builder で、システムまたはユーザーのプロンプトを定義し、変数とツールを追加します。
  2. エージェントを実行するか、評価タブに切り替えて評価するデータセットを追加します。
  3. プロンプトまたはエージェントに満足したら、ツールバーから新しいバージョンとして保存を選択します。
  4. 必要に応じて、バージョン名を入力して Enter キーを押します。

バージョン履歴の表示

Agent Builder でプロンプトまたはエージェントのバージョン履歴を表示できます。バージョン履歴には、すべてのバージョンと各バージョンの評価結果が表示されます。

Screenshot showing the Version History dialog with a list of saved versions of a prompt or agent.

バージョン履歴ビューでは、次を実行できます。

  • バージョン名の横にある鉛筆アイコンを選択して、バージョンの名前を変更します。
  • ゴミ箱アイコンを選択して、バージョンを削除します。
  • バージョン名を選択して、そのバージョンに切り替えます。

バージョン間の評価結果の比較

Agent Builder で異なるバージョンの評価結果を比較できます。結果は表形式で表示され、各評価のスコアと各バージョンの総合スコアが表示されます。

バージョン間の評価結果を比較するには

  1. Agent Builder で、評価タブを選択します。
  2. 評価ツールバーから、比較を選択します。
  3. リストから比較したいバージョンを選択します。

    比較機能は、評価結果の視認性を高めるため、Agent Builder のフルスクリーンモードでのみ利用できます。プロンプトセクションを展開すると、モデルとプロンプトの詳細が表示されます。

  4. 選択したバージョンの評価結果が表形式で表示され、各評価のスコアと各バージョンの総合スコアを比較できます。

Screenshot showing the Evaluation tab in Agent Builder with the interface for comparing evaluation results between different versions.

組み込み評価

AI Toolkit には、モデル、プロンプト、エージェントのパフォーマンスを測定するための組み込み評価が用意されています。これらの評価は、モデルの出力と正解データに基づいてさまざまなメトリックを計算します。

エージェントの場合

  • 意図解決: エージェントがユーザーの意図をどの程度正確に特定し、対処するかを測定します。
  • タスク順守: エージェントが特定されたタスクをどの程度実行するかを測定します。
  • ツール呼び出し精度: エージェントが正しいツールをどの程度選択し、呼び出すかを測定します。

一般的な目的

  • 一貫性: 応答の論理的整合性と流れを測定します。
  • 流暢さ: 自然言語の品質と可読性を測定します。

RAG (Retrieval Augmented Generation) の場合

  • 検索: システムが関連情報をどの程度効果的に検索するかを測定します。

テキスト類似度の場合

  • 類似度: AI 支援によるテキスト類似度測定。
  • F1 スコア: 応答と正解間のトークン重複における適合率と再現率の調和平均。
  • BLEU: 翻訳品質の二言語評価研究スコア。応答と正解間の n-gram の重複を測定します。
  • GLEU: 文レベル評価の Google-BLEU バリアント。応答と正解間の n-gram の重複を測定します。
  • METEOR: 明示的順序付けによる翻訳評価メトリック。応答と正解間の n-gram の重複を測定します。

AI Toolkit の評価は Azure Evaluation SDK に基づいています。生成 AI モデルの可観測性の詳細については、Azure AI Foundry ドキュメントを参照してください。

スタンドアロン評価ジョブの開始

  1. AI Toolkit ビューで、ツール > 評価を選択して評価ビューを開きます。

  2. 評価の作成を選択し、次の情報を提供します。

    • 評価ジョブ名: デフォルトを使用するか、カスタム名を入力します。
    • 評価者: 組み込み評価者またはカスタム評価者から選択します。
    • 審査モデル: 必要に応じて、審査モデルとして使用するモデルを選択します。
    • データセット: 学習用のサンプルデータセットを選択するか、queryresponseground truth のフィールドを含む JSONL ファイルをインポートします。
  3. 新しい評価ジョブが作成されます。評価ジョブの詳細を開くよう求められます。

    Screenshot showing the Open Evaluation dialog in AI Toolkit.

  4. データセットを確認し、評価の実行を選択して評価を開始します。

    Screenshot showing the Run Evaluation dialog in AI Toolkit.

評価ジョブの監視

評価ジョブを開始した後、評価ジョブビューでそのステータスを表示できます。

Screenshot showing a running evaluation in AI Toolkit.

各評価ジョブには、使用されたデータセットへのリンク、評価プロセスからのログ、タイムスタンプ、評価詳細へのリンクが含まれています。

評価結果の検索

評価ジョブの詳細ビューには、選択された各評価者の結果の表が表示されます。一部の結果には集計値が含まれる場合があります。

Data Wrangler 拡張機能でデータを開くには、Data Wrangler で開くも選択できます。

Screenshot showing the Data Wrangler extension with evaluation results.

カスタム評価者の作成

カスタム評価者を作成して、AI Toolkit の組み込み評価機能を拡張できます。カスタム評価者を使用すると、独自の評価ロジックとメトリックを定義できます。

Screenshot showing the custom evaluator creation interface in AI Toolkit.

カスタム評価者を作成するには

  1. 評価ビューで、評価者タブを選択します。

  2. 評価者の作成を選択して作成フォームを開きます。

    Screenshot showing the form to create a new custom evaluator.

  3. 必要な情報を提供します。

    • 名前: カスタム評価者の名前を入力します。
    • 説明: 評価者が行うことを説明します。
    • 種類: 評価者の種類を選択します: LLM ベースまたはコードベース (Python)。
  4. 選択した種類の指示に従ってセットアップを完了します。

  5. 保存を選択してカスタム評価者を作成します。

  6. カスタム評価者を作成すると、新しい評価ジョブを作成するときに選択できる評価者リストに表示されます。

LLM ベースの評価者

LLM ベースの評価者については、自然言語プロンプトを使用して評価ロジックを定義します。

評価者が特定の品質を評価するのに役立つプロンプトを作成します。基準を定義し、例を提供し、柔軟性を高めるためになどの変数を使用します。必要に応じてスケールやフィードバックスタイルをカスタマイズします。

LLM が JSON 結果を出力することを確認してください。例: {"score": 4, "reason": "The response is relevant but lacks detail."}

セクションを使用して、LLM ベースの評価者を開始することもできます。

Screenshot showing the LLM-based evaluator configuration in AI Toolkit.

コードベースの評価者

コードベースの評価者については、Python コードを使用して評価ロジックを定義します。コードは、評価スコアと理由を含む JSON 結果を返す必要があります。

Screenshot showing the Evaluators tab in AI Toolkit with options for creating code-based evaluators.

AI Toolkit は、評価者の名前と外部ライブラリを使用するかどうかに基づいて足場を提供します。

評価ロジックを実装するためにコードを変更できます。

# The method signature is generated automatically. Do not change it.
# Create a new evaluator if you want to change the method signature or arguments.
def measure_the_response_if_human_like_or_not(query, **kwargs):
    # Add your evaluator logic to calculate the score.

    # Return an object with score and an optional string message to display in the result.
    return {
        "score": 3,
        "reason": "This is a placeholder for the evaluator's reason."
    }

学習したこと

この記事では、次の方法を学びました。

  • VS Code の AI Toolkit で評価ジョブを作成および実行する。
  • 評価ジョブのステータスを監視し、その結果を表示する。
  • プロンプトとエージェントの異なるバージョン間で評価結果を比較する。
  • プロンプトとエージェントのバージョン履歴を表示する。
  • 組み込み評価を使用して、さまざまなメトリックでパフォーマンスを測定する。
  • カスタム評価者を作成して、組み込み評価機能を拡張する。
  • LLM ベースとコードベースの評価者を異なる評価シナリオで使用する。