Allgemeine Evaluatoren (klassisch)

Zurzeit wird folgendes angezeigt:Foundry (klassische) Portalversion - Wechseln zur Version für das neue Foundry-Portal

Note

Das Microsoft Foundry SDK für Die Auswertung und das Gießereiportal befindet sich in der öffentlichen Vorschau, die APIs sind jedoch allgemein für die Modell- und Datasetauswertung verfügbar (die Agentauswertung verbleibt in der öffentlichen Vorschau). Das in diesem Artikel markierte Azure AI Evaluation SDK und Bewerter (Vorschau) befinden sich derzeit überall in der öffentlichen Vorschau.

KI-Systeme können textuelle Antworten erzeugen, die inkohärent sind oder über die minimale grammatikalische Korrektheit hinaus keine allgemeine Schreibqualität aufweisen. Um diese Probleme anzugehen, unterstützt Microsoft Foundry die Bewertung von Kohärenz und Flüssigkeit.

Wenn Sie ein Frage-Antwort-(QA)-Szenario mit sowohl context und ground truth Daten zusätzlich query zu und responsehaben, können Sie auch unseren QAEvalueator verwenden, einen zusammengesetzten Evaluator, der relevante Evaluatoren für die Beurteilung verwendet.

Modellkonfiguration für KI-unterstützte Evaluatoren

Zur Orientierung verwenden die KI-unterstützten Evaluatoren im folgenden Code-Snippet eine folgende Modellkonfiguration:

import os
from azure.ai.evaluation import AzureOpenAIModelConfiguration
from dotenv import load_dotenv
load_dotenv()

model_config = AzureOpenAIModelConfiguration(
    azure_endpoint=os.environ["AZURE_ENDPOINT"],
    api_key=os.environ.get("AZURE_API_KEY"),
    azure_deployment=os.environ.get("AZURE_DEPLOYMENT_NAME"),
    api_version=os.environ.get("AZURE_API_VERSION"),
)

Unterstützung für Evaluatormodelle

Foundry unterstützt AzureOpenAI- oder OpenAI-Argumentationsmodelle sowie Nicht-Argumentationsmodelle für den Large Language Model Judge (LLM-judge), je nach Evaluator:

Evaluators Reasoning Models as Judge (Beispiel: o-Series Modelle von Azure OpenAI / OpenAI) Nicht-Reasoning-Modelle als Richter (Beispiel: gpt-4.1, gpt-4o usw.) To enable
IntentResolution, TaskAdherence, , ResponseCompletenessToolCallAccuracy, Coherence, Fluency, Similarity, , , Groundedness, , RetrievalRelevance Supported Supported Festlegen zusätzlicher Parameter is_reasoning_model=True beim Initialisieren von Evaluatoren
Other evaluators Not Supported Supported --

Für komplexe Bewertungen, die verfeinertes Schließen erfordern, empfehlen wir ein starkes Denkmodell mit 4.1-mini einem Gleichgewicht zwischen Argumentationsleistung und Kosteneffizienz.

Coherence

Der Kohärenz-Evaluator misst die logische und geordnete Darstellung von Ideen in einer Antwort, die es dem Leser ermöglicht, den Gedankenzug des Schriftstellers leicht zu verfolgen und zu verstehen. Eine kohärente Antwort behandelt die Frage direkt mit klaren Verbindungen zwischen Sätzen und Absätzen unter Verwendung geeigneter Übergänge und einer logischen Abfolge von Ideen. Höhere Bewertungen bedeuten eine bessere Kohärenz.

Coherence example

from azure.ai.evaluation import CoherenceEvaluator

coherence = CoherenceEvaluator(model_config=model_config, threshold=3)
coherence(
    query="Is Marie Curie is born in Paris?", 
    response="No, Marie Curie is born in Warsaw."
)

Coherence output

Der numerische Wert auf einer Likert-Skala (ganzzahlig 1 bis 5). Eine höhere Punktzahl ist besser. Gegeben eine numerische Schwelle (standardmäßig 3), gibt sie auch 'Pass' aus, wenn die Punktzahl >= Schwelle ist, oder ' Nichtbestehen '. Verwenden Sie das Reason-Feld, um zu verstehen, warum die Punktzahl hoch oder niedrig ist.

{
    "coherence": 4.0,
    "gpt_coherence": 4.0,
    "coherence_reason": "The RESPONSE is coherent and directly answers the QUERY with relevant information, making it easy to follow and understand.",
    "coherence_result": "pass",
    "coherence_threshold": 3
}

Fluency

Der Fluency-Evaluator misst die Wirksamkeit und Klarheit der schriftlichen Kommunikation. Diese Maßnahme konzentriert sich auf grammatikalische Genauigkeit, Vokabularbereich, Satzkomplexität, Kohärenz und allgemeine Lesbarkeit. Es bewertet, wie reibungslos Ideen vermittelt werden und wie einfach der Leser den Text verstehen kann.

Fluency example

from azure.ai.evaluation import FluencyEvaluator

fluency = FluencyEvaluator(model_config=model_config, threshold=3)
fluency(
    response="No, Marie Curie is born in Warsaw."
)

Fluency output

Der numerische Wert auf einer Likert-Skala (ganzzahlig 1 bis 5). Eine höhere Punktzahl ist besser. Gegeben eine numerische Schwelle (standardmäßig 3), gibt sie auch 'Pass' aus, wenn die Punktzahl >= Schwelle ist, oder ' Nichtbestehen '. Verwenden Sie das Reason-Feld, um zu verstehen, warum die Punktzahl hoch oder niedrig ist.

{
    "fluency": 3.0,
    "gpt_fluency": 3.0,
    "fluency_reason": "The response is clear and grammatically correct, but it lacks complexity and variety in sentence structure, which is why it fits the \"Competent Fluency\" level.",
    "fluency_result": "pass",
    "fluency_threshold": 3
}

Frage zur Beantwortung von Composite Evaluator

QAEvaluator Misst umfassend verschiedene Aspekte in einem Frage-Antwort-Szenario:

  • Relevance
  • Groundedness
  • Fluency
  • Coherence
  • Similarity
  • F1 score

QA example

from azure.ai.evaluation import QAEvaluator

qa_eval = QAEvaluator(model_config=model_config, threshold=3)
qa_eval(
    query="Where was Marie Curie born?", 
    context="Background: 1. Marie Curie was a chemist. 2. Marie Curie was born on November 7, 1867. 3. Marie Curie is a French scientist.",
    response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
    ground_truth="Marie Curie was born in Warsaw."
)

QA output

Während der F1-Wert eine numerische Wertzahl auf einer 0-1-Gleitwertskala ausgibt, geben die anderen Bewerter numerische Werte auf einer Likert-Skala (ganzzahlig 1 bis 5) aus. Eine höhere Punktzahl ist besser. Gegeben eine numerische Schwelle (standardmäßig 3), gibt sie auch 'Pass' aus, wenn die Punktzahl >= Schwelle ist, oder ' Nichtbestehen '. Verwenden Sie das Reason-Feld, um zu verstehen, warum die Punktzahl hoch oder niedrig ist.

{
    "f1_score": 0.631578947368421,
    "f1_result": "pass",
    "f1_threshold": 3,
    "similarity": 4.0,
    "gpt_similarity": 4.0,
    "similarity_result": "pass",
    "similarity_threshold": 3,
    "fluency": 3.0,
    "gpt_fluency": 3.0,
    "fluency_reason": "The input Data should get a Score of 3 because it clearly conveys an idea with correct grammar and adequate vocabulary, but it lacks complexity and variety in sentence structure.",
    "fluency_result": "pass",
    "fluency_threshold": 3,
    "relevance": 3.0,
    "gpt_relevance": 3.0,
    "relevance_reason": "The RESPONSE does not fully answer the QUERY because it fails to explicitly state that Marie Curie was born in Warsaw, which is the key detail needed for a complete understanding. Instead, it only negates Paris, which does not fully address the question.",
    "relevance_result": "pass",
    "relevance_threshold": 3,
    "coherence": 2.0,
    "gpt_coherence": 2.0,
    "coherence_reason": "The RESPONSE provides some relevant information but lacks a clear and logical structure, making it difficult to follow. It does not directly answer the question in a coherent manner, which is why it falls into the \"Poorly Coherent Response\" category.",
    "coherence_result": "fail",
    "coherence_threshold": 3,
    "groundedness": 3.0,
    "gpt_groundedness": 3.0,
    "groundedness_reason": "The response attempts to answer the query about Marie Curie's birthplace but includes incorrect information by stating she was not born in Paris, which is irrelevant. It does provide the correct birthplace (Warsaw), but the misleading nature of the response affects its overall groundedness. Therefore, it deserves a score of 3.",
    "groundedness_result": "pass",
    "groundedness_threshold": 3
}