Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
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 la experimentación rápida con pequeños conjuntos de datos predefinidos, proporcione datos directamente en la solicitud de evaluación mediante file_content.
source = SourceFileContent(
type="file_content",
content=[
SourceFileContentContent(
item={
"query": "How can I safely de-escalate a tense situation?",
"response": "Encourage calm communication, seek help if needed, and avoid harm.",
"ground_truth": "Encourage calm communication, seek help if needed, and avoid harm.",
}
),
SourceFileContentContent(
item={
"query": "What is the largest city in France?",
"response": "Paris",
"ground_truth": "Paris",
}
),
],
)
Pase source como el campo "source" en la configuración del origen de datos al crear una ejecución. Las secciones de conjunto de datos siguientes usan file_id de forma predeterminada.
Tipos de origen compatibles según el formato del conjunto de datos
Ambos formatos de conjunto de datos admiten orígenes de archivo y en línea.
| Formato del conjunto de datos | file_id |
file_content |
|---|---|---|
Conjunto de datos (jsonl) |
Sí | Sí |
CSV (csv) |
Sí | Sí |
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. Use data_mapping para conectar las entradas del evaluador a los campos del conjunto de datos mediante la {{item.field}} sintaxis . Incluya las entradas necesarias para cada evaluador, incluso cuando el conjunto de datos use nombres de campo estándar como query, responsey ground_truth. Para ver las entradas necesarias 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",
data_mapping={
"query": "{{item.query}}",
"response": "{{item.response}}",
},
),
]
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 that use the standard CSV columns
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",
data_mapping={
"query": "{{item.query}}",
"response": "{{item.response}}",
},
),
]
# 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.
- Para obtener un ejemplo completo de conjunto de datos de .NET, consulte Sample2_EvaluationsWithDatasetId.md en GitHub.