Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Momenteel weergeven:Foundry -portalversie - (klassiek)Overschakelen naar versie voor de nieuwe Foundry-portal
Belangrijk
Items die in dit artikel zijn gemarkeerd (preview) zijn momenteel beschikbaar als openbare preview. Deze preview wordt aangeboden zonder een service level agreement en we raden deze niet aan voor productieworkloads. Bepaalde functies worden mogelijk niet ondersteund of hebben mogelijk beperkte mogelijkheden. Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews voor meer informatie.
In dit artikel leert u hoe u evaluaties uitvoert in de cloud (preview) voor predeploymenttests op een testgegevensset. Met de Azure AI Evaluation SDK kunt u evaluaties lokaal op uw computer en in de cloud uitvoeren. Voer bijvoorbeeld lokale evaluaties uit op kleine testgegevens om uw generatieve AI-toepassingsprototypes te beoordelen, en ga vervolgens door naar pre-deployment testen om evaluaties uit te voeren op een grote dataset.
Gebruik cloudevaluaties voor de meeste scenario's, met name bij het testen op schaal, het integreren van evaluaties in CI/CD-pipelines (continue integratie en continue levering) of het uitvoeren van predeploymenttests. Het uitvoeren van evaluaties in de cloud elimineert de noodzaak om de lokale rekeninfrastructuur te beheren en ondersteunt grootschalige, geautomatiseerde testwerkstromen. Na de implementatie kunt u ervoor kiezen om uw agents continu te evalueren voor bewaking na de implementatie.
Wanneer u de Foundry SDK gebruikt, registreert het de evaluatieresultaten in uw Foundry-project voor betere zichtbaarheid. Deze functie ondersteunt alle door Microsoft samengestelde ingebouwde evaluators. en uw eigen aangepaste evaluatoren. Uw evaluators kunnen zich in de evaluator-bibliotheek bevinden en hebben dezelfde projectspecifieke, op rollen gebaseerde toegangscontrole.
Vereiste voorwaarden
- Een Gieterij-project.
- Een Azure OpenAI-implementatie met een GPT-model dat ondersteuning biedt voor voltooiing van chats (bijvoorbeeld
gpt-5-mini). - Azure AI User op het Foundry-project.
- U kunt desgewenst uw eigen storage-account gebruiken om evaluaties uit te voeren.
Opmerking
Sommige evaluatiefuncties hebben regionale beperkingen. Zie ondersteunde regio's voor meer informatie.
Aan de slag
Installeer de Microsoft Foundry SDK project-client om evaluaties uit te voeren in de cloud:
pip install azure-ai-projects azure-identityOmgevingsvariabelen instellen voor uw Foundry-resources:
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")Definieer een client voor het uitvoeren van evaluaties in de 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(), )
Invoergegevens voorbereiden
# 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
Zie voor meer informatie over invoergegevensindelingen voor het evalueren van generatieve AI-toepassingen:
Zie Azure AI-agents evalueren en Andere agents evalueren voor meer informatie over invoergegevensindelingen voor het evalueren van agents.
Evaluators opgeven
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,
),
}
Een evaluatie maken
Verzend ten slotte de uitvoering van de externe evaluatie:
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)
Aangepaste evaluators opgeven
Opmerking
Foundry-projecten worden niet ondersteund voor deze functie. Gebruik in plaats daarvan een Foundry-hub project.
Op code gebaseerde aangepaste evaluators
Registreer uw aangepaste evaluators bij uw Azure AI Hub project en haal de evaluator-id's op:
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)
Nadat u uw aangepaste evaluator hebt geregistreerd, bekijkt u deze in uw evaluatorcatalogus. Selecteer in uw Foundry-project Evaluation en selecteer vervolgens evaluator-catalogus.
Aangepaste evaluators op basis van prompts
Gebruik dit voorbeeld om een aangepaste FriendlinessEvaluator te registreren, zoals beschreven in op prompts gebaseerde evaluators:
# 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)
Nadat u uw aangepaste evaluator hebt geregistreerd, kunt u deze bekijken in uw evaluatorcatalogus. Selecteer in uw Foundry-project Evaluation en selecteer vervolgens evaluator-catalogus.