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.
Importante
Los elementos marcados (versión preliminar) de 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 se admitan o que tengan funcionalidades restringidas. Para obtener más información, vea Términos de uso complementarios para las versiones preliminares de Microsoft Azure.
Genere consultas de prueba individuales, envíelas a un modelo o agente objetivo y evalúe las respuestas del objetivo.
Prerequisites
- Complete los requisitos previos de evaluación en la nube y la configuración del cliente.
- Implementación de modelos que admite la API de respuestas para la generación de consultas.
- Un modelo o un objetivo de agente para evaluar.
En los ejemplos se usa el cliente del SDK configurado en Configuración del cliente del SDK.
Generación de consultas sintéticas
Use el azure_ai_synthetic_data_gen_preview tipo de origen de datos para generar consultas de prueba sintéticas, enviarlas a un modelo implementado o agente foundry y evaluar las respuestas. Use este escenario cuando no tenga un conjunto de datos de prueba. El servicio genera consultas a partir de una indicación proporcionada por usted (y/o a partir de las instrucciones del agente), las ejecuta en su objetivo y evalúa las respuestas.
Importante
Antes de comenzar, complete la configuración del cliente.
Funcionamiento de la evaluación de datos sintéticos
- El servicio genera consultas sintéticas basadas en tu
prompty en archivos de datos semilla opcionales. - Cada consulta se envía al destino especificado (modelo o agente) para generar una respuesta.
- Los evaluadores puntúan cada respuesta mediante la consulta y la respuesta generadas.
- Las consultas generadas se almacenan como un conjunto de datos en el proyecto para su reutilización.
Parameters
| Parámetro | Obligatorio | Description |
|---|---|---|
samples_count |
Sí | Número máximo de consultas de prueba sintéticas que se van a generar. |
model_deployment_name |
Sí | Despliegue de modelos para usar en la generación de consultas sintéticas. Solo se admiten modelos con la funcionalidad de la API de respuestas. Para obtener disponibilidad, consulte Disponibilidad de la región de la API de respuestas. El enrutador de modelos no se admite aquí; solo se puede usar como destino de evaluación. |
prompt |
No | Instrucciones que describen el tipo de consultas que se van a generar. Opcional cuando el agente de destino tiene instrucciones configuradas. |
output_dataset_name |
No | Nombre del conjunto de datos de salida donde se almacenan las consultas generadas. Si no proporciona un nombre, el servicio genera uno automáticamente. |
sources |
No | Archivos de datos de inicialización (por identificador de archivo) para mejorar la relevancia de las consultas generadas. Actualmente solo se admite un archivo. |
Configurar evaluadores y mapeos de datos
El generador de datos sintéticos genera consultas en el {{item.query}} campo . El objetivo genera respuestas que están disponibles en {{sample.output_text}}. Correlacione estos campos con sus evaluadores:
from azure.ai.projects.models import TestingCriterionAzureAIEvaluator
data_source_config = {"type": "azure_ai_source", "scenario": "synthetic_data_gen_preview"}
testing_criteria = [
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="coherence",
evaluator_name="builtin.coherence",
initialization_parameters={"model": model_deployment_name},
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
),
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="violence",
evaluator_name="builtin.violence",
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
),
]
Crear evaluación y ejecutar
Objetivo del modelo
Genere consultas sintéticas y evalúe un modelo:
eval_object = openai_client.evals.create(
name="Synthetic Data Evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
data_source = {
"type": "azure_ai_synthetic_data_gen_preview",
"item_generation_params": {
"type": "synthetic_data_gen_preview",
"samples_count": 5,
"prompt": "Generate customer service questions about returning defective products",
"model_deployment_name": model_deployment_name,
"output_dataset_name": "my-synthetic-dataset",
},
"target": {
"type": "azure_ai_model",
"model": model_deployment_name,
},
}
eval_run = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="synthetic-data-evaluation",
data_source=data_source,
)
Puede agregar opcionalmente una instrucción del sistema para configurar el comportamiento del modelo de destino. Cuando se usa input_messages con la generación de datos sintéticos, incluya solo system mensajes de rol: el servicio proporciona las consultas generadas como mensajes de usuario automáticamente.
data_source = {
"type": "azure_ai_synthetic_data_gen_preview",
"item_generation_params": {
"type": "synthetic_data_gen_preview",
"samples_count": 5,
"prompt": "Generate customer service questions about returning defective products",
"model_deployment_name": model_deployment_name,
},
"target": {
"type": "azure_ai_model",
"model": model_deployment_name,
},
"input_messages": {
"type": "template",
"template": [
{
"type": "message",
"role": "system",
"content": {
"type": "input_text",
"text": "You are a helpful customer service agent. Be empathetic and solution-oriented."
}
}
]
},
}
Objetivo del agente
Genere consultas sintéticas y evalúe un agente Foundry.
data_source = {
"type": "azure_ai_synthetic_data_gen_preview",
"item_generation_params": {
"type": "synthetic_data_gen_preview",
"samples_count": 5,
"prompt": "Generate questions about returning defective products",
"model_deployment_name": model_deployment_name,
},
"target": {
"type": "azure_ai_agent",
"name": agent_name,
"version": agent_version,
},
}
eval_run = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="synthetic-agent-evaluation",
data_source=data_source,
)
Para sondear la finalización e interpretar los resultados, consulte Obtención de resultados de evaluación en la nube. La respuesta incluye una output_dataset_id propiedad que contiene el identificador del conjunto de datos generado, que puede usar para recuperar o reutilizar los datos sintéticos.
Para ver ejemplos completos ejecutables, consulte sample_synthetic_data_agent_evaluation.py y sample_synthetic_data_model_evaluation.py en GitHub.