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.
Det är viktigt att jämföra hur nära det textsvar som genereras av AI-systemet matchar det svar du förväntar dig. Det förväntade svaret kallas grundsanningen.
Använd ett LLM-domarmått som SimilarityEvaluator med fokus på den semantiska likheten mellan det genererade svaret och grundsanningen. Du kan också använda mått från fältet för bearbetning av naturligt språk (NLP), inklusive F1-poäng, BLEU, GLEU, ROUGE och METEOR med fokus på överlappningar av token eller n-gram mellan de två.
Modellkonfiguration för AI-assisterade utvärderare
Som referens i följande kodfragment använder DE AI-assisterade utvärderarna en modellkonfiguration för LLM-domaren:
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"),
)
Stöd för utvärderingsmodell
Vi stöder AzureOpenAI- eller OpenAI-resonemangsmodeller och icke-resonemangsmodeller för LLM-domaren beroende på utvärderarna:
| Evaluators | Resonemangsmodeller som domare (exempel: o-seriemodeller från Azure OpenAI/OpenAI) | Modeller utan resonemang som Domare (exempel: gpt-4.1, gpt-4o osv.) | Så här aktiverar du |
|---|---|---|---|
IntentResolution, TaskAdherence, ToolCallAccuracy, ResponseCompleteness, Coherence, Fluency, , Similarity, Groundedness, , RetrievalRelevance |
Understödd | Understödd | Ange ytterligare parameter is_reasoning_model=True för att initiera utvärderare |
| Andra utvärderare | Stöds inte | Understödd | -- |
För komplex utvärdering som kräver förfinade resonemang rekommenderar vi en stark resonemangsmodell som 4.1-mini med en balans mellan resonemangsprestanda och kostnadseffektivitet.
Likhet
SimilarityEvaluator mäter graden av semantisk likhet mellan den genererade texten och dess grundsanning med avseende på en fråga. Jämfört med andra textlikhetsmått som kräver grundsanningar fokuserar det här måttet på semantik i ett svar i stället för enkel överlappning i token eller n-gram. Den tar också hänsyn till den bredare kontexten för en fråga.
Likhetsexempel
from azure.ai.evaluation import SimilarityEvaluator
similarity = SimilarityEvaluator(model_config=model_config, threshold=3)
similarity(
query="Is Marie Curie born in Paris?",
response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
ground_truth="Marie Curie was born in Warsaw."
)
Likhetsutdata
Utdata är en numerisk poäng på en likert-skala, heltal 1 till 5. En högre poäng innebär en högre grad av likhet. Med tanke på ett numeriskt tröskelvärde (standardvärdet 3) skickar det här exemplet även ett pass om poängen >= tröskelvärdet eller misslyckas på annat sätt. Använd orsaksfältet för att förstå varför poängen är hög eller låg.
{
"similarity": 4.0,
"gpt_similarity": 4.0,
"similarity_result": "pass",
"similarity_threshold": 3
}
F1-poäng
F1ScoreEvaluator mäter likheten mellan delade token mellan den genererade texten och grundsanningen. Den fokuserar på både precision och återkallande. F1-poängen beräknar förhållandet mellan antalet delade ord mellan modellgenereringen och grundsanningen. Förhållandet beräknas över de enskilda orden i det genererade svaret mot dessa ord i det grundläggande sanningssvaret. Antalet delade ord mellan generation och sanning är grunden för F1-poängen.
- Precision är förhållandet mellan antalet delade ord och det totala antalet ord i genereringen.
- Recall är förhållandet mellan antalet delade ord och det totala antalet ord i grundsanningen.
F1-poängexempel
from azure.ai.evaluation import F1ScoreEvaluator
f1_score = F1ScoreEvaluator(threshold=0.5)
f1_score(
response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
ground_truth="Marie Curie was born in Warsaw."
)
F1-poängutdata
Den numeriska poängen är en 0-1 float. En högre poäng är bättre. Givet ett numeriskt tröskelvärde (standardvärdet är 0,5) skickas även resultatet om poängen >= tröskelvärdet eller misslyckas på annat sätt.
{
"f1_score": 0.631578947368421,
"f1_result": "pass",
"f1_threshold": 0.5
}
BLEU-poäng
BleuScoreEvaluator beräknar bleu-poängen (Tvåspråkig utvärderingsunderstudy) som ofta används vid bearbetning av naturligt språk och maskinöversättning. Den mäter hur nära den genererade texten matchar referenstexten.
BLEU-exempel
from azure.ai.evaluation import BleuScoreEvaluator
bleu_score = BleuScoreEvaluator(threshold=0.3)
bleu_score(
response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
ground_truth="Marie Curie was born in Warsaw."
)
BLEU-utdata
Den numeriska poängen är en 0-1 float. En högre poäng är bättre. Givet ett numeriskt tröskelvärde (standardvärdet är 0,5) skickas även resultatet om poängen >= tröskelvärdet eller misslyckas på annat sätt.
{
"bleu_score": 0.1550967560878879,
"bleu_result": "fail",
"bleu_threshold": 0.3
}
GLEU-poäng
GleuScoreEvaluator beräknar Google-BLEU -poängen (GLEU). Den mäter likheten mellan delad n-gram mellan den genererade texten och den markbaserade sanningen. På samma sätt som BLEU-poängen fokuserar den på både precision och återkallande. Den tar upp nackdelarna med BLEU-poängen med hjälp av ett belöningsmål per mening.
EXEMPEL på GLEU-poäng
from azure.ai.evaluation import GleuScoreEvaluator
gleu_score = GleuScoreEvaluator(threshold=0.2)
gleu_score(
response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
ground_truth="Marie Curie was born in Warsaw."
)
GLEU-poängutdata
Den numeriska poängen är en 0-1 float. En högre poäng är bättre. Givet ett numeriskt tröskelvärde (standardvärdet är 0,5) skickas även resultatet om poängen >= tröskelvärdet eller misslyckas på annat sätt.
{
"gleu_score": 0.25925925925925924,
"gleu_result": "pass",
"gleu_threshold": 0.2
}
ROUGE-poäng
RougeScoreEvaluator beräknar Recall-Oriented Understudy for Gisting Evaluation (ROUGE), en uppsättning mått som används för att utvärdera automatisk sammanfattning och maskinöversättning. Den mäter överlappningen mellan genererad text och referenssammanfattningar. ROUGE fokuserar på återkallningsorienterade åtgärder för att bedöma hur väl den genererade texten täcker referenstexten. ROUGE-poängen består av precision, träffsäkerhet och F1-poäng.
EXEMPEL PÅ ROUGE-poäng
from azure.ai.evaluation import RougeScoreEvaluator, RougeType
rouge = RougeScoreEvaluator(rouge_type=RougeType.ROUGE_L, precision_threshold=0.6, recall_threshold=0.5, f1_score_threshold=0.55)
rouge(
response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
ground_truth="Marie Curie was born in Warsaw."
)
ROUGE-poängutdata
Den numeriska poängen är en 0-1 float. En högre poäng är bättre. Givet ett numeriskt tröskelvärde (standardvärdet är 0,5) skickas även resultatet om poängen >= tröskelvärdet eller misslyckas på annat sätt.
{
"rouge_precision": 0.46153846153846156,
"rouge_recall": 1.0,
"rouge_f1_score": 0.631578947368421,
"rouge_precision_result": "fail",
"rouge_recall_result": "pass",
"rouge_f1_score_result": "pass",
"rouge_precision_threshold": 0.6,
"rouge_recall_threshold": 0.5,
"rouge_f1_score_threshold": 0.55
}
METEOR-poäng
MeteorScoreEvaluator mäter likheten mellan den genererade texten och grundsanningen. På samma sätt som BLEU-poängen fokuserar den på precision och återkallande. Den åtgärdar begränsningar för andra mått som BLEU-poängen genom att överväga synonymer, härstamning och parafraser för innehållsjustering.
METEOR-poängexempel
from azure.ai.evaluation import MeteorScoreEvaluator
meteor_score = MeteorScoreEvaluator(threshold=0.9)
meteor_score(
response="According to wikipedia, Marie Curie was not born in Paris but in Warsaw.",
ground_truth="Marie Curie was born in Warsaw."
)
METEOR-poängutdata
Den numeriska poängen är en 0-1 float. En högre poäng är bättre. Givet ett numeriskt tröskelvärde (standardvärdet är 0,5) skickas även resultatet om poängen >= tröskelvärdet eller misslyckas på annat sätt.
{
"meteor_score": 0.8621140763997908,
"meteor_result": "fail",
"meteor_threshold": 0.9
}