Ejecución de una evaluación en GitHub Action (versión preliminar)

Importante

Los elementos marcados (versión preliminar) de este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se proporciona sin un contrato de nivel de servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no se admitan o que tengan funcionalidades restringidas. Para obtener más información, vea Supplemental Terms of Use for Microsoft Azure Previews.

Esta GitHub Action habilita la evaluación sin conexión de Microsoft Foundry Agents dentro de las canalizaciones de CI/CD. Simplifica el proceso de evaluación sin conexión, por lo que puede identificar posibles problemas y realizar mejoras antes de publicar una actualización en producción.

Para usar esta acción, proporcione un conjunto de datos con consultas de prueba y una lista de evaluadores. Esta acción invoca a los agentes con las consultas, ejecuta las evaluaciones y genera un informe de resumen.

Funciones

  • Agent Evaluation: Automatice la evaluación de preproducción de agentes de Microsoft Foundry en el flujo de trabajo de CI/CD.
  • Evaluadores: use cualquier evaluador del catálogo de evaluadores de Foundry.
  • Análisis estadístico: los resultados de la evaluación incluyen intervalos de confianza y pruebas de importancia estadística para determinar si los cambios son significativos y no debido a una variación aleatoria.

Categorías del evaluador

Requisitos previos

Propina

La manera recomendada de autenticarse es mediante Microsoft Entra ID, que puede usar para conectarse de forma segura a los recursos de Azure. Puede automatizar el proceso de autenticación mediante la acción Azure Login GitHub. Para obtener más información, consulte acción de inicio de sesión de Azure con OpenID Connect.

Cómo configurar evaluaciones de agentes de inteligencia artificial

Entrada de datos de evaluaciones del agente de IA

Parámetros

Nombre ¿Obligatorio? Descripción
azure-ai-punto-final-del-proyecto Punto final de tu proyecto Microsoft Foundry. Para encontrar este valor, abra su proyecto en Foundry portal y copie el endpoint desde la página Información general.
nombre de implementación Nombre de una implementación de modelo de IA de Azure que se va a utilizar para la evaluación. Busque las implementaciones existentes en Modelos y puntos de conexión en el portal de Foundry.
ruta de datos Ruta de acceso al archivo de datos que contiene los evaluadores y las consultas de entrada para las evaluaciones.
agent-ids Identificador de uno o varios agentes para evaluar en formato agent-name:version (por ejemplo, my-agent:1 o my-agent:1,my-agent:2). Varios agentes están separados por comas y se comparan con los resultados estadísticos de las pruebas.
id del agente base No Identificador del agente de línea base para comparar al evaluar varios agentes. Si no se proporciona, se usa el primer agente.

Nota

Para buscar el identificador y la versión del agente, abra el proyecto en el portal de Foundry, vaya a Agentes, seleccione el agente y copie el identificador del agente en el panel de detalles. La versión es el número de versión de implementación (por ejemplo, my-agent:1).

Archivo de datos

El archivo de datos de entrada debe ser un archivo JSON con la siguiente estructura:

Campo Tipo ¿Obligatorio? Descripción
nombre string Nombre del conjunto de datos de evaluación.
evaluadores string[] Lista de nombres de evaluadores que se van a usar. Consulte la lista de evaluadores disponibles en el catálogo de evaluadores del proyecto en el portal de Foundry: Catálogo de evaluadores de compilación >>.
datos objetos[] Matriz de objetos de entrada con query campos de evaluador opcionales como ground_truth, context. Asignación automática a evaluadores; use data_mapping para anular.
openai_graders objeto No Configuración de evaluadores basados en OpenAI (label_model, score_model, string_check, etc.).
parámetros_del_evaluador objeto No Parámetros de inicialización específicos del evaluador (por ejemplo, umbrales, configuración personalizada).
mapeo de datos objeto No Asignaciones de campos de datos personalizadas (generadas automáticamente a partir de datos si no se proporcionan).

Archivo de datos de ejemplo básico

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

Archivos de datos de ejemplo adicionales

Nombre de archivo Descripción
dataset-tiny.json Conjunto de datos con un número reducido de consultas y evaluadores de prueba.
dataset.json Conjunto de datos con todos los tipos de evaluador admitidos y suficientes consultas para el cálculo del intervalo de confianza y la prueba estadística.
dataset-builtin-evaluators.json Ejemplo de evaluadores integrados de Foundry (por ejemplo, coherencia, fluidez, relevancia, fundamentación, métricas).
dataset-openai-graders.json Ejemplo de calificadores basados en OpenAI (modelos de etiquetas, modelos de puntuación, similitud de texto, comprobaciones de cadenas).
dataset-custom-evaluators.json Ejemplo de evaluadores personalizados con parámetros del evaluador.
dataset-data-mapping.json Ejemplo de mapeo de datos que muestra cómo anular las asignaciones automáticas de campos mediante nombres personalizados de columnas de datos.

Flujo de trabajo de evaluaciones del agente de IA

Para usar la acción de GitHub, agregue la acción de GitHub a los flujos de trabajo de CI/CD. Especifique los criterios de desencadenador, como la confirmación, y las rutas de acceso de archivo para desencadenar los flujos de trabajo automatizados.

Propina

Para minimizar los costos, no ejecute la evaluación en cada commit.

En este ejemplo se muestra cómo puede ejecutar la evaluación del agente de IA al comparar distintos agentes mediante identificadores de agente.

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

Salida de las evaluaciones del agente de IA

Los resultados de la evaluación se envían a la sección de resumen de cada ejecución de acción de evaluación de IA GitHub en Actions en GitHub. El informe muestra las puntuaciones de evaluación de cada métrica, intervalos de confianza y , cuando se evalúan varios agentes, una comparación estadística en pares que indica si las diferencias son significativas o dentro de una variación aleatoria.

En la captura de pantalla siguiente se muestra un informe de ejemplo que compara dos agentes.

Captura de pantalla del resumen de flujo de trabajo de Acciones de GitHub que muestra puntuaciones de evaluación del agente con intervalos de confianza y comparación estadística en pares para dos agentes.