Obtenha resultados de avaliação com o Microsoft Foundry SDK

Consultar execuções de avaliação assíncronas, obter a saída do item e a saída agregada, cancelar execuções e resolver erros comuns de avaliação.

Pré-requisitos

Os exemplos utilizam o cliente SDK configurado em Configurar o cliente SDK.

Sondagem para uma corrida concluída

Após a conclusão da avaliação, recolha os resultados avaliados e reveja-os no portal ou de forma programática.

As execuções de avaliação são assíncronas. Verifique continuamente o estado da execução até que esta termine, depois recupere os resultados:

import time
from pprint import pprint

while True:
    run = openai_client.evals.runs.retrieve(
        run_id=eval_run.id, eval_id=eval_object.id
    )
    if run.status in ("completed", "failed"):
        break
    time.sleep(5)
    print("Waiting for eval run to complete...")

# Retrieve results
output_items = list(
    openai_client.evals.runs.output_items.list(
        run_id=run.id, eval_id=eval_object.id
    )
)
pprint(output_items)
print(f"Report URL: {run.report_url}")

Interpretar os resultados

Para um único exemplo de dados, todos os avaliadores apresentam o seguinte esquema:

  • Rótulo: um rótulo binário de "passar" ou "falhar", semelhante à saída de um teste unitário. Use este resultado para facilitar comparações entre avaliadores.
  • Pontuação: uma pontuação da escala natural de cada avaliador. Alguns avaliadores utilizam uma rubrica detalhada, avaliando numa escala de 5 pontos (avaliadores de qualidade) ou numa escala de 7 pontos (avaliadores de segurança de conteúdos). Outros, como os avaliadores de similaridade textual, usam pontuações F1, que são flutuantes entre 0 e 1. Qualquer "pontuação" não-binária é binarizada para "passar" ou "reprovar" no campo "label" com base no "limiar".
  • Limiar: quaisquer pontuações não-binárias são binarizadas para "passar" ou "reprovar" com base num limiar padrão, que o utilizador pode ultrapassar na experiência do SDK.
  • Razão: Para melhorar a inteligibilidade, todos os avaliadores de juízes LLM também produzem um campo de raciocínio para explicar porque é atribuída uma certa pontuação.
  • Detalhes: (opcional) Para alguns avaliadores, como o tool_call_accuracy, pode haver um campo "detalhes" ou flags que contêm informação adicional para ajudar os utilizadores a depurar as suas aplicações.

Analisar o resultado de um item

{
  "type": "azure_ai_evaluator",
  "name": "Coherence",
  "metric": "coherence",
  "score": 4.0,
  "label": "pass",
  "reason": "The response is well-structured and logically organized, presenting information in a clear and coherent manner.",
  "threshold": 3,
  "passed": true
}

Rever os resultados agregados

Para resultados agregados em múltiplos exemplos de dados (um conjunto de dados), a proporção média dos exemplos que conseguiram 'aprovação' forma a taxa de aprovação desse conjunto de dados.

{
  "eval_id": "eval_abc123",
  "run_id": "run_xyz789",
  "status": "completed",
  "result_counts": {
    "passed": 85,
    "failed": 15,
    "total": 100
  },
  "per_testing_criteria_results": [
    {
      "name": "coherence",
      "passed": 92,
      "failed": 8,
      "pass_rate": 0.92
    },
    {
      "name": "relevance", 
      "passed": 78,
      "failed": 22,
      "pass_rate": 0.78
    }
  ]
}

Cancelar uma execução

Cancele uma corrida que já não precisa:

openai_client.evals.runs.cancel(
    run_id=eval_run.id,
    eval_id=eval_object.id,
)

Resolução de problemas na avaliação da nuvem

Tarefa em execução há muito tempo

A sua tarefa de avaliação poderá permanecer no estado Running durante muito tempo. Esta condição normalmente acontece quando a implementação do modelo Azure OpenAI não tem capacidade suficiente, pelo que o serviço tenta novamente os pedidos.

Resolution:

  1. Cancele o trabalho de avaliação atual usando openai_client.evals.runs.cancel(run_id, eval_id=eval_id).
  2. Aumente a capacidade do modelo no portal Azure.
  3. Faz a avaliação novamente.

Erros de autenticação

Se receber um erro 401 Unauthorized ou 403 Forbidden, verifique se:

  • Configuraste o teu DefaultAzureCredential corretamente. Se estiveres a usar CLI do Azure, executa az login.
  • A tua conta tem o papel de Utilizador Foundry no projeto Foundry.
  • A URL do endpoint do projeto está correta e inclui tanto os nomes da conta como do projeto.

Erros de formato de dados

Se a avaliação falhar devido a um erro de esquema ou de mapeamento de dados:

  • Verifica se o teu ficheiro JSONL tem um objeto JSON válido por linha.
  • Confirme que os nomes dos campos em data_mapping correspondem exatamente aos nomes dos campos no seu ficheiro JSONL (sensível a maiúsculas e minúsculas).
  • Verifica se item_schema as propriedades correspondem aos campos do teu conjunto de dados.

Erro HTTP 400 quando se usa file_id com avaliações de resposta de agentes

As avaliações de resposta do agente (azure_ai_responses) suportam apenas dados em linha através de file_content. Se fornecer IDs de resposta usando file_id, o pedido devolve um 400 Bad Request erro.

Resolução: Mude para file_content e forneça os IDs de resposta na mesma linha.

Erros de limite de velocidade

Os níveis de tenant, subscrição e projeto aplicam limitação de taxa à criação de execuções de avaliação. Se receber uma 429 Too Many Requests resposta:

  • Verifique o retry-after cabeçalho na resposta para o tempo de espera recomendado.
  • Verifique o corpo de resposta para detalhes do limite de velocidade.
  • Utiliza a retentativa exponencial ao tentar novamente requisições falhadas.

Se uma tarefa de avaliação falhar com um 429 erro durante a execução:

  • Reduza o tamanho do seu conjunto de dados de avaliação ou divida-o em lotes mais pequenos.
  • Aumente o limite de tokens por minuto (TPM) na execução do seu modelo no portal Azure.

Erros na ferramenta avaliadora de agentes

Se um avaliador de agente retornar um erro devido a ferramentas não suportadas:

  • Verifique as ferramentas suportadas para avaliadores de agentes.
  • Como solução alternativa, envolva ferramentas não suportadas como ferramentas de função definidas pelo utilizador para que o avaliador as possa avaliar.