Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Utvärdera förkomputerade svar i JSONL- eller CSV-data genom att definiera ett schema, mappa fält till utvärderare och starta en molnutvärderingskörning.
Förutsättningar
- Slutför kraven för molnutvärderingen och klientkonfigurationen.
- En JSONL- eller CSV-datauppsättning med de fält som krävs av dina utvärderare.
I exemplen används SDK-klienten som konfigurerats i Konfigurera SDK-klienten.
Förbereda indata
De flesta utvärderingsscenarier kräver indata. Du kan ange data på två sätt:
Tips/Råd
Om du inte har ett manuellt sammanställt dataset kan du bygga upp ett. Använd Generera en syntetisk utvärderingsdatauppsättning när du har förlansering eller har låg trafik, eller Konvertera agentspårningar till utvärderingsdatauppsättningar för att skapa en datauppsättning från verklig produktionstrafik.
Ladda upp en datauppsättning (rekommenderas)
Ladda upp en JSONL- eller CSV-fil för att skapa en versionsdatauppsättning i foundry-projektet. Datauppsättningar stöder versionshantering och återanvändning i flera utvärderingskörningar. Använd den här metoden för produktionstestning och CI/CD-arbetsflöden.
Förbered en JSONL-fil med ett JSON-objekt per rad som innehåller de fält som utvärderarna behöver:
{"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."}
Eller förbered en CSV-fil med kolumnrubriker som matchar dina utvärderarfält:
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
Ange data i rad
För snabba experiment med små testuppsättningar – eller för scenarier som kräver data direkt i raden, till exempel utvärdering av agentsvar – ange data direkt i utvärderingsbegäran med hjälp av file_content. För utvärderingar av agentsvar är file_content den enda källtypen som stöds.
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",
}
),
],
)
Skicka source som det "source"-fältet i konfigurationen för datakällan när du skapar en exekvering. Följande scenarioavsnitt använder file_id som standard.
Stöd för källtyp efter scenario
Alla scenarier stöder inte båda källtyperna. Följande matris visar vilken källtyp varje scenario stöder.
| Scenario | file_id |
file_content |
|---|---|---|
Datauppsättning (jsonl) |
Yes | Yes |
CSV (csv) |
Yes | Yes |
| Modell- eller agentmål | Yes | Yes |
Svar från agent (azure_ai_responses) |
No | Yes |
Spåra (azure_ai_traces) |
Inte tillgänglig | Inte tillgänglig |
| Syntetiska data (förhandsversion) | Inte tillgänglig | Inte tillgänglig |
Utvärdera en JSONL-datauppsättning
Utvärdera förberäknade svar i en JSONL-fil med hjälp jsonl av datakällans typ. Det här scenariot är användbart när du redan har modellutdata och vill utvärdera deras kvalitet.
Tips/Råd
Innan du börjar slutför du klientkonfigurationen och Förbered indata.
Definiera dataschemat och utvärderarna
Ange det schema som matchar dina JSONL-fält och välj de utvärderare (testvillkor) som ska köras. Använd parametern data_mapping för att ansluta fält från dina indata till utvärderarparametrar med hjälp {{item.field}} av syntax. Inkludera data_mapping alltid med de obligatoriska indatafälten för varje utvärderare. Fältnamnen måste matcha dem i JSONL-filen. Om dina data till exempel har "question" i stället för "query"använder du "{{item.question}}" i mappningen. De obligatoriska parametrarna per utvärderare finns i inbyggda utvärderare.
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}}",
},
),
]
Skapa utvärdering och kör
Skapa utvärderingen och starta sedan en körning mot din uppladdade datauppsättning. Körningen kör varje utvärderare på varje rad i datauppsättningen.
# 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,
),
),
)
Ett fullständigt exekverbart exempel finns i filen sample_evaluations_builtin_with_dataset_id.py på GitHub. Om du vill kontrollera om processen är slutförd och tolka resultaten, se Hämta resultat för molnutvärdering.
Utvärdera en CSV-datauppsättning
Utvärdera förkomputerade svar i en CSV-fil med hjälp csv av datakällans typ. Det här scenariot fungerar på samma sätt som datamängdsutvärderingen men accepterar CSV-filer i stället för JSONL. Använd CSV när dina data redan är i kalkylblads- eller tabellformat.
Tips/Råd
Innan du börjar slutför du klientkonfigurationen och Förbered indata.
Förbereda en CSV-fil
Skapa en CSV-fil med kolumnrubriker som matchar de fält som utvärderarna behöver. Varje rad representerar ett testfall.
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.
Ladda upp och kör
Ladda upp CSV-filen som en datauppsättning. Skapa sedan en utvärdering med hjälp csv av datakällans typ. Schemadefinitionen och utvärderarkonfigurationen är desamma som för JSONL-utvärderingar. Den enda skillnaden är "type": "csv" i datakällan.
# 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,
},
},
)
Nästa steg
- Om du vill kontrollera om processen är slutförd och tolka resultaten, se Hämta resultat för molnutvärdering.
- För ett fullständigt körbart exempel, se sample_evaluations_builtin_with_csv.py på GitHub.