Azure calificaciones de OpenAI

Azure los calificadores de OpenAI son herramientas de evaluación en el SDK de Microsoft Foundry que evalúan el rendimiento de los modelos de IA y sus salidas mediante la puntuación basada en LLM o una comparación determinista. Estos calificadores incluyen:

Grader Qué mide Required parameters Output
label_model Clasifica el texto en categorías predefinidas model, name, input, , labels, passing_labels Paso o error en función de la etiqueta
score_model Asigna una puntuación numérica basada en criterios model, , name, input 0-1 float
string_check Coincidencia exacta o de cadena de patrón input, , reference, operation Pass/Fail
text_similarity Similitud entre dos cadenas de texto input, reference, , evaluation_metric, pass_threshold 0-1 float

Puede ejecutar calificaciones local o remotamente. Cada calificador evalúa aspectos específicos de los modelos de inteligencia artificial y sus salidas.

Configurar y ejecutar calificaciones

Azure los evaluadores de OpenAI usan la API de Evals de OpenAI y se configuran de forma diferente a evaluadores integrados, que usan el tipo azure_ai_evaluator. Use los calificadores cuando necesite una clasificación o puntuación personalizada basada en LLM con control total sobre el mensaje, o cuando necesite comprobaciones de similitud o cadena determinista sin un juez LLM.

Azure los calificadores de OpenAI proporcionan una evaluación flexible mediante enfoques basados en LLM o deterministas:

  • Calificadores basados en modelos (label_model, score_model): use un LLM para evaluar las salidas.
  • Deterministas de calificaciones (string_check, text_similarity) : usar la comparación algorítmica

Examples:

Consulte Ejecución de evaluaciones desde el SDK para obtener más información sobre la ejecución de evaluaciones y la configuración de orígenes de datos.

Example input

El conjunto de datos de prueba debe contener los campos a los que se hace referencia en las configuraciones del calificador.

{"query": "What is the weather like today?", "response": "It's sunny and warm with clear skies.", "ground_truth": "Today is sunny with temperatures around 75°F."}
{"query": "Summarize the meeting notes.", "response": "The team discussed Q3 goals and assigned action items.", "ground_truth": "Meeting covered quarterly objectives and task assignments."}

Label grader

El calificador de etiqueta (label_model) usa un LLM para clasificar texto en categorías predefinidas. Úselo para el análisis de sentimiento, la clasificación de contenido o cualquier tarea de etiquetado de varias clases.

{
    "type": "label_model",
    "name": "sentiment_check",
    "model": model_deployment,
    "input": [
        {"role": "developer", "content": "Classify the sentiment as 'positive', 'neutral', or 'negative'"},
        {"role": "user", "content": "Statement: {{item.query}}"},
    ],
    "labels": ["positive", "neutral", "negative"],
    "passing_labels": ["positive", "neutral"],
}

Salida: Devuelve la etiqueta asignada del conjunto definido. El calificador pasa si la etiqueta está en passing_labels.

Score grader

El calificador de puntuación (score_model) usa un LLM para asignar una puntuación numérica a las salidas del modelo, lo que refleja la calidad, la corrección o la similitud con una referencia. Úselo para la evaluación matizadas que requiere razonamiento.

{
    "type": "score_model",
    "name": "quality_score",
    "model": model_deployment,
    "input": [
        {"role": "system", "content": "Rate the response quality from 0 to 1. 1 = perfect, 0 = completely wrong."},
        {"role": "user", "content": "Response: {{item.response}}\nGround Truth: {{item.ground_truth}}"},
    ],
    "pass_threshold": 0.7,
    "range": [0, 1]
}

Salida: Devuelve una puntuación float (por ejemplo, 0.85). El calificador pasa si la puntuación cumple o supera pass_threshold.

Note

range el valor predeterminado es [0, 1] si se omite. pass_threshold es opcional; si no se establece, las puntuaciones del calificador pero no generan un resultado de pase o error.

Calificador de comprobación de cadenas

El calificador de comprobación de cadenas (string_check) realiza comparaciones de cadenas deterministas. Úselo para la validación exacta de coincidencias donde las respuestas deben coincidir exactamente con una referencia.

{
    "type": "string_check",
    "name": "exact_match",
    "input": "{{item.response}}",
    "reference": "{{item.ground_truth}}",
    "operation": "eq",
}

Operations:

Operation Description
eq Coincidencia exacta (distingue mayúsculas de minúsculas)
ne Not equal
like Coincidencia de patrones con caracteres comodín
ilike Coincidencia de patrones que no distinguen mayúsculas de minúsculas

Salida: Devuelve una puntuación de 1 para la coincidencia, 0 sin coincidencia.

Calificador de similitud de texto

El calificador de similitud de texto (text_similarity) compara dos cadenas de texto con métricas de similitud. Úselo para la coincidencia de parafrases o finales abiertos, donde la coincidencia exacta es demasiado estricta.

{
    "type": "text_similarity",
    "name": "similarity_check",
    "input": "{{item.response}}",
    "reference": "{{item.ground_truth}}",
    "evaluation_metric": "bleu",
    "pass_threshold": 0.8,
}

Metrics:

Metric Description
fuzzy_match Coincidencia de cadenas aproximadas mediante la distancia de edición
bleu Puntuación de superposición de N-gramas, que se usa habitualmente para la traducción
gleu Variante de BLEU de Google con puntuación de nivel de frase
meteor Métrica basada en alineación considerando sinónimos y frases
cosine Similitud de coseno en texto vectorizado
rouge_1, rouge_2, rouge_3, rouge_4, , rouge_5, rouge_l Variantes de superposición de N-gramas (unigrama a 5 gramos y subsecuencia común más larga)

Salida: Devuelve una puntuación de similitud como un valor float (mayor significa más similar). El calificador pasa si la puntuación cumple o supera pass_threshold.

Example output

Los calificadores devuelven resultados con el estado de paso o error. Campos de salida de clave:

{
    "type": "score_model",
    "name": "quality_score",
    "score": 0.85,
    "passed": true
}