Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Visualización actual:Versión - del portal de Foundry (clásico)Cambio a la versión del nuevo portal de Foundry
Note
El SDK de Microsoft Foundry para la evaluación y el portal de Foundry están en versión preliminar pública, pero las API están disponibles con carácter general para la evaluación del modelo y del conjunto de datos (la evaluación del agente permanece en versión preliminar pública). Los Azure SDK y evaluadores de evaluación de IA marcados (versión preliminar) en este artículo se encuentran actualmente en versión preliminar pública en todas partes.
Un sistema de Generación Retrieval-Augmented (RAG) intenta generar la respuesta más relevante consistente con la base de documentos en respuesta a la consulta del usuario. La consulta de un usuario desencadena una recuperación de búsqueda en el corpus de documentos de puesta en tierra para proporcionar contexto de base para que el modelo de IA genere una respuesta.
Es importante evaluar:
- Document Retrieval
- Retrieval
- Groundedness
- Groundedness Pro (vista previa)
- Relevance
- Response Completeness
Estos evaluadores se centran en tres aspectos:
- La relevancia de los resultados de la recuperación para la consulta del usuario: utiliza Recuperación de Documentos si tienes etiquetas para la relevancia específica de la consulta, o juicio de relevancia de la consulta (qrels) para mediciones más precisas. Usa Recuperación si solo tienes el contexto recuperado, pero no tienes esas etiquetas y tienes una mayor tolerancia a una medición menos detallada.
- La consistencia de la respuesta generada respecto a los documentos de fundamento: usa Fundamento si quieres personalizar la definición de fundamento en nuestro prompt de código abierto para el gran juez del modelo de lenguaje (LLM-judge). Usa Groundedness Pro (vista previa) si quieres una definición clara.
- La relevancia de la respuesta final a la consulta: usa Relevancia si no tienes la verdad de la base. Utiliza Complejidad de Respuesta si tienes la verdad de fondo y no quieres que tu respuesta pase por alto información clave.
Piense en la integridad de la respuesta y la base como:
- La base se centra en el aspecto de precisión de la respuesta. No contiene contenido fuera del contexto de base.
- La integridad de la respuesta se centra en el aspecto de recuperación de la respuesta. No pierde información crítica en comparación con la respuesta esperada o la verdad básica.
Configuración de modelos para evaluadores asistidos por IA
Para referencia en los siguientes fragmentos, los evaluadores de calidad asistidos por IA, excepto Groundedness Pro, utilizan una configuración de modelo para el juez LLM:
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"),
)
Soporte para modelos evaluadores
Los evaluadores soportan modelos de razonamiento AzureOpenAI o OpenAI y modelos no razonantes para el juez LLM, dependiendo de los evaluadores:
| Evaluators | Modelos de razonamiento como juez (ejemplo: modelos de serie o de Azure OpenAI /OpenAI) | Modelos no razonantes como Judge (ejemplo: gpt-4.1, gpt-4o) | To enable |
|---|---|---|---|
IntentResolution, TaskAdherence, ToolCallAccuracy, ResponseCompleteness, Coherence, Fluency, Similarity, Groundedness, , RetrievalRelevance |
Supported | Supported | Establecimiento de parámetros is_reasoning_model=True adicionales para inicializar evaluadores |
| Other evaluators | Not Supported | Supported | -- |
Para una evaluación compleja que requiere razonamiento refinado, utiliza un modelo de razonamiento sólido, como 4.1-mini el que equilibra el rendimiento del razonamiento y la eficiencia de costes.
Retrieval
Debido a su papel en la parte superior del RAG, la calidad de recuperación es fundamental. Si la calidad de la recuperación es pobre y la respuesta requiere conocimiento específico del corpus, el modelo de lenguaje es menos probable que proporcione una respuesta satisfactoria.
RetrievalEvaluator Mide la calidad textual de los resultados de recuperación con un modelo de lenguaje sin requerir la verdad fundamental, también conocido como juicio de relevancia de consulta.
Este enfoque aporta valor en comparación con DocumentRetrievalEvaluator, que mide ndcg, xdcg, fidelity, y otras métricas clásicas de recuperación de información que requieren la verdad de base. Esta métrica se centra en cuán relevantes son los chunks de contexto para abordar una consulta y cómo los chunks de contexto más relevantes aparecen en la parte superior de la lista. Los bloques de contexto están codificados como cadenas.
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
La puntuación numérica se basa en una escala de Likert (entero del 1 al 5), donde una puntuación más alta indica un mejor rendimiento. Dado un umbral numérico (se establece un valor por defecto), el evaluador también indica aprobado si la puntuación >= umbral, o suspendido en caso contrario. El campo de razón explica por qué la puntuación es alta o baja.
{
"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
Debido a su papel en la parte superior del RAG, la calidad de recuperación es fundamental. Una mala calidad de recuperación reduce la probabilidad de que tu modelo de lenguaje proporcione una respuesta satisfactoria, especialmente cuando la respuesta requiere conocimiento específico del corpus. Úsalo DocumentRetrievalEvaluator para evaluar la calidad de la recuperación y optimizar tus parámetros de búsqueda para RAG.
El evaluador de recuperación de documentos mide lo bien que el RAG recupera los documentos correctos del almacén de documentos. Como evaluador compuesto útil para el escenario RAG con la verdad básica, calcula una lista de métricas de calidad de búsqueda útiles para depurar las canalizaciones rag:
Metric Category Description Fidelity Search Fidelity La forma en que los fragmentos recuperados principales reflejan el contenido de una consulta determinada: número de documentos correctos devueltos fuera del número total de documentos correctos conocidos en un conjunto de datos NDCG Search NDCG ¿Qué tan bueno son las clasificaciones a un orden ideal donde todos los elementos relevantes están en la parte superior de la lista? XDCG Search XDCG Cómo funcionan los resultados en los documentos top-k, independientemente de la puntuación de otros documentos de índice Relevancia máxima N Relevancia máxima de búsqueda Relevancia máxima en los fragmentos principales k Holes Integridad de la etiqueta de búsqueda Número de documentos con juicios de relevancia de consulta que faltan o la verdad de la base Para optimizar el RAG en un escenario denominado barrido de parámetros, puede usar estas métricas para calibrar los parámetros de búsqueda para obtener los resultados de RAG óptimos. Genera resultados de recuperación para diferentes parámetros de búsqueda, como algoritmos de búsqueda (vector, semántica), top_k y tamaños de bloques. Luego, usásemos
DocumentRetrievalEvaluatorpara identificar los parámetros que proporcionan la mayor calidad de recuperación.
Ejemplo de recuperación de documentos
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)
Salida de recuperación de documentos
Todas las puntuaciones numéricas tienen high_is_better=True, excepto y holesholes_ratio, que tienen high_is_better=False. Con un umbral numérico (por defecto de 3), el evaluador responde a aprobado si la puntuación es mayor o igual al umbral, o suspende en caso contrario.
{
"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
Es importante evaluar cuán fundamentada está la respuesta en relación con el contexto. Los modelos de IA pueden fabricar contenido o generar respuestas irrelevantes.
GroundednessEvaluator Mide qué tan bien se alinea la respuesta generada con el contexto dado, la fuente de conexión a la tierra y no fabrica contenido fuera de él.
Esta métrica captura el aspecto de precisión de la alineación de la respuesta con la fuente de tierra. Una puntuación más baja significa que la respuesta es irrelevante para la consulta o fabrica contenido inexacto fuera del contexto. Esta métrica es complementaria a ResponseCompletenessEvaluator, que captura el aspecto de la alineación de la respuesta con la respuesta esperada.
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
La puntuación numérica está en una escala de Likert (entero del 1 al 5). Una puntuación más alta es mejor. Dado un umbral numérico (el valor por defecto es 3), el evaluador responde si la puntuación es mayor o igual al umbral, o falla en caso contrario. Usa el campo de razón para entender por qué la puntuación es alta o baja.
{
"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
Los sistemas de IA pueden generar respuestas irrelevantes o fabricar contenido fuera del contexto dado. Impulsado por Seguridad del contenido de Azure AI, GroundednessProEvaluator comprueba si la respuesta de texto generada es precisa y coherente con el contexto dado en un escenario de preguntas y respuestas de generación aumentada por recuperación. Garantiza que la respuesta se ajuste estrechamente al contexto para responder a la pregunta, evitando especulaciones o invenciones. Emite una etiqueta binaria.
Ejemplo de Groundedness Pro
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."
)
Salida Groundedness Pro
El campo etiqueta devuelve True si todo el contenido de la respuesta está completamente fundamentado en el contexto, y False en otros aspectos. Utiliza el campo de razón para aprender más sobre el criterio detrás de la puntuación.
{
"groundedness_pro_reason": "All Contents are grounded",
"groundedness_pro_label": True
}
Relevance
Los modelos de IA pueden generar respuestas irrelevantes a una consulta de usuario. Es importante evaluar la respuesta final. Para abordar este problema, use RelevanceEvaluator, que mide la eficacia con la que una respuesta responde a una consulta. Evalúa la precisión, completitud y relevancia directa de la respuesta en función de la consulta. Puntuaciones más altas significan mayor relevancia.
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
La puntuación numérica está en una escala de Likert (entero del 1 al 5). Una puntuación más alta es mejor. Dado un umbral numérico (el valor por defecto es 3), el evaluador responde si la puntuación es mayor o igual al umbral, o falla en caso contrario. El campo de la razón te ayuda a entender por qué la puntuación es alta o baja.
{
"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
Los sistemas de IA pueden fabricar contenido o generar respuestas irrelevantes fuera del contexto dado. Dada una respuesta de verdad fundamental, ResponseCompletenessEvaluator captura el aspecto de recuerdo de la alineación de la respuesta con la respuesta esperada. Este evaluador complementa GroundednessEvaluator, que captura el aspecto de precisión de la alineación de la respuesta con la fuente de conexión a tierra.
Ejemplo de completitud de respuesta
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."
)
Salida de completitud de respuesta
La puntuación numérica en una escala de Likert (entero del 1 al 5). Una puntuación más alta es mejor. Dado un umbral numérico (por defecto 3), el evaluador también indica aprobado si la puntuación >= umbral, o suspendido en caso contrario. Usa el campo de razón para entender por qué la puntuación es alta o baja.
{
"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."
}