Kommentar
Å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.
Visar för närvarande:Foundry-portalversion - (klassisk)Växla till version för den nya Foundry-portalen
Note
Microsoft Foundry SDK för utvärdering och Foundry-portalen är i offentlig förhandsversion, men API:erna är allmänt tillgängliga för utvärdering av modell och datauppsättning (agentutvärderingen finns kvar i offentlig förhandsversion). Azure AI Evaluation SDK och utvärderare markerade (förhandsversion) i den här artikeln finns för närvarande i offentlig förhandsversion överallt.
Ett rag-system (Retrieval-Augmented Generation) försöker generera det mest relevanta svaret som överensstämmer med grunddokument som svar på en användares fråga. En användares fråga utlöser en sökhämtning i korpusen av jordningsdokument för att ge grundkontext för AI-modellen för att generera ett svar.
Det är viktigt att utvärdera:
- Document Retrieval
- Retrieval
- Groundedness
- Groundedness Pro (förhandsgranskning)
- Relevance
- Response Completeness
Dessa utvärderare fokuserar på tre aspekter:
- Relevansen av hämtandets resultat för användarens sökning: använd Dokumenthämtning om du har etiketter för frågaspecifik dokumentrelevans, eller frågerelevansbedömning (qrels) för mer exakta mätningar. Använd Retrieval om du bara har den återfunna kontexten, men du har inga sådana etiketter och har högre tolerans för mindre finkorniga mätningar.
- Konsekvensen i det genererade svaret med avseende på grunddokumenten: använd Grundad om du vill anpassa definitionen av jordbundenhet i vår öppna källkod stora språkmodell-judge (LLM-judge) prompt. Använd Groundedness Pro (förhandsgranskning) om du vill ha en tydlig definition.
- Relevansen av det slutliga svaret på frågan: använd Relevans om du inte har grundsanning. Använd Svarsfullständighet om du har grundläggande sanning och inte vill att ditt svar ska missa kritisk information.
Tänk på grundlighet och svars fullständighet som:
- Groundedness fokuserar på precisionsaspekten av svaret. Den innehåller inte innehåll utanför grundkontexten.
- Svars fullständighet fokuserar på återkallningsaspekten i svaret. Den saknar inte kritisk information jämfört med det förväntade svaret eller grundsanningen.
Modellkonfiguration för AI-assisterade utvärderare
Som referens i följande utdrag använder AI-assisterade kvalitetsutvärderare, förutom Groundedness Pro, 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ärderarmodellen
Utvärderarna stöder AzureOpenAI eller OpenAI resonemangsmodeller och icke-resonerande modeller för LLM-domaren beroende på utvärderarna:
| Evaluators | Resonemangsmodeller som domare (exempel: o-seriemodeller från Azure OpenAI/OpenAI) | Icke-resonerande modeller som domare (exempel: gpt-4.1, gpt-4o) | To enable |
|---|---|---|---|
IntentResolution, TaskAdherence, ToolCallAccuracy, ResponseCompleteness, Coherence, Fluency, , Similarity, Groundedness, , RetrievalRelevance |
Supported | Supported | Ange ytterligare parameter is_reasoning_model=True för att initiera utvärderare |
| Other evaluators | Not Supported | Supported | -- |
För komplex utvärdering som kräver förfinat resonemang, använd en stark resonemangsmodell som 4.1-mini med en balans mellan resonemangsprestanda och kostnadseffektivitet.
Retrieval
På grund av dess uppströmsroll i ROG är återvinningskvalitet avgörande. Om återvinningskvaliteten är dålig och svaret kräver korpusspecifik kunskap, är språkmodellen mindre benägen att ge ett tillfredsställande svar.
RetrievalEvaluatormäter den textuella kvaliteten på återvinningsresultat med en språkmodell utan att kräva grundsanning, även kallad sökrelevansbedömning.
Detta tillvägagångssätt tillför värde jämfört med DocumentRetrievalEvaluator, som mäter ndcg, xdcg, , fidelityoch andra klassiska informationsåtervinningsmått som kräver grundsanning. Denna mätmetod fokuserar på hur relevanta kontextbitarna är för att hantera en fråga och hur de mest relevanta kontextbitarna dyker upp högst upp på listan. Kontextbitarna kodas som strängar.
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
Den numeriska poängen baseras på en Likert-skala (heltal 1 till 5), där en högre poäng indikerar bättre prestation. Givet en numerisk tröskel (en standard sätts) ger utvärderaren också godkänt om poängen >= tröskel, eller underkänns annars. Anledningsfältet förklarar varför poängen är hög eller låg.
{
"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
På grund av dess uppströmsroll i ROG är återvinningskvalitet avgörande. Dålig återsökningskvalitet minskar sannolikheten att din språkmodell ger ett tillfredsställande svar, särskilt när svaret kräver korpusspecifik kunskap. Använd DocumentRetrievalEvaluator för att utvärdera återvinningskvalitet och optimera dina sökparametrar för RAG.
Utvärderaren för dokumenthämtning mäter hur väl RAG hämtar rätt dokument från dokumentarkivet. Som en sammansatt utvärderare som är användbar för RAG-scenario med grundsanning beräknar den en lista över användbara sökkvalitetsmått för felsökning av RAG-pipelines:
Metric Category Description Fidelity Search Fidelity Hur väl de översta n hämtade segmenten återspeglar innehållet för en viss fråga: antalet bra dokument som returneras av det totala antalet kända bra dokument i en datauppsättning NDCG Search NDCG Hur bra är rankningen till en idealisk ordning där alla relevanta objekt finns överst i listan XDCG Search XDCG Hur bra resultaten är i topp-k-dokumenten oavsett bedömning av andra indexdokument Maximal relevans N Maximal relevans för sökning Maximal relevans i segmenten top-k Holes Search Label Sanity Antal dokument med saknade frågerelevansbedömningar eller grundsanning Om du vill optimera DIN RAG i ett scenario som kallas parametersvepning kan du använda dessa mått för att kalibrera sökparametrarna för optimala RAG-resultat. Generera återvinningsresultat för olika sökparametrar, såsom sökalgoritmer (vektor, semantisk), top_k och chunk-storlekar. Använd sedan
DocumentRetrievalEvaluatorför att identifiera de parametrar som ger högst återvinningskvalitet.
Exempel på dokumenthämtning
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)
Utdata för dokumenthämtning
Alla numeriska poäng har high_is_better=True, utom och holesholes_ratio, som har high_is_better=False. Med en numerisk tröskel (standard 3) ger utvärderaren godkänt resultat om poängen är högre än eller lika med tröskeln, eller underkänns annars.
{
"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
Det är viktigt att utvärdera hur grundad responsen är i förhållande till sammanhanget. AI-modeller kan fabricera innehåll eller generera irrelevanta svar.
GroundednessEvaluator Mäter hur väl det genererade svaret stämmer överens med den givna kontexten, den grundande källan, och fabricerar inte innehåll utanför den.
Denna mätmetod fångar precisionsaspekten av responsjustering med jordningskällan. En lägre poäng innebär att svaret är irrelevant för sökningen eller fabricerar felaktigt innehåll utanför sammanhanget. Denna metrik är komplementär till ResponseCompletenessEvaluator, som fångar återkallningsaspekten av svarsanpassning med det förväntade svaret.
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
Den numeriska poängen är på en Likert-skala (heltal 1 till 5). Ett högre resultat är bättre. Givet en numerisk tröskel (standardvärdet är 3) ger utvärderaren godkänt resultat om poängen är högre än eller lika med tröskeln, eller underkänns annars. Använd anledningsfältet för att förstå varför poängen är hög eller låg.
{
"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
AI-system kan generera irrelevanta svar eller fabricera innehåll utanför den givna kontexten. Drivna av Azure AI Innehållsäkerhet kontrollerar GroundednessProEvaluator om det genererade textsvaret är korrekt och förenligt med den givna kontexten i ett återhämtningsförstärkt frågescenario. Det säkerställer att svaret noggrant följer kontexten för att besvara frågan, vilket undviker spekulation eller fabricering. Den ger en binär etikett.
Groundedness Pro-exempel
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-utgång
Etikettfältet returnerar True om allt innehåll i svaret är helt förankrat i kontexten, och False annars. Använd anledningsfältet för att lära dig mer om bedömningen bakom poängen.
{
"groundedness_pro_reason": "All Contents are grounded",
"groundedness_pro_label": True
}
Relevance
AI-modeller kan generera irrelevanta svar på en användarfråga. Det är viktigt att utvärdera det slutgiltiga svaret. För att hantera detta problem använder RelevanceEvaluatordu , som mäter hur effektivt ett svar besvarar en fråga. Den bedömer svarets noggrannhet, fullständighet och direkta relevans baserat på frågan. Högre poäng innebär bättre relevans.
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
Den numeriska poängen är på en Likert-skala (heltal 1 till 5). Ett högre resultat är bättre. Givet en numerisk tröskel (standardvärdet är 3) ger utvärderaren godkänt resultat om poängen är högre än eller lika med tröskeln, eller underkänns annars. Anledningsfältet hjälper dig att förstå varför poängen är hög eller låg.
{
"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
AI-system kan fabricera innehåll eller generera irrelevanta svar utanför det givna sammanhanget. Givet ett markbaserat sanningssvar ResponseCompletenessEvaluator fångar återkallningsaspekten av svarets anpassning till det förväntade svaret. Denna utvärderare kompletterar GroundednessEvaluator, vilket fångar precisionsaspekten av responsjustering med jordningskällan.
Exempel på svarsfullständighet
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."
)
Responsfullständighetsutdata
Det numeriska poängresultatet på en Likert-skala (heltal 1 till 5). Ett högre resultat är bättre. Givet en numerisk tröskel (standard 3) ger utvärderaren också godkänt om poängen >= tröskel, eller underkänt annars. Använd anledningsfältet för att förstå varför poängen är hög eller låg.
{
"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."
}