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.
Es importante comparar la estrecha relación con la respuesta textual generada por el sistema de IA que coincide con la respuesta que cabría esperar. La respuesta esperada se denomina verdad sobre el terreno.
Use una métrica LLM-judge como Similitud con un enfoque en la similitud semántica entre la respuesta generada y la verdad del suelo. O bien, use métricas del campo de procesamiento de lenguaje natural (NLP), incluida la puntuación F1, BLEU, GLEU, ROUGE y METEOR con un enfoque en las superposiciones de tokens o n-gramos entre los dos.
Configuración de modelos para evaluadores asistidos por IA
Para referencia, en los siguientes fragmentos de código, los evaluadores asistidos por IA 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
Somos compatibles con 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 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.
Similarity
La similitud mide los grados de similitud semántica entre el texto generado y su verdad básica con respecto a una consulta. En comparación con otras métricas de similitud de texto que requieren verdades básicas, esta métrica se centra en la semántica de una respuesta, en lugar de superponerse simple en tokens o n-gramas. También tiene en cuenta el contexto más amplio de una consulta.
Similarity example
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."
)
Similarity output
La salida es una puntuación numérica en una escala de Likert, entero del 1 al 5. Una puntuación más alta implica un mayor grado de similitud. Dado un umbral numérico (por defecto 3), este ejemplo también da 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.
{
"similarity": 4.0,
"gpt_similarity": 4.0,
"similarity_result": "pass",
"similarity_threshold": 3
}
F1 score
La puntuación F1 mide la similitud por tokens compartidos entre el texto generado y la verdad del suelo. Se centra tanto en la precisión como en la recuperación. La puntuación F1 calcula la proporción del número de palabras compartidas entre la generación del modelo y la verdad del suelo. La relación se calcula sobre las palabras individuales de la respuesta generada en relación con esas palabras en la respuesta de la verdad básica. El número de palabras compartidas entre la generación y la verdad es la base de la puntuación F1.
- La precisión es la proporción del número de palabras compartidas con el número total de palabras de la generación.
- Recuerde que es la proporción del número de palabras compartidas con el número total de palabras en la verdad básica.
Ejemplo de puntuación en F1
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."
)
Salida de puntuación en F1
La puntuación numérica es un flotante de 0-1. Una puntuación más alta es mejor. Dado un umbral numérico (por defecto 0,5), también muestra aprobado si la puntuación >= umbral, o suspendido en caso contrario.
{
"f1_score": 0.631578947368421,
"f1_result": "pass",
"f1_threshold": 0.5
}
BLEU score
La puntuación de Bleu calcula la puntuación de evaluación bilingüe (BLEU) que se usa habitualmente en el procesamiento de lenguaje natural y la traducción automática. Mide el modo en que el texto generado coincide con el texto de referencia.
BLEU example
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 output
La puntuación numérica es un flotante de 0-1. Una puntuación más alta es mejor. Dado un umbral numérico (por defecto 0,5), también muestra aprobado si la puntuación >= umbral, o suspendido en caso contrario.
{
"bleu_score": 0.1550967560878879,
"bleu_result": "fail",
"bleu_threshold": 0.3
}
GLEU score
La puntuación de Gleu calcula la puntuación Google-BLEU (GLEU). Mide la similitud de n-gramas compartidos entre el texto generado y la verdad del suelo. De forma similar a la puntuación de BLEU, se centra tanto en precisión como en recuperación. Aborda los inconvenientes de la puntuación BLEU mediante un objetivo de recompensa por frase.
Ejemplo de puntuación GLEU
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."
)
Salida de puntuación GLEU
La puntuación numérica es un flotante de 0-1. Una puntuación más alta es mejor. Dado un umbral numérico (por defecto 0,5), también muestra aprobado si la puntuación >= umbral, o suspendido en caso contrario.
{
"gleu_score": 0.25925925925925924,
"gleu_result": "pass",
"gleu_threshold": 0.2
}
ROUGE score
La puntuación Rouge calcula las puntuaciones Recall-Oriented Understudy for Gisting Evaluation (ROUGE), un conjunto de métricas utilizadas para evaluar la sumarización automática y la traducción automática. Mide la superposición entre el texto generado y los resúmenes de referencia. ROUGE se centra en medidas orientadas a la llamada para evaluar qué tan bien el texto generado cubre el texto de referencia. La puntuación ROUGE se compone de precisión, llamada y puntuación en F1.
Ejemplo de puntuación ROUGE
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."
)
Salida de la partitura ROUGE
La puntuación numérica es un flotante de 0-1. Una puntuación más alta es mejor. Dado un umbral numérico (por defecto 0,5), también muestra aprobado si la puntuación >= umbral, o suspendido en caso contrario.
{
"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 score
La puntuación de meteoros mide la similitud de n-gramas compartidos entre el texto generado y la verdad del suelo. De forma similar a la puntuación de BLEU, se centra en la precisión y la recuperación. Aborda las limitaciones de otras métricas, como la puntuación de BLEU, considerando sinónimos, lematización y parafrases para la alineación del contenido.
Ejemplo de puntuación METEOR
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."
)
Salida de la puntuación METEOR
La puntuación numérica es un flotante de 0-1. Una puntuación más alta es mejor. Dado un umbral numérico (por defecto 0,5), también muestra aprobado si la puntuación >= umbral, o suspendido en caso contrario.
{
"meteor_score": 0.8621140763997908,
"meteor_result": "fail",
"meteor_threshold": 0.9
}