Partilhar via


Como executar uma avaliação no GitHub Action (visualização)

Importante

Os itens marcados como (pré-visualização) neste artigo estão neste momento em pré-visualização pública. Esta pré-visualização é fornecida sem um acordo de nível de serviço, e não a recomendamos para trabalhos em produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Esta ação do GitHub permite a avaliação offline de modelos e agentes de IA dentro de seus pipelines de CI/CD. Ele foi projetado para simplificar o processo de avaliação, permitindo que você avalie o desempenho do modelo e tome decisões informadas antes de implantar na produção.

A avaliação offline envolve testar modelos e agentes de IA usando conjuntos de dados de teste para medir seu desempenho em várias métricas de qualidade e segurança, como fluência, coerência e adequação. Depois de selecionar um modelo no Catálogo de Modelos de IA do Azure ou no mercado de Modelo do GitHub, a avaliação de pré-produção offline é crucial para a validação de aplicativos de IA durante os testes de integração. Esse processo permite que os desenvolvedores identifiquem possíveis problemas e façam melhorias antes de implantar o modelo ou aplicativo na produção, como ao criar e atualizar agentes.

Caraterísticas

  • Integração perfeita: integre-se facilmente com fluxos de trabalho existentes do GitHub para executar a avaliação com base nas regras especificadas em seus fluxos de trabalho (por exemplo, quando as alterações são confirmadas em versões do agente, modelos de prompt ou configuração de sinalizador de recurso).
  • Análise Estatística: Os resultados da avaliação incluem intervalos de confiança e teste de significância estatística para determinar se as alterações são significativas e não devidas a variações aleatórias.
  • Métricas de operação prontas para uso: gera automaticamente métricas operacionais para cada execução de avaliação (duração da execução do cliente, duração da execução do servidor, tokens de conclusão e tokens de prompt).

Pré-requisitos

Projeto de fundição ou projeto baseado em Hubs. Para saber mais, consulte Criar um projeto.

Duas ações do GitHub estão disponíveis para avaliar aplicações de IA: ai-agent-evals e genai-evals.

  • Se seu aplicativo já estiver usando agentes AI Foundry, o ai-agent-evals é adequado, pois oferece um processo de configuração simplificado e integração direta com fluxos de trabalho baseados em agentes.
  • genai-evals destina-se a avaliar modelos generativos de IA fora da estrutura do agente.

Observação

A interface ai-agent-evals é mais simples de configurar. Em contraste, genai-evals requer que você prepare dados de entrada de avaliação estruturados. Exemplos de código são fornecidos para ajudar na configuração.

Como configurar avaliações de agentes de IA

Entrada de avaliações de agentes de IA

A entrada de ai-agent-evals inclui:

Necessário:

  • azure-ai-project-endpoint: O ponto de extremidade do projeto de IA do Azure. Isso é usado para se conectar ao seu projeto de IA para simular conversas com cada agente e para se conectar ao SDK de avaliação de IA do Azure para executar a avaliação.
  • deployment-name: o nome do modelo utilizado para apreciação da avaliação.
  • data-path: Caminho para o ficheiro de dados de entrada que contém as frases iniciais da conversa. Cada iniciador de conversa é enviado a cada agente para uma comparação em pares dos resultados da avaliação.
    • evaluators: nomes de avaliadores integrados.
    • data: um conjunto de tópicos/perguntas de conversação.
    • É suportado apenas um turno de agente único.
  • agent-ids: um identificador exclusivo para o agente e uma lista separada por vírgulas de IDs de agente a avaliar.
    • Quando apenas um agent-id é especificado, os resultados da avaliação incluem os valores absolutos para cada métrica, juntamente com os intervalos de confiança correspondentes.
    • Quando múltiplos agent-ids são especificados, os resultados incluem valores absolutos para cada agente e uma comparação estatística com o ID do agente de linha de base designado.

Opcional:

  • api-version: a versão da API do modelo implantado.
  • baseline-agent-id: ID do agente de linha de base para comparar. Por padrão, o primeiro agente é usado.
  • evaluation-result-view: Especifica o formato dos resultados da avaliação. O padrão é "default" (pontuações booleanas, como taxas de aprovação e defeito) se omitido. As opções são "default", "all-scores" (inclui todas as pontuações de avaliação) e "raw-scores-only" (apenas pontuações não booleanas).

Aqui está um exemplo do conjunto de dados:

{ 
  "name": "MyTestData", 
  "evaluators": [ 
    "RelevanceEvaluator", 
    "ViolenceEvaluator", 
    "HateUnfairnessEvaluator",
  ], 
  "data": [ 
    { 
      "query": "Tell me about Tokyo?", 
    }, 
    { 
      "query": "Where is Italy?", 
    } 
  ] 
} 

Fluxo de trabalho de avaliações de agentes de IA

Para usar a Ação do GitHub, adicione a Ação do GitHub aos seus fluxos de trabalho de CI/CD e especifique os critérios de gatilho (por exemplo, na confirmação) e os caminhos de arquivo para acionar seus fluxos de trabalho automatizados.

Sugestão

Para minimizar os custos, deve-se evitar executar a avaliação em cada commit.

Este exemplo ilustra como o Azure Agent AI Evaluation pode ser executado ao comparar diferentes agentes com IDs 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@v2-beta
        with:
          # Replace placeholders with values for your Azure AI 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

Resultado de avaliações de agentes de IA

Os resultados da avaliação são enviados para a seção de resumo para cada ação de avaliação de IA GitHub Action executada em Ações no GitHub.com.

O resultado inclui duas partes principais:

  • A seção superior resume a visão geral das variantes do seu agente de IA. Você pode selecioná-lo no link ID do agente e ele direciona você para a página de configuração do agente no portal do AI Foundry. Você também pode selecionar o link para Resultados da Avaliação e ele direciona você para o portal AI Foundry para visualizar o resultado individual em detalhes.
  • A segunda seção inclui escores de avaliação e comparação entre diferentes variantes de significância estatística (para múltiplos agentes) e intervalos de confiança (para agente único).

Resultado da avaliação multiagente:

Captura de tela do resultado da avaliação de vários agentes no GitHub Action.

Resultado da avaliação de um único agente:

Captura de tela do resultado da avaliação de agente único no GitHub Action.

Como configurar avaliações genAI

Entrada de avaliações GenAI

A entrada de genai-evals inclui (alguns deles são opcionais dependendo do avaliador usado):

Arquivo de configuração de avaliação:

  • data: um conjunto de perguntas e verdades básicas. A verdade-base é opcional e apenas necessária para um subconjunto de avaliadores. (Veja qual avaliador requer dados de referência).

    Aqui está um exemplo do conjunto de dados:

    [ 
        { 
            "query": "Tell me about Tokyo?", 
            "ground-truth": "Tokyo is the capital of Japan and the largest city in the country. It is located on the eastern coast of Honshu, the largest of Japan's four main islands. Tokyo is the political, economic, and cultural center of Japan and is one of the world's most populous cities. It is also one of the world's most important financial centers and is home to the Tokyo Stock Exchange." 
        }, 
        { 
            "query": "Where is Italy?", 
            "ground-truth": "Italy is a country in southern Europe, located on the Italian Peninsula and the two largest islands in the Mediterranean Sea, Sicily and Sardinia. It is a unitary parliamentary republic with its capital in Rome, the largest city in Italy. Other major cities include Milan, Naples, Turin, and Palermo." 
        }, 
    
        { 
            "query": "Where is Papua New Guinea?", 
            "ground-truth": "Papua New Guinea is an island country that lies in the south-western Pacific. It includes the eastern half of New Guinea and many small offshore islands. Its neighbours include Indonesia to the west, Australia to the south and Solomon Islands to the south-east." 
        } 
    ] 
    
    
  • evaluators: nomes de avaliadores integrados.

  • ai_model_configuration: incluindo o tipo, azure_endpointazure_deployment e api_version.

Fluxo de trabalho de avaliações GenAI

Este exemplo ilustra como a Avaliação de IA do Azure pode ser executada quando as alterações são confirmadas em arquivos específicos em seu repositório.

Observação

Atualize GENAI_EVALS_DATA_PATH para apontar para o diretório correto no seu repositório.

name: Sample Evaluate Action 
on: 
  workflow_call: 
  workflow_dispatch: 

permissions: 
  id-token: write 
  contents: read 

jobs: 
  evaluate: 
    runs-on: ubuntu-latest 
    env: 
      GENAI_EVALS_CONFIG_PATH: ${{ github.workspace }}/evaluate-config.json 
      GENAI_EVALS_DATA_PATH: ${{ github.workspace }}/.github/.test_files/eval-input.jsonl 
    steps: 
      - uses: actions/checkout@v4 
      - uses: azure/login@v2 
        with: 
          client-id: ${{ secrets.OIDC_AZURE_CLIENT_ID }} 
          tenant-id: ${{ secrets.OIDC_AZURE_TENANT_ID }} 
          subscription-id: ${{ secrets.OIDC_AZURE_SUBSCRIPTION_ID }} 
      - name: Write evaluate config 
        run: | 
          cat > ${{ env.GENAI_EVALS_CONFIG_PATH }} <<EOF 
          { 
            "data": "${{ env.GENAI_EVALS_DATA_PATH }}", 
            "evaluators": { 
              "coherence": "CoherenceEvaluator", 
              "fluency": "FluencyEvaluator" 
            }, 
            "ai_model_configuration": { 
              "type": "azure_openai", 
              "azure_endpoint": "${{ secrets.AZURE_OPENAI_ENDPOINT }}", 
              "azure_deployment": "${{ secrets.AZURE_OPENAI_CHAT_DEPLOYMENT }}", 
              "api_key": "${{ secrets.AZURE_OPENAI_API_KEY }}", 
              "api_version": "${{ secrets.AZURE_OPENAI_API_VERSION }}" 
            } 
          } 
          EOF 
      - name: Run AI Evaluation 
        id: run-ai-evaluation 
        uses: microsoft/genai-evals@main 
        with: 
          evaluate-configuration: ${{ env.GENAI_EVALS_CONFIG_PATH }} 

Resultados das avaliações GenAI

Os resultados da avaliação são enviados para a seção de resumo para cada ação de avaliação de IA GitHub Action executada em Ações no GitHub.com.

Os resultados incluem três partes:

  • Variantes de teste: um resumo dos nomes das variantes e mensagens do sistema.
  • Pontuação média: a pontuação média de cada avaliador para cada variante.
  • Pontuações individuais do teste: resultado detalhado para cada caso de teste individual.

Captura de tela da saída do resultado, incluindo variantes de teste, pontuação média e teste individual no GitHub Action.