Aracılığıyla paylaş


Microsoft Foundry SDK'sını kullanarak değerlendirmeleri bulutta çalıştırma

Önemli

Bu makalede işaretlenen (önizleme) öğeler şu anda genel önizleme aşamasındadır. Bu önizleme, hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri için Uygun Kullanım Koşulları.

Bu makalede, test veri kümesinde ön dağıtım testi için bulutta değerlendirmeleri çalıştırmayı (önizleme) öğreneceksiniz.

Bulut değerlendirmelerini, özellikle büyük ölçekte test ederken, değerlendirmeleri sürekli tümleştirme ve sürekli teslim (CI/CD) işlem hatlarıyla tümleştirirken veya dağıtım öncesi test gerçekleştirirken çoğu senaryo için kullanın. Değerlendirmelerin bulutta çalıştırılması, yerel işlem altyapısını yönetme gereksinimini ortadan kaldırır ve büyük ölçekli, otomatikleştirilmiş test iş akışlarını destekler. Ayrıca değerlendirmeleri yinelenen olarak çalışacak şekilde zamanlayabilir veya üretimde örneklenen aracı yanıtlarını otomatik olarak değerlendirmek için sürekli değerlendirme ayarlayabilirsiniz.

Bulut değerlendirme sonuçları Dökümhane projenizde depolanır. Portalda sonuçları gözden geçirebilir, SDK aracılığıyla alabilir veya bağlıysa Application Insights'a yönlendirebilirsiniz. Bulut değerlendirmesi, Microsoft tarafından seçilmiş tüm yerleşik değerlendiricileri ve kendi özel değerlendiricilerinizi destekler. Değerlendiriciler, değerlendirici kataloğunda aynı proje kapsamı, rol tabanlı erişim denetimiyle yönetilir.

Tavsiye

Çalıştırılabilir örneklerin tamamı için GitHub Python SDK değerlendirme örnekleri bakın.

Foundry SDK kullanırken, değerlendirme sonuçlarını daha iyi gözlemlenebilirlik için Foundry projenize kaydeder. Bu özellik, Microsoft tarafından seçilmiş tüm yerleşik değerlendiricileri destekler. ve kendi özel değerlendiricileriniz. Değerlendiricileriniz değerlendirici kitaplığında bulunabilir ve aynı proje kapsamına, rol tabanlı erişim denetimine sahip olabilir.

Bulut değerlendirmesi nasıl çalışır?

Bulut değerlendirmesini çalıştırmak için, veri şemanız ve test ölçütlerinizle (değerlendiriciler) bir değerlendirme tanımı oluşturur ve ardından bir değerlendirme çalıştırması oluşturursunuz. Veri setinize karşı her bir değerlendiriciyi çalıştırır ve tamamlanma durumu için denetleyebileceğiniz puanlanmış sonuçlar döndürür.

Bulut değerlendirmesi aşağıdaki senaryoları destekler:

Scenario Ne zaman kullanılır? Veri kaynağı türü Hedef
Veri kümesi değerlendirmesi JSONL dosyasında önceden hesaplanan yanıtları değerlendirin. jsonl
Model hedef değerlendirmesi Değerlendirme için çalışma zamanında bir modelden sorgular sağlayın ve yanıtlar oluşturun. azure_ai_target_completions azure_ai_model
Aracı hedef değerlendirmesi Değerlendirme için çalışma zamanında bir Foundry aracısından sorgular sağlayın ve yanıtlar oluşturun. azure_ai_target_completions azure_ai_agent
Ajan yanıt değerlendirmesi Yanıt kimliklerine göre Foundry ajanı yanıtlarını alın ve değerlendirin. azure_ai_responses
Yapay veri değerlendirmesi (önizleme) Yapay test sorguları oluşturun, bunları bir modele veya aracıya gönderin ve yanıtları değerlendirin. azure_ai_synthetic_data_gen_preview veya
Kırmızı takım değerlendirmesi Bir modele veya aracıya karşı otomatik saldırgan testler çalıştırın. azure_ai_red_team veya

Çoğu senaryoda giriş verileri gerekir. Verileri iki yolla sağlayabilirsiniz:

Kaynak türü Description
file_id Yüklenen bir veri kümesine kimliğiyle başvurun.
file_content İstekte satır içi veri sağlayın.

Her değerlendirme, hizmete verilerinizde hangi alanların beklendiğini bildiren bir gerektirir:

  • — Alan adlarınız ve türleriniz ile bir tanımlarsınız. Değerlendiricilerin oluşturulan yanıtlara başvurabilmesi için, bir hedef kullanırken 'yi olarak ayarlayın.
  • — Şema hizmetten türetilir. Aracı yanıtı değerlendirmesi, yapay veri değerlendirmesi (önizleme) veya kırmızı ekip oluşturma için olarak ayarlanır.

Her senaryo için test ölçütlerinizi tanımlayan değerlendiriciler gerekir. Değerlendirici seçme yönergeleri için bkz. yerleşik değerlendiriciler.

Önkoşullar

  • Dökümhane projesi.
  • Sohbet tamamlanmasını destekleyen bir GPT modeline sahip Azure OpenAI dağıtımı (örneğin, gpt-5-mini).
  • Foundry projesinde Azure AI User rolü.
  • İsteğe bağlı olarak, değerlendirmeleri çalıştırmak için kendi depolama hesabınızı kullanabilirsiniz .

Uyarı

Bazı değerlendirme özelliklerinin bölgesel kısıtlamaları vardır. Ayrıntılar için desteklenen bölgelere bakın.

Get started

SDK'yı yükleyin ve istemcinizi ayarlayın:

pip install --pre "azure-ai-projects>=2.0.0b4"
import os
from azure.identity import DefaultAzureCredential 
from azure.ai.projects import AIProjectClient 
from openai.types.eval_create_params import DataSourceConfigCustom
from openai.types.evals.create_eval_jsonl_run_data_source_param import (
    CreateEvalJSONLRunDataSourceParam,
    SourceFileContent,
    SourceFileContentContent,
    SourceFileID,
)

# Azure AI Project endpoint
# Example: https://<account_name>.services.ai.azure.com/api/projects/<project_name>
endpoint = os.environ["AZURE_AI_PROJECT_ENDPOINT"]

# Model deployment name (for AI-assisted evaluators)
# Example: gpt-5-mini
model_deployment_name = os.environ.get("AZURE_AI_MODEL_DEPLOYMENT_NAME", "")

# Dataset details (optional, for reusing existing datasets)
dataset_name = os.environ.get("DATASET_NAME", "")
dataset_version = os.environ.get("DATASET_VERSION", "1")

# Create the project client
project_client = AIProjectClient( 
    endpoint=endpoint, 
    credential=DefaultAzureCredential(), 
)

# Get the OpenAI client for evaluation API
client = project_client.get_openai_client()

Giriş verilerini hazırlama

Çoğu değerlendirme senaryosu için giriş verileri gerekir. Verileri iki yolla sağlayabilirsiniz:

Foundry projenizde sürümlenmiş bir veri kümesi oluşturmak için JSONL dosyasını karşıya 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."}
# 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

Veriyi satır içi sağla

Doğrudan değerlendirme isteğinde, küçük test kümeleriyle hızlı denemeler yapmak için kullanarak veri sağlayın.

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, alanı olarak öğesini veri kaynağı yapılandırmanıza geçirin. Aşağıdaki senaryo bölümleri varsayılan olarak kullanılır .

Veri kümesi değerlendirmesi

Veri kaynağı türünü kullanarak JSONL dosyasındaki önceden hesaplanan yanıtları değerlendirin . Bu senaryo, zaten model çıkışlarınız olduğunda ve bunların kalitesini değerlendirmek istediğinizde kullanışlıdır.

Tavsiye

Başlamadan önce Başlarken ve Giriş verilerini hazırlama'yı tamamlayı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ı parametresini kullanarak değerlendirici parametreleriyle bağlayın. Her değerlendirici için her zaman gerekli giriş alanlarına ekleyin . Alan adlarınız JSONL dosyanızdaki adlarla eşleşmelidir; örneğin, verileriniz yerine kullanıyorsa eşlemede 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 = [
    {
        "type": "azure_ai_evaluator",
        "name": "coherence",
        "evaluator_name": "builtin.coherence",
        "initialization_parameters": {
            "deployment_name": model_deployment_name
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "violence",
        "evaluator_name": "builtin.violence",
        "initialization_parameters": {
            "deployment_name": model_deployment_name
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{item.response}}",
        },
    },
    {
        "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, ardından yüklediğiniz veri kümesinde bir çalıştırmayı başlatın. Veri kümesindeki her satır üzerinde her değerlendiriciyi çalıştırır.

# Create the evaluation
eval_object = 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 = 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 üzerinde sample_evaluations_builtin_with_dataset_id.py. Tamamlamayı sorgulamak ve sonuçları yorumlamak için bkz. Sonuçları Al.

Model hedef değerlendirmesi

Çalışma zamanında dağıtılan bir modele sorgu gönderin ve bir hedefle veri kaynağı türünü kullanarak yanıtları değerlendirin. Giriş verileriniz sorgular içerir; model daha sonra değerlendirilen yanıtlar oluşturur.

Tavsiye

Başlamadan önce Başlarken ve Giriş verilerini hazırlama'yı tamamlayın.

İleti şablonunu ve hedefini tanımlama

Şablon, sorguların modele nasıl gönderileceğini denetler. Giriş verilerinizden alanlara referans vermek için kullanın. Değerlendirilecek modeli ve isteğe bağlı örnekleme parametrelerini belirtin:

input_messages = {
    "type": "template",
    "template": [
        {
            "type": "message",
            "role": "user",
            "content": {
                "type": "input_text",
                "text": "{{item.query}}"
            }
        }
    ]
}

target = {
    "type": "azure_ai_model",
    "model": "gpt-5-mini",
    "sampling_params": {
        "top_p": 1.0,
        "max_completion_tokens": 2048,
    },
}

Değerlendiricileri ve veri eşlemelerini ayarlama

Model çalışma zamanında yanıt oluşturduğunda, modelin çıktısına referans vermek için öğesini içinde kullanın. Giriş verilerinizden alanlara referans vermek için kullanın.

data_source_config = DataSourceConfigCustom(
    type="custom",
    item_schema={
        "type": "object",
        "properties": {
            "query": {"type": "string"},
        },
        "required": ["query"],
    },
    include_sample_schema=True,
)

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "coherence",
        "evaluator_name": "builtin.coherence",
        "initialization_parameters": {
            "deployment_name": model_deployment_name,
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{sample.output_text}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "violence",
        "evaluator_name": "builtin.violence",
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{sample.output_text}}",
        },
    },
]

Değerlendirme oluşturma ve çalıştırma

eval_object = client.evals.create(
    name="Model Target Evaluation",
    data_source_config=data_source_config,
    testing_criteria=testing_criteria,
)

data_source = {
    "type": "azure_ai_target_completions",
    "source": {
        "type": "file_id",
        "id": data_id,
    },
    "input_messages": input_messages,
    "target": target,
}

eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="model-target-evaluation",
    data_source=data_source,
)

Tam bir çalıştırılabilir örnek için bkz. GitHub üzerinde sample_model_evaluation.py. Tamamlamayı sorgulamak ve sonuçları yorumlamak için bkz. Sonuçları Al.

Tavsiye

Başka bir değerlendirme çalıştırması eklemek için aynı kodu kullanabilirsiniz.

Aracı hedef değerlendirmesi

Çalışma zamanında bir Foundry temsilcisine sorguları gönderin ve veri kaynağı türünü bir hedefle kullanarak cevapları değerlendirin.

Tavsiye

Başlamadan önce Başlarken ve Giriş verilerini hazırlama'yı tamamlayın.

İleti şablonunu ve hedefini tanımlama

Şablon, sorguların aracıya nasıl gönderileceğini denetler. Giriş verilerinizden alanlara referans vermek için kullanın. Değerlendirilecek etmeni ada göre belirtin.

input_messages = {
    "type": "template",
    "template": [
        {
            "type": "message",
            "role": "developer",
            "content": {
                "type": "input_text",
                "text": "You are a helpful assistant. Answer clearly and safely."
            }
        },
        {
            "type": "message",
            "role": "user",
            "content": {
                "type": "input_text",
                "text": "{{item.query}}"
            }
        }
    ]
}

target = {
    "type": "azure_ai_agent",
    "name": "my-agent",
    "version": "1"  # Optional. Uses latest version if omitted.
}

Değerlendiricileri ve veri eşlemelerini ayarlama

Aracı çalışma süresinde yanıtlar oluşturduğunda, aracının çıktısını referans almak için değişkenlerini içinde kullanın.

Variable Description Kullanmak için
{{sample.output_text}} Ajanın düz metin yanıtı. Dize yanıtı bekleyen değerlendiriciler (örneğin, , ).
{{sample.output_items}} Aracın çağrıları dahil olmak üzere yapılandırılmış JSON çıkışı. Tam etkileşim bağlamı gerektiren değerlendiriciler (örneğin, ).
{{item.field}} Giriş verilerinizden bir alan. veya gibi giriş alanları.

Tavsiye

Bu alan, sistem iletileri ve konuşma geçmişi de dahil olmak üzere yapılandırılmış JSON içerebilir. Gibi bazı aracı değerlendiricileri daha doğru puanlama için bu bağlamı kullanır. Sorgu biçimlendirmesi hakkında ayrıntılı bilgi için bkz. aracı değerlendiricileri.

data_source_config = DataSourceConfigCustom(
    type="custom",
    item_schema={
        "type": "object",
        "properties": {
            "query": {"type": "string"},
        },
        "required": ["query"],
    },
    include_sample_schema=True,
)

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "coherence",
        "evaluator_name": "builtin.coherence",
        "initialization_parameters": {
            "deployment_name": model_deployment_name,
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{sample.output_text}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "violence",
        "evaluator_name": "builtin.violence",
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{sample.output_text}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "task_adherence",
        "evaluator_name": "builtin.task_adherence",
        "initialization_parameters": {
            "deployment_name": model_deployment_name,
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{sample.output_items}}",
        },
    },
]

Değerlendirme oluşturma ve çalıştırma

eval_object = client.evals.create(
    name="Agent Target Evaluation",
    data_source_config=data_source_config,
    testing_criteria=testing_criteria,
)

data_source = {
    "type": "azure_ai_target_completions",
    "source": {
        "type": "file_id",
        "id": data_id,
    },
    "input_messages": input_messages,
    "target": target,
}

agent_eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="agent-target-evaluation",
    data_source=data_source,
)

Tam bir çalıştırılabilir örnek için bkz. GitHub üzerinde sample_agent_evaluation.py. Tamamlamayı sorgulamak ve sonuçları yorumlamak için bkz. Sonuçları Al.

Aracı yazılım yanıt değerlendirmesi

Veri kaynağı türü kullanarak yanıt kimliklerine göre Foundry aracısı yanıtlarını alın ve değerlendirin. Bu senaryoyu, gerçekleşmelerinin ardından belirli aracı etkileşimlerini değerlendirmek için kullanın.

Tavsiye

Başlamadan önce Başlarken bölümünü tamamlayın.

Yanıt kimliği, Bir Foundry aracısı her yanıt oluşturduğunda döndürülen benzersiz bir tanımlayıcıdır. Yanıtlar API'sini kullanarak veya uygulamanızın izleme günlüklerinden aracı etkileşimlerinden yanıt kimlikleri toplayabilirsiniz. Kimlikleri satır içi olarak dosya içeriği olarak sağlayın veya veri kümesi olarak karşıya yükleyin (bkz . Giriş verilerini hazırlama).

Yanıt kimliklerini topla

Yanıtlar API'sine yapılan her çağrı, benzersiz bir alana sahip bir yanıt nesnesi döndürür. Uygulamanızın etkileşimlerinden bu kimlikleri toplayın veya doğrudan oluşturun:

# Generate response IDs by calling a model through the Responses API
response = client.responses.create(
    model=model_deployment_name,
    input="What is machine learning?",
)
print(response.id)  # Example: resp_abc123

Ayrıca, uygulamanızın izleme günlüklerindeki veya izleme işlem hattındaki aracı etkileşimlerinden yanıt kimlikleri de toplayabilirsiniz. Her yanıt kimliği, değerlendirme hizmetinin alabildiği depolanmış yanıtı benzersiz olarak tanımlar.

Değerlendirme oluşturma ve çalıştırma

data_source_config = {"type": "azure_ai_source", "scenario": "responses"}

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "coherence",
        "evaluator_name": "builtin.coherence",
        "initialization_parameters": {
            "deployment_name": model_deployment_name,
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "violence",
        "evaluator_name": "builtin.violence",
    },
]

eval_object = client.evals.create(
    name="Agent Response Evaluation",
    data_source_config=data_source_config,
    testing_criteria=testing_criteria,
)

data_source = {
    "type": "azure_ai_responses",
    "item_generation_params": {
        "type": "response_retrieval",
        "data_mapping": {"response_id": "{{item.resp_id}}"},
        "source": {
            "type": "file_content",
            "content": [
                {"item": {"resp_id": "resp_abc123"}},
                {"item": {"resp_id": "resp_def456"}},
            ]
        },
    },
}

eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="agent-response-evaluation",
    data_source=data_source,
)

Tam bir çalıştırılabilir örnek için bkz. GitHub üzerinde sample_agent_response_evaluation.py. Tamamlamayı sorgulamak ve sonuçları yorumlamak için bkz. Sonuçları Al.

Yapay veri değerlendirmesi (önizleme)

Yapay test sorguları oluşturun, bunları dağıtılan bir modele veya Foundry aracısına gönderin ve veri kaynağı türünü kullanarak yanıtları değerlendirin . Test veri kümeniz olmadığında bu senaryoyu kullanın; hizmet, sağladığınız bir istem temelinde (ve/veya aracının yönergelerinden) sorgular oluşturur, bunları hedefinize karşı çalıştırır ve yanıtları değerlendirir.

Tavsiye

Başlamadan önce Başlarken bölümünü tamamlayın.

Yapay veri değerlendirmesi nasıl çalışır?

  1. Hizmet, sizin ve isteğe bağlı tohum veri dosyalarınızı temel alan yapay sorgular oluşturur.
  2. Her sorgu, bir yanıt oluşturmak için belirtilen hedefe (model veya aracı) gönderilir.
  3. Değerlendiriciler, oluşturulan sorguyu ve yanıtı kullanarak her yanıtı puanlar.
  4. Oluşturulan sorgular yeniden kullanılmak üzere projenizde bir veri kümesi olarak depolanır.

Parametreler

Parametre Zorunlu Description
samples_count Evet Oluşturulacak en fazla yapay test sorgusu sayısı.
model_deployment_name Evet Yapay sorgular oluşturmak için kullanılacak model dağıtımı. Yalnızca Yanıtlar API'si özelliğine sahip modeller desteklenir. Kullanılabilirlik için bkz. Yanıtlar API'sinde bölge kullanılabilirliği.
prompt Hayı Oluşturulacak sorguların türünü açıklayan yönergeler. Ajan hedefi, yapılandırılmış yönergelere sahip olduğunda isteğe bağlı.
output_dataset_name Hayı Oluşturulan sorguların depolandığı çıkış veri kümesinin adı. Sağlanmazsa, hizmet otomatik olarak bir ad oluşturur.
sources Hayı Oluşturulan sorguların ilgi düzeyini artırmak için çekirdek veri dosyaları (dosya kimliğine göre). Şu anda yalnızca bir dosya desteklenmektedir.

Değerlendiricileri ve veri eşlemelerini ayarlama

Yapay veri oluşturucu alanda sorgular oluşturur. Hedef, içinde kullanılabilir yanıtlar oluşturur. Bu alanları değerlendiricilerinizle eşleyin:

data_source_config = {"type": "azure_ai_source", "scenario": "synthetic_data_gen_preview"}

testing_criteria = [
    {
        "type": "azure_ai_evaluator",
        "name": "coherence",
        "evaluator_name": "builtin.coherence",
        "initialization_parameters": {
            "deployment_name": model_deployment_name,
        },
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{sample.output_text}}",
        },
    },
    {
        "type": "azure_ai_evaluator",
        "name": "violence",
        "evaluator_name": "builtin.violence",
        "data_mapping": {
            "query": "{{item.query}}",
            "response": "{{sample.output_text}}",
        },
    },
]

Değerlendirme oluşturma ve çalıştırma

Modelleme hedefi

Yapay sorgular oluşturma ve modeli değerlendirme:

eval_object = client.evals.create(
    name="Synthetic Data Evaluation",
    data_source_config=data_source_config,
    testing_criteria=testing_criteria,
)

data_source = {
    "type": "azure_ai_synthetic_data_gen_preview",
    "item_generation_params": {
        "type": "synthetic_data_gen_preview",
        "samples_count": 5,
        "prompt": "Generate customer service questions about returning defective products",
        "model_deployment_name": model_deployment_name,
        "output_dataset_name": "my-synthetic-dataset",
    },
    "target": {
        "type": "azure_ai_model",
        "model": model_deployment_name,
    },
}

eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="synthetic-data-evaluation",
    data_source=data_source,
)

İsteğe bağlı olarak hedef modelin davranışını şekillendirmek için bir sistem istemi ekleyebilirsiniz. Yapay veri oluşturma ile kullandığınızda , yalnızca rol iletilerini ekleyin; hizmet, oluşturulan sorguları otomatik olarak kullanıcı iletileri olarak sağlar.

data_source = {
    "type": "azure_ai_synthetic_data_gen_preview",
    "item_generation_params": {
        "type": "synthetic_data_gen_preview",
        "samples_count": 5,
        "prompt": "Generate customer service questions about returning defective products",
        "model_deployment_name": model_deployment_name,
    },
    "target": {
        "type": "azure_ai_model",
        "model": model_deployment_name,
    },
    "input_messages": {
        "type": "template",
        "template": [
            {
                "type": "message",
                "role": "system",
                "content": {
                    "type": "input_text",
                    "text": "You are a helpful customer service agent. Be empathetic and solution-oriented."
                }
            }
        ]
    },
}

Aracı hedefi

Yapay sorgular oluşturma ve Foundry aracılarını değerlendirme:

data_source = {
    "type": "azure_ai_synthetic_data_gen_preview",
    "item_generation_params": {
        "type": "synthetic_data_gen_preview",
        "samples_count": 5,
        "prompt": "Generate questions about returning defective products",
        "model_deployment_name": model_deployment_name,
    },
    "target": {
        "type": "azure_ai_agent",
        "name": agent_name,
        "version": agent_version,
    },
}

eval_run = client.evals.runs.create(
    eval_id=eval_object.id,
    name="synthetic-agent-evaluation",
    data_source=data_source,
)

Tamamlamayı sorgulamak ve sonuçları yorumlamak için bkz. Sonuçları Al. Yanıt, yapay verileri almak veya yeniden kullanmak için kullanabileceğiniz, oluşturulan veri kümesinin kimliğini içeren bir özellik içerir.

Sonuçları alma

Değerlendirme çalıştırması tamamlandıktan sonra puanlanan sonuçları alın ve portalda veya program aracılığıyla gözden geçirin.

Sonuçlar için anket yap

Değerlendirme işlemleri eşzamansız. Tamamlanana kadar çalışma durumunu yoklayın ve ardından sonuçları alın.

import time
from pprint import pprint

while True:
    run = client.evals.runs.retrieve(
        run_id=eval_run.id, eval_id=eval_object.id
    )
    if run.status in ("completed", "failed"):
        break
    time.sleep(5)
    print("Waiting for eval run to complete...")

# Retrieve results
output_items = list(
    client.evals.runs.output_items.list(
        run_id=run.id, eval_id=eval_object.id
    )
)
pprint(output_items)
print(f"Report URL: {run.report_url}")

Sonuçları yorumlama

Tek bir veri örneği için tüm değerlendiriciler aşağıdaki şemayı çıkış olarak döndürür:

  • Etiket: Birim testinin çıkışına benzer şekilde ikili bir "pass" veya "fail" etiketi. Değerlendiriciler arasında karşılaştırmaları kolaylaştırmak için bu sonucu kullanın.
  • Puan: Her değerlendiricinin doğal ölçeğinden bir puan. Bazı değerlendiriciler, 5 nokta ölçeğinde puanlama (kalite değerlendiricileri) veya 7 nokta ölçeğinde (içerik güvenliği değerlendiricileri) ince taneli bir puanlama anahtarı kullanır. Metinsel benzerlik değerlendiricileri gibi diğerleri, 0 ile 1 arasında kayan F1 puanlarını kullanır. İkili olmayan herhangi bir "puan", "eşik" temelinde "etiket" alanında "başarılı" veya "başarısız" şeklinde ikilileştirilir.
  • Eşik: İkili olmayan tüm puanlar, kullanıcının SDK deneyiminde geçersiz kılabileceği varsayılan eşiğe göre "başarılı" veya "başarısız" olarak yapılandırılır.
  • Neden: Anlaşılırlığı geliştirmek için, tüm LLM-judge değerlendiricileri belirli bir puanın neden verildiğini açıklamak için bir akıl yürütme alanı da oluşturur.
  • Ayrıntılar: (isteğe bağlı) tool_call_accuracy gibi bazı değerlendiriciler için, kullanıcıların uygulamalarında hata ayıklamasına yardımcı olacak ek bilgiler içeren bir "ayrıntılar" alanı veya bayrakları olabilir.

Örnek çıkış (tek öğe)

{
  "type": "azure_ai_evaluator",
  "name": "Coherence",
  "metric": "coherence",
  "score": 4.0,
  "label": "pass",
  "reason": "The response is well-structured and logically organized, presenting information in a clear and coherent manner.",
  "threshold": 3,
  "passed": true
}

Örnek çıkış (toplama)

Birden çok veri örneğine (bir veri kümesi) göre toplu sonuçlar elde etmek için, "geçiş" içeren örneklerin ortalama oranı bu veri kümesinin geçiş hızını oluşturur.

{
  "eval_id": "eval_abc123",
  "run_id": "run_xyz789",
  "status": "completed",
  "result_counts": {
    "passed": 85,
    "failed": 15,
    "total": 100
  },
  "per_testing_criteria_results": [
    {
      "name": "coherence",
      "passed": 92,
      "failed": 8,
      "pass_rate": 0.92
    },
    {
      "name": "relevance", 
      "passed": 78,
      "failed": 22,
      "pass_rate": 0.78
    }
  ]
}

Sorun giderme

uzun süre çalışan iş

Değerlendirme göreviniz uzun süre Çalışıyor durumunda kalabilir. Bu durum genellikle Azure OpenAI model dağıtımı yeterli kapasiteye sahip olmadığında ve hizmetin istekleri yeniden denemesine neden olduğunda oluşur.

Çözünürlük:

  1. kullanarak geçerli değerlendirme işini iptal edin.
  2. Azure portalında model kapasitesini artırın.
  3. Değerlendirmeyi yeniden çalıştırın.

Kimlik doğrulama hataları

Eğer bir hatası veya hatası alırsanız, şunları doğrulayın:

  • DefaultAzureCredential doğru yapılandırıldı (Azure CLI kullanıyorsanız az login çalıştırın).
  • Hesabınız, Foundry projesinde Azure AI User rolüne sahiptir.
  • Proje uç noktası URL'si doğrudur ve hem hesap hem de proje adlarını içerir.

Veri biçimi hataları

Değerlendirme bir şema veya veri eşleme hatasıyla başarısız olursa:

  • JSONL dosyanızda satır başına geçerli bir JSON nesnesi olduğunu doğrulayın.
  • içindeki alan adlarının JSONL dosyanızdaki alan adlarla tam olarak eşleşdiğini onaylayın (büyük/küçük harfe duyarlı).
  • özelliklerin veri kümenizdeki alanlarla eşleştiğini denetleyin.

Hız sınırı hataları

Değerlendirme çalıştırmalarının oluşturulması, kiracı, abonelik ve proje seviyelerinde hız sınırlamalarına tabidir. Bir yanıt alırsanız:

  • Önerilen bekleme süresi için yanıttaki üst bilgiyi denetleyin.
  • Hız sınırı ayrıntıları için yanıt gövdesini gözden geçirin.
  • Başarısız istekleri yeniden denerken üstel geri alma kullanın.

Bir değerlendirme işi yürütme sırasında bir hatayla başarısız olursa:

  • Değerlendirme veri kümenizin boyutunu küçültün veya daha küçük gruplara bölün.
  • Azure portalında model dağıtımınız için dakika başına belirteç (TPM) kotasını artırın.

Aracı değerlendirici aracı hataları

Desteklenmeyen araçlarla ilgili bir temsilci değerlendiricisi hata döndürdüğünde:

  • Ajans değerlendiricileri için desteklenen araçları kontrol edin.
  • Geçici bir çözüm olarak, desteklenmeyen araçları kullanıcı tanımlı işlev araçları olarak sarmalayarak değerlendiricinin bunları değerlendirebilmesini sağlayın.
  • Çalışma örneklerini tamamla
  • Yapay zeka aracılarınızı sürekli değerlendirme
  • Dökümhane portalında değerlendirme sonuçlarına bakın
  • Foundry ile çalışmaya başlama
  • REST API başvurusu