Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
Avaliação automatizada: integre a avaliação offline em seus fluxos de trabalho de CI/CD para automatizar a avaliação de pré-produção de modelos de IA.
Avaliadores internos: aproveite os avaliadores existentes fornecidos pelo SDK de Avaliação de IA do Azure.
Os seguintes avaliadores são apoiados:
Categoria Classe/Métricas do avaliador Avaliações de agentes de IA Avaliações GenAI Uso geral (assistido por IA) AvaliadorQA Não suportado Suportado Uso geral (assistido por IA) Avaliador de Coerência Suportado Suportado Uso geral (assistido por IA) Avaliador de Fluência Suportado Suportado Semelhança textual AvaliadorDeSimilaridade Não suportado Suportado Semelhança textual F1ScoreAvaliador Não suportado Suportado Semelhança textual RougeScoreAvaliador Não suportado Não suportado Semelhança textual Avaliador de GleuScore Não suportado Suportado Semelhança textual BleuScoreAvaliador Não suportado Suportado Semelhança textual MeteorScoreEvaluator Não suportado Suportado Geração aumentada de recuperação (RAG) (assistida por IA) Avaliador de Fundamentação Não suportado Suportado Geração aumentada de recuperação (RAG) (assistida por IA) AvaliadorDeEnraizamento Não suportado Suportado Geração aumentada de recuperação (RAG) (assistida por IA) RetrievalEvaluator Não suportado Suportado Geração aumentada de recuperação (RAG) (assistida por IA) AvaliadorDeRelevância Suportado Suportado Geração aumentada de recuperação (RAG) (assistida por IA) RespostaExaustividadeAvaliador Não suportado Suportado Geração aumentada de recuperação (RAG) (assistida por IA) DocumentRetrievalEvaluator Não suportado Não suportado Risco e segurança (assistido por IA) Avaliador de Violência Suportado Suportado Risco e segurança (assistido por IA) Avaliador Sexual Suportado Suportado Risco e segurança (assistido por IA) SelfHarmEvaluator Suportado Suportado Risco e segurança (assistido por IA) AvaliadorDeInjustiçasPorÓdio Suportado Suportado Risco e segurança (assistido por IA) IndirectAttackEvaluator Suportado Suportado Risco e segurança (assistido por IA) Avaliador de Material Protegido Suportado Suportado Risco e segurança (assistido por IA) CodeVulnerabilityEvaluator Suportado Suportado Risco e segurança (assistido por IA) UngroundedAttributesEvaluator Não suportado Suportado Risco e segurança (assistido por IA) ContentSafetyEvaluator Suportado Suportado Agente (assistido por IA) IntentResolutionEvaluator Suportado Suportado Agente (assistido por IA) Avaliador de Adesão às Tarefas Suportado Suportado Agente (assistido por IA) ToolCallAccuracyEvaluator Não suportado Não suportado Composto AgentOverallEvaluator
Não suportado Não suportado Métricas operacionais Duração da execução do cliente Suportado Não suportado Métricas operacionais Duração da execução do servidor Suportado Não suportado Métricas operacionais Tokens de conclusão Suportado Não suportado Métricas operacionais Tokens de pedidos Suportado Não suportado Avaliadores personalizados Não suportado Não suportado
- 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.
- Quando apenas um
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:
Resultado da avaliação de um único agente:
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_endpoint
azure_deployment
eapi_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.