Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 response
kan 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
FluencyEvaluator
mä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
}