Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Ein Retrieval-Augmented Generation (RAG)-System versucht, die relevanteste Antwort zu generieren, die mit dem Grounding von Dokumenten übereinstimmt, als Antwort auf die Anfrage eines Nutzers. Die Abfrage eines Benutzers löst einen Suchabruf im Korpus von Erdungsdokumenten aus, um einen Erdungskontext für das KI-Modell bereitzustellen, um eine Antwort zu generieren.
Es ist wichtig, Folgendes zu bewerten:
- Document Retrieval
- Retrieval
- Groundedness
- Groundedness Pro (Vorschau)
- Relevance
- Response Completeness
Diese Evaluatoren konzentrieren sich auf drei Aspekte:
- Die Relevanz der Abrufergebnisse für die Anfrage des Nutzers: Verwenden Sie Dokumentenabruf, wenn Sie Labels für anfragespezifische Dokumentrelevanz haben, oder Abfragerelevanzbeurteilung (qrels) für genauere Messungen. Verwende Retrieval , wenn du nur den abgerufenen Kontext hast, aber keine solchen Labels hast und eine höhere Toleranz für weniger feinkörnige Messungen hast.
- Die Konsistenz der generierten Antwort in Bezug auf die Grounding-Dokumente: Verwenden Sie Groundedness, wenn Sie die Definition von Groundedness in unserem Open-Source-Quest Large Language Model-Judge (LLM-judge) anpassen möchten. Nutze Groundedness Pro (Vorschau), wenn du eine klare Definition möchtest.
- Die Relevanz der endgültigen Antwort auf die Anfrage: Verwenden Sie Relevanz, wenn Sie keine grundlegende Wahrheit haben. Verwenden Sie Response Completeness, wenn Sie eine gefestigte Wahrheit haben und nicht möchten, dass Ihre Antwort wichtige Informationen verpasst.
Denken Sie an Erdheit und Reaktionsvollständigkeit wie:
- Geerdetheit konzentriert sich auf den Genauigkeitsaspekt der Antwort. Sie enthält keinen Inhalt außerhalb des Erdungskontexts.
- Die Vollständigkeit der Antwort konzentriert sich auf den Rückrufaspekt der Antwort. Es fehlt keine kritischen Informationen im Vergleich zu der erwarteten Antwort oder grundwahren Wahrheit.
Modellkonfiguration für KI-unterstützte Evaluatoren
Zur Referenz in den folgenden Ausschnitten verwenden die KI-unterstützten Qualitätsprüfer, mit Ausnahme von Groundedness Pro, eine Modellkonfiguration für den LLM-Judge:
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
Die Evaluatoren unterstützen AzureOpenAI oder OpenAI-Argumentationsmodelle und Nicht-Argumentationsmodelle für den LLM-Judge, abhängig von den Evaluatoren:
| Evaluators | Reasoning Models as Judge (Beispiel: o-Series Modelle von Azure OpenAI / OpenAI) | Nicht-logische Modelle als Judge (Beispiel: gpt-4.1, gpt-4o) | 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, verwenden Sie ein starkes Argumentationsmodell, wie 4.1-mini ein Gleichgewicht zwischen Schlussfolgerleistung und Kosteneffizienz.
Retrieval
Aufgrund seiner vorgelagerten Rolle im ROG ist die Abrufqualität entscheidend. Wenn die Abrufqualität schlecht ist und die Antwort korpusspezifisches Wissen erfordert, liefert das Sprachmodell weniger wahrscheinlich eine zufriedenstellende Antwort.
RetrievalEvaluator Misst die textuelle Qualität der Abrufergebnisse mit einem Sprachmodell, ohne Ground Truth zu verlangen, auch bekannt als Query Relevance Judgment.
Dieser Ansatz bringt einen Mehrwert im Vergleich zu DocumentRetrievalEvaluator, das , ndcgxdcg, fidelity, misst, und anderen klassischen Informationsabruf-Metriken, die eine Grundwahrheit erfordern. Diese Metrik konzentriert sich darauf, wie relevant die Kontextchunks für die Bearbeitung einer Anfrage sind und wie die relevantesten Kontextchunks ganz oben in der Liste angezeigt werden. Die Kontextabschnitte werden als Strings kodiert.
Retrieval example
from azure.ai.evaluation import RetrievalEvaluator
retrieval = RetrievalEvaluator(model_config=model_config, threshold=3)
retrieval(
query="Where was Marie Curie born?",
context="Background: 1. Marie Curie was born in Warsaw. 2. Marie Curie was born on November 7, 1867. 3. Marie Curie is a French scientist. ",
)
Retrieval output
Der numerische Wert basiert auf einer Likert-Skala (ganze Zahl 1 bis 5), wobei eine höhere Punktzahl auf eine bessere Leistung hinweist. Gegeben eine numerische Schwelle (ein Standard ist gesetzt), gibt der Evaluator auch Bestand aus, wenn der Wert >= Schwelle ist, oder scheitert anderleicht. Das Grund erklärt, warum die Punktzahl hoch oder niedrig ist.
{
"retrieval": 5.0,
"gpt_retrieval": 5.0,
"retrieval_reason": "The context contains relevant information that directly answers the query about Marie Curie's birthplace, with the most pertinent information placed at the top. Therefore, it fits the criteria for a high relevance score.",
"retrieval_result": "pass",
"retrieval_threshold": 3
}
Document retrieval
Aufgrund seiner vorgelagerten Rolle im ROG ist die Abrufqualität entscheidend. Schlechte Abrufqualität verringert die Wahrscheinlichkeit, dass Ihr Sprachmodell eine zufriedenstellende Antwort liefert, insbesondere wenn die Antwort korpusspezifisches Wissen erfordert. Verwenden Sie DocumentRetrievalEvaluator diese zur Bewertung der Abrufqualität und zur Optimierung Ihrer Suchparameter für RAG.
Der Dokumentabruf-Evaluator misst, wie gut das RAG die richtigen Dokumente aus dem Dokumentspeicher abruft. Als zusammengesetzter Evaluator, der für rag-Szenario mit Bodenwahrung nützlich ist, berechnet es eine Liste nützlicher Suchqualitätsmetriken zum Debuggen Ihrer RAG-Pipelines:
Metric Category Description Fidelity Search Fidelity Wie gut die obersten n abgerufenen Blöcke den Inhalt einer bestimmten Abfrage widerspiegeln: Anzahl guter Dokumente, die aus der Gesamtanzahl der bekannten guten Dokumente in einem Dataset zurückgegeben wurden NDCG Search NDCG Wie gut sind die Rankings zu einer idealen Reihenfolge, in der sich alle relevanten Elemente am Anfang der Liste befinden XDCG Search XDCG Wie gut die Ergebnisse in den K-Dokumenten sind, unabhängig von der Bewertung anderer Indexdokumente Maximale Relevanz N Maximale Relevanz suchen Maximale Relevanz in den top-k-Blöcken Holes Beschriftungslosigkeit durchsuchen Anzahl von Dokumenten mit fehlenden Relevanzurteilen für Abfragen oder grundwahrer Wahrheit Um Ihre RAG in einem Szenario namens Parameter-Aufräumen zu optimieren, können Sie diese Metriken verwenden, um die Suchparameter für die optimalen RAG-Ergebnisse zu kalibrieren. Erzeugen Sie Abrufergebnisse für verschiedene Suchparameter, wie Suchalgorithmen (vektorisch, semantisch), top_k und Chunk-Größen. Dann wird verwendet
DocumentRetrievalEvaluator, um die Parameter zu identifizieren, die die höchste Abrufqualität liefern.
Beispiel für das Abrufen von Dokumenten
from azure.ai.evaluation import DocumentRetrievalEvaluator
# These query_relevance_labels are given by your human- or LLM-judges.
retrieval_ground_truth = [
{
"document_id": "1",
"query_relevance_label": 4
},
{
"document_id": "2",
"query_relevance_label": 2
},
{
"document_id": "3",
"query_relevance_label": 3
},
{
"document_id": "4",
"query_relevance_label": 1
},
{
"document_id": "5",
"query_relevance_label": 0
},
]
# The min and max of the label scores are inputs to document retrieval evaluator
ground_truth_label_min = 0
ground_truth_label_max = 4
# These relevance scores come from your search retrieval system
retrieved_documents = [
{
"document_id": "2",
"relevance_score": 45.1
},
{
"document_id": "6",
"relevance_score": 35.8
},
{
"document_id": "3",
"relevance_score": 29.2
},
{
"document_id": "5",
"relevance_score": 25.4
},
{
"document_id": "7",
"relevance_score": 18.8
},
]
document_retrieval_evaluator = DocumentRetrievalEvaluator(
# Specify the ground truth label range
ground_truth_label_min=ground_truth_label_min,
ground_truth_label_max=ground_truth_label_max,
# Optionally override the binarization threshold for pass/fail output
ndcg_threshold = 0.5,
xdcg_threshold = 50.0,
fidelity_threshold = 0.5,
top1_relevance_threshold = 50.0,
top3_max_relevance_threshold = 50.0,
total_retrieved_documents_threshold = 50,
total_ground_truth_documents_threshold = 50
)
document_retrieval_evaluator(retrieval_ground_truth=retrieval_ground_truth, retrieved_documents=retrieved_documents)
Ausgabe des Dokumentabrufs
Alle numerischen Werte haben high_is_better=True, mit Ausnahme von holes und holes_ratio, die .high_is_better=False Bei einem numerischen Schwellenwert (Standardwert von 3) gibt der Prüfer Bestanden , wenn der Wert höher oder gleich dem Schwellenwert ist, oder scheitert andernfalls.
{
"ndcg@3": 0.6461858173,
"xdcg@3": 37.7551020408,
"fidelity": 0.0188438199,
"top1_relevance": 2,
"top3_max_relevance": 2,
"holes": 30,
"holes_ratio": 0.6000000000000001,
"holes_higher_is_better": False,
"holes_ratio_higher_is_better": False,
"total_retrieved_documents": 50,
"total_groundtruth_documents": 1565,
"ndcg@3_result": "pass",
"xdcg@3_result": "pass",
"fidelity_result": "fail",
"top1_relevance_result": "fail",
"top3_max_relevance_result": "fail",
# Omitting more fields ...
}
Groundedness
Es ist wichtig zu bewerten, wie fundiert die Antwort im Verhältnis zum Kontext ist. KI-Modelle könnten Inhalte erfinden oder irrelevante Antworten generieren.
GroundednessEvaluator Sie misst, wie gut die generierte Antwort mit dem gegebenen Kontext, der Erdenquelle übereinstimmt, und erfindet keinen Inhalt außerhalb davon.
Diese Metrik erfasst den präzisen Aspekt der Ausrichtung der Antwort auf die Erdungsquelle. Ein niedrigerer Score bedeutet, dass die Antwort für die Anfrage irrelevant ist oder außerhalb des Kontexts ungenaue Inhalte erfindet. Diese Metrik ist komplementär zu ResponseCompletenessEvaluator, die den Abrufaspekt der Antwortausrichtung mit der erwarteten Antwort erfasst.
Groundedness example
from azure.ai.evaluation import GroundednessEvaluator
groundedness = GroundednessEvaluator(model_config=model_config, threshold=3)
groundedness(
query="Is Marie Curie is born in Paris?",
context="Background: 1. Marie Curie is born on November 7, 1867. 2. Marie Curie is born in Warsaw.",
response="No, Marie Curie is born in Warsaw."
)
Groundedness output
Der numerische Wert liegt auf einer Likert-Skala (ganze Zahl 1 bis 5). Eine höhere Punktzahl ist besser. Gegeben eine numerische Schwelle (standardmäßig ist 3), gibt der Prüfer bestanden , wenn der Wert höher oder gleich dem Schwellenwert ist , oder fällt anderweitig durch. Verwenden Sie das Reason-Feld, um zu verstehen, warum die Punktzahl hoch oder niedrig ist.
{
"groundedness": 5.0,
"gpt_groundedness": 5.0,
"groundedness_reason": "The RESPONSE accurately answers the QUERY by confirming that Marie Curie was born in Warsaw, which is supported by the CONTEXT. It does not include any irrelevant or incorrect information, making it a complete and relevant answer. Thus, it deserves a high score for groundedness.",
"groundedness_result": "pass",
"groundedness_threshold": 3
}
Groundedness Pro
KI-Systeme können irrelevante Antworten generieren oder Inhalte außerhalb des gegebenen Kontexts erfinden. Unterstützt von Azure KI Inhaltssicherheit prüft GroundednessProEvaluator, ob die generierte Textantwort korrekt und mit dem gegebenen Kontext in einem abrufaugmentierten Generierungs-Frage-und-Antwort-Szenario konsistent ist. Es stellt sicher, dass die Antwort genau dem Kontext entspricht, um die Anfrage zu beantworten, und vermeidet Spekulationen oder Erfindungen. Es gibt ein binäres Label aus.
Beispiel Groundedness Pro
from azure.ai.evaluation import GroundednessProEvaluator
from azure.identity import DefaultAzureCredential
import os
from dotenv import load_dotenv
load_dotenv()
# Using Microsoft Foundry Hub
azure_ai_project = {
"subscription_id": os.environ.get("AZURE_SUBSCRIPTION_ID"),
"resource_group_name": os.environ.get("AZURE_RESOURCE_GROUP"),
"project_name": os.environ.get("AZURE_PROJECT_NAME"),
}
groundedness_pro = GroundednessProEvaluator(azure_ai_project=azure_ai_project),
groundedness_pro(
query="Is Marie Curie is born in Paris?",
context="Background: 1. Marie Curie is born on November 7, 1867. 2. Marie Curie is born in Warsaw.",
response="No, Marie Curie is born in Warsaw."
)
Groundedness Pro-Ausgang
Das Labelfeld wird zurückgegeben True , wenn alle Inhalte in der Antwort vollständig im Kontext verankert sind, und False sonst. Nutzen Sie das Motivfeld, um mehr über das Urteil hinter der Partitur zu erfahren.
{
"groundedness_pro_reason": "All Contents are grounded",
"groundedness_pro_label": True
}
Relevance
KI-Modelle können irrelevante Antworten auf eine Nutzeranfrage generieren. Es ist wichtig, die endgültige Antwort zu bewerten. Um dieses Problem zu lösen, verwenden RelevanceEvaluatorSie , das misst, wie effektiv eine Antwort eine Anfrage beantwortet. Es bewertet die Genauigkeit, Vollständigkeit und direkte Relevanz der Antwort basierend auf der Anfrage. Höhere Punktzahlen bedeuten bessere Relevanz.
Relevance example
from azure.ai.evaluation import RelevanceEvaluator
relevance = RelevanceEvaluator(model_config=model_config, threshold=3)
relevance(
query="Is Marie Curie is born in Paris?",
response="No, Marie Curie is born in Warsaw."
)
Relevance output
Der numerische Wert liegt auf einer Likert-Skala (ganze Zahl 1 bis 5). Eine höhere Punktzahl ist besser. Gegeben eine numerische Schwelle (standardmäßig ist 3), gibt der Prüfer bestanden , wenn der Wert höher oder gleich dem Schwellenwert ist , oder fällt anderweitig durch. Das Grund hilft dir zu verstehen, warum die Punktzahl hoch oder niedrig ist.
{
"relevance": 4.0,
"gpt_relevance": 4.0,
"relevance_reason": "The RESPONSE accurately answers the QUERY by stating that Marie Curie was born in Warsaw, which is correct and directly relevant to the question asked.",
"relevance_result": "pass",
"relevance_threshold": 3
}
Response completeness
KI-Systeme können Inhalte erfinden oder irrelevante Antworten außerhalb des gegebenen Kontexts generieren. Gegeben eine Bodenwahrheitsantwort, ResponseCompletenessEvaluator erfasst den Erinnerungsaspekt der Reaktionsausrichtung mit der erwarteten Antwort. Dieser Evaluator ergänzt GroundednessEvaluator, der den präzisen Aspekt der Ausrichtung der Antwort auf die Erdungsquelle erfasst.
Beispiel für Antwortvollständigkeit
from azure.ai.evaluation import ResponseCompletenessEvaluator
response_completeness = ResponseCompletenessEvaluator(model_config=model_config, threshold=3)
response_completeness(
response="Based on the retrieved documents, the shareholder meeting discussed the operational efficiency of the company and financing options.",
ground_truth="The shareholder meeting discussed the compensation package of the company's CEO."
)
Ausgabe der Antwortvollständigkeit
Der numerische Wert auf einer Likert-Skala (ganzzahlig 1 bis 5). Eine höhere Punktzahl ist besser. Gegeben ein numerischer Schwellenwert (standardmäßig 3), gibt der Evaluator auch 'bestanden ' aus, wenn der Wert >= Schwelle ist, oder scheitert anderleicht. Verwenden Sie das Reason-Feld, um zu verstehen, warum die Punktzahl hoch oder niedrig ist.
{
"response_completeness": 1,
"response_completeness_result": "fail",
"response_completeness_threshold": 3,
"response_completeness_reason": "The response does not contain any relevant information from the ground truth, which specifically discusses the CEO's compensation package. Therefore, it is considered fully incomplete."
}