Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir şema tanımlayarak, alanları değerlendiricilerle eşleyerek ve bir bulut değerlendirme çalıştırması başlatarak JSONL veya CSV verilerinde önceden derlenmiş yanıtları değerlendirin.
Prerequisites
- Bulut değerlendirme önkoşullarını ve istemci kurulumunu tamamlayın.
- Değerlendiricilerinizin gerektirdiği alanları içeren bir JSONL veya CSV veri kümesi.
Örneklerde SDK istemcisini ayarlama bölümünde yapılandırılan SDK istemcisi kullanılır.
Giriş verilerini hazırlama
Çoğu değerlendirme senaryosu için giriş verileri gerekir. Verileri iki yolla sağlayabilirsiniz:
Tip
El ile seçilmiş bir veri kümeniz yoksa bir tane önyükleyebilirsiniz. Lansman öncesindeyseniz veya trafiğiniz düşükse Sentetik bir değerlendirme veri kümesi oluştur seçeneğini, gerçek üretim trafiğinden bir veri kümesi oluşturmak içinse Aracı izlerini değerlendirme veri kümelerine dönüştür seçeneğini kullanın.
Veri kümesini yükle (önerilen)
Foundry projenizde sürüme sahip bir veri kümesi oluşturmak için bir JSONL veya CSV dosyası yükleyin. Veri kümeleri sürüm oluşturma ve birden çok değerlendirme çalıştırması arasında yeniden kullanımı destekler. Üretim testi ve CI/CD iş akışları için bu yaklaşımı kullanın.
Değerlendiricilerinizin ihtiyaç duyduğu alanları içeren satır başına bir JSON nesnesi içeren bir JSONL dosyası hazırlayın:
{"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."}
Veya değerlendirici alanlarınızla eşleşen sütun üst bilgilerine sahip bir CSV dosyası hazırlayın:
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
Satır içi veri sağla
Küçük test kümeleriyle hızlı denemeler yapmak veya aracı yanıtlarının değerlendirilmesi gibi satır içi veri gerektiren senaryolarda, verileri değerlendirme isteğinde doğrudan file_content kullanarak sağlayın. Aracı yanıtı değerlendirmeleri için desteklenen file_content tek kaynak türüdür.
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",
}
),
],
)
Çalıştırma oluştururken, source alanı olarak "source" öğesini veri kaynağı yapılandırmanıza geçirin. Aşağıdaki senaryo bölümleri varsayılan olarak kullanır file_id .
Senaryoya göre kaynak türü desteği
Tüm senaryolar her iki kaynak türünü de desteklemez. Aşağıdaki matris, her senaryonun hangi kaynak türünü desteklediğini gösterir.
| Scenario | file_id |
file_content |
|---|---|---|
Veri kümesi (jsonl) |
Evet | Evet |
CSV (csv) |
Evet | Evet |
| Model veya ajan hedefi | Evet | Evet |
Temsilci yanıtı (azure_ai_responses) |
Hayır | Evet |
İzleme (azure_ai_traces) |
N/A | N/A |
| Yapay veriler (önizleme) | N/A | N/A |
JSONL veri kümesini değerlendirme
Veri kaynağı türünü kullanarak JSONL dosyasındaki önceden derlenmiş yanıtları değerlendirin jsonl . Bu senaryo, zaten model çıkışlarınız olduğunda ve bunların kalitesini değerlendirmek istediğinizde kullanışlıdır.
Tip
Başlamadan önce , istemci kurulumunu tamamlayın ve Giriş verilerini hazırlayın.
Veri şemasını ve değerlendiricileri tanımlama
JSONL alanlarınızla eşleşen şemayı belirtin ve çalıştırılacak değerlendiricileri (test ölçütleri) seçin. Giriş verilerinizdeki alanları, {{item.field}} söz dizimini kullanarak değerlendirici parametrelerine bağlamak için data_mapping parametresini kullanın. Her değerlendirici için her zaman gerekli giriş alanlarına ekleyin data_mapping . Alan adlarınız JSONL dosyanızdaki adlarla eşleşmelidir. Örneğin, verilerinizde "question", "query" yerine kullanılıyorsa eşlemede "{{item.question}}" kullanın. Değerlendirici başına gerekli parametreler için bkz. yerleşik değerlendiriciler.
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}}",
},
),
]
Değerlendirme oluşturma ve çalıştırma
Değerlendirmeyi oluşturun ve ardından yüklediğiniz veri kümesine karşı bir çalıştırma işlemi başlatın. Veri kümesindeki her bir satırda tüm değerlendiricileri çalıştırır.
# 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,
),
),
)
Tam bir çalıştırılabilir örnek için bkz. GitHub'da sample_evaluations_builtin_with_dataset_id.py . Tamamlanma durumunu denetlemek ve sonuçları yorumlamak için bkz. Bulut değerlendirme sonuçlarını alma.
CSV veri kümesini değerlendirme
Veri kaynağı türünü kullanarak bir CSV dosyasındaki önceden derlenmiş yanıtları değerlendirin csv . Bu senaryo , veri kümesi değerlendirmesiyle aynı şekilde çalışır ancak JSONL yerine CSV dosyalarını kabul eder. Verileriniz zaten elektronik tablo veya tablo biçimindeyken CSV kullanın.
Tip
Başlamadan önce , istemci kurulumunu tamamlayın ve Giriş verilerini hazırlayın.
CSV dosyası hazırlama
Değerlendiricilerinizin ihtiyaç duyduğu alanlarla eşleşen sütun üst bilgilerine sahip bir CSV dosyası oluşturun. Her satır bir test çalışmalarını temsil eder.
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.
Yükle ve çalıştır
CSV dosyasını veri kümesi olarak karşıya yükleyin. Ardından, veri kaynağı türünü kullanarak csv bir değerlendirme oluşturun. Şema tanımı ve değerlendirici yapılandırması, JSONL değerlendirmeleriyle aynıdır. Tek fark, veri kaynağındaki farktır "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 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,
},
},
)
Sonraki Adımlar
- Tamamlanma durumunu denetlemek ve sonuçları yorumlamak için bkz. Bulut değerlendirme sonuçlarını alma.
- Tam bir çalıştırılabilir örnek için bkz. GitHub sample_evaluations_builtin_with_csv.py.