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.
Nota:
Este documento hace referencia al portal de Microsoft Foundry (clásico).
🔍 Consulte la documentación de Microsoft Foundry (nuevo) para obtener información sobre el nuevo portal.
Importante
Los elementos marcados (versión preliminar) en este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure.
En este artículo, aprenderá a ejecutar evaluaciones en la nube (versión preliminar) para realizar pruebas previas a la implementación en un conjunto de datos de prueba. El SDK de evaluación de Azure AI le permite ejecutar evaluaciones localmente en la máquina y en la nube. Por ejemplo, ejecute evaluaciones locales en datos de prueba pequeños para evaluar los prototipos de aplicaciones de IA generativas y, a continuación, pasar a pruebas previas a la implementación para ejecutar evaluaciones en un conjunto de datos grande.
Use evaluaciones en la nube para la mayoría de los escenarios, especialmente al probar a escala, integrar evaluaciones en canalizaciones de integración continua y entrega continua (CI/CD) o realizar pruebas previas a la implementación. La ejecución de evaluaciones en la nube elimina la necesidad de administrar la infraestructura de proceso local y admite flujos de trabajo de prueba automatizados a gran escala. Después de la implementación, puede optar por evaluar continuamente los agentes para la supervisión posterior a la implementación.
Al usar el SDK de Foundry, registra los resultados de la evaluación en el proyecto foundry para mejorar la observabilidad. Esta característica admite todos los evaluadores integrados seleccionados por Microsoft. y sus propios evaluadores personalizados. Los evaluadores se pueden encontrar en la biblioteca del evaluador y tener el mismo control de acceso basado en rol y ámbito del proyecto.
Prerrequisitos
- Un proyecto Foundry.
- Una implementación de Azure OpenAI con un modelo GPT que admita la finalización del chat (por ejemplo,
gpt-5-mini). - Rol de usuario de Azure AI en el proyecto Foundry.
- Opcionalmente, puede usar su propia cuenta de almacenamiento para ejecutar evaluaciones.
Nota:
Algunas características de evaluación tienen restricciones regionales. Consulte las regiones admitidas para obtener más información.
Empieza ahora
Instale el cliente del proyecto del SDK de Microsoft Foundry para ejecutar evaluaciones en la nube:
pip install azure-ai-projects azure-identityEstablezca variables de entorno para los recursos de Foundry:
import os # Required environment variables: endpoint = os.environ["PROJECT_ENDPOINT"] # https://<account>.services.ai.azure.com/api/projects/<project> model_endpoint = os.environ["MODEL_ENDPOINT"] # https://<account>.services.ai.azure.com model_api_key = os.environ["MODEL_API_KEY"] model_deployment_name = os.environ["MODEL_DEPLOYMENT_NAME"] # E.g. gpt-5-mini # Optional: Reuse an existing dataset. dataset_name = os.environ.get("DATASET_NAME", "dataset-test") dataset_version = os.environ.get("DATASET_VERSION", "1.0")Defina un cliente para ejecutar evaluaciones en la nube:
import os from azure.identity import DefaultAzureCredential from azure.ai.projects import AIProjectClient # Create the project client (Foundry project and credentials): project_client = AIProjectClient( endpoint=endpoint, credential=DefaultAzureCredential(), )
Preparación de los datos de entrada
# Upload a local JSONL file. Skip this step if you already have a dataset registered.
data_id = project_client.datasets.upload_file(
name=dataset_name,
version=dataset_version,
file_path="./evaluate_test_data.jsonl",
).id
Para más información sobre los formatos de datos de entrada para evaluar aplicaciones de IA generativas, consulte:
Para más información sobre los formatos de datos de entrada para evaluar agentes, consulte Evaluación de agentes de Azure AI y Evaluación de otros agentes.
Especificar evaluadores
from azure.ai.projects.models import (
EvaluatorConfiguration,
EvaluatorIds,
)
# Built-in evaluator configurations:
evaluators = {
"relevance": EvaluatorConfiguration(
id=EvaluatorIds.RELEVANCE.value,
init_params={"deployment_name": model_deployment_name},
data_mapping={
"query": "${data.query}",
"response": "${data.response}",
},
),
"violence": EvaluatorConfiguration(
id=EvaluatorIds.VIOLENCE.value,
init_params={"azure_ai_project": endpoint},
),
"bleu_score": EvaluatorConfiguration(
id=EvaluatorIds.BLEU_SCORE.value,
),
}
Creación de una evaluación
Por último, envíe la ejecución de evaluación remota:
from azure.ai.projects.models import (
Evaluation,
InputDataset
)
# Create an evaluation with the dataset and evaluators specified.
evaluation = Evaluation(
display_name="Cloud evaluation",
description="Evaluation of dataset",
data=InputDataset(id=data_id),
evaluators=evaluators,
)
# Run the evaluation.
evaluation_response = project_client.evaluations.create(
evaluation,
headers={
"model-endpoint": model_endpoint,
"api-key": model_api_key,
},
)
print("Created evaluation:", evaluation_response.name)
print("Status:", evaluation_response.status)
Especificación de evaluadores personalizados
Nota:
Los proyectos de fundición no están soportados para esta característica. En su lugar, utilice un proyecto de Foundry hub.
Evaluadores personalizados basados en código
Registre los evaluadores personalizados en el proyecto de Azure AI Hub y capture los identificadores del evaluador:
from azure.ai.ml import MLClient
from azure.ai.ml.entities import Model
from promptflow.client import PFClient
# Define ml_client to register the custom evaluator.
ml_client = MLClient(
subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"],
resource_group_name=os.environ["AZURE_RESOURCE_GROUP"],
workspace_name=os.environ["AZURE_PROJECT_NAME"],
credential=DefaultAzureCredential()
)
# Load the evaluator from the module.
from answer_len.answer_length import AnswerLengthEvaluator
# Convert it to an evaluation flow, and save it locally.
pf_client = PFClient()
local_path = "answer_len_local"
pf_client.flows.save(entry=AnswerLengthEvaluator, path=local_path)
# Specify the evaluator name that appears in the evaluator catalog.
evaluator_name = "AnswerLenEvaluator"
# Register the evaluator to the evaluator catalog.
custom_evaluator = Model(
path=local_path,
name=evaluator_name,
description="Evaluator calculating answer length.",
)
registered_evaluator = ml_client.evaluators.create_or_update(custom_evaluator)
print("Registered evaluator id:", registered_evaluator.id)
# Registered evaluators have versioning. You can always reference any version available.
versioned_evaluator = ml_client.evaluators.get(evaluator_name, version=1)
print("Versioned evaluator id:", registered_evaluator.id)
Después de registrar el evaluador personalizado, puede verlo en el catálogo del evaluador. En el proyecto Foundry, seleccione Evaluación y, a continuación, seleccione catálogo de evaluadores.
Evaluadores personalizados basados en mensajes
Use el ejemplo para registrar un personalizado creado FriendlinessEvaluator como se describe en Evaluadores basados en mensajes:
# Import your prompt-based custom evaluator.
from friendliness.friend import FriendlinessEvaluator
# Define your deployment.
model_config = dict(
azure_endpoint=os.environ.get("AZURE_ENDPOINT"),
azure_deployment=os.environ.get("AZURE_DEPLOYMENT_NAME"),
api_version=os.environ.get("AZURE_API_VERSION"),
api_key=os.environ.get("AZURE_API_KEY"),
type="azure_openai"
)
# Define ml_client to register the custom evaluator.
ml_client = MLClient(
subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"],
resource_group_name=os.environ["AZURE_RESOURCE_GROUP"],
workspace_name=os.environ["AZURE_PROJECT_NAME"],
credential=DefaultAzureCredential()
)
# # Convert the evaluator to evaluation flow and save it locally.
local_path = "friendliness_local"
pf_client = PFClient()
pf_client.flows.save(entry=FriendlinessEvaluator, path=local_path)
# Specify the evaluator name that appears in the evaluator catalog.
evaluator_name = "FriendlinessEvaluator"
# Register the evaluator to the evaluator catalog.
custom_evaluator = Model(
path=local_path,
name=evaluator_name,
description="prompt-based evaluator measuring response friendliness.",
)
registered_evaluator = ml_client.evaluators.create_or_update(custom_evaluator)
print("Registered evaluator id:", registered_evaluator.id)
# Registered evaluators have versioning. You can always reference any version available.
versioned_evaluator = ml_client.evaluators.get(evaluator_name, version=1)
print("Versioned evaluator id:", registered_evaluator.id)
Después de registrar el evaluador personalizado, puede verlo en el catálogo del evaluador. En el proyecto Foundry, seleccione Evaluación y, a continuación, seleccione catálogo de evaluadores.
Obtención de resultados
Solución de problemas
Contenido relacionado
- Evaluación de las aplicaciones de IA generativas localmente
- Supervisión de las aplicaciones de IA generativas
- Más información sobre la simulación de conjuntos de datos de prueba para la evaluación
- Consulte los resultados de evaluación en el portal de Foundry.
- Introducción a Foundry
- Introducción a los ejemplos de evaluación
- Documentación de referencia de la API REST