Aracılığıyla paylaş


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

Uyarı

Bu belge , Microsoft Foundry (klasik) portalını ifade eder.

🔍Yeni portal hakkında bilgi edinmek için Microsoft Foundry (yeni) belgelerini görüntüleyin.

Ö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 Ek 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. Azure AI Değerlendirme SDK'sı, değerlendirmeleri makinenizde ve bulutta yerel olarak çalıştırmanıza olanak tanır. Örneğin, küçük test verilerinde yerel değerlendirmeleri çalıştırarak üretken yapay zeka uygulama prototiplerinizi değerlendirin ve ardından büyük bir veri kümesinde değerlendirmeleri çalıştırmak için dağıtım öncesi testine geçin.

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. Dağıtımdan sonra, dağıtım sonrası izleme için aracılarınızı sürekli olarak değerlendirmeyi seçebilirsiniz.

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.

Önkoşullar

Uyarı

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

Get started

  1. Değerlendirmeleri bulutta çalıştırmak için Microsoft Foundry SDK proje istemcisini yükleyin:

    pip install azure-ai-projects azure-identity
    
  2. Foundry kaynaklarınız için ortam değişkenlerini ayarlayın:

    import os
    
    # Required environment variables:
    endpoint = os.environ["PROJECT_ENDPOINT"] # https://<account>.services.ai.azure.com/api/projects/<project>
    model_endpoint = os.environ["MODEL_ENDPOINT"] # https://<account>.services.ai.azure.com
    model_api_key = os.environ["MODEL_API_KEY"]
    model_deployment_name = os.environ["MODEL_DEPLOYMENT_NAME"] # E.g. gpt-5-mini
    
    # Optional: Reuse an existing dataset.
    dataset_name    = os.environ.get("DATASET_NAME",    "dataset-test")
    dataset_version = os.environ.get("DATASET_VERSION", "1.0")
    
  3. Değerlendirmeleri bulutta çalıştırmak için bir istemci tanımlayın:

    import os
    from azure.identity import DefaultAzureCredential
    from azure.ai.projects import AIProjectClient
    
    # Create the project client (Foundry project and credentials):
    project_client = AIProjectClient(
        endpoint=endpoint,
        credential=DefaultAzureCredential(),
    )
    

Giriş verilerini hazırlama

# 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

Üretken yapay zeka uygulamalarını değerlendirmeye yönelik giriş veri biçimleri hakkında daha fazla bilgi edinmek için bkz:

Aracıları değerlendirmeye yönelik giriş veri biçimleri hakkında daha fazla bilgi edinmek için bkz. Azure AI aracılarını değerlendirme ve Diğer aracıları değerlendirme.

Değerlendiricileri belirtme

from azure.ai.projects.models import (
    EvaluatorConfiguration,
    EvaluatorIds,
)

# Built-in evaluator configurations:
evaluators = {
    "relevance": EvaluatorConfiguration(
        id=EvaluatorIds.RELEVANCE.value,
        init_params={"deployment_name": model_deployment_name},
        data_mapping={
            "query": "${data.query}",
            "response": "${data.response}",
        },
    ),
    "violence": EvaluatorConfiguration(
        id=EvaluatorIds.VIOLENCE.value,
        init_params={"azure_ai_project": endpoint},
    ),
    "bleu_score": EvaluatorConfiguration(
        id=EvaluatorIds.BLEU_SCORE.value,
    ),
}

Değerlendirme oluşturma

Son olarak, uzaktan değerlendirme çalışmasını başlatın.

from azure.ai.projects.models import (
    Evaluation,
    InputDataset
)

# Create an evaluation with the dataset and evaluators specified.
evaluation = Evaluation(
    display_name="Cloud evaluation",
    description="Evaluation of dataset",
    data=InputDataset(id=data_id),
    evaluators=evaluators,
)

# Run the evaluation.
evaluation_response = project_client.evaluations.create(
    evaluation,
    headers={
        "model-endpoint": model_endpoint,
        "api-key": model_api_key,
    },
)

print("Created evaluation:", evaluation_response.name)
print("Status:", evaluation_response.status)

Özel değerlendiricileri belirtme

Uyarı

Bu özellik için dökümhane projeleri desteklenmez. Bunun yerine bir Foundry hub projesi kullanın.

Kod tabanlı özel değerlendiriciler

Özel değerlendiricilerinizi Azure AI Hub projenize kaydedin ve değerlendirici kimliklerini getirin:

from azure.ai.ml import MLClient
from azure.ai.ml.entities import Model
from promptflow.client import PFClient

# Define ml_client to register the custom evaluator.
ml_client = MLClient(
       subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"],
       resource_group_name=os.environ["AZURE_RESOURCE_GROUP"],
       workspace_name=os.environ["AZURE_PROJECT_NAME"],
       credential=DefaultAzureCredential()
)

# Load the evaluator from the module.
from answer_len.answer_length import AnswerLengthEvaluator

# Convert it to an evaluation flow, and save it locally.
pf_client = PFClient()
local_path = "answer_len_local"
pf_client.flows.save(entry=AnswerLengthEvaluator, path=local_path)

# Specify the evaluator name that appears in the evaluator catalog.
evaluator_name = "AnswerLenEvaluator"

# Register the evaluator to the evaluator catalog.
custom_evaluator = Model(
    path=local_path,
    name=evaluator_name,
    description="Evaluator calculating answer length.",
)
registered_evaluator = ml_client.evaluators.create_or_update(custom_evaluator)
print("Registered evaluator id:", registered_evaluator.id)
# Registered evaluators have versioning. You can always reference any version available.
versioned_evaluator = ml_client.evaluators.get(evaluator_name, version=1)
print("Versioned evaluator id:", registered_evaluator.id)

Özel değerlendiricinizi kaydettikten sonra değerlendirici kataloğunuzda görüntüleyin. Dökümhane projenizde Değerlendirme'yi ve ardından değerlendirici kataloğunu seçin.

İstem tabanlı özel değerlendiriciler

FriendlinessEvaluator açıklandığı gibi özel olarak oluşturulmuş bir kaydı kaydetmek için bu örneği kullanın:

# Import your prompt-based custom evaluator.
from friendliness.friend import FriendlinessEvaluator

# Define your deployment.
model_config = dict(
    azure_endpoint=os.environ.get("AZURE_ENDPOINT"),
    azure_deployment=os.environ.get("AZURE_DEPLOYMENT_NAME"),
    api_version=os.environ.get("AZURE_API_VERSION"),
    api_key=os.environ.get("AZURE_API_KEY"), 
    type="azure_openai"
)

# Define ml_client to register the custom evaluator.
ml_client = MLClient(
       subscription_id=os.environ["AZURE_SUBSCRIPTION_ID"],
       resource_group_name=os.environ["AZURE_RESOURCE_GROUP"],
       workspace_name=os.environ["AZURE_PROJECT_NAME"],
       credential=DefaultAzureCredential()
)

# # Convert the evaluator to evaluation flow and save it locally.
local_path = "friendliness_local"
pf_client = PFClient()
pf_client.flows.save(entry=FriendlinessEvaluator, path=local_path) 

# Specify the evaluator name that appears in the evaluator catalog.
evaluator_name = "FriendlinessEvaluator"

# Register the evaluator to the evaluator catalog.
custom_evaluator = Model(
    path=local_path,
    name=evaluator_name,
    description="prompt-based evaluator measuring response friendliness.",
)
registered_evaluator = ml_client.evaluators.create_or_update(custom_evaluator)
print("Registered evaluator id:", registered_evaluator.id)
# Registered evaluators have versioning. You can always reference any version available.
versioned_evaluator = ml_client.evaluators.get(evaluator_name, version=1)
print("Versioned evaluator id:", registered_evaluator.id)

Özel değerlendiricinizi kaydettikten sonra değerlendirici kataloğunuzda görüntüleyebilirsiniz. Dökümhane projenizde Değerlendirme'yi ve ardından değerlendirici kataloğunu seçin.

Sonuçları alma

Sorun giderme