Comment exécuter une évaluation dans GitHub Action (préversion)

Important

Les éléments indiqués comme (aperçu) dans cet article sont en aperçu public. Cette préversion est fournie sans contrat de niveau de service et nous ne la recommandons pas pour les environnements de production. Certaines fonctionnalités peuvent ne pas être prises en charge ou avoir des fonctionnalités contraintes. Pour plus d’informations, consultez Conditions d'utilisation supplémentaires pour les versions préliminaires de Microsoft Azure.

Cette action GitHub action permet l’évaluation hors connexion des agents Microsoft Foundry Agents au sein de vos pipelines CI/CD. Il simplifie le processus d’évaluation hors connexion, ce qui vous permet d’identifier les problèmes potentiels et d’apporter des améliorations avant de publier une mise à jour en production.

Pour utiliser cette action, fournissez un jeu de données avec des requêtes de test et une liste d’évaluateurs. Cette action appelle vos agents avec les requêtes, exécute les évaluations et génère un rapport de synthèse.

Fonctionnalités

  • Agent Evaluation : Automatiser l’évaluation de préproduction des agents de Microsoft Foundry dans votre flux de travail CI/CD.
  • Évaluateurs : utilisez n'importe quel évaluateur du catalogue des évaluateurs Foundry.
  • Analyse statistique : les résultats de l’évaluation incluent des intervalles de confiance et des tests de précision statistique pour déterminer si les modifications sont significatives et non en raison d’une variation aléatoire.

Catégories de l’évaluateur

Conditions préalables

Conseil

La méthode recommandée pour l’authentification consiste à utiliser Microsoft Entra ID, que vous pouvez utiliser pour vous connecter en toute sécurité à vos ressources Azure. Vous pouvez automatiser le processus d’authentification à l’aide de l’action Azure connexion GitHub. Pour plus d’informations, consultez Azure Action de connexion avec OpenID Connect.

Comment configurer des évaluations des agents intelligents

Entrée des évaluations de l’agent IA

Paramètres

Nom Obligatoire? Description
projet azure-ai-point de terminaison Oui Point de terminaison de votre Microsoft Foundry Project. Pour trouver cette valeur, ouvrez votre projet dans le portail Foundry et copiez le point de terminaison à partir de la page Vue d’ensemble .
nom-de-déploiement Oui Nom d’un déploiement de modèle IA Azure à utiliser pour l’évaluation. Recherchez les déploiements existants sous Modèles + points de terminaison dans le portail Foundry.
chemin d’accès aux données Oui Chemin d’accès au fichier de données qui contient les évaluateurs et les requêtes d’entrée pour les évaluations.
identifiants d'agents Oui ID d’un ou de plusieurs agents à évaluer au format agent-name:version (par exemple, my-agent:1 ou my-agent:1,my-agent:2). Plusieurs agents sont séparés par des virgules et comparés aux résultats des tests statistiques.
identifiant-agent-de-base Non ID de l’agent de base à comparer lors de l’évaluation de plusieurs agents. S’il n’est pas fourni, le premier agent est utilisé.

Note

Pour rechercher votre ID d’agent et votre version, ouvrez votre projet dans le portail Foundry, accédez à Agents, sélectionnez votre agent et copiez l’ID de l’agent dans le volet d’informations. La version est le numéro de version du déploiement (par exemple). my-agent:1

Fichier de données

Le fichier de données d’entrée doit être un fichier JSON avec la structure suivante :

Champ Type Obligatoire? Description
Nom String Oui Nom du jeu de données d’évaluation.
Évaluateurs string[] Oui Liste des noms d’évaluateurs à utiliser. Consultez la liste des évaluateurs disponibles dans le catalogue d’évaluateurs de votre projet dans le portail Foundry : catalogue évaluateur d’évaluations > de build>.
Données object[] Oui Tableau d’objets d’entrée avec query et champs évaluateur facultatifs tels que ground_truth, context. Attribuée automatiquement aux évaluateurs ; utilisez data_mapping pour remplacer.
openai_graders Objet Non Configuration pour les évaluateurs basés sur OpenAI (label_model, score_model, string_check, etc.).
paramètres_évaluateur Objet Non Paramètres d’initialisation spécifiques à l’évaluateur (par exemple, seuils, paramètres personnalisés).
cartographie des données Objet Non Mappages de champs de données personnalisés (générés automatiquement à partir de données si elles ne sont pas fournies).

Exemple de fichier de données de base

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

Exemples de fichiers de données supplémentaires

Nom de fichier Description
dataset-tiny.json Jeu de données avec un petit nombre de requêtes de test et d’évaluateurs.
dataset.json Jeu de données avec tous les types d’évaluateurs pris en charge et suffisamment de requêtes pour le calcul de l’intervalle de confiance et le test statistique.
dataset-builtin-evaluators.json Exemples d'évaluateurs intégrés Foundry (par exemple, cohérence, fluidité, pertinence, fondement, métriques).
dataset-openai-graders.json Exemple d'évaluateurs basés sur OpenAI (modèles d'étiquettes, modèles de score, similarité de texte, vérifications de chaînes de caractères).
dataset-custom-evaluators.json Exemple d’évaluateurs personnalisés avec des paramètres d’évaluateur.
dataset-data-mapping.json Exemple de mappage de données montrant comment remplacer les mappages automatiques de champs avec des noms de colonnes de données personnalisés.

Flux de travail d’évaluation des agents IA

Pour utiliser l’action GitHub, ajoutez l’action de GitHub à vos flux de travail CI/CD. Spécifiez les critères de déclencheur, tels que lors de la validation, et les chemins d’accès aux fichiers pour déclencher vos flux de travail automatisés.

Conseil

Pour réduire les coûts, n'exécutez pas les évaluations sur chaque commit.

Cet exemple montre comment exécuter l’évaluation de l’agent IA en comparant différents agents en utilisant leurs ID d'agents.

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

Évaluations de l'agent IA : résultats

Les résultats de l’évaluation sont générés dans la section récapitulative de chaque action d’évaluation d’IA GitHub exécutée sous Actions dans GitHub. Le rapport affiche les scores d’évaluation pour chaque métrique, intervalles de confiance et, lorsque vous évaluez plusieurs agents, comparaison statistique jumelée qui indique si les différences sont significatives ou dans une variation aléatoire.

La capture d’écran suivante montre un exemple de rapport comparant deux agents.

Capture d'écran du résumé du flux de travail de GitHub Actions montrant les scores d’évaluation des agents avec des intervalles de confiance et une comparaison statistique par paires pour deux agents.