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.
Los sistemas de IA pueden generar respuestas textuales incoherentes o carecer de la calidad general de escritura más allá de la corrección gramatical mínima. Para abordar estos problemas, Microsoft Foundry apoya la evaluación de la coherencia y la fluidez.
Si tienes un escenario de preguntas y respuestas (QA) con ambos context datos ground truth y además de query y response, también puedes usar nuestro QAEvaluator, que es un evaluador compuesto que utiliza evaluadores relevantes para el juicio.
Configuración de modelos para evaluadores asistidos por IA
Para referencia en el siguiente fragmento de código, los evaluadores asistidos por IA utilizan una configuración de modelo de la siguiente manera:
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
Foundry soporta AzureOpenAI o OpenAI y modelos no razonantes para el juez de modelos de lenguaje grandes (LLM-judge), dependiendo de los evaluadores:
| Evaluators | Modelos de razonamiento como juez (ejemplo: modelos de serie o de Azure OpenAI /OpenAI) | Modelos sin razonamiento como Juez (ejemplo: gpt-4.1, gpt-4o, etc.) | 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 evaluaciones complejas que requieren razonamiento refinado, recomendamos un modelo de razonamiento sólido, como 4.1-mini el que equilibra el rendimiento del razonamiento y la eficiencia de costes.
Coherence
El evaluador de coherencia mide la presentación lógica y ordenada de ideas en una respuesta, lo que permite al lector seguir y comprender fácilmente el entrenamiento de pensamiento del escritor. Una respuesta coherente aborda directamente la pregunta con conexiones claras entre oraciones y párrafos, utilizando las transiciones adecuadas y una secuencia lógica de ideas. Las puntuaciones más altas significan una mejor coherencia.
Coherence example
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."
)
Coherence output
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), también muestra aprobado si la puntuación >= umbral, o si falla en caso contrario. Usa el campo de razón para entender por qué la puntuación es alta o baja.
{
"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
}
Fluency
El evaluador de fluidez mide la eficacia y claridad de la comunicación escrita. Esta medida se centra en la precisión gramatical, el intervalo de vocabulario, la complejidad de las oraciones, la coherencia y la legibilidad general. Evalúa cómo se transmiten las ideas sin problemas y la facilidad con la que el lector puede entender el texto.
Fluency example
from azure.ai.evaluation import FluencyEvaluator
fluency = FluencyEvaluator(model_config=model_config, threshold=3)
fluency(
response="No, Marie Curie is born in Warsaw."
)
Fluency output
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), también muestra aprobado si la puntuación >= umbral, o si falla en caso contrario. Usa el campo de razón para entender por qué la puntuación es alta o baja.
{
"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
}
Evaluador compuesto que responde a preguntas
QAEvaluator Mide de forma exhaustiva varios aspectos en un escenario de respuesta a preguntas:
- Relevance
- Groundedness
- Fluency
- Coherence
- Similarity
- F1 score
QA example
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 output
Mientras que la puntuación F1 genera una puntuación numérica en una escala flotante de 0 a 1, los demás evaluadores emiten puntuaciones numéricas 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), también muestra aprobado si la puntuación >= umbral, o si falla en caso contrario. Usa el campo de razón para entender por qué la puntuación es alta o baja.
{
"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
}