Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Valutare le risposte pre-calcolate nei dati JSONL o CSV definendo uno schema, eseguendo il mapping dei campi agli analizzatori e avviando un'esecuzione di valutazione cloud.
Prerequisiti
- Completare i prerequisiti di valutazione cloud e la configurazione del client.
- Un set di dati JSONL o CSV con i campi richiesti dagli analizzatori.
Gli esempi usano il client SDK configurato in Configurare il client SDK.
Prepara i dati di input
La maggior parte degli scenari di valutazione richiede dati di input. È possibile fornire dati in due modi:
Suggerimento
Se non si dispone di un set di dati curato a mano, è possibile avviarne uno. Usa Genera un set di dati di valutazione sintetico quando sei nella fase di pre-lancio o hai poco traffico, oppure Converti le tracce dell'agente in set di dati di valutazione per creare un set di dati dal traffico di produzione reale.
Caricare un set di dati (scelta consigliata)
Caricare un file JSONL o CSV per creare un set di dati con versione nel progetto Foundry. I set di dati supportano il controllo delle versioni e il riutilizzo tra più esecuzioni di valutazione. Usare questo approccio per i test di produzione e i flussi di lavoro CI/CD.
Preparare un file JSONL con un oggetto JSON per riga contenente i campi necessari agli analizzatori:
{"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."}
In alternativa, preparare un file CSV con intestazioni di colonna corrispondenti ai campi dell'analizzatore:
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
Fornire i dati in linea
Per una sperimentazione rapida con set di test di piccole dimensioni, o per scenari che richiedono dati inline, ad esempio la valutazione della risposta dell'agente, forniscono i dati direttamente nella richiesta di valutazione usando file_content. Per le valutazioni delle risposte dell'agente, file_content è l'unico tipo di origine supportato.
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",
}
),
],
)
Passa source come "source" campo nella configurazione dell'origine dati quando crei un'esecuzione. Le sezioni dello scenario seguenti usano file_id per impostazione predefinita.
Supporto dei tipi di origine per scenario
Non tutti gli scenari supportano entrambi i tipi di origine. La matrice seguente mostra il tipo di origine supportato da ogni scenario.
| Scenario | file_id |
file_content |
|---|---|---|
Set di dati (jsonl) |
Sì | Sì |
CSV (csv) |
Sì | Sì |
| Destinazione del modello o dell'agente | Sì | Sì |
Risposta dell'agente (azure_ai_responses) |
No | Sì |
Traccia (azure_ai_traces) |
N/A | N/A |
| Dati sintetici (anteprima) | N/A | N/A |
Valutare un set di dati JSONL
Valutare le risposte pre-calcolate in un file JSONL usando il jsonl tipo di origine dati. Questo scenario è utile quando si dispone già di output del modello e si vuole valutarne la qualità.
Suggerimento
Prima di iniziare, completare la configurazione client e Preparare i dati di input.
Definire lo schema dei dati e gli analizzatori
Specificare lo schema che corrisponde ai campi JSONL e selezionare gli analizzatori (criteri di test) da eseguire. Usare il data_mapping parametro per connettere i campi dai dati di input ai parametri dell'analizzatore usando la {{item.field}} sintassi . Includere data_mapping sempre con i campi di input necessari per ogni analizzatore. I nomi dei campi devono corrispondere a quelli nel file JSONL. Ad esempio, se i dati hanno "question" invece di "query", usare "{{item.question}}" nel mapping. Per i parametri obbligatori per analizzatore, vedere Analizzatori predefiniti.
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}}",
},
),
]
Creare una valutazione ed eseguire
Creare la valutazione, quindi avviare un'esecuzione sul set di dati caricato. Il processo esegue ogni valutatore su ogni riga del set di dati.
# 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,
),
),
)
Per un esempio eseguibile completo, vedere sample_evaluations_builtin_with_dataset_id.py su GitHub. Per eseguire il polling per il completamento e interpretare i risultati, vedere Ottenere i risultati della valutazione cloud.
Valutare un set di dati CSV
Valutare le risposte pre-calcolate in un file CSV usando il csv tipo di origine dati. Questo scenario funziona allo stesso modo della valutazione del set di dati , ma accetta file CSV anziché JSONL. Usare CSV quando i dati sono già in formato foglio di calcolo o tabulare.
Suggerimento
Prima di iniziare, completare la configurazione client e Preparare i dati di input.
Preparare un file CSV
Creare un file CSV con intestazioni di colonna che corrispondano ai campi necessari agli analizzatori. Ogni riga rappresenta un test case.
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.
Caricare ed eseguire
Caricare il file CSV come set di dati. Creare quindi una valutazione usando il csv tipo di origine dati. La definizione dello schema e la configurazione dell'analizzatore sono le stesse delle valutazioni JSONL. L'unica differenza è nell'"type": "csv" origine dati.
# 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,
},
},
)
Passaggi successivi
- Per eseguire il polling per il completamento e interpretare i risultati, vedere Ottenere i risultati della valutazione cloud.
- Per un esempio eseguibile completo, vedere sample_evaluations_builtin_with_csv.py in GitHub.