Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Evalueer vooraf berekende antwoorden in JSONL- of CSV-gegevens door een schema te definiëren, velden toe te wijzen aan evaluators en een cloudevaluatieuitvoering te starten.
Prerequisites
- Voltooi de vereisten voor cloudevaluatie en clientinstallatie.
- Een JSONL- of CSV-gegevensset met de velden die zijn vereist voor uw evaluators.
In de voorbeelden wordt de SDK-client gebruikt die is geconfigureerd in de SDK-client instellen.
Invoergegevens voorbereiden
Voor de meeste evaluatiescenario's zijn invoergegevens vereist. U kunt gegevens op twee manieren opgeven:
Tip
Als u geen met de hand samengestelde dataset hebt, kunt u er zelf een opbouwen. Gebruik Een synthetische evaluatiegegevensset genereren wanneer u vooraf start of weinig verkeer hebt, of agenttraceringen converteren naar evaluatiegegevenssets om een gegevensset te bouwen op basis van echt productieverkeer.
Een gegevensset uploaden (aanbevolen)
Upload een JSONL- of CSV-bestand om een versiegegevensset te maken in uw Foundry-project. Gegevenssets ondersteunen versiebeheer en hergebruik in meerdere evaluatieuitvoeringen. Gebruik deze methode voor productietests en CI/CD-werkstromen.
Bereid een JSONL-bestand voor met één JSON-object per regel met de velden die uw evaluators nodig hebben:
{"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."}
Of bereid een CSV-bestand voor met kolomkoppen die overeenkomen met de velden van uw evaluator:
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
Gegevens inline opgeven
Voor snelle experimenten met kleine vooraf berekende gegevenssets geeft u gegevens rechtstreeks in de evaluatieaanvraag op met behulp van 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",
}
),
],
)
Geef source door als het "source"-veld in de configuratie van de gegevensbron wanneer een run wordt gemaakt. De volgende gegevenssetsecties worden standaard gebruikt file_id .
Ondersteuning voor brontypen per gegevenssetindeling
Beide gegevenssetindelingen ondersteunen bestands- en inlinebronnen.
| Indeling van gegevensset | file_id |
file_content |
|---|---|---|
Gegevensset (jsonl) |
Ja | Ja |
CSV (csv) |
Ja | Ja |
Een JSONL-gegevensset evalueren
Evalueer vooraf berekende antwoorden in een JSONL-bestand met behulp van het jsonl gegevensbrontype. Dit scenario is handig wanneer u al modeluitvoer hebt en de kwaliteit ervan wilt beoordelen.
Tip
Voordat u begint, voltooit u de installatie van de client en bereidt u invoergegevens voor.
Het gegevensschema en de evaluators definiëren
Geef het schema op dat overeenkomt met uw JSONL-velden en selecteer de evaluators (testcriteria) die moeten worden uitgevoerd. Gebruik de data_mapping parameter om velden van uw invoergegevens te verbinden met evaluatorparameters met behulp van {{item.field}} syntaxis. Neem altijd data_mapping op bij de vereiste invoervelden voor elke evaluator. Uw veldnamen moeten overeenkomen met die in uw JSONL-bestand. Als uw gegevens bijvoorbeeld "question" bevatten in plaats van "query", gebruikt u "{{item.question}}" in de toewijzing. Zie ingebouwde evaluator voor de vereiste parameters per evaluator.
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}}",
},
),
]
Evaluatie maken en uitvoeren
Maak de evaluatie en start vervolgens een uitvoering op basis van uw geüploade gegevensset. Het proces voert elke evaluator uit op elke rij in de dataset.
# 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,
),
),
)
Zie sample_evaluations_builtin_with_dataset_id.py op GitHub voor een volledig voorbeeld dat kan worden uitgevoerd. Als u wilt controleren of het proces is voltooid en de resultaten wilt interpreteren, raadpleegt u Resultaten van cloudevaluatie ophalen.
Een CSV-gegevensset evalueren
Evalueer vooraf berekende antwoorden in een CSV-bestand met behulp van het csv gegevensbrontype. Dit scenario werkt op dezelfde manier als de evaluatie van gegevenssets , maar accepteert CSV-bestanden in plaats van JSONL. Gebruik CSV als uw gegevens al in spreadsheet- of tabelindeling zijn.
Tip
Voordat u begint, voltooit u de installatie van de client en bereidt u invoergegevens voor.
Een CSV-bestand voorbereiden
Maak een CSV-bestand met kolomkoppen die overeenkomen met de velden die uw evaluators nodig hebben. Elke rij vertegenwoordigt één testcase.
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.
Uploaden en uitvoeren
Upload het CSV-bestand als een gegevensset. Maak vervolgens een evaluatie met behulp van het csv gegevensbrontype. De schemadefinitie en evaluatorconfiguratie zijn hetzelfde als voor JSONL-evaluaties. Het enige verschil is het "type": "csv" in de gegevensbron.
# 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},
),
]
# 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,
},
},
)
Volgende stappen
- Als u wilt controleren of het proces is voltooid en de resultaten wilt interpreteren, raadpleegt u Resultaten van cloudevaluatie ophalen.
- Zie sample_evaluations_builtin_with_csv.py op GitHub voor een volledig voorbeeld dat kan worden uitgevoerd.