Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Anmärkning
Det här dokumentet refererar till Microsoft Foundry-portalen (klassisk).
🔍 Visa dokumentationen för Microsoft Foundry (ny) för att lära dig mer om den nya portalen.
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
I den här artikeln får du lära dig hur du kör utvärderingar i molnet (förhandsversion) för fördistributionstestning på en testdatauppsättning. Med Azure AI Evaluation SDK kan du köra utvärderingar lokalt på datorn och i molnet. Du kan till exempel köra lokala utvärderingar på små testdata för att utvärdera dina generativa AI-programprototyper och sedan gå över till förhandsdistributionstestning för att köra utvärderingar på en stor datauppsättning.
Använd molnutvärderingar för de flesta scenarier – särskilt när du testar i stor skala, integrerar utvärderingar i CI/CD-pipelines (kontinuerlig integrering och kontinuerlig leverans) eller utför fördistributionstestning. Att köra utvärderingar i molnet eliminerar behovet av att hantera lokal beräkningsinfrastruktur och stöder storskaliga, automatiserade testarbetsflöden. Efter distributionen kan du välja att kontinuerligt utvärdera dina agenter för övervakning efter distributionen.
När du använder Foundry SDK loggar den utvärderingsresultaten i ditt Foundry-projekt för bättre observerbarhet. Den här funktionen stöder alla Microsoft-utvalda inbyggda utvärderare. och dina egna anpassade utvärderare. Dina utvärderare kan finnas i utvärderingsbiblioteket och ha samma projektomfattning, rollbaserad åtkomstkontroll.
Förutsättningar
- Ett Foundry-projekt.
- En Azure OpenAI-distribution med en GPT-modell som stöder chattens slutförande (till exempel
gpt-5-mini). - Azure AI-användarrollen i Foundry-projektet.
- Du kan också använda ditt eget lagringskonto för att köra utvärderingar.
Anmärkning
Vissa utvärderingsfunktioner har regionala begränsningar. Se stödda regioner för mer information.
Get started
Installera Microsoft Foundry SDK-projektklienten för att köra utvärderingar i molnet:
pip install azure-ai-projects azure-identityAnge miljövariabler för dina Foundry-resurser:
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")Definiera en klient för att köra utvärderingar i molnet:
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(), )
Förbereda indata
# 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
Mer information om indataformat för utvärdering av generativa AI-program finns i:
Mer information om indataformat för utvärdering av agenter finns i Utvärdera Azure AI-agenter och Utvärdera andra agenter.
Ange utvärderare
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,
),
}
Skapa en utvärdering
Skicka slutligen fjärrutvärderingskörningen:
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)
Ange anpassade utvärderare
Anmärkning
Foundry-projekt stöds inte för den här funktionen. Använd ett Foundry Hub-projekt i stället.
Kodbaserade anpassade utvärderare
Registrera dina anpassade utvärderare i ditt Azure AI Hub-projekt och hämta utvärderar-ID:n:
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)
När du har registrerat din anpassade utvärderare kan du visa den i utvärderingskatalogen. I ditt Foundry-projekt väljer du Utvärdering och sedan utvärderarkatalog.
Prompt-baserade anpassade utvärderare
Använd det här exemplet för att registrera en anpassad FriendlinessEvaluator byggd enligt beskrivningen i Uppmaningsbaserade utvärderare:
# 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)
När du har registrerat din anpassade utvärderare kan du visa den i utvärderingskatalogen. I ditt Foundry-projekt väljer du Utvärdering och sedan utvärderarkatalog.