Dela via


Utvärderare för generell användning

AI-system kan generera textsvar som är osammanhängande eller saknar den allmänna skrivkvalitet som du kanske önskar utöver minsta grammatiska korrekthet. Du kan åtgärda dessa problem genom att använda Koherens och fluency.

Om du har ett scenario med frågesvar (QA) med både context och ground truth data utöver query och responsekan du också använda vår QAEvaluator som en sammansatt utvärderare som använder relevanta utvärderare för bedömning.

Modellkonfiguration för AI-assisterade utvärderare

Som referens i följande kodfragment använder DE AI-assisterade utvärderarna en modellkonfiguration på följande sätt:

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

Tips/Råd

Vi rekommenderar att du använder o3-mini för en balans mellan resonemangskapacitet och kostnadseffektivitet.

Koherens

CoherenceEvaluator mäter den logiska och ordnade presentationen av idéer i ett svar, så att läsaren enkelt kan följa och förstå författarens tanketåg. Ett sammanhängande svar tar direkt upp frågan med tydliga kopplingar mellan meningar och stycken, med lämpliga övergångar och en logisk sekvens av idéer. Högre poäng innebär bättre sammanhållning.

Exempel på enhetlighet

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

Enhetliga utdata

Den numeriska poängen på en likert-skala (heltal 1 till 5) och en högre poäng är bättre. Med tanke på ett numeriskt tröskelvärde (standardvärdet är 3) matar vi också ut "pass" om poängen >= tröskelvärdet eller "misslyckas" annars. Med hjälp av orsaksfältet kan du förstå varför poängen är hög eller låg.

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

Flyt

FluencyEvaluatormäter effektiviteten och tydligheten i skriftlig kommunikation, med fokus på grammatisk noggrannhet, ordförrådsintervall, meningskomplexitet, enhetlighet och övergripande läsbarhet. Den utvärderar hur smidigt idéer förmedlas och hur enkelt läsaren kan förstå texten.

Exempel på flyt

from azure.ai.evaluation import FluencyEvaluator

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

Flödesutdata

Den numeriska poängen på en likert-skala (heltal 1 till 5) och en högre poäng är bättre. Med tanke på ett numeriskt tröskelvärde (standardvärdet är 3) matar vi också ut "pass" om poängen >= tröskelvärdet eller "misslyckas" annars. Med hjälp av orsaksfältet kan du förstå varför poängen är hög eller låg.

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

Fråga som besvarar sammansatt utvärderare

QAEvaluator olika aspekter i ett frågesvarsscenario:

  • Relevans
  • Jordnära
  • Flyt
  • Koherens
  • Likhet
  • F1-poäng

QA-exempel

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-utdata

Medan F1-poängen utdata en numerisk poäng på 0-1 float skala, de andra utvärderarna ut numeriska poäng på en likert skala (heltal 1 till 5) och en högre poäng är bättre. Med tanke på ett numeriskt tröskelvärde (standardvärdet är 3) matar vi också ut "pass" om poängen >= tröskelvärdet eller "misslyckas" annars. Med hjälp av orsaksfältet kan du förstå varför poängen är hög eller låg.

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