Ottenere risultati di valutazione con Microsoft Foundry SDK

Monitorare tramite polling le esecuzioni di valutazione asincrone, recuperare l'elemento e l'output aggregato, annullare le esecuzioni e risolvere i comuni errori di valutazione.

Prerequisiti

Gli esempi usano il client SDK configurato in Configurare il client SDK.

Eseguire il polling per un'esecuzione completata

Al termine dell'esecuzione di una valutazione, recuperare i risultati con punteggio ed esaminarli nel portale o a livello di codice.

I processi di valutazione sono asincroni. Eseguire il polling dello stato dell'esecuzione fino al completamento, quindi recuperare i risultati:

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}")

Interpretare i risultati

Per un singolo esempio di dati, tutti gli analizzatori generano lo schema seguente:

  • Etichetta: un'etichetta binaria "pass" o "fail", simile all'output di un unit test. Usare questo risultato per facilitare i confronti tra gli analizzatori.
  • Punteggio: punteggio della scala naturale di ogni analizzatore. Alcuni analizzatori usano una rubrica con granularità fine, l'assegnazione di punteggi su una scala a 5 punti (analizzatori di qualità) o una scala a 7 punti (analizzatori di sicurezza del contenuto). Altri, come gli analizzatori di somiglianza testuale, usano punteggi F1, che sono float tra 0 e 1. Qualsiasi punteggio non binario viene binarizzato in "superato" o "non superato" nel campo "label" in base alla "soglia".
  • Soglia: tutti i punteggi non binari vengono convertiti in "superato" o "non superato" in base a una soglia predefinita, che l'utente può modificare nell'SDK.
  • Motivo: per migliorare l'intelligibilità, tutti gli analizzatori di giudici LLM generano anche un campo di ragionamento per spiegare perché viene assegnato un determinato punteggio.
  • Dettagli: (facoltativo) Per alcuni analizzatori, ad esempio tool_call_accuracy, potrebbe essere presente un campo o flag "dettagli" che contengono informazioni aggiuntive per consentire agli utenti di eseguire il debug delle applicazioni.

Esaminare un risultato di un elemento

{
  "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
}

Esaminare i risultati aggregati

Per i risultati aggregati su più esempi di dati (un set di dati), la frequenza media degli esempi con un "pass" costituisce la velocità di passaggio per tale set di dati.

{
  "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
    }
  ]
}

Annullare un'esecuzione

Annulla un'esecuzione che non è più necessaria:

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

Risoluzione dei problemi di valutazione del cloud

Lavoro in esecuzione da molto tempo

Il processo di valutazione potrebbe rimanere nello stato In esecuzione per molto tempo. Questa condizione si verifica in genere quando la distribuzione del modello OpenAI Azure non dispone di capacità sufficiente, quindi il servizio ritenta le richieste.

Risoluzione:

  1. Annullare il processo di valutazione corrente usando openai_client.evals.runs.cancel(run_id, eval_id=eval_id).
  2. Aumentare la capacità del modello nel portale di Azure.
  3. Eseguire di nuovo la valutazione.

Errori di autenticazione

Se viene visualizzato l'errore 401 Unauthorized o 403 Forbidden, verificare che:

  • Hai configurato correttamente il tuo DefaultAzureCredential. Se si usa interfaccia della riga di comando di Azure, eseguire az login.
  • Il tuo account ha il ruolo di Utente Foundry nel progetto Foundry.
  • L'URL dell'endpoint del progetto è corretto e include sia l'account che i nomi dei progetti.

Errori di formato dati

Se la valutazione fallisce a causa di un errore di mapping dello schema o dei dati:

  • Verificare che il file JSONL abbia un oggetto JSON valido per riga.
  • Verificare che i nomi dei campi in data_mapping corrispondano esattamente ai nomi dei campi nel file JSONL (con distinzione tra maiuscole e minuscole).
  • Verificare che item_schema le proprietà corrispondano ai campi nel set di dati.

Errore HTTP 400 quando si usa file_id con valutazioni di risposta dell'agente

Le valutazioni delle risposte dell'agente (azure_ai_responses) supportano solo i dati in linea attraverso file_content. Se si forniscono ID risposta usando file_id, la richiesta restituisce un 400 Bad Request errore.

Risoluzione: Passa a file_content e fornisci gli ID di risposta in linea.

Errori di limitazione della velocità

I livelli "Utente", "Abbonamento" e "Progetto" limitano il numero di esecuzioni della valutazione. Se si riceve una 429 Too Many Requests risposta:

  • Controllare l'intestazione retry-after nella risposta per il tempo di attesa consigliato.
  • Esaminare il corpo della risposta per dettagli sulle limitazioni della velocità di risposta.
  • Usare il backoff esponenziale quando si ritentano richieste non riuscite.

Se un processo di valutazione fallisce a causa di un errore 429 durante l'esecuzione:

  • Ridurre le dimensioni del set di dati di valutazione o suddividerlo in batch più piccoli.
  • Aumenta la quota di token per minuto (TPM) per la distribuzione del modello nel portale di Azure.

Errori dello strumento di valutazione dell'agente

Se un valutatore agente restituisce un errore a causa degli strumenti non supportati:

  • Verifica gli strumenti supportati per i valutatori di agenti.
  • Come soluzione alternativa, incapsulare gli strumenti non supportati come funzioni definite dall'utente in modo che l'analizzatore possa valutarli.