次の方法で共有


GitHub アクションで評価を実行する方法 (プレビュー)

Important

この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

この GitHub アクション により、CI/CD パイプライン内での Microsoft Foundry エージェント のオフライン評価が可能になります。 オフライン評価プロセスを合理化するように設計されているため、運用環境に更新プログラムをリリースする前に潜在的な問題を特定し、改善することができます。

このアクションを使用するには、テスト クエリとエバリュエーターの一覧を含むデータ セットを指定します。 このアクションにより、クエリを使用してエージェントが呼び出され、評価が実行され、概要レポートが生成されます。

Features

  • エージェント評価: CI/CD ワークフローで Microsoft Foundry エージェントの実稼働前評価を自動化します。
  • エバリュエーター: Foundryのエバリュエーターカタログからエバリュエーターを使用します。
  • 統計分析: 評価結果には信頼区間が含まれており、統計的有意性をテストして、ランダムな変動による変化ではなく意味があるかどうかを判断します。

エバリュエーターのカテゴリ

[前提条件]

ヒント

認証には、Microsoft Entra ID を使用することをお勧めします。これにより、Azure リソースに安全に接続できます。 Azure Login GitHub アクションを使用して、認証プロセスを自動化できます。 詳細については、 OpenID Connect を使用した Azure ログイン アクションに関するページを参照してください。

AI エージェントの評価を設定する方法

AI エージェント評価の入力

パラメーター

氏名 必須ですか? [説明]
azure-ai-project-endpoint イエス Microsoft Foundry プロジェクトのエンドポイント。
デプロイメント名 イエス 評価に使用する Azure AI モデル デプロイの名前。
data-path イエス 評価用のエバリュエーターと入力クエリを含むデータ ファイルへのパス。
エージェントID イエス 形式 agent-name:version で評価する 1 つ以上のエージェントの ID ( my-agent:1my-agent:1,my-agent:2など)。 複数のエージェントがコンマで区切られ、統計的なテスト結果と比較されます。
ベースライン・エージェント・ID いいえ 複数のエージェントを評価するときに比較するベースライン エージェントの ID。 指定しない場合は、最初のエージェントが使用されます。

データ ファイル

入力データ ファイルは、次の構造の JSON ファイルである必要があります。

フィールド タイプ 必須ですか? [説明]
名前 文字列 イエス 評価データセットの名前。
エバリュエータ string[] イエス 使用するエバリュエーター名の一覧。 Foundry ポータルのプロジェクトのエバリュエーター カタログで使用可能なエバリュエーターの一覧を確認します。Build > Evaluations > Evaluator catalog.
データ object[] イエス queryとオプションのエバリュエーター フィールド (ground_truthcontext など) を含む入力オブジェクトの配列。 エバリュエーターに自動マップされます。 data_mapping を使用してオーバーライドします。
オープンAIグレーダーズ オブジェクト いいえ OpenAI ベースのエバリュエーター (label_model、score_model、string_checkなど) の構成。
評価者パラメータ オブジェクト いいえ エバリュエーター固有の初期化パラメーター (しきい値、カスタム設定など)。
data_mapping オブジェクト いいえ ユーザー設定のデータ フィールド マッピング (指定されていない場合はデータから自動生成されます)。

基本的なサンプル データ ファイル

{
  "name": "test-data",
  "evaluators": [
    "builtin.fluency",
    "builtin.task_adherence",
    "builtin.violence",
  ],
  "data": [
    {
      "query": "Tell me about Tokyo disneyland"
    },
    {
      "query": "How do I install Python?"
    }
  ]
}

その他のサンプル データ ファイル

Filename [説明]
dataset-tiny.json テスト クエリとエバリュエーターの数が少ないデータセット。
dataset.json サポートされているすべてのエバリュエーター型と、信頼区間の計算と統計テストのための十分なクエリを含むデータセット。
dataset-builtin-evaluators.json 組み込みの Foundry エバリュエーターの例 (一貫性、流暢さ、関連性、接地性、メトリックなど)。
dataset-openai-graders.json OpenAI ベースの採点者の例 (ラベル モデル、スコア モデル、テキストの類似性、文字列チェック)。
dataset-custom-evaluators.json エバリュエーター パラメーターを用いたカスタム エバリュエーターの例。
dataset-data-mapping.json 自動フィールド マッピングをカスタム データ列名でオーバーライドする方法を示すデータ マッピングの例。

AI エージェントの評価ワークフロー

GitHub アクションを使用するには、GitHub アクションを CI/CD ワークフローに追加します。 コミット時などのトリガー条件と、自動化されたワークフローをトリガーするファイル パスを指定します。

ヒント

コストを最小限に抑えるために、すべてのコミットで評価を実行しないでください。

この例では、エージェント ID を使用して異なるエージェントを比較するときに、Azure Agent AI Evaluation を実行する方法を示します。

name: "AI Agent Evaluation"

on:
  workflow_dispatch:
  push:
    branches:
      - main

permissions:
  id-token: write
  contents: read

jobs:
  run-action:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Azure login using Federated Credentials
        uses: azure/login@v2
        with:
          client-id: ${{ vars.AZURE_CLIENT_ID }}
          tenant-id: ${{ vars.AZURE_TENANT_ID }}
          subscription-id: ${{ vars.AZURE_SUBSCRIPTION_ID }}

      - name: Run Evaluation
        uses: microsoft/ai-agent-evals@v3-beta
        with:
          # Replace placeholders with values for your Foundry Project
          azure-ai-project-endpoint: "<your-ai-project-endpoint>"
          deployment-name: "<your-deployment-name>"
          agent-ids: "<your-ai-agent-ids>"
          data-path: ${{ github.workspace }}/path/to/your/data-file

AI エージェント評価の出力

評価結果は、GitHub の Actions で実行される各 AI Evaluation GitHub アクションの概要セクションに出力されます。

2 つのエージェントを比較するためのサンプル レポートを次に示します。

GitHub Action のエージェント評価結果のスクリーンショット。