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.
Evalúe las respuestas precalculadas en datos en formato JSONL o CSV definiendo un esquema, asignando campos a evaluadores e iniciando una ejecución de evaluación en la nube.
Prerequisites
- Complete los requisitos previos de evaluación en la nube y la configuración del cliente.
- Un conjunto de datos JSONL o CSV con los campos requeridos por los evaluadores.
En los ejemplos se usa el cliente del SDK configurado en Configuración del cliente del SDK.
Preparación de los datos de entrada
La mayoría de los escenarios de evaluación requieren datos de entrada. Puede proporcionar datos de dos maneras:
Tip
Si no tiene un conjunto de datos seleccionado manualmente, puede crear uno desde cero. Usa Generar un conjunto de datos de evaluación sintético cuando estés en fase previa al lanzamiento o tengas poco tráfico, o Convertir trazas de agentes en conjuntos de datos de evaluación para crear un conjunto de datos a partir de tráfico real de producción.
Cargar un conjunto de datos (recomendado)
Cargue un archivo JSONL o CSV para crear un conjunto de datos con versiones en el proyecto foundry. Los conjuntos de datos admiten el control de versiones y la reutilización en varias ejecuciones de evaluación. Use este enfoque para pruebas de producción y flujos de trabajo de CI/CD.
Prepare un archivo JSONL con un objeto JSON por línea que contenga los campos que necesitan los evaluadores:
{"query": "What is machine learning?", "response": "Machine learning is a subset of AI.", "ground_truth": "Machine learning is a type of AI that learns from data."}
{"query": "Explain neural networks.", "response": "Neural networks are computing systems inspired by biological neural networks.", "ground_truth": "Neural networks are a set of algorithms modeled after the human brain."}
O prepare un archivo CSV con encabezados de columna que coincidan con los campos del evaluador:
query,response,ground_truth
What is machine learning?,Machine learning is a subset of AI.,Machine learning is a type of AI that learns from data.
Explain neural networks.,Neural networks are computing systems inspired by biological neural networks.,Neural networks are a set of algorithms modeled after the human brain.
# 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
Proporcionar datos en línea
Para experimentar rápidamente con conjuntos de pruebas pequeños (o para escenarios que requieren datos insertados, como la evaluación de respuesta del agente), proporcione datos directamente en la solicitud de evaluación mediante file_content. Para las evaluaciones de respuesta del agente, file_content es el único tipo de origen admitido.
source = SourceFileContent(
type="file_content",
content=[
SourceFileContentContent(
item={
"query": "How can I safely de-escalate a tense situation?",
"ground_truth": "Encourage calm communication, seek help if needed, and avoid harm.",
}
),
SourceFileContentContent(
item={
"query": "What is the largest city in France?",
"ground_truth": "Paris",
}
),
],
)
Pase source como el campo "source" en la configuración de su origen de datos al crear una ejecución. Las secciones de escenario siguientes usan file_id de forma predeterminada.
Tipos de origen admitidos por escenario
No todos los escenarios admiten ambos tipos de origen. En la matriz siguiente se muestra qué tipo de origen admite cada escenario.
| Scenario | file_id |
file_content |
|---|---|---|
Conjunto de datos (jsonl) |
Sí | Sí |
CSV (csv) |
Sí | Sí |
| Modelo o agente objetivo | Sí | Sí |
Respuesta del agente (azure_ai_responses) |
No | Sí |
Seguimiento (azure_ai_traces) |
N/A | N/A |
| Datos sintéticos (versión preliminar) | N/A | N/A |
Evaluación de un conjunto de datos JSONL
Evalúe las respuestas precomputadas en un archivo JSONL mediante el tipo de jsonl origen de datos. Este escenario es útil cuando ya tiene salidas de modelo y desea evaluar su calidad.
Tip
Antes de comenzar, complete la configuración del cliente y Prepare los datos de entrada.
Definir el esquema de datos y los evaluadores
Especifique el esquema que coincida con los campos JSONL y seleccione los evaluadores (criterios de prueba) que se van a ejecutar. Utilice el parámetro data_mapping para conectar campos de los datos de entrada a los parámetros del evaluador mediante la sintaxis {{item.field}}.
data_mapping Incluya siempre los campos de entrada necesarios para cada evaluador. Los nombres de campo deben coincidir con los del archivo JSONL. Por ejemplo, si sus datos contienen "question" en lugar de "query", utilice "{{item.question}}" en la asignación. Para conocer los parámetros necesarios por evaluador, consulte evaluadores integrados.
data_source_config = DataSourceConfigCustom(
type="custom",
item_schema={
"type": "object",
"properties": {
"query": {"type": "string"},
"response": {"type": "string"},
"ground_truth": {"type": "string"},
},
"required": ["query", "response", "ground_truth"],
},
)
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": "{{item.response}}",
},
),
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="violence",
evaluator_name="builtin.violence",
initialization_parameters={"model": model_deployment_name},
data_mapping={
"query": "{{item.query}}",
"response": "{{item.response}}",
},
),
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="f1",
evaluator_name="builtin.f1_score",
data_mapping={
"response": "{{item.response}}",
"ground_truth": "{{item.ground_truth}}",
},
),
]
Crear evaluación y ejecutar
Cree la evaluación y, a continuación, inicie una ejecución con su conjunto de datos cargado. La ejecución ejecuta cada evaluador en cada fila del conjunto de datos.
# Create the evaluation
eval_object = openai_client.evals.create(
name="dataset-evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
# Create a run using the uploaded dataset
eval_run = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="dataset-run",
data_source=CreateEvalJSONLRunDataSourceParam(
type="jsonl",
source=SourceFileID(
type="file_id",
id=data_id,
),
),
)
Para obtener un ejemplo completo de ejecución, consulte sample_evaluations_builtin_with_dataset_id.py en GitHub. Para sondear la finalización e interpretar los resultados, consulte Obtención de resultados de evaluación en la nube.
Evaluación de un conjunto de datos CSV
Evalúe las respuestas precomputadas en un archivo CSV mediante el tipo de csv origen de datos. Este escenario funciona del mismo modo que la evaluación del conjunto de datos , pero acepta archivos CSV en lugar de JSONL. Use CSV cuando los datos ya estén en formato tabular o hoja de cálculo.
Tip
Antes de comenzar, complete la configuración del cliente y Prepare los datos de entrada.
Preparación de un archivo CSV
Cree un archivo CSV con encabezados de columna que coincidan con los campos que necesitan los evaluadores. Cada fila representa un caso de prueba.
query,response,context,ground_truth
What is cloud computing?,Cloud computing delivers computing services over the internet.,Cloud computing is a technology for on-demand resource delivery.,Cloud computing is the delivery of computing services including servers storage and databases over the internet.
What is machine learning?,Machine learning is a subset of AI that learns from data.,Machine learning is a branch of artificial intelligence.,Machine learning is a type of AI that enables computers to learn from data without being explicitly programmed.
Explain neural networks.,Neural networks are computing systems inspired by biological neural networks.,Neural networks are used in deep learning.,Neural networks are a set of algorithms modeled after the human brain designed to recognize patterns.
Carga y ejecución
Cargue el archivo CSV como un conjunto de datos. A continuación, cree una evaluación mediante el tipo de csv origen de datos. La definición de esquema y la configuración del evaluador son las mismas que para las evaluaciones JSONL. La única diferencia está en el origen de datos "type": "csv".
# Upload the CSV file
data_id = project_client.datasets.upload_file(
name="eval-csv-data",
version="1",
file_path="./evaluation_data.csv",
).id
# Define the schema matching your CSV columns
data_source_config = DataSourceConfigCustom(
type="custom",
item_schema={
"type": "object",
"properties": {
"query": {"type": "string"},
"response": {"type": "string"},
"context": {"type": "string"},
"ground_truth": {"type": "string"},
},
"required": [],
},
include_sample_schema=True,
)
# Define evaluators with data mappings to CSV columns
testing_criteria = [
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="coherence",
evaluator_name="builtin.coherence",
data_mapping={
"query": "{{item.query}}",
"response": "{{item.response}}",
},
initialization_parameters={"model": model_deployment_name},
),
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="violence",
evaluator_name="builtin.violence",
data_mapping={
"query": "{{item.query}}",
"response": "{{item.response}}",
},
initialization_parameters={"model": model_deployment_name},
),
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="f1",
evaluator_name="builtin.f1_score",
),
]
# Create the evaluation
eval_object = openai_client.evals.create(
name="CSV evaluation with built-in evaluators",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
# Create a run using the CSV data source type
eval_run = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="csv-evaluation-run",
data_source={
"type": "csv",
"source": {
"type": "file_id",
"id": data_id,
},
},
)
Pasos siguientes
- Para sondear la finalización e interpretar los resultados, consulte Obtención de resultados de evaluación en la nube.
- Para obtener un ejemplo completo de ejecución, consulte sample_evaluations_builtin_with_csv.py en GitHub.