Ausführen von Auswertungen in der Cloud mithilfe des Microsoft Foundry SDK (klassisch)

Zurzeit wird folgendes angezeigt:Foundry (klassische) Portalversion - Wechseln zur Version für das neue Foundry-Portal

Wichtig

In diesem Artikel markierte Elemente (Vorschau) befinden sich derzeit in der öffentlichen Vorschau. Diese Vorschau wird ohne Vereinbarung auf Serviceebene bereitgestellt und wird für Produktionsworkloads nicht empfohlen. Bestimmte Features werden möglicherweise nicht unterstützt oder weisen eingeschränkte Funktionen auf. Weitere Informationen finden Sie unter Supplementale Nutzungsbedingungen für Microsoft Azure Previews.

In diesem Artikel erfahren Sie, wie Sie Auswertungen in der Cloud (Vorschau) für Vorabbereitstellungstests für ein Test-Dataset ausführen. Mit dem Azure AI Evaluation SDK können Sie Auswertungen lokal auf Ihrem Computer und in der Cloud ausführen. Führen Sie beispielsweise lokale Auswertungen für kleine Testdaten aus, um Ihre generativen KI-Anwendungsprototypen zu bewerten, und wechseln Sie dann zu Vorabbereitstellungstests, um Auswertungen für ein großes Dataset auszuführen.

Verwenden Sie Cloud-Auswertungen für die meisten Szenarien – insbesondere beim Testen in großem Maßstab, und integrieren Sie Auswertungen in CI/CD-Pipelines oder bevor Sie Bereitstellungstests durchführen. Das Ausführen von Auswertungen in der Cloud macht es nicht erforderlich, die lokale Computeinfrastruktur zu verwalten und unterstützt umfangreiche, automatisierte Testworkflows. Nach der Bereitstellung können Sie kontinuierlich Ihre Agenten zur Überwachung auswerten.

Wenn Sie das Foundry SDK verwenden, protokolliert es auswertungsergebnisse in Ihrem Foundry-Projekt, um eine bessere Observability zu erzielen. Dieses Feature unterstützt alle Microsoft kuratierten built in Evaluatoren. und Ihre eigenen benutzerdefinierten Evaluatoren. Ihre Gutachter können sich in der Gutachterbibliothek befinden und über dieselbe projektbezogene, rollenbasierte Zugriffskontrolle verfügen.

Voraussetzungen

  • Ein Foundry-Projekt.
  • Eine Azure OpenAI-Bereitstellung mit einem GPT-Modell, das den Chatabschluss unterstützt (z. B. gpt-5-mini).
  • Azure AI User Rolle im Foundry-Projekt.
  • Optional können Sie Ihr eigenes Speicherkonto verwenden , um Auswertungen auszuführen.

Hinweis

Einige Auswertungsfeatures weisen regionale Einschränkungen auf. Ausführliche Informationen finden Sie in den unterstützten Regionen .

Beginnen

  1. Installieren Sie den Microsoft Foundry SDK-Projektclient, um Auswertungen in der Cloud auszuführen:

    pip install azure-ai-projects azure-identity
    
  2. Festlegen von Umgebungsvariablen für Ihre Foundry-Ressourcen:

    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. Definieren Sie einen Client zum Ausführen von Auswertungen in der Cloud:

    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(),
    )
    

Vorbereiten von Eingabedaten

# 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

Weitere Informationen zu Eingabedatenformaten für die Auswertung von generativen KI-Anwendungen finden Sie unter:

Weitere Informationen zu Eingabedatenformaten für die Auswertung von Agents finden Sie unter Evaluieren Azure KI-Agents und Evaluieren anderer Agents.

Angeben von Evaluatoren

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,
    ),
}

Erstellen einer Auswertung

Übermitteln Sie schließlich die Remoteauswertungsausführung:

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)

Angeben von benutzerdefinierten Bewertern

Hinweis

Foundry-Projekte werden für dieses Feature nicht unterstützt. Verwenden Sie stattdessen ein Foundry Hub-Projekt.

Codebasierte benutzerdefinierte Bewerter

Registrieren Sie Ihre benutzerdefinierten Bewerter für Ihr Azure AI Hub-Projekt, und rufen Sie die Evaluator-IDs ab:

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)

Nachdem Sie Ihren benutzerdefinierten Evaluator registriert haben, zeigen Sie ihn im Evaluator-Katalog an. Wählen Sie in Ihrem Foundry-Projekt "Auswertung" und dann den eValuator-Katalog aus.

Eingabeaufforderungsbasierte benutzerdefinierte Bewerter

Verwenden Sie dieses Beispiel, um einen benutzerdefinierten FriendlinessEvaluator zu registrieren, wie in Prompt-basierten Evaluatoren beschrieben.

# 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)

Nachdem Sie Ihren benutzerdefinierten Evaluator registriert haben, können Sie ihn im Evaluator-Katalog anzeigen. Wählen Sie in Ihrem Foundry-Projekt "Auswertung" und dann den eValuator-Katalog aus.

Ergebnisse abrufen

Problembehandlung