Algemene evaluators (klassiek)

Momenteel weergeven:Foundry -portalversie - (klassiek)Overschakelen naar versie voor de nieuwe Foundry-portal

Note

De Microsoft Foundry SDK voor evaluatie en Foundry-portal zijn beschikbaar in openbare preview, maar de API's zijn algemeen beschikbaar voor model- en gegevenssetevaluatie (agentevaluatie blijft in openbare preview). De Azure AI Evaluation SDK en evaluators die in dit artikel zijn gemarkeerd (preview) zijn momenteel overal in openbare preview.

AI-systemen kunnen tekstuele antwoorden genereren die onsamenhangend zijn, of missen de algemene schrijfkwaliteit die verder gaat dan minimale grammaticale correctheid. Om deze problemen aan te pakken, ondersteunt Microsoft Foundry het evalueren van coherentie en vloeiendheid.

Als je een vragen-antwoord (QA) scenario hebt met zowel context en ground truth data naast query en response, kun je ook onze QAEvalueuator gebruiken, een samengestelde evaluator die relevante evaluators gebruikt voor beoordeling.

Modelconfiguratie voor AI-ondersteunde evaluators

Ter referentie in het volgende codefragment gebruiken de door AI ondersteunde evaluators een modelconfiguratie als volgt:

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

Ondersteuning van evaluatormodellen

Foundry ondersteunt AzureOpenAI of OpenAI redeneermodellen en niet-redeneermodellen voor de grote taalmodel-judge (LLM-judge), afhankelijk van de evaluators:

Evaluators Reasoning Models as Judge (voorbeeld: o-serie modellen uit Azure OpenAI / OpenAI) Niet-redenerende modellen als rechter (bijvoorbeeld: gpt-4.1, gpt-4o, enzovoort) To enable
IntentResolution, , ToolCallAccuracy, ResponseCompletenessTaskAdherence, , Coherence, Fluency, , RetrievalGroundednessSimilarityRelevance Supported Supported Extra parameter is_reasoning_model=True instellen bij het initialiseren van evaluators
Other evaluators Not Supported Supported --

Voor complexe evaluaties die verfijnd redeneren vereisen, raden wij een sterk redeneermodel aan, zoals 4.1-mini met een balans tussen redeneerprestaties en kostenefficiëntie.

Coherence

De coherentie-evaluator meet de logische en ordelijke presentatie van ideeën in een antwoord, waardoor de lezer de gedachtetrein van de schrijver gemakkelijk kan volgen en begrijpen. Een coherent antwoord richt zich rechtstreeks op de vraag met duidelijke verbindingen tussen zinnen en alinea's, met behulp van de juiste overgangen en een logische reeks ideeën. Hogere scores betekenen een betere samenhang.

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

De numerieke score op een Likert-schaal (geheel getal 1 tot 5). Een hogere score is beter. Gegeven een numerieke drempel (standaard 3), geeft het ook 'geslaagd ' als de score >= drempel is, of anders faalt . Gebruik het redenveld om te begrijpen waarom de score hoog of laag is.

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

De fluency evaluator meet de effectiviteit en duidelijkheid van geschreven communicatie. Deze meting richt zich op grammaticale nauwkeurigheid, vocabulaire bereik, zincomplexiteit, samenhang en algehele leesbaarheid. Het beoordeelt hoe soepel ideeën worden overgebracht en hoe gemakkelijk de lezer de tekst kan begrijpen.

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

De numerieke score op een Likert-schaal (geheel getal 1 tot 5). Een hogere score is beter. Gegeven een numerieke drempel (standaard 3), geeft het ook 'geslaagd ' als de score >= drempel is, of anders faalt . Gebruik het redenveld om te begrijpen waarom de score hoog of laag is.

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

Vraag beantwoordt samengestelde evaluator

QAEvaluator Meet uitgebreide verschillende aspecten in een vragen-antwoordscenario:

  • 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

Terwijl de F1-score een numerieke score geeft op een 0-1 vlotschaal, geven de andere beoordelaars numerieke scores op een Likert-schaal (geheel getal 1 tot 5). Een hogere score is beter. Gegeven een numerieke drempel (standaard 3), geeft het ook 'geslaagd ' als de score >= drempel is, of anders faalt . Gebruik het redenveld om te begrijpen waarom de score hoog of laag is.

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