Abrufen von Auswertungsergebnissen mit Microsoft Foundry SDK

Rufen Sie asynchrone Auswertungsausführungen ab, rufen Sie die Element- und aggregierte Ausgabe ab, brechen Sie Ausführungen ab, und beheben Sie häufige Auswertungsfehler.

Voraussetzungen

In den Beispielen wird der in SDK-Client einrichten konfigurierte SDK-Client verwendet.

Abgeschlossene Ausführung abfragen

Rufen Sie nach der Durchführung eines Auswertungslaufs die bewerteten Ergebnisse ab und überprüfen Sie sie im Portal oder programmatisch.

Auswertungsläufe sind asynchron. Rufen Sie den Ausführungsstatus auf, bis er abgeschlossen ist, und rufen Sie dann die Ergebnisse ab:

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

Interpretieren von Ergebnissen

Für ein einzelnes Datenbeispiel geben alle Bewerter das folgende Schema aus:

  • Beschriftung: eine binäre "Pass"- oder "fail"-Bezeichnung, ähnlich der Ausgabe eines Komponententests. Verwenden Sie dieses Ergebnis, um Vergleiche über Evaluatoren hinweg zu vereinfachen.
  • Bewertung: eine Bewertung aus der natürlichen Skala des einzelnen Evaluators. Einige Bewerter verwenden eine feinkörnige Rubrik, eine Bewertung auf einer 5-Punkt-Skala (Qualitätsbewertungen) oder eine 7-Punkt-Skala (Inhaltssicherheits-Evaluatoren). Andere, wie textbezogene Ähnlichkeitsbewertungen, verwenden F1-Bewertungen, die zwischen 0 und 1 schweben. Jede nicht binäre „Bewertung“ wird anhand des „Schwellenwerts“ im Feld „Kennzeichnung“ zu „bestanden“ oder „nicht bestanden“ binarisiert.
  • Schwellenwert: Alle nicht binären Bewertungen werden basierend auf einem Standardschwellenwert, den die Benutzer in der SDK-Oberfläche überschreiben können, in „pass“ (bestanden) oder „fail“ (nicht bestanden) umgewandelt.
  • Grund: Um die Verständlichkeit zu verbessern, geben alle LLM-Richter-Evaluatoren auch ein Begründungsfeld aus, um zu erläutern, warum eine bestimmte Bewertung angegeben wird.
  • Details: (optional) Bei einigen Bewertern, z. B. tool_call_accuracy, gibt es möglicherweise ein "Details"-Feld oder Flags, das zusätzliche Informationen enthält, um Benutzern beim Debuggen ihrer Anwendungen zu helfen.

Überprüfen eines Elementergebnisses

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

Überprüfen der aggregierten Ergebnisse

Bei über mehrere Datenbeispiele (ein Dataset) aggregierten Ergebnissen bildet die durchschnittliche Rate der Beispiele mit der Bewertung „bestanden“ die Erfolgsquote für dieses Dataset.

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

Abbrechen eines Laufs

Eine Ausführung abbrechen, die Sie nicht mehr benötigen:

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

Problembehandlung bei der Cloudbewertung

Ein Job, der lange läuft

Ihr Auswertungsauftrag kann lange im Status "Running" bleiben. Diese Bedingung tritt in der Regel auf, wenn die Azure OpenAI-Modellbereitstellung nicht über genügend Kapazität verfügt, sodass der Dienst Anforderungen erneut anfordert.

Auflösung:

  1. Abbrechen des aktuellen Auswertungsauftrags mithilfe von openai_client.evals.runs.cancel(run_id, eval_id=eval_id).
  2. Erhöhen Sie die Modellkapazität im Azure-Portal.
  3. Führen Sie die Auswertung erneut aus.

Authentifizierungsfehler

Wenn der Fehler 401 Unauthorized oder 403 Forbidden angezeigt wird, überprüfen Sie Folgendes:

  • Sie haben Ihre DefaultAzureCredential korrekt konfiguriert. Wenn Sie Azure CLI verwenden, führen Sie az login aus.
  • Ihr Konto verfügt über die Rolle " Foundry User " im Foundry-Projekt.
  • Die URL des Projektendpunkts ist korrekt und enthält sowohl die Konto- als auch die Projektnamen.

Datenformatfehler

Wenn die Auswertung mit einem Schema- oder Datenzuordnungsfehler fehlschlägt:

  • Überprüfen Sie, ob die JSONL-Datei ein gültiges JSON-Objekt pro Zeile aufweist.
  • Überprüfen Sie, ob die Feldnamen in data_mapping genau mit den Feldnamen in Ihrer JSONL-Datei übereinstimmen (Groß-/Kleinschreibung wird beachtet).
  • Überprüfen Sie, ob item_schema die Eigenschaften den Feldern in Ihrem Dataset entsprechen.

HTTP 400-Fehler, wenn Sie file_id mit Agentantwortauswertungen verwenden

Agent-Antwortbewertungen (azure_ai_responses) unterstützen Inline-Daten nur mittels file_content. Wenn Sie Antwort-IDs mit file_id angeben, gibt die Anfrage einen 400 Bad Request-Fehler zurück.

Lösung: Wechseln Sie zu file_content und geben Sie die Antwort-IDs inline an.

Fehler bei der Ratenbegrenzung

Auf Mandanten-, Abonnement- und Projektebene ist die Erstellung von Bewertungsausführungen ratenbegrenzt. Wenn Sie eine 429 Too Many Requests Antwort erhalten:

  • Überprüfen Sie den retry-after Header in der Antwort auf die empfohlene Wartezeit.
  • Überprüfen Sie den Antworttext auf Details zum Zinsgrenzwert.
  • Verwenden Sie exponentielles Backoff, wenn Sie fehlgeschlagene Anforderungen wiederholen.

Wenn ein Auswertungsauftrag während der Ausführung mit einem 429 Fehler fehlschlägt:

  • Verringern Sie die Größe Ihres Auswertungsdatensatzes, oder teilen Sie es in kleinere Batches auf.
  • Erhöhen Sie das Token pro Minute (TPM)-Kontingent für die Modellbereitstellung im Azure-Portal.

Fehler des Agentenbewertungstools

Wenn ein Agent-Evaluator einen Fehler für nicht unterstützte Tools zurückgibt:

  • Überprüfen Sie die unterstützten Tools für Agent-Auswertungen.
  • Umschließen Sie als Problemumgehung nicht unterstützte Tools als benutzerdefinierte Funktionstools, damit der Evaluator sie bewerten kann.