Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Oceń wcześniej wygenerowane odpowiedzi w plikach danych JSONL lub CSV, definiując schemat, przypisując pola do ewaluatorów i uruchamiając ocenę w chmurze.
Wymagania wstępne
- Ukończ wymagania wstępne dotyczące oceny chmury i konfigurację klienta.
- Zestaw danych JSONL lub CSV z polami wymaganymi przez ewaluatorów.
W przykładach użyto klienta zestawu SDK skonfigurowanego w temacie Konfigurowanie klienta zestawu SDK.
Przygotowywanie danych wejściowych
Większość scenariuszy oceny wymaga danych wejściowych. Dane można udostępniać na dwa sposoby:
Tip
Jeśli nie masz ręcznie przygotowanego zbioru danych, możesz go stworzyć od podstaw. Użyj opcji Wygeneruj syntetyczny zbiór danych do oceny, jeśli jesteś przed uruchomieniem lub masz niewielki ruch, albo Przekształć ślady agenta w zbiory danych do oceny, aby utworzyć zbiór danych na podstawie rzeczywistego ruchu produkcyjnego.
Przekazywanie zestawu danych (zalecane)
Przekaż plik JSONL lub CSV, aby utworzyć wersjonowany zestaw danych w projekcie Foundry. Zestawy danych obsługują wersjonowanie i ponowne użycie w wielu procesach oceny. Użyj tego podejścia do testowania produkcyjnego i procesów CI/CD.
Przygotuj plik JSONL z jednym obiektem JSON na wiersz zawierający pola, których potrzebują ewaluatorzy:
{"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."}
Możesz też przygotować plik CSV z nagłówkami kolumn pasującymi do pól ewaluatora:
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
Podawanie danych w linii
Aby szybko eksperymentować z małymi wstępnie skompilowanym zestawami danych, podaj dane bezpośrednio w żądaniu oceny przy użyciu polecenia 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",
}
),
],
)
Przekaż source jako pole "source" w konfiguracji źródła danych podczas tworzenia uruchomienia. Poniższe sekcje zestawu danych domyślnie używają file_id.
Obsługiwane typy źródeł według formatu zestawu danych
Oba formaty zestawów danych obsługują pliki i źródła wbudowane.
| Format zestawu danych | file_id |
file_content |
|---|---|---|
Zestaw danych (jsonl) |
Yes | Yes |
CSV (csv) |
Yes | Yes |
Ocena zestawu danych JSONL
Oceń wstępnie skompilowane odpowiedzi w pliku JSONL przy użyciu jsonl typu źródła danych. Ten scenariusz jest przydatny, gdy masz już dane wyjściowe modelu i chcesz ocenić ich jakość.
Tip
Przed rozpoczęciem ukończ konfigurację klienta i przygotuj dane wejściowe.
Definiowanie schematu danych i ewaluatorów
Określ schemat zgodny z polami JSONL i wybierz ewaluatorów (kryteria testowania), które mają zostać uruchomione. Użyj parametru , data_mapping aby połączyć pola z danych wejściowych z parametrami ewaluatora przy użyciu {{item.field}} składni. Zawsze dołączaj data_mapping do wymaganych pól wejściowych dla każdego ewaluatora. Nazwy pól muszą być zgodne z nazwami w pliku JSONL. Na przykład, jeśli dane zawierają "question" zamiast "query", użyj "{{item.question}}" w mapowaniu. Aby zapoznać się z wymaganymi parametrami dla każdego ewaluatora, zobacz sekcję wbudowane ewaluatory.
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}}",
},
),
]
Utwórz ewaluację i uruchom
Utwórz ocenę, a następnie uruchom przebieg na przesłanym zestawie danych. Proces uruchamia każdego ewaluatora na każdym wierszu zestawu danych.
# 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,
),
),
)
Aby uzyskać pełny przykład z możliwością uruchamiania, zobacz sample_evaluations_builtin_with_dataset_id.py na GitHubie. Aby sprawdzać, czy proces został ukończony, i interpretować wyniki, zobacz Pobieranie wyników oceny w chmurze.
Ocena zestawu danych CSV
Oceń wstępnie skompilowane odpowiedzi w pliku CSV przy użyciu csv typu źródła danych. Ten scenariusz działa tak samo jak ocena zestawu danych , ale akceptuje pliki CSV zamiast JSONL. Użyj pliku CSV, gdy dane są już w formacie arkusza kalkulacyjnego lub tabelarycznego.
Tip
Przed rozpoczęciem ukończ konfigurację klienta i przygotuj dane wejściowe.
Przygotowywanie pliku CSV
Utwórz plik CSV z nagłówkami kolumn, które pasują do pól, których potrzebują ewaluatorzy. Każdy wiersz reprezentuje jeden przypadek testowy.
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.
Prześlij i uruchom
Przekaż plik CSV jako zestaw danych. Następnie utwórz ocenę przy użyciu csv typu źródła danych. Definicja schematu i konfiguracja ewaluatora są takie same jak w przypadku ocen JSONL. Jedyna różnica polega na "type": "csv" w źródle danych.
# 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,
},
},
)
Następne kroki
- Aby sprawdzać, czy proces został ukończony, i interpretować wyniki, zobacz Pobieranie wyników oceny w chmurze.
- Aby uzyskać pełny przykład z możliwością uruchamiania, zobacz sample_evaluations_builtin_with_csv.py w GitHub.