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.
Solo se aplica a:portal Foundry (clásico). Este artículo no está disponible para el nuevo portal de Foundry.
Obtenga más información sobre el nuevo portal.
Nota
Los vínculos de este artículo pueden abrir contenido en la nueva documentación de Microsoft Foundry en lugar de la documentación de Foundry (clásico) que está viendo ahora.
Advertencia
El desarrollo de la función Prompt Flow finalizó el 20 de abril de 2026. La característica se retirará completamente el 20 de abril de 2027. En la fecha de retirada, Prompt Flow entra en modo de solo lectura. Los flujos existentes seguirán funcionando hasta esa fecha.
Recommended action: Migre las cargas de trabajo de Prompt Flow a Microsoft Agent Framework antes del 20 de abril de 2027.
Los flujos de evaluación son tipos especiales de flujos que evalúan cómo se alinean las salidas de una ejecución con criterios y objetivos específicos.
En el flujo de indicaciones, puede personalizar o crear su propio flujo de evaluación adaptado a sus tareas y objetivos, y luego usarlo para evaluar otros flujos. En este documento aprenderá:
- Cómo desarrollar un método de evaluación.
- Comprenda las entradas, las salidas y las métricas de registro para las evaluaciones de flujo de solicitud.
Requisitos previos
Importante
En este artículo se proporciona soporte heredado para proyectos basados en concentradores. No funcionará para proyectos de Foundry. Vea ¿Cómo sé qué tipo de proyecto tengo?
SDK nota de compatibilidad: Los ejemplos de código requieren una versión específica del SDK de Microsoft Foundry. Si encuentra problemas de compatibilidad, considere migrar de un proyecto basado en hub a un proyecto Foundry.
- Una cuenta de Azure con una suscripción activa. Si no tiene una, cree una cuenta de free Azure, que incluye una suscripción de evaluación gratuita.
- Si no tiene uno, cree un proyecto basado en hub.
Empezar a desarrollar un método de evaluación
Hay dos maneras de desarrollar sus propios métodos de evaluación:
Personalizar un flujo de evaluación integrado: Modifique un flujo de evaluación integrado.
- En Compilar y personalizar, seleccione Flujo de prompts.
- Seleccione Crear para abrir el Asistente para la creación de flujos.
- En la galería de flujos, en Explorar galería , seleccione Flujo de evaluación para filtrar por ese tipo. Elija un ejemplo y seleccione Clonar para realizar la personalización.
Cree un nuevo flujo de evaluación desde cero: Desarrolle un método de evaluación nuevo desde cero.
- En Compilar y personalizar, seleccione Flujo de prompts.
- Seleccione Crear para abrir el Asistente para la creación de flujos.
- En la galería de flujos, en Crear por tipo , en el cuadro "Flujo de evaluación" seleccione Crear y, a continuación, puede ver una plantilla de flujo de evaluación.
Comprender la evaluación en el Prompt flow
En Prompt flow, un flujo es una secuencia de nodos que procesan un dato de entrada y generan un dato de salida. Los flujos de evaluación también toman entradas necesarias y generan las salidas correspondientes.
Algunas características especiales de los métodos de evaluación son:
- Normalmente se ejecutan después de la ejecución que se va a probar y reciben resultados de esa ejecución.
- Además de los resultados de la ejecución que se va a probar, opcionalmente pueden recibir otro conjunto de datos que pueda contener los datos de referencia correspondientes.
- Es posible que tengan un nodo de agregación que calcule el rendimiento general del flujo que se está probando en función de las puntuaciones individuales.
- Pueden registrar métricas mediante la
log_metric()función .
Presentamos cómo se deben definir las entradas y salidas en el desarrollo de métodos de evaluación.
Entradas
Una evaluación se ejecuta después de otra ejecución para evaluar cómo se alinean las salidas de esa ejecución con criterios y objetivos específicos. Por lo tanto, la evaluación recibe las salidas generadas a partir de esa ejecución.
Es posible que también se requieran otras entradas, como la verdad básica, que puede provenir de un conjunto de datos. De forma predeterminada, la evaluación usa el mismo conjunto de datos que el conjunto de datos de prueba proporcionado a la ejecución probada. Sin embargo, si las etiquetas correspondientes o los valores de referencia de destino están en un conjunto de datos diferente, puede cambiar fácilmente a ese.
Por lo tanto, para ejecutar una evaluación, debe indicar los orígenes de estas entradas necesarias. Para ello, al enviar una evaluación, usted verá una sección "mapeo de entrada".
- Si el origen de datos procede de la salida de ejecución, el origen se indica como
${run.output.[OutputName]} - Si el origen de datos procede del conjunto de datos de prueba, el origen se indica como
${data.[ColumnName]}
Nota
Si la evaluación no requiere datos del conjunto de datos, no es necesario hacer referencia a ninguna columna del conjunto de datos en la sección de asignación de entrada, lo que indica que la selección del conjunto de datos es una configuración opcional. La selección del conjunto de datos no afectará al resultado de la evaluación.
Descripción de entrada
Para recordar qué entradas son necesarias para calcular las métricas, puede agregar una descripción para cada entrada necesaria. Las descripciones se muestran al hacer el mapeo de los orígenes durante la ejecución de lotes.
Para agregar descripciones para cada entrada, seleccione Mostrar descripción en la sección de entrada al desarrollar el método de evaluación. Y puede seleccionar "Ocultar descripción" para ocultar la descripción.
A continuación, esta descripción se muestra al utilizar este método de evaluación durante el envío de ejecución por lotes.
Salidas y métricas
Las salidas de una evaluación son los resultados que miden el rendimiento del flujo que se está probando. La salida normalmente contiene métricas como puntuaciones y también puede incluir texto para el razonamiento y las sugerencias.
Resultados de puntuaciones a nivel de instancia
En el flujo de comandos, el flujo procesa cada conjunto de datos de ejemplo de uno en uno y genera un registro de salida. Del mismo modo, en la mayoría de los casos de evaluación, hay una métrica para cada salida, lo que le permite comprobar cómo funciona el flujo en cada dato individual.
Para registrar la puntuación de cada muestra de datos, calcule la puntuación de cada salida y registre la puntuación como salida de flujo estableciendola en la sección de salida. Esta experiencia de creación es la misma que la definición de una salida de flujo estándar.
Calculamos esta puntuación en el nodo line_process, que puede crear y editar desde cero al crear por tipo de nodo. También puede reemplazar este nodo de Python por un nodo LLM para usar LLM para calcular la puntuación.
Cuando este método de evaluación se usa para evaluar otro flujo, la puntuación de nivel de instancia se puede ver en la pestañaSalida>.
Registro de métricas y nodo de agregación
Además, también es importante proporcionar una puntuación general para el proceso. Puede comprobar la opción "configurar como agregación" de un nodo de Python en un flujo de evaluación para convertirlo en un nodo "reducir", permitiendo que el nodo reciba entradas como una lista y las procese en lote.
De este modo, puede calcular y procesar todas las puntuaciones de cada salida de flujo y calcular un resultado general para cada variante.
Puede registrar métricas en un nodo de agregación mediante prompt flow_sdk.log_metrics(). Las métricas deben ser numéricas (float/int). No se admite el registro de métricas de tipo de cadena.
Calculamos esta puntuación en el aggregate nodo, que puede crear y editar desde cero al crear por tipo. También puede reemplazar este Python nodo por un nodo LLM para usar LLM para calcular la puntuación. Consulte el ejemplo siguiente para usar la log_metric API en un flujo de evaluación:
from typing import List
from promptflow import tool, log_metric
@tool
def calculate_accuracy(grades: List[str], variant_ids: List[str]):
aggregate_grades = {}
for index in range(len(grades)):
grade = grades[index]
variant_id = variant_ids[index]
if variant_id not in aggregate_grades.keys():
aggregate_grades[variant_id] = []
aggregate_grades[variant_id].append(grade)
# calculate accuracy for each variant
for name, values in aggregate_grades.items():
accuracy = round((values.count("Correct") / len(values)), 2)
log_metric("accuracy", accuracy, variant_id=name)
return aggregate_grades
Dado que ha llamado a esta función en el nodo Python, no necesita asignarla en ningún otro lugar y podrá ver las métricas más tarde. Cuando este método de evaluación se usa en una ejecución por lotes, la puntuación de nivel de instancia se puede ver en la pestaña Información general-Métricas>.